多功能数字钟课程设计报告.doc

上传人:仙人指路1688 文档编号:4193018 上传时间:2023-04-09 格式:DOC 页数:19 大小:208.50KB
返回 下载 相关 举报
多功能数字钟课程设计报告.doc_第1页
第1页 / 共19页
多功能数字钟课程设计报告.doc_第2页
第2页 / 共19页
多功能数字钟课程设计报告.doc_第3页
第3页 / 共19页
多功能数字钟课程设计报告.doc_第4页
第4页 / 共19页
多功能数字钟课程设计报告.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《多功能数字钟课程设计报告.doc》由会员分享,可在线阅读,更多相关《多功能数字钟课程设计报告.doc(19页珍藏版)》请在三一办公上搜索。

1、多功能数字钟课程设计报告班级:计算机1002姓名:庄忠明学号:3100602044指导老师:丁伟完成日期:2012年1月10日1、 设计任务及要求(1) 拥有正常的是、分、秒计时功能;(2) 能利用实验板上的案件实现校时、较分及秒清零功能;(3) 能利用实验板上的扬声器做整点报时;(4) 闹钟功能;(5) 在MAXPLUS 中采用层次化方法进行设计;(6) 完成全部电路设计后在实验板上下载,验证设计课题的正确性。2、 设计方案(1) 计时模块该模块的设计相对简单,使用一个二十四进制和两个六十进制计数器级联,构成数字钟的基本框架。二十四进制计数器用于计时,六十进制计数器用于计分和计秒。只要给秒计

2、数器一个1Hz的时钟脉冲,则可以进行正常计时。分计数器以秒计数器的进位作为计数脉冲,小时计数器以分计数器的进位作为技术脉冲。(2) 校时模块校时模块设计要求实现校时、较分及秒清零的功能。1. 打开校时键,小时计数器迅速递增以调至所需要的小时位;2. 打开较分键,分计数器迅速递增至所需要的分位;3. 打开清零键,将秒计数器清零。为此,可以用VHDL语言设计一个器件,该器件的功能是用3个波动开关控制校时功能:清零键打开时,秒计数器的清零端为0;较分键打开时分计数器的使能端为1,进位端输出为零,同时给予它一个4Hz的时钟信号;校时键打开小时计数器使能端为1,时钟信号为4Hz。(3) 整点报时功能该模

3、块的功能是:计时到59分50秒时,每两秒一次低音报时,整点时进行高音报时。方法是用VHDL语言设计一个器件,其输入端与计时器分、秒的输出端相接。当时间为59分50秒、52秒、54秒、56秒、58秒时编号为hz500的输出端为1,否则为0。当00分00秒时编号为hz1k的输出端为1,否则为0。 hz500的输出端与500hz的连线同接在与门上, Hz1k的输出端与1khz的连线同接在与门上,2个与门输出端接在一个或门上,输出端连在扬声器上。(4) 分频模块在本系统中需要用到多种不同频率的脉冲信号,所有这些脉冲信号均可以通过一个基准频率器生成。基准频率器就是一个进制很大的计数器,利用计数器的分频功

4、能,从不同的输出位得到所需要的脉冲信号。(5) 动态显示用VHDL语言设计2个器件。第1个器件的功能是接入计数器的各个输出端,再把所接入的各位数上的数据按所在位置分别输出,同时控制相应的数码管亮起。而第2个器件接受第一个器件的数据,将其编译成七段LED显示器所需的7个信号。(6) 闹钟模块闹钟模块要求数字钟计时到所设定的任意时间均能驱动扬声报时。编写一个新器件,在调用一个二十四进制计数器,一个六十进制计数器和一个校时模块。用校时模块调整两个计时器的时间至所需时间,将其接入到新器件中。该器件同时接入计时器信号,当两个时间相同时,控制扬声器响起。另再编写一个新器件,该器件可以控制闹钟的开关,同时可

5、以切换闹钟的设定时间与计时器的时间显示。 3、 程序清单:顶层图六十进制计数器二十四进制计数器校时:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jiaoshi_44 isport(clk,s,m,h:in std_logic;a,b,c,sclr,men,hen1,hen2:out std_logic);end jiaoshi_44 ;architecture hz of jiaoshi_44 issignal count:std_logic_vector(2 downto 0)

