ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:158.57KB ,
资源ID:17718441      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17718441.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字时钟设计及实现资料Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字时钟设计及实现资料Word格式文档下载.docx

1、LED码控制信号线分别和LED的7个数码控制端a-g相连,用来控制LED上显示的字符,通过合理的控制扫描时钟,就可以得到稳定的时、分、秒的显示。图1 数字时钟结构图三系统以及模块硬件电路设计1、 数字时钟控制信号改数字时钟的控制部分由芯片完成。该芯片的输入和输出接口由下面信号组成。(1) 输入信号复位信号(reset)时钟输入信号(clk)小时递增信号(hour_inc)小时递减信号(hour_dec)分钟递增信号(min_inc)分钟递减信号(min_dec)。(2) 输出信号LED选择信号(sel)LED码显示控制信号(segment)。2、控制模块结构该设计分为下面4个模块:定时时钟模块

2、、扫描时钟模块、按键处理模块、定时计数模块和显示控制模块。图2给出了这几个模块之间的信号连接关系。(1) 按键处理模块由于VHDL语言的规则,将按键的处理和定时模块设计在一起。为了描述清楚,将对按键的处理进行说明。在该设计中,采用异步复位电路方式。当复位信号低有效时,计时器停止计时,时、分、秒清0。图2 电子钟控制模块的内部连接图 对于小时的递增、递减按键操作,通过一个1HZ的计数时钟采样。图3给出了递增、递减的操作时序。图3 预置操作和定时时钟的关系当1HZ的div_clk信号的上升沿到来时,检测hour_inc和hour_dec按键,图中的虚线表示在时钟的上升沿对按键信号进行采样。当hou

3、r_inc或hour_dec按键低有效时,对小时进行递加或递减操作。对于分针的递加、递减按键操作,也是通过一个1HZ的计数时钟采样。原理如图4所示。图4 定时器时、分、秒之间的连接关系(2) 定时时钟模块定时时钟模块作用就是,将外部提供的1MHZ的时钟通过分频器后向模块内的定时计数模块提供1HZ的定时计数时钟。在设计定时时钟模块时,采用同步计数电路。(3) 扫描时钟模块扫描时钟模块的作用就是通过对1MHZ的分频处理后,向显示控制模块提供合适的显示扫描时钟,该始终必须经过合理的设计,才能保证7段数码显示的稳定。在设计扫描时钟模块时,采用同步计数电路。(4) 定时计数模块定时计数模块是该设计中最重

4、要的一部分,在设计该模块时,为了便于后续显示控制模块的设计,将时、分、秒进行分离,即小时分成了小时的十位和个位分别处理,分钟分成了分钟的十位和个位分别处理。秒分成了秒的十位和个位分别处理。在该设计中,采用24小时计数模式。例如13:28:57。13为小时的表示,1为小时的十位,3为小时的个位;28为分钟的表示,2为分钟的十位,8为分钟的个位;57为秒的表示,5为秒的十位,7为秒的个位。由于对小时、分钟和秒的十位及个位分别处理,在设计该模块就稍微复杂些。下面逐一进行说明。秒的个位计数从0到9,即十进制计数。当秒的个位计数到9后,准备向秒的十位进位。秒的十位计数从0到5,即六进制计数。当秒的十位计

5、数到5后,准备向分的个位进位。分钟的个位计数从0到9,即十进制计数。当分钟的个位计数到9后,准备向分钟的十位进位。分钟的十位计数从0到5,即六进制计数。当分钟的十位计数到5后,准备向小时的个位进位。对于小时的处理比较复杂,小时的十位和个位之间存在下面的关系: 当小时的十位为0或1时,小时的个位可以计数范围为0-9,即十进制计数。 当小时的十位为2时,小时的个位可以计数范围为0-3,即四进制计数。图4给出了定时器时、分、秒之间的关系。(5) 显示控制模块 显示控制模块主要作用是在7段数码管上正确地显示0-9的数字。Sel三位LED选择线和3-8译码器相连。表1开发系统工作模式:接口名称类型(输入

6、/输出)结构图上的信号名引脚号说明复位信号inResetPin_g26进行复位,显示屏清0时钟输入信号InclkPin_n2输入时钟小时递增信号Hour_incPin_n23用于小时位调节小时递减信号Hour_decPin_p23分钟递增符号Min_incPin_w26用于分钟位调节分钟递减符号Min_decnoneLED选择信号Outsel用于选择LED信号LED码显示控制信号segment用于控制LED显示屏四系统的VHDL设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std

