1、数字电子钟实验报告有完整电路图 作者: 日期:2 个人收集整理 勿做商业用途目录第一章 数字电子钟系统设计摘要1.1数字电子钟摘要。31.2本文关键词。.3第二章 数字电子中系统具体设计过程与实现2。1.技术指标.。.。42。2系统设计。42。2.1 系统框图。62。2。2 方案论证。.72.3单元电路.。82.3。1 分频器.82.3。2 60进制计数器.92.3.3 24进制计数器.102.3。4 12与24小时转换器112。3.5 四位动态显示器。172.3。6 整点与学号报时。182.3。7 闹钟.222。3.8 校时校分.242.4整体电路图252。5单元电路功能测试262.6整体电
2、路功能测试322.7实验完成情况37第三章 实验原件清单。38第四章 结束语.。39参考文献。.。43附录(预习电路图与正式电路图)第一章 数字电子钟系统设计摘要1。1 数字电子钟课题设计摘要课程题目:数字电子钟设计摘要:数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。通过数字电路的技术使用,分频器、计数器、译码与显示器以及各种选择控制端实现数字钟准确计时,校时,设定闹钟,整点报时,12与24小时转换,以及整点报时的功能
3、。本次课程设计采用了Xilinx公司的设计软件Foundation3。1 ,通过电脑仿真来设计电路图,然后下载到芯片95108,再通过硬件具体显示数字钟,并测试其各个模块的功能。1。2 本文关键词 60进制计数器,24进制计数器,译码与显示电路第二章 数字电子中系统具体设计过程与实现2。1 技术指标2。1。1整体功能数字电子钟能以秒为最小时间单位计时,同时应能用数字直观显示当前的时与分,通过一个放光二极管显示秒,用两个发光二极管指示上、下午,可以手动校时,可以设定闹钟时间,以及事项整点报时和学号报时的功能。2.1.2系统结构数字电子钟的系统结构方框图如图21所示。图中的秒信号电路产生1Hz的标
4、准计时信号,计时电路记录当前的时,分值,数字显示以数字的方式显示出当前的时间值,闹钟电路用与设定闹钟,报时电路用于整点报时以及学号报时,时分调校电路用于校正当前的时间。计时电路秒信号数字显示时、分调整电路报时电路闹钟电路 图212。1。3 电气指标 (1)最小计时时间单位为1s。 (2)秒和分的范围是0059,小时的计时范围是0023,并可手动将小时计时范围转换为0012,同时指示上下午。 (3)可以手动校正分,时。 (4)具有整点报时的功能,要求每个整点前鸣叫4次低音(500Hz),整点时鸣叫一次高音(1000Hz),同时在自己学号前也要鸣叫4次低音,计时到自己学号时鸣叫高音(1000Hz)
5、。 (5)通过转换开关,可使电子钟具有闹钟功能,可以手动设置闹钟的时与分。2。1.4 设计条件使用Xilinx公司的Foundation3.1仿真软件,选用xc9500系列芯片中的95108PC84下载后通过硬件连接电路实现各个模块的功能。2.2系统设计数字电子钟主体电路应由以下几部分组成:通过分频器产生标准秒信号,以及报时与闹钟需要的500Hz与1000Hz的信号;60进制分秒计数器以及24小时与12小时的时计数器;分、时的译码显示部分;校时电路;整点和学号报时电路;以及闹钟定时电路.数字钟的工作原理是:由信号给出的信号经过分频后得到1Hz的标准信号,作为秒计数器的计数脉冲;秒计数器计满60
6、后,向分计数器发出进位脉冲;分计数器计满60后,向时计数器发出进位脉冲;小时按照24小时进制或“12翻1”规律计数。计数器的输出分别驱动译码电路,数码管显示时间。当时钟出现误差时可以通过控制开关进行校时校分。通过控制开关可以显示闹钟的时间,并调整闹钟的分与时,还可以通过控制开关显示24小时计时或者12小时计时。系统框图如图22所示。分显示器时显示器 整点与学号报时系统闹钟系统分译码器时译码器秒计数器分计数器时计数器控制电路校分电路校时电路单次脉冲分频器 1Hz 1KHz 2KHz 500Hz 方案论证: 本次课程设计数字电子钟通过电脑仿真,然后通过硬件实现电路的显示与功能的调试,都是实际可行的
7、,可以操作的,而且各个模块的设计也是合理的,方案具有可行性。2。3 单元电路2。3.1 分频器 分频器的功能主要有两个:一是产生标准秒信号;二是提供给功能扩展电路所需要的信号,如仿电台报时用的1000Hz的高音频信号和500Hz的低音频信号等。用一个2分频的计数器把输入的2000Hz的信号分成1000Hz的信号,然后用3级M=10的计数器对1000Hz的信号进行分频,得到1Hz的标准信号。如图23从1000Hz的信号取出2分频的信号即500Hz,可用作低音信号. 500Hz 1Hz M=10计数器M=10计数器M=2计数器 M=10计数器2000Hz 1000Hz 图2-3分频电路可以选用74
8、160作为计数器实现分频,分频器的具体电路如下图2-4所示. 图242.3.2 60进制计数器C60电子中的分和秒计时采用的是60进制的技术方式,其计数规律00,01,02,0358,59,00选用十进制的或16进制的计数器进行两级级联即可构成M=60的计数器。如图2-5所示 图 25两个74160同步级联以复0法构成六十进制的计数器,第一片M=10,第二片M=6,在计数达到59的时候进位段输出高电平。2.3.3 24小时进制计数器C24图2-6所示电路是由两片74160组成的能实现24进制的同步递增计数器.图中个位与十位计数器均接成十进制计数形式,采用同步级连方式。十位与个位的输出端分别是H
9、2D, H2C, H2B,H2A,H1D,H1C,H1B,H1A选择十位计数器的输出端H2B和个位计数器的输出端H1C通过与非门NAND2控制两片计数器的清零端(CLR),利用状态24反馈清零,可实现24进制递增计数。 图2-62.3.4 12 与24进制计数器的转换12小时采用的是“12翻1”的特殊进制计数器,当数字钟的计时器运行到12时59分59秒时,秒的个位计数器再接收一个秒脉冲时,数字钟应自动显示为01时00分00秒,实现日常生活中习惯用的计时规律。在本次实验中并没有用原理图实现12小时的计数器,而是采用 VHDL语言构造一个原件将24小时对应转化成12小时。同时输出一个控制端在12小
10、时进制时显示上、下午。VHDL语言代码如下:library ieee;use ieee. std_logic_1164。all;entity cntm12 isport(H1A:in std_logic; H1B:in std_logic; H1C:in std_logic; H1D:in std_logic; H2A:in std_logic; H2B:in std_logic; H2C:in std_logic; H2D:in std_logic; H1AOUT:out std_logic; H1BOUT:out std_logic; H1COUT:out std_logic; H1DOU
11、T:out std_logic; H2AOUT:out std_logic; H2BOUT:out std_logic; H2COUT:out std_logic; H2DOUT:out std_logic; AMORPM:out std_logic); end cntm12;architecture beh of cntm12 is signal temp_in : std_logic_vector (7 downto 0); signal temp_out: std_logic_vector (8 downto 0);begin temp_in =H2DH2C&H2BH2AH1DH1C&H
12、1B&H1A; process(temp_in) begin case temp_in is when”00000000 = temp_out=”100010010; when00000001 = temp_out temp_out=”100000011”; when00000100” = temp_out=100000100; when”00000101 = temp_out temp_out=100000110; when”00000111” = temp_out=”100000111”; when00001000” = temp_out temp_out=”100001001”; whe
13、n”00010000” = temp_out temp_out=”100010001; when”00010010 = temp_out=”000010010; when”00010011” = temp_out=”000000001”; when00010100 = temp_out temp_out=”000000100”; when00010111 = temp_out=”000000101; when”00011000 = temp_outtemp_out=000000111”; when00100000 = temp_out=000001000; when”00100001” =te
14、mp_out=”000001001; when”00100010 = temp_out temp_outtemp_out=”000000000”; end case; AMORPM=temp_out(8); H2DOUT=temp_out(7); H2COUT=temp_out(6); H2BOUT=temp_out(5); H2AOUT =temp_out(4); H1DOUT=temp_out(3); H1COUT=temp_out(2); H1BOUT=temp_out(1); H1AOUT=temp_out(0); end process;end beh;管脚H2D,H2C,H2B,H
15、2A为时的十位,H1D,H1C,H1B,H1A为时的个位,分别接24小时进制的输出端,通过判断将其转化为12小时进制时的数字输出,输出端为H2DOUT,H2COUT,H2BOUT,H2AOUT,H1DOUT,H1COUT,H1BOUT,H1AOUT,AMORPM输出1为上午,0为下午.元件封装后如图2-7图27然后通过数据选择器选择24或者12进制的信号进行输出。四片数据选择器74153的CO1与CO2端分别接C24的输出端与C24to12的输出端,在74153的B端输入的是0,当A端输入0时,输出12小时计时的时间,在A端输入1时,输出24小时计时的时间。原件内部电路图如图2-8所示。原件封
16、装后为CHOOSE12OR24输入端为H2D24,H2C24,H2B24,H2A24,H1D24,H1C24,H1B24,H1A24, H2D12,H2C12,H2B12,H2A12H1D12,H1C12,H1B12,H1A12,输出端H2DOUT,H2COUT,H2BOUT,H2AOUT,H1DOUT,H1COUT,H1BOUT,H1AOUT。CHOOSE12OR24端选择输出12小时或者24小时的时间。如图29所示。 图2-8图2-9最后将C24,C24to12和CHOOSE12OR24连接起来,封装成时的计数与转换模块HOUR.内部电路与原件分别如图210,2-11。 图2-10 图2-
17、112.3。4四位动态显示电路DTXS数字钟只要求输出时与分,所以可以采用四位动态显示电路输出时与分的十位和个位。使用2片74153与74139将四个位上的数字动态显示到数码管上,使用74161构成一个模为4的计数器,将74153上时与分十位与个位的输入分别输出到数码管,由于计数器计数的速度非常快以及人眼的滞留效应,察觉不到数字的变化,最后将看到四位数字同时显示到数码管上。74161的CP端接到1KHz的信号上。具体电路如2-12. 图2122.3。6整点与学号报时电路JTCLOCKCP电子钟走到整点时即发出音响,通常按照4低音、1高音的顺序发出间断的声响,以最后一声高音为整点时刻.只要整点报
18、时的时刻,即各个计数器的状态分拣出来,控制报时的音响电路即可达到报时的效果。报时的时间为59分的51秒,53秒,55秒,57秒与59秒前四声为低音,最后一声为高音。而学号报时也是在学号前一分钟的51,53,55,57,59秒发出声音。在低音时输出500Hz信号,在高音时输出1000Hz信号.输入端分别是秒、分、时计数器的输出端。输出端为O500Hz与O1KHz,再通过74153选择输出的是500Hz的信号还是1KHz的信号。此 原件使用VHDL语言设计,具体代码如下:library IEEE;use IEEE。std_logic_1164。all;entity JTCLOCK is port
19、( H1A:in STD_LOGIC; H1B:in STD_LOGIC; H1C:in STD_LOGIC; H1D:in STD_LOGIC; H2A:in STD_LOGIC; H2B:in STD_LOGIC; H2C:in STD_LOGIC; H2D:in STD_LOGIC; M1A: in STD_LOGIC; M1B: in STD_LOGIC; M1C: in STD_LOGIC; M1D: in STD_LOGIC; M2A: in STD_LOGIC; M2B: in STD_LOGIC; M2C: in STD_LOGIC; M2D: in STD_LOGIC; S1
20、A: in STD_LOGIC; S1B: in STD_LOGIC; S1C: in STD_LOGIC; S1D: in STD_LOGIC; S2A: in STD_LOGIC; S2B: in STD_LOGIC; S2C: in STD_LOGIC; S2D: in STD_LOGIC; O1KHZ: out STD_LOGIC; O500HZ: out STD_LOGIC );end JTCLOCK;architecture JTCLOCK_arch of JTCLOCK isbegin process(H2A,H2B,H2C,H2D,H1A,H1B,H1C,H1D,M1A,M1B
21、,M1C,M1D,M2A,M2B,M2C,M2D,S1A,S1B,S1C,S1D,S2A,S2B,S2C,S2D) beginif(M2D = 0 and M2C=1 and M2B=0 and M2A=1and M1D= 1 and M1C= 0 and M1B = 0 and M1A= 1 and S2D =0 and S2C=1 and S2B= 0 and S2A = 1and S1D=1 and S1C=0 and S1B= 0 and S1A=1) then O500HZ=0; O1KHZ=1; elsif(M2D = 0 and M2C=1 and M2B=0 and M2A=1
22、 and M1D= 1 and M1C= 0 and M1B = 0 and M1A= 1 and S2D =0 and S2C=1 and S2B = 0 and S2A = 1 and S1D=0 and S1C=0 and S1B= 0 and S1A = 1)then O500HZ =1; O1KHZ =0; elsif(M2D = 0 and M2C=1 and M2B=0 and M2A=1 and M1D= 1 and M1C= 0 and M1B = 0 and M1A= 1 and S2D =0 and S2C=1 and S2B = 0 and S2A = 1and S1D
23、=0 and S1C=0 and S1B= 1 and S1A = 1)then O500HZ =1; O1KHZ =0; elsif(M2D = 0 and M2C=1 and M2B=0 and M2A=1 and M1D= 1 and M1C= 0 and M1B = 0 and M1A= 1 and S2D =0 and S2C=1 and S2B = 0 and S2A = 1and S1D=0 and S1C=1 and S1B= 0 and S1A = 1)then O500HZ =1; O1KHZ =0; elsif(M2D = 0 and M2C=1 and M2B=0 an
24、d M2A=1 and M1D= 1 and M1C= 0 and M1B = 0 and M1A= 1 and S2D =0 and S2C=1 and S2B = 0 and S2A = 1and S1D=0 and S1C=1 and S1B= 1 and S1A = 1)then O500HZ =1; O1KHZ =0; elsif(H2D=0 and H2C =0and H2B=0and H2A = 1 and H1D= 0 and H1C = 1 and H1B=0 and H1A = 0 and M2D = 0 and M2C=0 and M2B=1 and M2A=0 and
25、M1D= 0 and M1C= 1 and M1B = 0 and M1A= 1 and S2D =0 and S2C=1 and S2B = 0 and S2A = 1and S1D=0 and S1C=0 and S1B= 0 and S1A = 1)then O500HZ =1; O1KHZ=0; elsif(H2D=0 and H2C =0and H2B=0and H2A = 1 and H1D= 0 and H1C = 1 and H1B=0 and H1A = 0 and M2D = 0 and M2C=0 and M2B=1 and M2A=0 and M1D= 0 and M1
26、C= 1 and M1B = 0 and M1A= 1 and S2D =0 and S2C=1 and S2B = 0 and S2A = 1and S1D=0 and S1C=0 and S1B= 1 and S1A = 1)then O500HZ =1; O1KHZ=0; elsif(H2D=0 and H2C =0and H2B=0and H2A = 1 and H1D= 0 and H1C = 1 and H1B=0 and H1A = 0 and M2D = 0 and M2C=0 and M2B=1 and M2A=0 and M1D= 0 and M1C= 1 and M1B
27、= 0 and M1A= 1 and S2D =0 and S2C=1 and S2B = 0 and S2A = 1and S1D=0 and S1C=1 and S1B= 0 and S1A = 1)then O500HZ =1; O1KHZ=0; elsif(H2D=0 and H2C =0and H2B=0and H2A = 1 and H1D= 0 and H1C = 1 and H1B=0 and H1A = 0and M2D = 0 and M2C=0 and M2B=1 and M2A=0 and M1D= 0 and M1C= 1 and M1B = 0 and M1A= 1
28、 and S2D =0 and S2C=1 and S2B = 0 and S2A = 1and S1D=0 and S1C=1 and S1B= 1 and S1A = 1)then O500HZ =1; O1KHZ=0; elsif(H2D=0 and H2C =0and H2B=0and H2A = 1 and H1D= 0 and H1C = 1 and H1B=0 and H1A = 0and M2D = 0 and M2C=0 and M2B=1 and M2A=0 and M1D= 0 and M1C= 1 and M1B = 1 and M1A= 0 and S2D =0 an
29、d S2C=1 and S2B = 0 and S2A = 1and S1D=1 and S1C=0 and S1B= 0 and S1A = 1)then O500HZ =0; O1KHZ=1; else O500HZ=0; O1KHZ=0; end if;end process; end JTCLOCK_arch;2。3.7 闹钟电路CLOCK 闹钟是数字电子钟的一个很重要的功能,闹钟系统只要再做一个分与时的计数器,通过同或门分别将时与分的十位与个位与闹钟设定的时间相比较,当时刻相同时就输出高电平,再通过74153选择1000Hz的信号输出进行报时。当时刻不同时输出低电平,这时74153选
30、择低电平输出,这时蜂鸣器并不会响.闹钟电路中的分与时计数器并不级联,两个计数器的CP端加单脉冲即可实现闹钟的定时。同时闹钟设定的时间也要可以显示在数码管上,因此,闹钟电路的输出端还要有闹钟时与分的信号。电路图如2-13所示。 图213封装后如图2-14. 图2142.3.8 校时校分电路电子钟一个不可或缺的部分就是校时校分电路,在接通电源或计时出现误差时,需要校正时间,校时电路的要求是:在进行校时时不影响分秒的计时,同理在进行校分是不影响秒的计时。同样需要一个控制开关来选择是校正时间还是显示时间,用一个74153在B端接0,C0接进位信号,C1接单次脉冲,这样在A端接0时就输出进位信号,正常走
31、时.接1时,用单次脉冲来调整时间,进行校时。具体电路如图2-15所示。 图2-15同理校时电路和图215相同。闹钟的校时与校分电路则更为简单,C0直接接0即可,其他与图215相同。2.4整体电路上面已经完成各个单元电路的设计,将各部分封装后连接成数字钟的整体电路图如216所示.详细见手绘电路图.图2162。5单元电路功能测试 下面各个部分电路的功能测试都是在Foundation3。1上仿真的结果.2。5.1 分频器 F1Hz将2KHz分成1K Hz,500Hz,以及1Hz图2-17由2-17图可见1KHz信号的周期是输入CP脉冲的2倍,500Hz信号的周期是1KHz的2倍,可见分频是正确的.下
32、图2-18将仿真的步长改成2us而输入CP的周期为1ns,经过2us就有一个脉冲,这个输出可以接到秒计数器的CP端。图2182。5。1 秒计数器秒计数器与分计数器的功能是以60为周期计数,当计数到59的时候产生进位信号输出到下一级计数器。仿真结果如图2-19所示。图219由图可以看出个位以10为周期进位,在计数到59后进位信号CO产生一个上升沿。实现了预期的计数与进位功能。2。5。2 24进制计数器与60进制计数器相似,其计数周期为24 ,在计到23后变成00。仿真结果如图230。图230图中蓝色竖线的地方就是进位的地方,可见在23后计数器变成00,功能正确.25.3 12与24小时转换电路功
33、能仿真此电路要就将24小时进制的时间转换成12小时进制的时间.为了检测仿真的结果,输入“14此时的结果应该输出“02”,同时AMORPM输出的应该是低电平。图231是仿真结果。图2-312。5.4 四位动态显示四位动态显示在一个CP计数脉冲中显示的是输入的一位数字,以四为周期循环显示输入的四位数字.输入1234,图232是仿真后的结果。图2322。3。6 整点与学号报时电路功能测试整点与学号报时电路要求在59分以及学号(1426)前一分钟的51秒,53秒,55秒,57秒输出500Hz信号,59秒时输出1KHz的信号。图2-33是在14点25分51秒的时候仿真的波形图。此时应该输出500Hz的信
34、号。 图2-33由图可见OUTF输出端与500Hz信号的输出波形相同。再测试整点报时在59分59秒时的波形图.如图2-34所示.图2-34此时OUTF输出的波形与1KHz相同,整点与学号报时功能测试通过。2.3。7闹钟功能测试将闹钟设置成18点18分,然后调整时钟的时间,观察波形如图235所示.图2-35图中蓝色竖线的地方时钟时间为18点18分,与闹钟时间相同,闹钟输出端变成高电平,接到外面的控制电路即可输出1KHZ的高频信号.测试闹钟功能正确.2.3.8 校时校分功能测试 数字钟在刚接通电源或者走时出现误差的时候需要进行校时,校分,以调整时间.在控制端输入高电平时电路进入校时状态,输入一个脉
35、冲时或分的计数器则增加一。在调整时的时候不影响分与秒的走时,在调整分的时候不影响秒的走时.测试波形图如图236所示。图2-36测试波形在前90us中校时与校分控制端都接入高电平所以在输入的脉冲信号有一个上升沿时时与分就都增加1,而在90时us后校分的控制端接低电平,由波形图可以看出,此后只有时的计数器在输入脉冲到上升沿时才增加1,而分的计数器保持不变。校时功能仿真结果正确.2.6 整体电路功能测试在进行了各个单元电路的测试后,接下来进行整体电路功能测试,测试步骤如下:1. 调整时间到13点24分,即进行校时校分。2. 显示12小时进制时间以及上下午指示,检测12与24进制转换。3. 调整时间到
36、14点25分,检测计数器进位功能。4. 检测学号报时功能在14点25分51秒,53秒,55秒,57秒输出500Hz信号,在59秒时输出1KHz信号。5. 调整时间到15点59分检测整点报时功能。6. 调整闹钟到16点16分检测闹钟报时功能。整体功能仿真结果如下:如图237蓝色竖线显示的时间是10点16分44秒,在下一个时刻将ADJUSTH控制开关置为1,此时调整时的计时,可以看到当INSINGLECP有一个上升沿的时候时的技术就加1.在将时调整到13点的时候,将ADJUSTH控制开关置为0,将校分控制开关置为1此时为校分,由图可以看出每当INSINGLECP出现一个上升沿的时候分的计数就加1一
37、直调整到13点24分,将ADJUSTM控制开关也置为0进行正常计时。同时在图中也可以看出在10点16分44秒的时候AMOPAD输出的是1,PMOPAD输出的是0表示上午.而在13点24分的时候PMOPAD输出的是1,AMOPAD输出的是0表示下午.至此校时校分功能,以及上下午显示功能均测试通过。图2-37接下来将控制开关CHOOSE12OR24开关置为0,此时显示的应该是12小时进制的时间。接下来的时刻应该显示下午1点24分。如图2-38中蓝色竖线处所示。图238然后将时间调整到14点25分,在51,53,55,57秒时JTCLOCKOUT输出的波形与500Hz的波形相同且持续时间达到一秒,如图2-39所示。图2-39当达到14点25分59秒时JTCLOCKOUT