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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数电设计数字钟基于QUARTUS.docx

1、数电设计数字钟基于QUARTUS大连理工大学本科实验报告题目:数电课设多功能数字钟课程名称:数字电路课程设计 学院(系): 电信学部 专 业: 电子与通信工程 班 级: 学生姓名: *学 号:* 完成日期: 成 绩: 2010 年 12 月 17 日题目:多功能数字时钟一 设计要求1) 具有时、分、秒的十进制数字显示(小时从0023)2) 具有手动校时校分功能3) 具有整点报时功能,从59分50秒起,每隔2秒钟提示一次4) 具有秒表显示、计时功能(精确至百分之一秒),可一键清零5) 具有手动定时,及闹钟功能,LED灯持续提醒一分钟6) 具有倒计时功能,可手动设定倒计时范围,倒计时停止时有灯光提

2、示,可一键清零二 设计分析及系统方案设计 1. 数字钟的基本功能部分,包括时、分、秒的显示,手动调时,以及整点报时部分。基本模块是由振荡器、分频器、计数器、译码器、显示器等几部分组成。利用DE2硬件中提供的50MHZ晶振,经过分频得到周期为1s的时钟脉冲。将该信号送入计数器进行计算,并把累加结果以“时”“分”“秒”的形式通过译码器由数码管显示出来。进入手动调时功能时,通过按键改变控制计数器的时钟周期,使用0.5s的时钟脉冲进行调时计数(KEY1调秒,LOAD2调分,LOAD3调时),并通过译码器由七位数码管显示。从59分50秒开始,数字钟进入整点报时功能。每隔两秒提示一次。(本设计中以两个LE

3、D灯代替蜂鸣器,进行报时)2. 多功能数字钟的秒表功能部分,计时范围从00分00.00秒至59分59.99秒。可由输入信号(RST1)异步清零,并由按键(EN1)控制计时开始与停止。将DE2硬件中的50MHZ晶振经过分频获得周期为0.01秒的时钟脉冲,将信号送入计数器进行计算,并把累计结果通过译码器由七位数码管显示。7) 多功能数字钟的闹钟功能部分,通过按键(KEY1,KEY2,KEY3)设定闹钟时间,当时钟进入闹钟设定的时间(判断时钟的时信号qq6,qq5与分信号qq4,qq3分别与闹钟设定的时信号r6,r5与分信号r4,43是否相等),则以LED灯连续提示一分钟。4. 多功能数字钟的倒计时

4、功能部分,可通过按键(LOAD7调秒,LOAD8调分,LOAD9调时)设定倒计时开始时刻。倒计时的时钟与数字钟的时钟相同,每迎到一个时钟上升沿,则计数器减一。计数器减至00时,分钟位、秒钟位恢复至59,时钟位恢复至23。倒计时结束时(即00时00分00秒),控制LED灯亮,表示倒计时结束。 本设计通过数据选择器控制译码器,使数码管独立显示,各功能之间互不影响。当LOAD4为高电平,则对秒表信号进行译码,数码管显示秒表数据;当LOAD4为低电平,LOAD5为高电平,则对闹钟信号进行译码,数码管显示闹钟数据;当LOAD4,LOAD5为低电平,LOAD6为高电平,则对倒计时信号进行译码,数码管显示倒

5、计时信号数据;当LOAD4,LOAD5,LOAD6全为低电平,则对正常时钟信号进行译码,数码管显示时钟信号数据。附图1:系统总体结构框图 3系统以及模块硬件电路设计硬件模块包含与,或,非多个基本逻辑单元,由硬件芯片内部提供,软件编程是为了目的性的操作硬件。50MHZ的晶振进行分频操作:根据上式得到周期分别为1s,0.01s,0.5s的时钟。附图2系统硬件电路设计下载时选择的开发系统模式以及管脚定义表1 GW48-CK开发系统工作模式:接口名称类型(输入/输出)结构图上的信号名引脚号说明clkInput Pin_N2250MHz clock 信号En1InputPin_P21秒表运行使能段EN2

6、InputPin_N12倒计时运行使能段KEY1InputPin_N235秒钟调节按键KEY2Input Pin_P236闹钟分钟调节按键KEY3Input Pin_W266闹钟时钟调节按键Led1OutputPin_AE237闹钟显示Led2OutputPin_AA207接近整点显示Led3OutputPin_Y187整点显示Led4OutputPin_AF237倒计时结束显示Led5OutputPin_AD128倒计时结束闪烁Load1InputPin_V21时钟运行使能端Load2InputPin_V11数字钟分钟调节按键Load3InputPin_U41数字时钟调节按键Load4Inp

