数显电子钟系统设计

数显电子钟系统设计

ID:27601850

大小:870.00 KB

页数:14页

时间:2018-12-05

数显电子钟系统设计_第1页
数显电子钟系统设计_第2页
数显电子钟系统设计_第3页
数显电子钟系统设计_第4页
数显电子钟系统设计_第5页
资源描述:

《数显电子钟系统设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数显电子钟系统设计实验名称:数显电子钟系统设计实验目的:1.学习系统设计方法2.设计一个电子钟系统实验步骤:电子钟框图→按Top_Down方法作功能分割→画出各层的功能模块图(注明port)、画出模块连接关系,并分配I/O管脚→VHDL编码、仿真、综合。实验要求:1.能够对S(秒)、MIN(分)、Hr(小时)进行计时,按24小时计时制。2.要求采用Top_Down的设计方法系统功能和个模块功能详细描述:电子钟主要有四个组成部分:时基分频器,计时器,显示电路,控制电路,实验通过4MHz时钟,分频产生S(秒)时钟,对S(秒)信号计数,并通过LED数码管进行扫描显示。a)时基分频器:对基本时钟(

2、4MHZ)进行分频得到S(秒)时钟(1HZ)和扫描时钟(250HZ)。b)计时器:主要包括S计时器(60进制)、MIN计时器(60进制)、Hr计时器(24进制)c)显示电路::用6位扫描数码显示(七段数码管),扫描始终用250Hz。d)控制电路:对电子表进行启停和复位,清零的控制。每个模块的具体实现过程:1.时基分频模块:设计思想:利用N位二进制计数器进行分频,第0位是二分频,第一位是四分频,以次类推。故要将4MHZ时钟产生1HZ时钟须22位二进制计数器(21downto0)对其进行分频。最后将13位和21位输出即是250HZ和1HZ时钟。关键代码:LIBRARYIEEE;USEIEEE.

3、STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYclk_divISPORT(clk:INSTD_LOGIC;RESET:inSTD_LOGIC;clk_250HZ:OUTSTD_LOGIC;clk_1HZ:OUTSTD_LOGIC);ENDclk_div;ARCHITECTURErtlOFclk_divISSIGNALcount:STD_LOGIC_VECTOR(21DOWNTO0);BEGINPROCESS(clk,reset)BEGINifRESET='1'thencount<=(others=>'0');elsif(cl

4、k'eventANDclk='1')THENCount<=count+1;ENDIF;ENDPROCESS;clk_250HZ<=count(13);--clk_250HZ<=count(1);clk_1HZ<=count(21);--clk_1HZ<=count(2);ENDrtl;仿真波形:心得体会:对4MHZ进行分频产生1HZ时钟,是对原始时钟的4000000分频,如何对其仿真,速度如何,最后结果能否清楚的显示出来确是一个极大的问题。最后采用如下方式进行仿真:--clk_250HZ<=count(13);clk_250HZ<=count(1);--clk_1HZ<=count(21)

5、;clk_1HZ<=count(2);将原先分频语句屏蔽,利用count(1),count(2)实现四分频和八分频,查看仿真波形(如上图),然后还可以适当增大分频数,看仿真波形是否符合设计要求。2.计时器模块:设计思想:利用60进制计数器产生秒计数器、分计数器、利用24进制计数器产生小时计数器,再利用BDE方式产生计时器。关键代码:(以下是24进制计数器代码,60进制雷同)libraryIEEE;useIEEE.STD_LOGIC_1164.all;useIEEE.STD_LOGIC_UNSIGNED.all;entity60_COUNTisport(CLK:inSTD_LOGIC;R

6、ESET:inSTD_LOGIC;ENABLE:inSTD_LOGIC;FULL:outSTD_LOGIC;bcd1_out:outSTD_LOGIC_VECTOR(3downto0);bcd10_out:outSTD_LOGIC_VECTOR(3downto0));end60_COUNT;architectureRTLof60_COUNTissignalbcd1,bcd10:STD_LOGIC_VECTOR(3downto0);beginprocess(CLK,RESET)beginif(RESET='1')thenbcd1<=(others=>'0');bcd10<=(othe

7、rs=>'0');elsif(CLK='1'andCLK'event)thenif(ENABLE='1')thenif(bcd1=4)thenif(bcd10=2)thenbcd1<=(others=>'0');bcd10<=(others=>'0');FULL<='1';elsebcd1<=bcd1+1;endif;elsif(bcd1=9)thenbcd1<=(others=>'0');bcd10<=bcd10+1;

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

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

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