数字时钟综合实验

上传人:xins****2008 文档编号:110963465 上传时间:2019-11-01 格式:DOC 页数:15 大小:743KB
返回 下载 相关 举报
数字时钟综合实验_第1页
第1页 / 共15页
数字时钟综合实验_第2页
第2页 / 共15页
数字时钟综合实验_第3页
第3页 / 共15页
数字时钟综合实验_第4页
第4页 / 共15页
数字时钟综合实验_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《数字时钟综合实验》由会员分享,可在线阅读,更多相关《数字时钟综合实验(15页珍藏版)》请在金锄头文库上搜索。

1、数字电子技术课程设计(数字时钟逻辑电路的设计与实现) 学院: 班级:学号:姓名:指导教师:课设时间:目录摘要 3一、设计目的 4二、设计方案 41.方案一:基于EWB电路仿真电路41.1单元电路设计、元器件选择41.2译码与显示电路的设计61.3总体电路图72.方案二:基于VHDL语言的数字时钟设计82.1 秒计数器模块82.2 分计数器模块92.3 时计数器模块112.4 LED显示译码器模块 13三、方案比较 14四、心得体会 14五、参考文献 15六、元件清单15摘要数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使

2、用寿命,因此得到了广泛的使用。诸如按时自动打铃,时间程序自动控制,定时启闭路灯,定时开关烘箱,通断动力设备,甚至各种定时电气的的自动启用等。这些都是以数字时钟作为时钟源的。数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。目前,数字钟的功能越来越强,并且有多种专门的大规模集成电路可供选择。经过了数字电路设计这门课程的系统学习,特别经过了关于组合逻辑电路与时序逻辑电路部分的学习,我们已经具备了设计小规模集成电路的能力,借由本次设计的机会,充分将所学的知识运用到实际中去。一设计目的设计一个有时、分、秒(23小时59分59秒)显示的电子钟二 设计方案1.方案一:基于EWB电路仿

3、真电路要想构成数字钟,首先应选择一个脉冲源能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号的频率较高,因此,需要进行分频,使高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1HZ)。经过分频器输出的秒脉冲信号到计数器中进行计数。将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。此时需要分别设计60进制,24进制计数器,各计数器

4、输出信号经译码器到数字显示器,使“时”、“分”、“秒”得以数字显示出来。值得注意的是:任何计时装置都有误差,因此应考虑校准时间电路。校时电路一般采用手动调整。 手动调整可利用手动的节拍调准显示时间。 方案原理图如下:时显示器分显示器秒显示器时译码器分译码器秒译码器时计数器分计数器秒计数器数字钟电路路1.1单元电路设计、元器件选择在设计数字钟电路中,进制是最主要的一部分,它关系着显示的正确与否。关键在于了解各种器件的作用及功能,而且在调试的过程中容不容易出问题,电路会不会变得复杂,器件的选择最好要统一,以便调试成功。(1)用74LS160设计分、秒六十进制。秒的个位计数单元为十进制计数器,无需进

5、制转换,只需将CO与下降沿有效的CP相连即可。CP与1Hz输入信号相连, CO可作为向上的进位信号与十位计数单元的CP相连。秒十位计数单元为六进制计数器,需要进制转换。通过对集成计数器不同的外电路连接,可以使它构成任意整数进制的计数器。将十进制计数器转换为六进制计数器的电路连接方法如图13所示,其中CO可作为向上的进位信号与分个位的计数单元的CP相连。分个位和分十位计数单元电路结构分别与秒个位和秒十位计数单元完全相同,只不过分个位计数单元的CO作为向上的进位信号应与分十位计数单元的CP相连,分十位计数单元的CO作为向上的进位信号应与时个位计数单元的CP相连。图13 十进制六进制计数器转换电路图

6、(2)用74L160进行设计时进制二十进制时个位计数单元电路结构仍与秒或个位计数单元相同,但是时计数单元应为二十四进制计数器,不是十的整数倍,因此需将个位和十位计数单元合并为一个整体才能进行二十四进制转换。利用2片74LS160实现二十四进制计数功能的电路如图16所示。 图 16 二十四进制计数器电路1.2译码与显示电路的设计译码是编码的逆过程。也就是把给定的代码进行翻译,变成相应的状态。译码器选用的是74LS48,它是4线7段译码器,输入端A3、A2、A1、A0为8421 BCD 码输入。因此在与LED数码管连接时不需再外接限流电阻。74LS48的译码输出 (YaYe) 是高电平有效,适用于

7、驱动共阴极 LED数码管。74LS48的引线图如图 17b 所示。数码管一种是共阴极,各显示段为阳极,要求译码器/驱动器输出高电平,才使应显示的段亮;另一种是共阳极,各显示段为阴极,要求译码器/驱动器输出为低电平。74LS48与共阴极数码管连接。图 17a.74LS48与共阴极数码管连接图 图 17 b.74LS48引线图1.3 总体电路图(方案二:基于VHDL语言的数字时钟设计(MAXPUL环境下)2.1 秒计数器的模块LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY second

8、ISPORT(clk,reset,setmin:IN STD_LOGIC;enmin:OUT STD_LOGIC;daout:out std_logic_vector(6 downto 0);END entity second;ARCHITECTURE fun OF second ISSIGNAL count:STD_LOGIC_VECTOR(6 downto 0);SIGNAL enmin_1,enmin_2:STD_LOGIC;BEGINdaout=count;enmin_2=(setmin and clk);enmin=(enmin_1 or enmin_2);process(clk,r

9、eset,setmin)beginif(reset=0) then count=0000000;elsif(clkevent and clk=1)thenif(count(3 downto 0)=1001)thenif(count16#60#)thenif(count=1011001)thenenmin_1=1;count=0000000;elsecount=count+7;end if;elsecount=0000000;end if;elsif(count16#60#)thencount=count+1;enmin_1=0 after 100 ns;elseend if;end if;en

10、d process;end fun ;编译过程:仿真图如下:2.2分计数器模块LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY minute ISPORT(clk,clk1,reset,sethour:IN STD_LOGIC;enhour:OUT STD_LOGIC;daout:out std_logic_vector(6 downto 0);END entity minute;ARCHITECTURE fun OF minute ISSIGNAL count:STD_LOGIC_V

11、ECTOR(6 downto 0);SIGNAL enhour_1,enhour_2:STD_LOGIC;BEGINdaout=count;enhour_2=(sethour and clk1);enhour=(enhour_1 or enhour_2);process(clk,reset,sethour)beginif(reset=0)thencount=0000000;elsif(clkevent and clk=1)thenif(count(3 downto 0)=1001)thenif(count16#60#)thenif(count=1011001)thenenhour_1=1;co

12、unt=0000000;ELSEcount=count+7;end if;elsecount=0000000;end if;elsif(count16#60#)thencount=count+1;enhour_1=0after 100 ns;elsecount=0000000;end if;end if;end process;END fun;编译过程:仿真图如下:2.3时计数器模块LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY hour ISPORT(clk,reset:IN ST

13、D_LOGIC;daout:out std_logic_vector(5 downto 0);END entity hour;ARCHITECTURE fun OF hour ISSIGNAL count:STD_LOGIC_VECTOR(5 downto 0);BEGINdaout=count;process(clk,reset)beginif(reset=0)thencount=000000;elsif(clkevent and clk=1)thenif (count(3 downto 0)=1001)thenif(count=16#23#)thencount=count+7;elsecount=000000;end if;elsif(count16#23#)thencount=count+1;elsecount=000000;end if;end if;end process;END fun;编译过程:仿真图如下:2.4 LED显示译码器模块LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY deled IS

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号