基于VHDL的多功能数字钟的设计.doc

基于VHDL的多功能数字钟的设计.doc

ID:61414596

大小:35.50 KB

页数:6页

时间:2021-01-27

基于VHDL的多功能数字钟的设计.doc_第1页
基于VHDL的多功能数字钟的设计.doc_第2页
基于VHDL的多功能数字钟的设计.doc_第3页
基于VHDL的多功能数字钟的设计.doc_第4页
基于VHDL的多功能数字钟的设计.doc_第5页
资源描述:

《基于VHDL的多功能数字钟的设计.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、电子钟设计1.摘要本实验是设计一个多功能数字钟,具有计时、校时、清零等简单功能,在计算机上运用QuartusII软件进行仿真调试,并下载到下载板上(ALTEAEPM7064SLI44-7)实现,通过开关来控制其主要的功能。关键字:QuartusII,电子钟,ALTEAEPM7064SLI44-7。2.实验设计要求与目的设计制作一个0秒0分—59秒59分的多功能计时器,设计要求如下:1.计时功能:完成0秒0分—59秒59分的计时功能。2.清零功能:在板上设置一个手动清零开关,通过它可以对电路实现实时的手动清零。3.校时功能:可随时对电路进行校时功能,并设置两个开关(a/b)控制。按下

2、a开关时(手不松开),数字时钟的秒钟数迅速增加(4HZ的时钟频率来驱动),并按60循环,计满60后再回00。按下b开关时(手不松开),数字时钟的分钟数迅速增加(4HZ的时钟频率来驱动),并按60循环,计满60后再回00。目的:掌握各类计数器;掌握多个数码管显示的原理与方法;掌握使用VHDL语言的设计思想;对整个系统的设计有一个了解。3.实验环境1.软件环境:QuartusII7.22.硬件环境:ALTEAEPM7064SLI44-74.设计原理框图译码显示清零电路计数电路校时电路5各功能实现原理整个数字钟的设计包括七个模块,分别为分频、清零、计时、校时、BCD编码、扫描、译码,各模

3、块的设计解决方案具体如下。5.1分频功能实现因为我们需要1HZ的频率来用来驱动秒计时器,而硬件提供的时钟频率是4HZ,所以我们要进行分频。分频的程序如下:process(clk4hz)----clk4hz为硬件提供的时钟频率4hzbeginifclk4hz'eventandclk4hz='1'thenifcount=3thencount:=0;clk1hz<='1';point<=clk1hz;---clk4hz分频后1hzelsecount:=count+1;clk1hz<='0';point<=clk1hz;-----时钟频率“clk4hz”跳变四次,clk1hz时钟频率跳一次

4、,实现分频。endif;endif;endprocess;5.2清零功能实现硬件上一共有四个开关,设置硬件上的一个开关为清零开关。当按下该开关时,时钟的显示全部为零。清零的程序如下:process(rst)beginifrst='0'then----这里我们设置了一个清零键“rst”当清零键为0状态时(即按下该清零键时),小时和分钟全部清零sec1<=0;----秒清零min1<=0;----分钟清零5.3计时功能实现计时功能可分为两部分来实现,依次设计分位、秒位的计数单元。计时程序如下:process(clk1hz,clear,sec,min)beginifclk1hz'even

5、tandclk1hz='1'then--分频后的时钟频率来驱动ifclear='1'then------当清零键状态为“1”时(即不按清零键),计时开始。ifsec=59thensec<=0;-----当数字时钟的秒钟为59时,即刻置为零ifmin=59thenmin<=0;-----当数字时钟的分钟为59时,即刻置为零elsemin<=min+1;-----当数字时钟的分钟没到59时,加1endif;elsemiao1<=miao1+1;当数字时钟的秒钟没到59时,加1endif;endif;endif;5.4校时功能实现对电路进行校时功能,设置两个开关(a/b)控制。按下a开关

6、时(手不松开),数字时钟的秒钟数迅速增加(4HZ的时钟频率来驱动),并按60循环,计满60后再回00。按下b开关时(手不松开),数字时钟的分钟数迅速增加(4HZ的时钟频率来驱动),并按60循环,计满60后再回00。校时程序如下:ifa='0'then-----设置调秒钟的开关aifsec=59thensec<=0;elsesec<=sec+1;endif;endif;ifb='0'then-----设置调分钟的开关bifmin=59thenmin<=0;elsemin<=min+1;endif;这里要说明下,调时间是用4HZ的时钟频率来驱动,目的是为了调得更快些,但也不会因为过快而

7、调不准。5.5BCD编码功能实现这里我们将十进制转化为二进制,因为时钟计的数是十进制,所以我们要将十进制转成二进制。编码功能程序如下:process(min)-----分钟的BCD编码begincaseminiswhen0

8、10

9、20

10、30

11、40

12、50=>qml<="0000";----当分钟的低位为0时,编码为“0000”when1

13、11

14、21

15、31

16、41

17、51=>qml<="0001";---当分钟的低位为1时,编码为“0001”when2

18、12

19、22

20、32

21、42

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

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

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