6、;signal hz4,hz1:std_logic;beginprocess(clk) beginif (clkevent and clk=1) then if (count=111) then count=000; elsecount= count+1;end if;end if;hz4=count(0);hz1=count(2);if(s=0) thena=hz1;sclr=1;elsesclr=0;end if;if(m=0) thenb=hz1;men=0;hen1=1;elseb=hz4;men=1;hen1=0;end if;if(h=0) thenc=hz1;hen2=0;els

7、ec=hz4;hen2=1;end if;end process; end hz;整点报时:library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zheng_44 isport(min1,min0,sec1,sec0:in std_logic_vector(3 downto 0); hz500,hz1k:out std_logic);end zheng_44;architecture behave of zheng_44 isbeginprocess(min0) beginhz500=0

8、;hz1k=0;if min1=0101 and min0=1001 then if sec1=0101and (sec0=0000 or sec0=0010 or sec0=0100 or sec0=0110 or sec0=1000) then hz500=1; else hz500=0;end if;end if; if min1=0000 and min0=0000and sec1=0000 and sec0=0000 thenhz1k=1;elsehz1k=0;end if;end process;end behave;分频功能:library ieee;use ieee.std_l

9、ogic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin11_44 isport(clk:in std_logic;hz512,hz256,hz128,hz64,hz32,hz16,hz8,hz4,hz2,hz1,hz05:out std_logic);end fenpin11_44 ;architecture hz of fenpin11_44 issignal count:std_logic_vector(10 downto 0);beginprocess(clk) beginif (clkevent and clk=1) th

10、en if (count=11111111111) then count=00000000000; elsecount= count+1;end if;end if;end process; hz512 = count(0); hz256 = count(1);hz128=count(2);hz64 = count(3);hz32=count(4);hz16=count(5);hz8=count(6);hz4=count(7);hz2=count(8);hz1=count(9);hz05=101) then count=000; else countseloutseloutseloutselo

11、utseloutseloutselselselselselsel=100000; end case; end process;end fun;library ieee;use ieee.std_logic_1164.all;entity decoder47_44 isport(a:in std_logic_vector(3 downto 0); b:out std_logic_vector(6 downto 0);end decoder47_44;architecture behavior of decoder47_44 isbegin with a select b=1111110when0

12、000, 0110000when0001, 1101101when0010, 1111001when0011, 0110011when0100, 1011011when0101, 1011111when0110, 1110000when0111, 1111111when1000, 1111011when1001, XXXXXXXwhen others;end behavior;闹钟:library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity naozhong_44 isport(min1,mi

13、n0,h1,h0,fen1,fen0,shi1,shi0:in std_logic_vector(3 downto 0); hz1k:out std_logic);end naozhong_44;architecture behave of naozhong_44 isbegin process(min0) begin hz1k=0;if min1=fen1 and min0=fen0 and h1=shi1 and h0=shi0 then hz1k=1; else hz1k=0;end if; end process;end behave;library ieee; use ieee.st

14、d_logic_1164.all;use ieee.std_logic_unsigned.all;entity nao_switch_44 isport(key,show:in std_logic; sec1,sec0,min1,min0,h1,h0,fen1,fen0,shi1,shi0:in std_logic_vector(3 downto 0); secout1,secout0,minout1,minout0,hout1,hout0:out std_logic_vector(3 downto 0); hz1k:out std_logic);end nao_switch_44;archi

15、tecture behave of nao_switch_44 isbegin process(key,show) beginif key=1 then hz1k=1;else hz1k=0;end if;if show=0 thensecout1=sec1;secout0=sec0;minout1=min1;minout0=min0;hout1=h1;hout0=h0;elsesecout1=0000;secout0=0000;minout1=fen1;minout0=fen0;hout1=shi1;hout0=shi0;end if;end process;end behave;4、实验结果:通过管教锁定,使6个数码管能动态显示出时间。键1为使能端,键2为清零端,键3至键5分别对时、分、秒校时,键6为闹钟开关,键7为闹钟显示与计时器显示的切换,键8与键9为闹钟的校时与较分。经过试验,所有功能均能正常运行。5、实验总结:通过试验,最终证明此设计能正常的工作,实验过程中,大多数问题在自己的调试下都得到了解决,培养了独立思考解决问题的习惯。学会了电路的故障排查,学会了怎样从问题出发,找到问题的根源,然后用相应的方法来解决问题。培养了严谨细心认真的品质。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号