7、utPin_U31选择秒表显示Load5InputPin_P11选择闹钟显示Load6InputPin_A134选择倒计时显示Load7InputPin_C133倒计时初始秒钟设定Load8InputPin_AC238倒计时初始分钟设定Load9InputPin_AD138倒计时初始时钟设定q10Output Pin_AF108秒钟低位数码管显示q11OutputPin_AB128q12OutputPin_AC128q13OutputPin_AD118q14OutputPin_AE118q15OutputPin_V148q16OutputPin_V138q20OutputPin_V206秒钟高

8、位数码管显示q21OutputPin_V216q22OutputPin_W216q23OutputPin_Y226q24OutputPin_AA246q25OutputPin_AA236q26OutputPin_AB246q30OutputPin_AB236分钟低位数码管显示q31OutputPin_V226q32OutputPin_AC256q33OutputPin_AC266q34OutputPin_AB266q35OutputPin_AB256q36OutputPin_Y246q40OutputPin_Y236分钟高位数码管显示q41OutputPin_AA256q42OutputPin

9、_AA266q43OutputPin_Y266q44OutputPin_Y256q45OutputPin_U226q46OutputPin_W246q50OutputPin_U91q51OutputPin_U11q52OutputPin_U21小时低位数码管显示q53OutputPin_T41q54OutputPin_R71q55OutputPin_R61q56OutputPin_T31q60OutputPin_T21小时高位数码管显示q61OutputPin_P61q62OutputPin_P71q63OutputPin_T91q64OutputPin_R51q65OutputPin_R41

10、q66OutputPin_R31rst1InputPin_T71秒表异步清零Rst2InputPin_B134倒计时异步清零四 系统的VHDL设计源程序:-代码共372行library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clock is port( load9,load8,load7,load6,load5,load4,load3,load2,load1:in std_logic; clk,rst1,rst2,en1,en2,key1,key2,key3:in std_logic; q

11、1,q2,q3,q4,q5,q6:out std_logic_vector(6 downto 0); led1,led2,led3,led4,led5:out std_logic );end;architecture a of clock issignal qq1,qq2,qq3,qq4,qq5,qq6:std_logic_vector(3 downto 0);-数字钟计数器信号signal vis1,vis2,vis3,vis4,vis5,vis6:std_logic_vector(3 downto 0);signal cp1,cp2,cp3,cp4,cp5:std_logic;signal

12、 p1:integer range 0 to 49;signal p2:integer range 0 to 999;signal p3:integer range 0 to 999;signal clfsa:integer range 0 to 499;signal en,a1,e1,c1,hlfs,l:std_logic;signal clkx,clkx1,clkx2,clkx3,clkx4 : std_logic;signal a,b,c,d,e,f,g: std_logic_vector(3 downto 0);-秒表计数器信号signal r1,r2,r3,r4,r5,r6:std_

13、logic_vector(3 downto 0);-闹钟信号signal z1,z2,z3,z4,z5,z6:std_logic_vector(3 downto 0);-倒计时计数器信号signal alz1,alz2,alz3,alz4,alz5:std_logic; Begin-分频模块-process(clk) -分频1 begin if rising_edge(clk) then if p1=49 then p1=0;cp1=1; else p1=p1+1;cp1=0; end if; end if; end process; process(cp1) -分频2begin if ris

14、ing_edge(cp1) then if p2=999 then p2=0;cp2=1; else p2=p2+1;cp2=0; end if; end if; end process; process(cp2) -得到周期为1秒的信号begin if rising_edge(cp2) then if p3=999 then p3=0;cp3=1; else p3=p3+1;cp3=0; end if; end if; end process;process(cp2) -得到周期为百分之一秒的信号begin if rising_edge(cp2) then if a=1001 then a=

15、0000;a1=1; else a=a+1;a1=0; end if; end if;end process; process(cp2) -得到周期为0.5秒的信号begin if rising_edge(cp2) then if clfsa=499 then clfsa=0;hlfs=1; else clfsa=clfsa+1;hlfs=0; end if; end if; end process;-数字钟模块-process(cp3,load1,key1) -数字钟秒钟计数器begin if rising_edge(cp3) then if load1=1 then if key1=0 t

