vhdl设计数字钟系统

vhdl设计数字钟系统

ID:18796631

大小:103.00 KB

页数:14页

时间:2018-09-24

vhdl设计数字钟系统_第1页
vhdl设计数字钟系统_第2页
vhdl设计数字钟系统_第3页
vhdl设计数字钟系统_第4页
vhdl设计数字钟系统_第5页
资源描述:

《vhdl设计数字钟系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、VHDL设计数字钟系统1.熟练利用VHDL语言进行数字系统设计;2.掌握数字系统的设计方法——自顶向下的设计思想;3.掌握计数器的设计与使用;4.掌握调时,调分功能的实现;5.根据数字钟的功能要求设计一个数字钟;6.掌握闹钟系统的原理。数字钟是一计时的工具,有着广泛的用途。本实验的数字钟要求有三个功能按钮:一个是清零按钮reset11,当按下此按钮时,数字钟显示有位都清零.二是调分钟的按钮setmin,当按下此按钮时分钟会以1HZ的频率速度进行调时,而且在调分钟时秒钟会暂停不动;三是调小时的按钮sethour,当按下此按钮时时钟会以1H

2、Z的频率速度进行调时,在调小时时分钟会暂停不动,但秒钟是正常记时的。另外还有一个闹钟模块,在闹钟模块中,当按下调时或调分键时,数码显示管显示所调闹钟的时间,并进行调时或调分。当两个键都未按下时,数码管显示数字钟的时间。当设定的闹钟时间和数字钟的时间一致时,红灯亮,黄灯灭,同时喇叭叫。其余时间黄灯亮,红灯灭,喇叭不叫。此数字钟是以24小时制记时,当到整点时会报时一分钟,按下清零键时也会报时一分钟。主要元件有计数器,分频器,报时器,选择器和译码器等。控制逻辑主要是用来实现计数和清零。基本方框图如下:.....................

3、......................................分频模块采用原理图输入方式实现2分频与1000分频,但这里并没有用到1000分频,因为后来考虑到精度问题,将千分频用直接输入了。程序如图:利用三个7490进行硬件分频!微秒模块采用VHDL语言输入方式,以时钟clk,清零信号clr以及暂停信号STOP为进程敏感变量,程序如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityMINSECONDbisport(cl

4、k,clrm,stop:instd_logic;----时钟/清零信号secm1,secm0:outstd_logic_vector(3downto0);----秒高位/低位co:outstd_logic);-------输出/进位信号endMINSECONDb;architectureSECofMINSECONDbissignalclk1,DOUT2:std_logic;beginprocess(clk,clrm)variablecnt1,cnt0:std_logic_vector(3downto0);---计数VARIABLECOU

5、NT2:INTEGERRANGE0TO10;beginIFCLK'EVENTANDCLK='1'THENIFCOUNT2>=0ANDCOUNT2<10THENCOUNT2:=COUNT2+1;ELSECOUNT2:=0;DOUT2<=NOTDOUT2;ENDIF;ENDIF;ifclrm='1'then----当clr为1时,高低位均为0cnt1:="0000";cnt0:="0000";elsifclk'eventandclk='1'thenifstop='1'thencnt0:=cnt0;cnt1:=cnt1;endif;ifcnt

6、1="1001"andcnt0="1000"then----当记数为98(实际是经过59个记时脉冲)co<='1';----进位cnt0:="1001";----低位为9elsifcnt0<"1001"then----小于9时cnt0:=cnt0+1;----计数--elsifcnt0="1001"then--clk1<=notclk1;elsecnt0:="0000";ifcnt1<"1001"then----高位小于9时cnt1:=cnt1+1;elsecnt1:="0000";co<='0';endif;endif;endif;s

7、ecm1<=cnt1;secm0<=cnt0;endprocess;endSEC;秒模块程序清单libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitySECONDisport(clk,clr:instd_logic;----时钟/清零信号sec1,sec0:outstd_logic_vector(3downto0);----秒高位/低位co:outstd_logic);-------输出/进位信号endSECOND;architecture

8、SECofSECONDisbeginprocess(clk,clr)variablecnt1,cnt0:std_logic_vector(3downto0);---计数beginifclr='1'then-

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。