数字电路课程设计数字闹钟
- 格式:ppt
- 大小:3.78 MB
- 文档页数:56
数电设计数字钟基于Q U A R T U SHEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】大连理工大学本科实验报告题目:数电课设——多功能数字钟课程名称:数字电路课程设计学院(系):电信学部专业:电子与通信工程班级:学生姓名: ***************学号:***************完成日期:成绩:2010 年 12 月 17 日题目:多功能数字时钟一.设计要求1)具有‘时’、‘分’、‘秒’的十进制数字显示(小时从00~23)2)具有手动校时校分功能3)具有整点报时功能,从59分50秒起,每隔2秒钟提示一次4)具有秒表显示、计时功能(精确至百分之一秒),可一键清零5)具有手动定时,及闹钟功能,LED灯持续提醒一分钟6)具有倒计时功能,可手动设定倒计时范围,倒计时停止时有灯光提示,可一键清零二.设计分析及系统方案设计1. 数字钟的基本功能部分,包括时、分、秒的显示,手动调时,以及整点报时部分。
基本模块是由振荡器、分频器、计数器、译码器、显示器等几部分组成。
利用DE2硬件中提供的50MHZ晶振,经过分频得到周期为1s的时钟脉冲。
将该信号送入计数器进行计算,并把累加结果以“时”“分”“秒”的形式通过译码器由数码管显示出来。
进入手动调时功能时,通过按键改变控制计数器的时钟周期,使用的时钟脉冲进行调时计数(KEY1调秒,LOAD2调分,LOAD3调时),并通过译码器由七位数码从59分50秒开始,数字钟进入整点报时功能。
每隔两秒提示一次。
(本设计中以两个LED灯代替蜂鸣器,进行报时)2. 多功能数字钟的秒表功能部分,计时范围从00分秒至59分秒。
可由输入信号(RST1)异步清零,并由按键(EN1)控制计时开始与停止。
将DE2硬件中的50MHZ晶振经过分频获得周期为秒的时钟脉冲,将信号送入计数器进行计算,并把累计结果通过译码器由七位数码管显示。
[数电课程设计数字电子时钟的实现] 电子时钟课程设计课程设计报告设计题目:数字电子时钟的设计与实现班级:学号:姓名:指导教师:设计时间:摘要钟表的数字化给人们生产生活带来了极大的方便,大大的扩展了原先钟表的报时。
诸如,定时报警、按时自动打铃、时间程序自动控制等,这些,都是以钟表数字化为基础的。
功能数字钟是一种用数字电路实现时、分、秒、计时的装置,与机械时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
从原理上讲,数字钟是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,此次设计与制作数字钟就是为了了解数字钟的原理,从而学会制作数字钟,而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及使用方法。
通过此次课程设计可以进一步学习与各种组合逻辑电路与时序电路的原理与使用方法。
通过仿真过程也进一步学会了Multisim7的使用方法与注意事项。
本次所要设计的数字电子表可以满足使用者的一些特殊要求,输出方式灵活,如可以随意设置时、分、秒的输出,定点报时。
由于集成电路技术的发展,,使数字电子钟具有体积小、耗电省、计时准确、性能稳定、维护方便等优点。
关键词:数字钟,组合逻辑电路,时序电路,集成电路目录摘要 (1)第1章概述············································3第2章课程设计任务及要求·······························42.1设计任务············································42.2设计要求············································4第3章系统设计··········································63.1方案论证············································63.2系统设计············································63.2.1结构框图及说明·································63.2.2系统原理图及工作原理···························73.3单元电路设计········································83.3.1单元电路工作原理·······························83.3.2元件参数选择···································14第4章软件仿真·········································154.1仿真电路图··········································154.2仿真过程············································164.3仿真结果············································16第5章安装调试··········································175.1安装调试过程········································175.2故障分析············································17第6章结论···············································18第7章使用仪器设备清单··································19参考文献·················································19收获、体会和建议·········································20第1章概述数字集成电路的出现和飞速发展,以及石英晶体振荡器的广泛应用,使得数字钟的精度稳定度远远超过了老式的机械表,用数字电路实现对“时”、“分”、“秒”数字显示的数字钟在数字显示方面,目前已有集成的计数、译码电路,它可以直接驱动数码显示器件,也可以直接采用才COMS--LED光电组合器件,构成模块式石英晶体数字钟。
数字电路实验-数字闹钟————————————————————————————————作者:————————————————————————————————日期:南京航空航天大学数字电路课程设计之数字钟数字电子技术课程设计报告一、设计目的数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,我们此次设计与制作数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法.且由于数字钟包括组合逻辑电路和时叙电路.通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法.二、设计内容及要求(1)设计指标①由LM555构成多谐振荡器产生1HZ标准秒信号;②分、秒为00~59六十进制计数器,用数码管显示;③时为00~23二十四进制计数器,用数码管显示;④具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间;⑤整点具有报时功能,走时过程中能按预设的定时时间(精确到小时)启动闹钟,以发光二极管闪烁表示,启闹时间为3s~10s。
(2)设计要求①画出电路原理图(multisim仿真);②元器件及参数选择;③电路仿真与调试。
(3)要求:自行装配和调试,并能发现问题和解决问题。
布局合理,导线横平竖直,且不要从集成块上跳线,导线紧贴面包板,连接可靠,交叉线尽可能少。
(4)编写设计报告:写出设计与制作的全过程,附上有关资料和图纸,有心得体会。
三、原理框图数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。
由于计数的起始时间不可能与标准时间一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。
数字电子钟的总体图如图所示。
数字电子钟由以下几部分组成:多频振荡器构成的秒脉冲发生器;校对电路;六十进制秒、分计数器、二十进制时计数器;以及秒、分、时的译码显示部分等。
数字钟一.基本功能1、设计一个数字钟,能够显示当前时间,分别用6个数码管显示小时、分钟、秒钟的时间,秒针的计数频率为1Hz,可由系统脉冲分频得到。
2、在整点进行提示,可通过LED闪烁实现,闪烁频率及花型可自己设计。
3、能够调整小时和分钟的时间,调整的形式为通过按键进行累加。
4、具有闹钟功能,闹钟时间可以任意设定(设定的形式同样为通过按键累加),并且在设定的时间能够进行提示,提示同样可以由LED闪烁实现。
二.扩展功能1、设计模式选择计数器,通过计数器来控制各个功能之间转换。
2、调整当前时间以及闹钟时间,在按键累加的功能不变的基础上,增加一个功能,即当按住累加键超过3秒,时间能够以4Hz的频率累加。
3、用LCD液晶屏来显示当前时间及功能模式。
library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity clock isport(clk: in std_logic; --27M晶振key3,key2,key0: in std_logic:='1'; --时、分、模式按钮,下降沿触发ledg: o ut std_logic_vector(2 downto 0):="000"; --整点提示ledr: out std_logic_vector(2 downto 0):="000"; --闹铃hex7,hex6,hex5,hex4,hex3,hex2,hex0,hex1: out std_logic_vector(6 downto 0) --数码管显示);end;architecture a of clock issignal x: integer range 1 to 13500000:=1; --记27M的上升沿个数signal clka: std_logic; --1HZsignal temp1,temp2,temp3,temp4,temp5,temp6: std_logic_vector(3 downto 0):="0000"; --时分秒走时signal xianshi1,xianshi2,xianshi3,xianshi4,xianshi5,xianshi6:std_logic_vector(3 downto 0):="0000"; --数码管显示signal temp0: std_logic_vector(1 downto 0):="00"; --模式显示signal tfen1,tfen2,tshi1,tshi2,nfen1,nfen2,nshi1,nshi2: std_logic_vector(3 downto 0); --调时和闹铃时的分、时的个位和十位signal naoling1,naoling2,naoling3,naoling4: std_logic_vector(3 downto 0); --闹铃调时时的显示begin--分频,产生1HZ的时钟process(clk)beginif clk'event and clk='1' thenx<=x+1;if x=13500000 thenclka<=not clka; --27M每13500000个上升沿clka取反x<=1;end if;end if;end process;--模式选择器,用按键控制,有0、1、2 三种模式process(key0)beginif key0'event and key0='0' thenif temp0="10" then --模式2时,再按键则进入模式0temp0<="00";elsetemp0<=temp0+1;end if;end if;end process;--模式用数码管显示process(temp0)begincase temp0 iswhen "00" => hex0<="1000000";--显示0when "01" => hex0<="1111001";--显示1when "10" => hex0<="0100100";--显示2when others => hex0<="0000000";--显示全亮end case;end process;--模式1时,调时,调节时钟的分process(key2,temp0)beginif temp0="01" thenif key2'event and key2='0' thenif tfen1="1001" then --个位到9,十位加1if tfen2="0101" then --加到59,则归零tfen1<="0000";tfen2<="0000";elsetfen2<=tfen2+1;tfen1<="0000";end if;elsetfen1<=tfen1+1;end if;end if;end if;end process;--模式1时,调时,调节时钟的时process(key3,temp0)beginif temp0="01" thenif key3'event and key3='0' thenif tshi1="1001" then ----个位到9,十位加1tshi1<="0000";tshi2<=tshi2+1;elsif tshi1="0011" and tshi2="0010" then --到23,则归零tshi1<="0000";tshi2<="0000";elsetshi1<=tshi1+1;end if;end if;end if;end process;--模式2时,设定闹铃,设定时钟的分process(key2,temp0)beginif temp0="10" thenif key2'event and key2='0' thenif nfen1="1001" then ----个位到9,十位加1if nfen2="0101" then --加到59,则归零nfen1<="0000";nfen2<="0000";elsenfen2<=nfen2+1;nfen1<="0000";end if;elsenfen1<=nfen1+1;end if;end if;end if;end process;--模式2时,设定闹铃,设定时钟的时process(key3,temp0)beginif temp0="10" thenif key3'event and key3='0' thenif nshi1="1001" then ----个位到9,十位加1nshi1<="0000";nshi2<=nshi2+1;elsif nshi1="0011" and nshi2="0010" then --到23,则归零nshi1<="0000";nshi2<="0000";elsenshi1<=nshi1+1;end if;end if;end if;end process;--三种模式间的显示及传递process(clka,temp0)beginif temp0="01" then --模式1时,传递调时的时,分temp3<=tfen1;temp4<=tfen2;temp5<=tshi1;temp6<=tshi2;xianshi3<=temp3; --模式1时,显示时,分xianshi4<=temp4;xianshi5<=temp5;xianshi6<=temp6;elsif temp0="10" then --模式2时,传递闹铃的时,分naoling1<=nfen1;naoling2<=nfen2;naoling3<=nshi1;naoling4<=nshi2;xianshi3<=naoling1; --模式2时,显示闹铃的时,分xianshi4<=naoling2;xianshi5<=naoling3;xianshi6<=naoling4;elsifclka'event and clka='1' then --正常走时,即temp0=00if temp1="1001" then --秒的个位到9,十位加1if temp2="0101" then --秒到59,则归零,分的个位加1temp1<="0000";temp2<="0000";temp3<=temp3+1;if temp3="1001" then --分的个位到9,十位加1if temp4="0101" then --分到59,则归零,时的个位加1temp3<="0000";temp4<="0000";temp5<=temp5+1;if temp5="1001" then --时的个位到9,十位加1temp5<="0000";temp6<=temp6+1;elsif temp5="0011" and temp6="0010" then --时到23,则归零temp5<="0000";temp6<="0000";end if;elsetemp3<="0000";temp4<=temp4+1;end if;elsetemp3<=temp3+1;end if;elsetemp1<="0000";temp2<=temp2+1;end if;elsetemp1<=temp1+1;end if;----到设置的闹铃时则ledr(0--2)三个灯亮,一分钟后熄灭if temp3=naoling1 and temp4=naoling2 and temp5=naoling3 and temp6=naoling4 thenledr<="111";elseledr<="000";end if;----到整点时时则ledg(0--2)三个灯亮,一分钟后熄灭if temp3="0000" and temp4="0000" thenledg<="111";elseledg<="000";end if;--将走时传递给显示译码xianshi1<=temp1;xianshi2<=temp2;xianshi3<=temp3;xianshi4<=temp4;xianshi5<=temp5;xianshi6<=temp6;end if;end process;----数码管显示译码process(xianshi1,xianshi2,xianshi3,xianshi4,xianshi5,xianshi6) begincase xianshi1 iswhen "0000" => hex2<="1000000";when "0001" => hex2<="1111001";when "0010" => hex2<="0100100";when "0011" => hex2<="0110000";when "0100" => hex2<="0011001";when "0101" => hex2<="0010010";when "0110" => hex2<="0000010";when "0111" => hex2<="1111000";when "1000" => hex2<="0000000";when "1001" => hex2<="0010000";when others => hex2<="1000000";end case;case xianshi2 iswhen "0000" => hex3<="1000000";when "0001" => hex3<="1111001";when "0010" => hex3<="0100100";when "0011" => hex3<="0110000";when "0100" => hex3<="0011001";when "0101" => hex3<="0010010";when others => hex3<="1000000";end case;case xianshi3 iswhen "0000" => hex4<="1000000";when "0001" => hex4<="1111001";when "0010" => hex4<="0100100";when "0011" => hex4<="0110000";when "0100" => hex4<="0011001";when "0101" => hex4<="0010010";when "0110" => hex4<="0000010";when "0111" => hex4<="1111000";when "1000" => hex4<="0000000";when "1001" => hex4<="0010000";when others => hex4<="1000000";end case;case xianshi4 iswhen "0000" => hex5<="1000000";when "0001" => hex5<="1111001";when "0010" => hex5<="0100100";when "0011" => hex5<="0110000";when "0100" => hex5<="0011001";when "0101" => hex5<="0010010";when others => hex5<="1000000";end case;case xianshi5 iswhen "0000" => hex6<="1000000";when "0001" => hex6<="1111001";when "0010" => hex6<="0100100";when "0011" => hex6<="0110000";when "0100" => hex6<="0011001";when "0101" => hex6<="0010010";when "0110" => hex6<="0000010";when "0111" => hex6<="1111000";when "1000" => hex6<="0000000";when "1001" => hex6<="0010000";when others => hex6<="1000000";end case;case xianshi6 iswhen "0000" => hex7<="1000000";when "0001" => hex7<="1111001";when "0010" => hex7<="0100100";when others => hex7<="1000000";end case;hex1<="1111111"; ---关闭hex1数码管end process;end;。
数字式闹钟电路设计报告目录一.设计任务和要求 (1)二.设计方案的选择与论证 (2)三.电路设计计算与分析 (5)四.总结及心得 (15)五.附录 (17)六.参考文献 (18)一.设计任务和要求数字式闹钟的具体要求如下:(1) .时钟功能:具有24小时或12小时的计时方式,显示时、分、秒。
(2) .具有快速校准时、分、秒的功能。
(3) .能设定起闹时刻,响闹时间为1分钟,超过1分钟自动停;具有人工止闹功能;止闹后不再重新操作,将不再发生起闹。
二.设计方案的选择与论证2.1 数字闹钟的设计思想要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。
而脉冲源产生的脉冲信号的频率较高,因此,需要进行分频,使得高频脉冲信号转变为适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1HZ)。
经过分频器输出的秒脉冲信号到计数器中进行技术。
由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要对计数器分别设计为60进制,60进制和24进制(本次我选作24进制)的,并发出驱动信号。
各计数器输出信号经译码器、驱动器到数字显示器,按“时”、“分”、“秒”顺序将数字显示出来。
值得注意的是:任何计时装置都有误差,因此应考虑校准时间电路。
校时电路一般采用自动快速调整和手动调整,“自动快速调整”可利用分频器输出的不同频率的脉冲使显示的时间自动迅速调整。
“手动调整”可利用手动的节拍调准显示时间。
基于要求本次采用了自动快速调整。
数字闹钟要求有定时响闹的功能,故需要提供设定闹时电路和对比起闹电路。
设时电路应共享译码器、驱动器到数字显示器,以便使用者设定时间,并可减少电路的芯片数量;而对比起闹电路提供声源,应具有人工止闹功能,止闹后不再重新操作,将不再发生起闹等功能。
2.2 数字闹钟组成框图及工作过程数字闹钟的组成框图如图1.1所示:分别由数码显示电路,计数器,校时电路,脉冲产生的分频器及振荡器,闹时设置电路和闹时电路。
数字电路实验课程设计报告数字闹钟第一部分设计任务1.1设计任务设计、制作一个带有校时功能、可定时起闹的数字闹钟。
1.2设计指标1、有“时”、“分”十进制显示,“秒”使用分个位数码管上的DP点显示。
2、计时以24小时为周期。
(23:59→00:00)3、具有校时电路,可进行分、时较对。
4、走时过程能按预设的定时时间(精确到小时)启动闹钟产生闹铃,闹铃响时约3s。
第二部分设计方案2.1总体设计方案说明系统组成:秒信号发生器:由LM555构成多谐振荡器走时电路:计数器和与非门组成校时电路:秒信号调节闹钟电路:跳线的方法由计数器、译码器、组合逻辑电路、单稳态电路组成显示电路:译码器数码管模块结构与方框图第三部分电路设计与器件选择3.1秒信号发生器3.1.1模块电路及参数计算提供秒脉冲取R1=1.5K,R2=2.4KC=220uF T≈1S3.1.2工作原理和功能说明CR T C R R T PL PH 2217.0)(7.0=+=z11H Tf ==CR R T T T PL PH )2(7.021+=+=3.1.3器件说明内部电路组成:(1)分压器(3个R)(2)电压比较器(A1、A2)(3)RS 触发器(4)反相器(5)晶体管T1端2端3端4端5端6端7端8端3.2走时电路设计3.2.1模块电路及参数计算包括秒计时器、分计时器、时计时器,每一部分由两片计数器级联构成。
(1).秒计时器:十进制与六进制级联而成,由两片74LS163和与非门实现。
(2).分计时器:同秒计时器。
(3).时计时器:模24,计数显示00~23。
由两片74LS160和与非门实现。
3.2.2工作原理及功能说明秒分计时器原理时计数器原理74LS160其清零方式通常称为“异步清零”,即只要清零端有效,不管有无时钟信号,输出端立即为0。
译码显示电路用译码器74LS48对计数结果进行译码,译码后在共阴极数码管上显示。
3.2.3器件说明74LS163结构图74LS160结构图3.3时间校对电路3.3.1模块电路及参数计算用555输出信号加至分,时计时器使其快速计数3.3.2工作原理和功能说明将所需要校对的时或分计数电路的脉冲输入端切换到秒信号,使用快脉冲计数,到达标准时间后再切换回正确的输入信号。
课程设计说明书题目:闹钟学院(系):年级专业:学号:学生姓名:指导教师:教师职称:目录第1章摘要 (1)第2章设计方案……………………………………………………………………………2.1 VHDL简介……………………………………………………………………………2.2 设计思路……………………………………………………………………………第3章模块介绍……………………………………………………………………………第4章 Verilog HDL设计源程序…………………………………………………………第5章波形仿真图…………………………………………………………………………第6章管脚锁定及硬件连线………………………………………………………………心得体会 (17)参考文献 (18)第一章摘要在当今社会,数字电路产品的应用在我们的实际生活中显得越来越重要,与我们的生活联系愈加紧密,例如计算机、仪表、电子钟等等,使我们的生活工作较以前的方式更加方便、完善,带来了很多的益处。
在此次EDA课程,我的设计课题是闹钟,使用VHDL语言进行编程完成。
报告书主要由设计方案、模块介绍、设计源程序、仿真波形图和管脚锁定及硬件连线四部分组成。
设计方案主要介绍了我对于设计课题的大致设计思路,之后各个部分将会详细介绍设计组成及程序。
第二章设计方案§2.1 VHDL简介数字电路主要是基于两个信号(我们可以简单的说是有电压和无电压),用数字信号完成对数字量进行算术运算和逻辑运算的电路我们称之为数字电路,它具有逻辑运算和逻辑处理等功能,数字电路可分为组合逻辑电路和时序逻辑电路。
EDA技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。
.《数字电子技术》课程设计报告设计题目: 数字钟班级学号:1407080701221 1407080701216 1407080701218学生:志强企海清指导教师:周玲时间:2016.6.15-2016.6.16《数字电子技术》课程设计一、设计题目:数字钟的设计一、设计任务与要求:1.时钟显示功能,能够以十进制显示“时”、“分”、“秒”。
其中时为24进制,分秒为60进制。
2. 其他功能扩展:(1)设计一个电路实现时分秒校准功能。
(2)闹钟功能,可按设定的时间闹时。
(3)设计一个电路实现整点报时功能等。
在59分51秒、53秒、55秒、57秒输出750Hz 音频信号,在59分59秒时输出1000Hz信号,音频持续1s,在1000Hz荧屏结束时刻为整点。
二、设计方案:数字电子钟由石英晶体振荡器、分频器、计数器、译码器显示器和校时电路组成。
振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。
秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。
计数器的输出分别经译码器送显示器显示。
计时出现误差时,可以用校时电路校时、校分。
三、芯片选定及各单元功能电路说明:实验器材及主要器件(1)CC4511 6片(2)74LS90 5片(3)74LS92 2片(4)74LS191 1片(5)74LS00 5片(6)74LS04 3片(7)74LS74 1片(8)74LS2O 2片(9)555集成芯片1片(10)共阴七段显示器6片(11)电阻、电容、导线等若干①振荡器石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整。
它还具有压电效应,在晶体某一方向加一电场,则在与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产生电场,从而机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限止时,才达到最后稳定。
这用压电谐振的频率即为晶体振荡器的固有频率。
大连理工大学项目报告题目:数字钟项目名称:数电实验设计学院(系):电信专业:班级:学生姓名:学号:完成日期:7.201、设计要求具有如下功能的闹钟:1).设计一个具有‘时’、‘分’、‘秒’的十进制数字显示(小时从00~23)计时器。
2). 具有手动校时、校分的功能。
3).定时与闹钟功能,能在设定的时间发出闹铃声。
4).能进行整点报时。
要求发出仿中央人民广播电台的整点报时信号,即从59分50秒起,每隔2秒钟发出一次低音“嘟”的信号,连续5次,最后一次要求高音“嘀”的信号,此信号结束即达到整点。
2、设计分析及系统方案设计1). 时钟控制:将set置0,时钟小时位、分钟位、秒位全部归0;将set置1,时钟开始“走”。
2). 时钟设置:将sel置1,开始进行时间设置,按下键8,输出一个脉冲,时位进1,进行小时设置;按下键7,输出一个脉冲,分位进1,进行分钟设置。
将sel置0,设置结束,时钟开始运行。
3). 闹钟设置:将setc置1,开始进行闹钟设置。
将set1置1,进行闹钟小时位设置,按一下键6,输出一个脉冲,小时位叫进1;将set1置0,进行闹钟分钟位设置,按一下键6,输出一个脉冲,分钟位进1。
4). 闹钟铃声:当时钟时、分“走”到与上面设置的闹钟的时、分一致时,comout 输出1,一分钟后时钟分与闹钟分不一致,comout输出0。
5). 报时设置:当时钟分位走到59,秒位走到51时,发出第一声512Hz响声,秒位走到53时,发出第二声512Hz响声,55第三声,57第四声,走到59秒时,发出1024Hz响声。
闹铃实现:当comout输入为1时,发出1024Hz响声,当comout 输入为0时,响声停止。
系统框图:3、系统以及模块硬件电路设计试验箱设备采用FLEX10K/EPF10K10L84-8(摸5)说明:引脚图4、系统的VHDL设计1)、分、秒模块(摸60计数器)程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity munite_and_second isport(clk: in std_logic;reset: in std_logic;--置0设置qh: out std_logic_vector(3 downto 0);--“秒”或“分”高位ql: out std_logic_vector(3 downto 0);--“秒”或“分”低位co: out std_logic);--为下一个模块提供脉冲end munite_and_second;architecture a of munite_and_second issignal qqh,qql: std_logic_vector(3 downto 0);beginprocess(clk)beginif(reset='0') thenqqh<="0000";qql<="0000";elsif(clk'event and clk='1') thenif(qqh="0101" and qql="1001") thenqqh<="0000"; qql<="0000"; co<='1';elsif(qql="1001") thenqql<="0000"; qqh<=qqh+1; co<='0';elseqql<=qql+1; co<='0';end if;end if;end process;qh<=qqh;ql<=qql;end a;2)、小时模块(模24计数器)程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity hour isport(clk: in std_logic;reset: in std_logic;hh: out std_logic_vector(3 downto 0);hl: out std_logic_vector(3 downto 0));end hour;architecture a of hour issignal hhh,hhl: std_logic_vector(3 downto 0);beginprocess(clk)beginif(reset='0') then—置零设置hhh<="0000"; hhl<="0000";elsif(clk'event and clk='1') thenif(hhh="0010" and hhl="0011") thenhhh<="0000"; hhl<="0000";elsif(hhl="1001") thenhhl<="0000"; hhh<=hhh+1;elsehhl<=hhl+1;end if;end if;end process;hh<=hhh; hl<=hhl;end a;3)、调时模块程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity adjust isport(clka,d0,sel: in std_logic;y: out std_logic);end adjust;architecture a of adjust isbeginprocess(clka,d0,sel)beginif(sel='1') then—调时控制y<=clka;--手动调时elsey<=d0;--时钟自动运行end if;end process;end a;记时调时电路图:4)、闹钟设置模块程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity clkset isport(hh,hl,mh,ml :in std_logic_vector(3 downto 0);setc,set1,f:in std_logic;bhg,bhd,bmg,bmd :buffer std_logic_vector(3 downto 0); comout :out std_logic);end clkset ;architecture behav of clkset isbegincom:process(hh,mh,hl,ml)beginif(bhg=hh and bhd=hl and bmg=mh and bmd=ml)thencomout<='1';--时钟和设置的闹钟比较,输出值elsecomout<='0';end if;end process;set:process(f)beginif(f'event and f='1')then—手动对闹铃进行设定if(setc='1' and set1='1')then—选择设定闹钟“时”if(bhg="0010" and bhd="0011")thenbhd<="0000";bhg<="0000";elsif(bhd="1001")thenbhd<="0000";bhg<=bhg+1;elsif(bhd<"1001")thenbhd<=bhd+1;end if;end if;end if;end process;process(f)beginif(f'event and f='1')then—手动设置闹钟if(setc='1' and set1='0')then—选择设置闹钟“分”if(bmg="0101" and bmd="1001")thenbmd<="0000";bmg<="0000";elsif(bmd="1001")thenbmd<="0000";bmg<=bmg+1;elsif(bmd<"1001")thenbmd<=bmd+1;end if;end if;end if;end process;end behav;电路:5)、显示模块程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity show isport(show1: in std_logic;hh,hl,mh,ml: in std_logic_vector(3 downto 0); high,low: out std_logic_vector(3 downto 0)); end ;architecture a of show isbeginprocess (show1)begincase show1 iswhen '1'=>high<=hh;low<=hl;--设置闹钟时选择显示“时”或“分”when others=>high<=mh;low<=ml;end case;end process;end a;电路:6)、报时模块程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity baoshi isport(mh,ml,sh,sl :in std_logic_vector(3 downto 0);f512hz,clk,comout :in std_logic;bell :out std_logic);end baoshi;architecture a of baoshi isbeginprocess(clk,mh,ml,sh,sl,f512hz)beginif(comout='1') then—闹铃控制bell<=clk;elsif(mh="0101"and ml="1001" )thenif(sh="0101") thenif(sl="1001") thenbell<=clk;--当59分59秒时,报时频率为clk频率elsif(sl="0001" or sl="0011" or sl="0101" or sl="0111")then--当59分51、53、55、57秒时,报时频率为f512频率bell<=f512hz;end if;elsebell<='0';end if;elsif(ml<"1001"or mh<"0101"or sh<"0101" )thenbell<='0';--当分钟小于59或者秒高位小于5时,不报时end if;end process;end a;电路:6)、分频模块程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity fenpin isport(clk:in std_logic;f512:out std_logic);end fenpin;architecture a of fenpin issignal tmp1: std_logic;beginprocess(clk)beginif(clk'event and clk='1')thentmp1<=not tmp1;--在上升沿时,temp1翻转end if;end process;f512<=tmp1;end a;电路:总仿真结果:5、结论以及结果说明1)运行环境:芯片名称:FLEX10K/EPF10LC84-8调试软件:MAX+PLUS II 10.2参数选取:CLOCK0=1Hz,CLOCK5=1kHz2)运行结果:当reset置0时,时钟时,分,秒全部置0,当reset置1时,时钟开始运行。
多功能数字时钟设计报告目录一、设计任务和要求 (2)二、设计的方案的选择与论证 (2)(1) 总体电路分析 (2)(2) 仿真分析 (3)(3) 仿真说明 (3)三、电路设计计算与分析 (4)(1)小时计时电路 (4)(2)分钟计时电路 (5)(3)秒钟计时电路 (7)(4)校时选择电路 (8)(5)整点译码电路 (9)(6)定时比较电路 (11)(7)脉冲产生电路 (12)四、总结及心得 (13)五、附录 (15)(1)元器件明细表 (15)(2)附图 (17)六、参考文献 (17)一、设计任务和要求实现24小时的时钟显示、校准、整点报时、闹铃等功能。
具体要求:(1)显示功能:具有“时”、“分”、“秒”的数字显示(“时”从0~23,分0~59,秒0~59)。
(2)校时功能:当刚接通电源或数字时钟有偏差时,可以通过手动的方式去校时。
(3)整点报时:当时钟计时到整点时,能进行整点报时。
(4)闹铃功能:在24小时之内,可以设定定时时间,当数字时钟到定时时间时能进行报时提醒。
二、设计的方案的选择与论证(1)总体电路分析总体电路设计是将单元电路模块小时计时电路、分钟计时电路、秒计时电路、校时选择电路、整点译码电路、闹钟电路等模块连接在一起,外接输入开关和输出显示数码管构成。
总体结构图如下:(2)仿真分析单击运行按钮,可观测仿真结果。
电路能完成显示计时、校时、整点报时以及闹铃等功能。
○1计时功能。
当开关S1、S2都处于左边触点时,数字时钟工作于计时状态。
此时,电路中的秒计时电路、分计时电路以及小时计时电路分别对秒脉冲、分脉冲和小时脉冲进行计数。
计数结果经数码管显示计时时间值。
○2校时功能。
当开关S1、S2都处于右边触点时,数字时钟工作于校时状态。
按瞬态按钮B键,可以选择对“小时”、“分钟”和“秒钟”进行校时。
校时时通过开关S3(按C键)手动输入校时时间。
○3整点报时功能。
整点译码电路通过识别整点时间,产生整点报时信号。