




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录1、设计题目:多功能数字时钟的设计22、设计任务23、设计方案23.1设计内容23.2方案设计22.2.1软件设计方案22.2.2硬件设计方案24、设计的具体实现34.1设计步骤35、设计的实验验证结果75.1在硬件电路板上,七段数码管显示的结果75.1.1二十四进制的数字时钟显示75.1.2十二进制的数字时钟显示85.2用软件的方法仿真验证实验结果95.2.1用生成顶层原理图输入法的结果和分析95.2.2用软件仿真波形的仿真结果和分析106、设计的实验结论116.1设计小结116.2设计改进117、附录:vhdl语言编写的源程序12eda课程设计1、设计题目:多功能数字时钟的设计2、设计任务了解数字钟的工作原理,进一步熟悉vhdl语言编写驱动七段数码管显示代码,并且掌握用多进程的方式实现一个综合性的程序。最终实现硬件和软件多功能数字钟的设计。2.1设计任务实现的是显示24小时制(1)显示的格式为小时-分钟-秒钟,是24小时制,整点报时时间为5秒,级从整点前5秒钟开始进行报时提示,led灯开始闪烁,过整点后,停止闪烁,在这5秒闪烁时间的花样可以任自己随意改变。(2)系统时钟选择时钟模块的10khz,要得到1hz时钟信号,必须对系统时钟进行10000次分频。(3)调整时间的按键用按键模块的s1和s2,s1调节小时,每按下一次,小时增加一个小时,s2调节分钟,每按下一次,分钟增加一分钟。另外用s8案件作为系统时钟复位,复位后全部显示00-00-00。2.2设计任务实现的是显示12小时制(1)在以上实现的情况下,修改设计方案,实现显示格式为小时分钟秒钟,是12小时制,整点报时时间为8秒,级从整点前8秒钟开始进行报时提示,led灯开始闪烁,过整点后,停止闪烁,在这8秒闪烁时间的花样可以任自己随意改变。(2)系统时钟选择时钟模块的100khz,要得到1hz时钟信号,必须对系统时钟进行100000次分频。(3)调整时间的按键用按键模块的s1和s2,s1调节小时,每按下一次,小时增加一个小时,s2调节分钟,每按下一次,分钟增加一分钟。另外用s8案件作为系统时钟复位,复位后全部显示000000。3、设计方案3.1设计内容1、计时功能:包括小时、分钟、秒钟;2、整点提示功能:能在设定的时间内led灯闪烁,进行整点提示;3、按键模块功能:能够控制小时和分钟的增加,还有对时间的复位。3.2方案设计2.2.1软件设计方案 用vhdl语言编写程序实现设计内容中需要实现的功能。将编写好的vhdl的程序加载到硬件电路中,从而驱动七段数码管显示二十四制时间和十二制时间,并用按键控制时间的变化,用软件仿真验证实验结果。2.2.2硬件设计方案 在软件方案实现的基础上,将已经运行成功的程序,将结果烧制到硬件电路中,最后生成顶层电路原理图。4、设计的具体实现4.1设计步骤 4.1.1打开quartusii软件,新建一个工程 4.1.2建完工程之后,再新建一个vhdl file,打开vhdl编辑器对话框; 4.1.3按照自己设计方案,在vhdl编辑窗口编写vhdl程序;(程序见附录) 4.1.4编写完vhdl程序后,保存在自己新建的文件夹在d盘的目录下; 4.1.5对自己编写的vhdl程序进行编译仿真,对程序的错误进行修改,直到完全通过编译和仿真; 4.1.6仿真无误后,依照按键开关、数码管、led灯余fpga的管脚连接表尽心管脚分配。分配完成后,在进行编译一次,以使管脚分配生效;表3.1 端口管脚分配表端口名使用模块信号对应fpga管脚说明clk数字信号源c13时钟为10khzhour按键开关s1p25调整小时min按键开关s2p26调整分钟reset按键开关s8n25复位led0led灯模块led1g13整点倒计时led1led灯模块led2g15led2led灯模块led3g14led3led灯模块led4h12display0数码管a段f13时间显示display1数码管b段f14display2数码管c段f15display3数码管d段e15display4数码管e段f16display5数码管f段f17display6数码管g段e18seg-sel0位选del0g18seg-sel1位选del1g17seg-sel2位选del2g16图3.1在运行完程序以后对管脚分配图4.1.7用下载电缆通过jtag口将对应的sof文件加载到fpga中,观察设计结果是否和自己的编程思想一致。图3.2将软件运行的结果加载到fpga中的图4.1.8修改源程序,将二十四小时制的改为十二小时制的程序(1)将时钟10khz改为100khz的程序段process(clk) -实现时钟100khz begin if(clkevent and clk=1)then if(clk_count1100000)then clk_count1=clk_count1+1; else clk_count1=00000000000000001; end if; end if; end process; clk1hz=clk_count1(16);(2)将二十四小时制改为十二小时制程序段process(clk1hz,rst) begin if(rst=0)then sec1=0; sec10=0; min1=0; min10=0; hour1=0; hour10=0;elsif(clk1hzevent and clk1hz=1)then -正常运行 if(s1=0)then if(hour1=9)then hour1=0; hour10=hour10+1; elsif(hour10=1 and hour1=1)then -十二制的时间显示 hour1=0; hour10=0; else hour1=hour1+1; end if; elsif(s2=0)then if(min1=9)then min1=0; if(min10=5)then min10=0; else min10=min10+1; end if; else min1=min1+1; end if; elsif(sec1=9)then sec1=0; if(sec10=5)then sec10=0; if(min1=9)then min10; if(min10=5)then min10=0; if(hour1=9)then hour1=0; hour10=hour10+1; elsif(hour10=1 and hour1=1)then hour1=0; hour10=0; else hour1=hour1+1; end if; else min10=min10+1; end if; else min12)then -在59分52秒开始led_count=led_count+1;elseled_countled_displayled_displayled_displayled_displayled_displayled_displayled_display=0000;end case;leddisp_decodedisp_decodedisp_decodedisp_decodedisp_decodedisp_decodedisp_decodedisp_decodedisp_decodedisp_decodedisp_decodedisp_decode=0000000;end case;5、设计的实验验证结果5.1在硬件电路板上,七段数码管显示的结果5.1.1二十四进制的数字时钟显示在附录中的数字时钟的源程序,当设计文件加载到目标器件后,将数字信号源模块的时钟选为10khz,数码换开始显示时间,从000000开始。整点正在签5秒的时候。led灯的模块led1-led5开始闪烁,一旦超过整点,led停止显示。安东按键开关的s1、s2小时和分钟开始步进,步进开始调整。按下按键开关s8,显示恢复到00-00-00从新开始显示时间。5.1.2十二进制的数字时钟显示在附录中的数字时钟修改后的源程序,当设计文件加载到目标器件后,将数字信号源模块的时钟选为100khz,数码换开始显示时间,从000000开始。整点正在签8秒的时候。led灯的模块led1-led5开始闪烁,一旦超过整点,led停止显示。安东按键开关的s1、s2小时和分钟开始步进,步进开始调整。按下按键开关s8,显示恢复到000000从新开始显示时间。5.2用软件的方法仿真验证实验结果5.2.1用生成顶层原理图输入法的结果和分析 在编译完程序以后,可以生成顶层原理图如上图所示,由于输出端口是总线的形式,所以要将自己编译程序将总线输出在单一线路上。5.2.2用软件仿真波形的仿真结果和分析在100khz的情况下,将rst、s1、s2设置在高电平和低电平时,仿真结果没有发生变化,因为时钟周期很长,所以无变化。6、设计的实验结论6.1设计小结 通过本次课程设计对eda这门课程又有了更深入的了解和学习,特别是对有vhdl语言编写程序的掌握进一步的加强了,本设计是对多功能数字钟的设计,设计的的核心是能够熟练的使用quartusii软件,通过对设计的硬件描述语言代码加载到硬件电路板上,实现多功能数字钟的功能,最后用软件仿真波形也能验证仿真结果。 在设计中也遇到了很多困难主要是程序仿真的时候很容易出错,有时候是一个标点符号也可能是程序出现错误,应此在程序的编写过程中要细心,还有一点就是在在将二十四进制的数码管显示的程序修改为是十二进制的数码管显示的程序时,对分频的那段程序不是很理解,在同学之间一起讨论学习的过程中,最后还是完成了程序的修改,最终程序运行成功。6.2设计改进 课程设计的时间不是很长,但是我还是在从中学到了很多东西,我在做课程设计的过程中,也查阅了一些资料,本次课程设计还可以进一步改进,看了一自己编写程序用按键开关控制二十四进制数码管显示向十二进制数码管的切换,还可以增加多功能数字钟的的功能,例如:增加日历功能,使之能够先死年、月、日等。或者增加跑表功能,是之能对百分秒进行计数,还可以实现星期的显示。7、附录:vhdl语言编写的源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;-entity yangjiao is port(clk : in std_logic;-时钟的输入 rst : in std_logic;-复位输入 s1,s2 : in std_logic;-时间调节输入 led : out std_logic_vector(3 downto 0);-整点输入报时输出 display : out std_logic_vector(6 downto 0);-七段数码管显示输出 seg_sel : buffer std_logic_vector(2 downto 0);-七段数码管扫描输出 )end entity yangjiao;-architecture behave of yangjiao is signal disp_temp :integer range 0 to 15; signal disp_decode :std_logic_vector(6 downto 0); signal sec1,sec10 :integer range 0 to 9; signal min1,min10 :integer range 0 to 9; signal hour1,hour10 :integer range 0 to 9; signal clk_count1 :std_logic_vector(13 downto 0);-产生1hz时钟的分频计数器 signal clk1hz :std_logic; signal led_count :std_logic_vector(2 downto 0); signal led_display :std_logic_vector(3 downto 0); begin process(clk) -实现时钟10khz begin if(clkevent and clk=1)then if(clk_count110000)then clk_count1=clk_count1+1; else clk_count1=00000000000001; end if; end if; end process; clk1hz=clk_count1(13); process(clk1hz,rst) begin if(rst=0)then sec1=0; sec10=0; min1=0; min10=0; hour1=0; hour10=0;elsif(clk1hzevent and clk1hz=1)then -正常运行 if(s1=0)then if(hour1=9)then hour1=0; hour10=hour10+1; elsif(hour10=2 and hour1=3)then -二十四制的时间显示 hour1=0; hour10=0; else hour1=hour1+1; end if; elsif(s2=0)then if(min1=9)then min1=0; if(min10=5)then min10=0; else min10=min10+1; end if; else min1=min1+1; end if; elsif(sec1=9)then sec1=0; if(sec10=5)then sec10=0; if(min1=9)then min10; if(min10=5)then min10=0; if(hour1=9)then hour1=0; hour10=hour10+1; elsif(hour10=2 and
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【课件】大气压强教学课件2024-2025学年初中物理人教版(2024)八年级下册+
- 中小学教师思政课培训
- 肿瘤介入术后护理
- 2024年度青海社区工作者练习题库及答案
- 员工入职安全培训大纲
- 生产工艺研发培训课件
- 2.0信息技术培训
- 护理循环系统
- 衬衫制作流程
- 肿瘤放疗病人心理护理
- 加气站反恐怖防范安全风险评价报告
- 2025年吉林国资委出资企业招聘笔试参考题库含答案解析
- 慢性病健康教育
- 金融营销宣传八不得
- 2024年中国灯影牛肉市场调查研究报告
- 2024年高中生物学业水平合格考及答案
- 车给别人开的协议书
- 1.3探索三角形全等的条件第7课时 苏科版八年级数学上册
- 苏教版四年级科学下册复习方法
- 壮族文化宣传介饮食服饰建筑风俗习惯特点传统节日课件
- 牛津译林版英语八年级下册期末复习各单元话题写作范文背诵
评论
0/150
提交评论