16、hen -秒钟手动调节 if qq2=0101 and qq1=1001 then qq1=0000; qq2=0000; elsif qq1=1001 then qq1=0000;qq2=qq2+1; else qq1=qq1+1; end if; end if;else if load1=0 then if qq2=0101 and qq1=1001 then qq1=0000; qq2=0000;cp4=1; elsif qq1=1001 then qq1=0000;qq2=qq2+1;cp4=0; else qq1=qq1+1;cp4led2led2led2led2led3led2=0

17、;led3=0;end case;else led2=0;led3=0;end if;end if;end if;end if; end process;process(hlfs,cp4,load2) -数字钟分钟计数器beginif load2=1 then clkx=hlfs;else clkx=cp4;end if; -当load2为高电平时,进行分调节 if rising_edge(clkx)then if qq4=0101 and qq3=1001 then qq3=0000; qq4=0000;cp5=1; elsif qq3=1001 then qq3=0000;qq4=qq4+

18、1;cp5=0; else qq3=qq3+1;cp5=0;end if;end if; if qq3=1001 and qq4=0101 then en=1;else en=0;end if;end process;process(hlfs,cp5,load1) -数字钟时钟计数器begin if load3=1 then clkx1=hlfs;else clkx1=cp5;end if; -当load3为高电平时,进行小时调节if rising_edge(clkx1) then if qq5=0011 and qq6=0010 then qq5=0000; qq6=0000; elsif

19、qq5=1001 then qq5=0000;qq6=qq6+1; else qq5=qq5+1; end if; end if; end process;-闹钟模块-process(hlfs,load5,key1) -闹钟秒计数器begin if rising_edge(hlfs) then if load5=1 then if key1=0 then -手动进行闹钟秒设定 if r2=0101 and r1=1001 then r1=0000; r2=0000; elsif r1=1001 then r1=0000;r2=r2+1; else r1=r1+1; end if; end if

20、;end if;end if;end process;process(hlfs,load5,key2) -闹钟分计数器begin if rising_edge(hlfs) then if load5=1 then if key2=0 then -手动进行闹钟分设定 if r4=0101 and r3=1001 then r3=0000; r4=0000; elsif r3=1001 then r3=0000;r4=r4+1; else r3=r3+1; end if; end if;end if;end if;end process;process(hlfs,load5,key3) -闹钟小时

21、计数器begin if rising_edge(hlfs) then if load5=1 then if key3=0 then -手动进行闹钟小时设定 if r6=0010 and r5=0011 then r5=0000; r6=0000; elsif r5=1001 then r5=0000;r6=r6+1; else r5=r5+1; end if; end if;end if;end if;end process;process(cp3,qq1,qq2,qq3,qq4,qq5,qq6,r1,r2,r3,r4,r5,r6) -数字钟与闹钟相符,以LED灯进行提示begin if ri

22、sing_edge(cp3) thenif qq3=r3 and qq4=r4 and qq5=r5 and qq6=r6then led1=1;else led1=0;end if;end if;end process;-秒表模块-process(a1,rst1,en1) -秒表计数器begin if rst1=1 then b=0000;c=0000; -秒表异步清零 elsif rising_edge(a1) then if en1=1 then if b=1001 and c=1001 then b=0000;c=0000;c1=1; elsif b=1001 then b=0000;

23、c=c+1;c1=0; else b=b+1;c1=0; end if; end if; end if;end process;process(c1,rst1,en1) beginif rst1=1 then d=0000;e=0000; elsif rising_edge(c1) then if en1=1 then if d=1001 and e=0101 then d=0000;e=0000;e1=1; elsif d=1001 then d=0000;e=e+1;e1=0; else d=d+1;e1=0; end if;end if; end if; end process;proc

24、ess(e1,rst1,en1) beginif rst1=1 then f=0000;g=0000; elsif rising_edge(e1) then if en1=1 then if f=1001 and g=0101 then f=0000;g=0000; elsif f=1001 then f=0000;g=g+1; else f=f+1; end if; end if; end if; end process;-倒计时模块-process(cp3,rst2,en2,clkx2,load7,hlfs) -倒计时计数器begin if load7=1 then clkx2=hlfs; else clkx2=cp3;end if;if rst2=1 then z2=0000;z1=0000;alz1=1; -倒计时异步

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2