多功能数字电子钟_第1页
多功能数字电子钟_第2页
多功能数字电子钟_第3页
多功能数字电子钟_第4页
多功能数字电子钟_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字逻辑与数字系统课程设计实验报告 多功能数字电子钟 成绩: 指导教师: 班级 : 学号 : 姓名 : 完成时间: 目录一概述21.1数字钟简介21.2设计目的3二工作原理3三功能设计要求4四各部分的电路及其实现74. 1 主控制器742 1选6数据选择器1143 2选1数据选择器1344 分频器1445 24进制计时器1546 60进制计时器1747 闪烁器194. 8 模8计数器2049 8选1数据选择器21410 数据比较器及报时电路23411 2选1数据选择器25412 74LS48译码器26五顶层模块图28六心得与体会28一概述1.1数字钟简介 20世纪末,电子技术获得了飞速的发展,

2、在其推动下,现代电子产品几乎深入到社会的各个领域,有力的推动了社会生产力的发展和社会信息化程度的提高,给人们的生活,学习,工作,娱乐带来了极大地方便。由于数字集成电路的发展,使得数字电子钟具有走时准确,性能稳定,体积小,功耗小,功能多,携带方便等优点。电子钟是一种用数字电路技术实现的时,分,秒计时的装置,与机械时钟相比具有更长的使用寿命,在许多电子设备中被广泛使用。1.2设计目的(1)让学生掌握时序逻辑电路,组合逻辑电路及数字逻辑电路系统的设计,安装,测试方法。(2)进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力。(3)提高电路布局,布线及检查和排除故障的能力。二工作原理电

3、子钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,具有校时功能和报时功能。因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成。主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制

4、计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。译码显示电路将“时”、“分”、“秒”计数器的输出状态用七段显示译码器译码,通过七段显示器显示出来。整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整。三功能设计要求3.1设计要求(1)具有以二十四小时制计时,显示,整点报时,时间设置和闹钟的功能。(2)设计精度要求为1 s。3.2. 系统功能描述(1)系统输入:系统状态及校时,定时转换的控制信号为k,set;时钟信号cl

5、k,采用1024HZ;系统复位信号为reset;校时按键输入为mode。输入信号均由按键产生。(2)系统输出:LED显示输出;蜂鸣器声音信号输出。(3)多功能数字钟控制器的状态图如图所示:S0T0S2S1S3T1T3T4k =1set = 1=1k = 1=1k = 1=1set = 1=1k = 1=1k = 1=1k=1k =1图中:S0:显示计时时间 S1:调计时的时 S2:调计时的分 S3:调计时的秒 T0:显示闹铃时间 T1:调闹铃的时 T2:调闹铃的分 T3:调闹铃的秒3.3系统功能的具体描述如下:(1)计时:正常工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。(

6、2)校时:在计时显示状态下,按下“set键”,进入“小时”校准状态,之后按下“k键”则进入“分”校准状态,继续按下“k键”则进入“秒”校准状态,再次按下“k键”又恢复到正常计时显示状态。A:“小时”校准状态下,显示“小时”的数码管闪烁,按下mode键自动加1。B:“分”校准状态下,显示“分”的数码管闪烁,按下mode键自动加1。C:“秒”校准状态下,显示“秒”的数码管闪烁,按下mode键自动加1。(3) 整点报时:蜂鸣器在59分钟的第51,53, 55,57秒发频率为512HZ的低音,在第59秒发频率为1024HZ的高音,结束时为整点。(4)显示:采用扫描显示方式驱动6个LED数码管显示小时,

7、分 ,秒。(5) 闹钟:闹钟定时时间到,蜂鸣器发出512HZ的“滴”,“滴”声持续时间为1分钟,闹钟定时显示。(6)闹钟定时设置:在闹钟定时显示状态下,按下“set键”进入闹钟的“时”设置状态,之后按下“k键”进入闹钟的“分”设置状态,继续按下“k键”进入闹钟的秒设置状态,再次按下“k键”又恢复到闹钟定时显示状态。(7)闹钟定时设置状态A:“小时”校准状态下,显示“小时”的数码管闪烁,按下mode键自动加1。B:“分”校准状态下,显示“分”的数码管闪烁,按下mode键自动加1。C:“秒”校准状态下,显示“秒”的数码管闪烁,按下mode键自动加1。3.4数字钟系统电路结构框图如图所示modecl