7、_logic_unsigned.all;entity clock is -实体定义部分 port( clk:in std_logic; rst: inc_min: in std_logic; sub_min: inc_hour: sub_hour: sel:out std_logic_vector(2 downto 0); q:out std_logic_vector(7 downto 0);end clock;architecture behavioral of clock is -信号定义部分 signal sec_counter1:std_logic_vector(3 downto 0)

8、; signal sec_counter2: signal min_counter1: signal min_counter2: signal hour_counter1: signal hour_counter2: signal divcounter:std_logic_vector(19 downto 0); signal div_clk:std_logic; signal scancounter:std_logic_vector(1 downto 0); signal scan_clk: signal scan_out:std_logic_vector(2 downto 0); sign

9、al secseg1,secseg2,minseg1,minseg2,hourseg1,hourseg2:std_logic_vector(7 downto 0);begin process(rst,clk) -计数时钟代码设计 begin if(rst=0)then divcounter=x00000; div_clk= elsif(rising_edge(clk)then if(divcounter=x7a11f=not div_clk; else=divcounter+1; end if; end process; process(rst,clk) -数码管扫描时钟 scancounte

10、r=00 scan_clk if(scancounter=11=not scan_clk;=scancounter+1;process(div_clk,rst) -时钟计数部分主进程if(rst=)then -复位部分 sec_counter10 sec_counter2 min_counter1 min_counter2 hour_counter1 hour_counter25=min_counter2+1;=min_counter1+1;elsif(sub_min=)then -手动调分,递减 if(min_counter2=x=mincounter2-1;else=min_counter

11、1-1;end if;elsif(inc_hour=)then -手动调时,增时 if(hour_counter2=x2 if(hour_counter1=x3=hour_counter1+1;=hour_counter2+1;elsif(sub_hour=)then -手动调时,减时=hour_counter2-1;else =hour_counter1-1;else -时分秒正常计时 if(sec_counter1 if(sec_counter2 if(min_counter1 hour_couner2=sec_counter2+1;=sec_counter1+1;end process;

12、process(rst,scan_clk) -生成扫描时钟 scan_outq=secseg1;sel11111111111 end case;process(sec_counter1) -秒低位显示 case sec_counter1 is when0000secseg1101111110001100001100010110110110011110011110100111001100101111011010110111111010111100001111000100111101111process(sec_counter2) -秒高位显示 case sec_counter2 issecseg

13、200111111000001100101101101001111011001100110110101111111process(min_counter1) -分低位显示 case min_counter1 isminseg1process(min_counter2) -分高位显示 case min_counter2 isminseg2process(hour_counter1) -小时低位显示 case hour_counter1 ishourseg1process(hour_counter2) -小时高位显示 case hour_counter2 ishourseg2end behavioral; -程序结束五 结论以及结果说明1. 系统运行环境(1) PC机一台(2) Quartus II 6.0软件一套(3) 主芯片为ALTERA公司DE2 board(CYCLONE2C55FPGA)2. 运行结果 程序运行正常,实验板仿真由于管脚问题没能得以实现。参考文献1 何宾 .EDA原理及应用M.出版地:清华大学出版社,2009.237-247.2 何宾.EDA原理及应用实验教程M. 出版地:清华大学出版社,2009.70-75.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1