8、k set控制器计时电路定时电路显示控制电路扫描显示电路分频器比较电路及报时电路kreset 蜂鸣器 四各部分的电路及其实现4.1主控制器(1)模块图(2)控制器功能控制时钟的正常计时显示和闪烁,校时;闹钟的定时及闪烁;选择时钟还是闹钟的显示输出;系统清零。(3)源代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity zhukong isport(k,set,reset,clk,mode:in std_logic; clr,ou

9、tclk:out std_logic; s_hen,s_men,s_sen,t_hen,t_men,t_sen,sel:out std_logic; t:out std_logic_vector(2 downto 0) );end zhukong;architecture rtl of zhukong istype state is(s0,s1,s2,s3,t0,t1,t2,t3);signal ns:state:=s0;begin process(k,set,reset,clk,mode) begin if(reset='1')then clr<='1'

10、s_hen<='0's_men<='0's_sen<='0't_hen<='0't_men<='0't_sen<='0' ns<=s0;outclk<='0' elsif(clk'event and clk='1')then case ns is whens0=>sel<='1'clr<='0's_hen<='0's_men<='

11、;0's_sen<='0't_hen<='0't_men<='0't_sen<='0'outclk<='0' if(k='1')then ns<=t0; elsif(set='1')then ns<=s1; else ns<=s0; end if; when s1=>sel<='1'clr<='0's_hen<='1's_men<='0'

12、;s_sen<='0't_hen<='0't_men<='0't_sen<='0't<="001"outclk<=mode; if(k='1')then ns<=s2; else ns<=s1; end if;when s2=>sel<='1'clr<='0's_hen<='1's_men<='1's_sen<='0't_hen<

13、;='0't_men<='0't_sen<='0't<="010"outclk<=mode; if(k='1')then ns<=s3; else ns<=s2; end if; when s3=>sel<='1'clr<='0's_hen<='1's_men<='1's_sen<='1't_hen<='0't_men<='0

14、't_sen<='0't<="011"outclk<=mode; if(k='1')then ns<=s0; else ns<=s3; end if;when t0=>sel<='0'clr<='0's_hen<='0's_men<='0's_sen<='0't_hen<='0't_men<='0't_sen<='0'outc

15、lk<='0' if(k='1')then ns<=s0; elsif(set='1')then ns<=t1; else ns<=t0; end if; when t1=>sel<='0'clr<='0's_hen<='0's_men<='0's_sen<='0't_hen<='1't_men<='0't_sen<='0't<=&quo

16、t;100"outclk<=mode; if(k='1')then ns<=t2; else ns<=t1; end if; when t2=>sel<='0'clr<='0's_hen<='0's_men<='0's_sen<='0't_hen<='0't_men<='1't_sen<='0't<="101"outclk<=mode; i

17、f(k='1')then ns<=t3; else ns<=t2; end if;when t3= >sel<='0'clr<='0's_hen<='0's_men<='0's_sen<='0't_hen<='0't_men<='0't_sen<='1' t<="110"outclk<=mode; if(k='1')then ns<=

18、t0; else ns<=t3; end if;when others=>ns<=s0;end case;end if;end process;end rtl;功能阐述:s0, s1, s2, s3, t0, t1, t2, t3分别对应八种状态,实验箱的按键自然状态下默认为高电平,所以输入接了非门。输入端口k与set 是八种状态相互转换的按键信号;reset是系统复位信号,当reset=1时让输出端口clr=1完成正常计时电路及闹钟电路的全部清零操作,clk是时钟频率;s_hen, s_men, s_sen, t_hen, t_men, t_sen,分别是正常显示电路及闹钟

19、电路的时,分,秒的使能端,当使能为0时正常显示,为1时进行校时及闪烁。sel决定显示计时电路还是闹钟电路;t 决定当校时时让mode信号给谁。(4)仿真图42 1选6数据选择器(1)模块图(2)选择器功能sel是地址,根据地址选择将clkin(时钟)赋给y1y6,y0是when others时的情况,它不输出也不给任何值(3)源代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity select1_6 isport(clkin:i

20、n std_logic; sel:in std_logic_vector(2 downto 0); y0,y1,y2,y3,y4,y5,y6:out std_logic );end select1_6;architecture rtl of select1_6 isbegin process(sel,clkin) begin case sel is when "001"=>y1<=clkin; when "010"=>y2<=clkin; when "011"=>y3<=clkin; when &q

21、uot;100"=>y4<=clkin; when "101"=>y5<=clkin; when "110"=>y6<=clkin; when others=>y0<=clkin; end case; end process;end rtl;(4)仿真图43 2选1数据选择器(1)模块图(2)选择器功能当en=0时,让时钟clk1给outclk;当en=0时,让时钟clkmode给outclk(3)源代码library ieee;use ieee.std_logic_1164.all;entity

22、 select2_clk isport(clk1,clkmode,en:in std_logic; outclk:out std_logic );end select2_clk;architecture rtl of select2_clk isbegin process(en,clk1,clkmode) begin if(en='0')then outclk<=clk1; else outclk<=clkmode; end if; end process;end rtl;(4) 仿真图44 分频器(1) 模块图(2) 分频器功能将输入频率clk为1024HZ分为1

23、024HZ,512HZ,4HZ,1HZ。(3)源代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity fenpin isport(clk:in std_logic; clk1024,clk512,clk4,clk1:out std_logic );end fenpin;architecture rtl of fenpin issignal q:std_logic_vector(9 downto 0):="0000000

24、000" begin process(clk,q) begin if(clk'event and clk='1')then if(q="1111111111")then q<="0000000000" else q<=q+'1' end if; end if; end process;clk1024<=clk;clk512<=q(0);clk4<=q(7);clk1<=q(9);end rtl;(4)仿真图45 24进制计时器(1)模块图(2)计时器功能clr=1时在时

25、钟的配合下实现清零操作,否则递增加1,到23时归零,d1为高位,d2为低位。(3) 源代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY mod24 IS PORT( clk : IN STD_LOGIC; clr : IN STD_LOGIC; d1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); d2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END mod24;AR

26、CHITECTURE rtl of mod24 ISSIGNAL d1_temp : STD_LOGIC_VECTOR(3 DOWNTO 0):="0000"SIGNAL d2_temp : STD_LOGIC_VECTOR(3 DOWNTO 0):="0000"signal coo:std_logic:='0'BEGIN PROCESS(clk,clr,d1_temp,d2_temp) BEGIN if(clk'event and clk='1')then IF (clr='1' or (d1_t

27、emp="0010" and d2_temp="0011") THEN d1_temp<="0000" ; d2_temp<="0000" coo<='1' elsif (d1_temp<="0010")then if (d2_temp="1001")then d2_temp<="0000" d1_temp<=d1_temp+'1' coo<='0' else d2_

28、temp<=d2_temp+'1' coo<='0' END IF; END IF; end if; d1<=d1_temp; d2<=d2_temp; END PROCESS; END rtl;(4) 仿真图46 60进制计时器(1) 模块图(2) 计时器功能clr=1时在时钟的配合下实现清零操作,否则递增加1,到59时归零,d1为高位,d2为低位。co为进位输出(3) 源代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE

29、.STD_LOGIC_ARITH.ALL;ENTITY mod60 IS PORT( clk : IN STD_LOGIC; clr : IN STD_LOGIC; d1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); d2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); co:out std_logic );END mod60;ARCHITECTURE rtl of mod60 ISSIGNAL d1_temp : STD_LOGIC_VECTOR(3 DOWNTO 0):="0000"SIGNAL d2_temp : ST

30、D_LOGIC_VECTOR(3 DOWNTO 0):="0000"signal coo:std_logic:='0'BEGIN PROCESS(clk,clr,d1_temp,d2_temp,coo) BEGIN if(clk'event and clk='1')then IF (clr='1' or (d1_temp="0101" and d2_temp="1001") THEN d1_temp<="0000" ; d2_temp<="

31、;0000" coo<='1' elsif (d1_temp<="0101")then if(d2_temp="1001")then d2_temp<="0000" d1_temp<=d1_temp+'1' coo<='0' else d2_temp<=d2_temp+'1' coo<='0' END IF; END IF; end if; d1<=d1_temp; d2<=d2_temp;

32、co<=coo; end process;END rtl;(4) 仿真图47 闪烁器(1) 模块图(2) 闪烁器功能当en=0时,让其正常显示;当en=1时,如果clk时钟的状态为1则显示,否则让输出为1110,在74ls48中让这个状态为灭.( 3 )源代码library ieee;use ieee.std_logic_1164.all;entity shanshuo isport(en,clk:in std_logic; dih,dil:in std_logic_vector(3 downto 0); doh,dol:out std_logic_vector(3 downto 0)

33、);end shanshuo;architecture rtl of shanshuo is begin process(en,clk,dih,dil) begin if(en='1')then if(clk='1')then doh<=dih; dol<=dil; else doh<="1110" dol<="1110" end if; else doh<=dih; dol<=dil; end if; end process;end rtl;(4)仿真图4.8模8计数器(1)模块图(2

34、)功能在1024HZ下进行模八,输出送给8选1数据选择器和138译码器(3) 源代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count8 IS PORT( clk:in std_logic; y :out std_logic_vector(2 downto 0) );END count8;ARCHITECTURE rtl of count8 issignal q:std_logic_vector(2 downto 0)

35、:="000" begin process(clk,q) begin if(clk'event and clk='1')then if(q="111")then q<="000" else q<=q+'1' end if; end if; y<=q; end process;end rtl;(4) 仿真图49 8选1数据选择器(1)模块图(2)选择器功能通过sel地址选择将d0d7中的一个送给y输出(3)源代码LIBRARY IEEE;USE IEEE.STD_LOGIC_11

36、64.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY select8 IS PORT( en : IN STD_LOGIC; d0 : IN STD_LOGIC_vector(3 downto 0); d1 : in STD_LOGIC_VECTOR(3 DOWNTO 0); d2 :in STD_LOGIC_VECTOR(3 DOWNTO 0); d3 :in STD_LOGIC_VECTOR(3 DOWNTO 0); d4 :in STD_LOGIC_VECTOR(3 DOWNTO 0); d5

37、 :in STD_LOGIC_VECTOR(3 DOWNTO 0); d6 :in STD_LOGIC_VECTOR(3 DOWNTO 0); d7 :in STD_LOGIC_VECTOR(3 DOWNTO 0); sel:in std_logic_vector(2 downto 0); y :out std_logic_vector(3 downto 0) );END select8;ARCHITECTURE rtl of select8 is begin process(sel,d0,d1,d2,d3,d4,d5,d6,d7) begin if(en='1')then c

38、ase sel is when "000"=>y<=d0; when "001"=>y<=d1; when "010"=>y<=d2; when "011"=>y<=d3; when "100"=>y<=d4; when "101"=>y<=d5; when "110"=>y<=d6; when "111"=>y<=d7; end case;

39、 end if; end process;end rtl;(4)仿真图410 数据比较器及报时电路(1)模块图(2)功能描述计时电路的时与分和闹钟的时与分相同时,响512HZ的频率1分钟,否则在59分钟的第51,53, 55,57秒发频率为512HZ的低音,在第59秒发频率为1024HZ的高音,结束时为整点。(3)源代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity compare isport( clk1,clk512,cl

40、k1024:in std_logic; A1,A2,A3,A4,A5,A6:in std_logic_vector(3 downto 0); B1,B2,B3,B4,B5,B6:in std_logic_vector(3 downto 0); outclk:out std_logic );end compare;architecture rtl of compare issignal d:std_logic_vector(2 downto 0):="000"signal s:std_logic:='0'begin process( A1,A2,A3,A4,A

41、5,A6,B1,B2,B3,B4,B5,B6,clk1,clk512,clk1024) begin if(A1=B1 and A2=B2 and A3=B3 and A4=B4 )then if(clk1='1')then outclk<=clk512; else outclk<='0' end if; end if; if(A3="0101" and A4="1001" and A5="0101")then if(A6="0001" or A6="0011&q

42、uot; or A6="0101" or A6="0111")then outclk<=clk512; elsif(A6="1001")then outclk<=clk1024; else outclk<='0' end if; end if; end process;end rtl;(4)仿真图411 2选1数据选择器(1)模块图(2)功能当k=1时让计时电路显示,否则让闹钟电路显示(3)源代码library ieee;use ieee.std_logic_1164.all;entity select2 isport(k:in std_logic; d1:in std_logic_vector(3 downto 0); d2:in std_logic_v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论