首页 > 文库大全 > 精品范文库 > 1号文库

数字时钟的设计实验报告

数字时钟的设计实验报告



第一篇:数字时钟的设计实验报告

实验报告

数字时钟的设计

一、实验目的

1、掌握数字钟的设计方法。

2、掌握计数器相互级联的方法。学号:14040120049 姓名:陶泽

二、实验设备和器件

1、数字逻辑电路实验板2、74HC(LS)20(二四输入与非门)

3、74HC(LS)160(4位十进制计数器)

1块 2片 4片、三、实验原理

1、设计总框图:

2、各部分单元的设计提示与分析: 1)时钟源

它是数字式时钟的核心,它保证了时钟的走时准确及稳定。1Hz的脉冲信号由CPLD输出的信号得到。

2)时间计数单元

时间计数单元有分计数和秒计数等几个部分。分计数和秒计数单元为60进制计数器,其输出为8421BCD码。

3)译码驱动及显示单元 计数器实现了对时间的累计并以8421BCD码形式输出,显示译码电路将计数器的输出数码转换为数码显示器件所需要的输出逻辑和一定的电流。4)校时电路

当重新接通电源或走时出现误差时都需要对时间进行校正。通常,校正时间的方法是:首先截断正常的计数通路,然后再进行人工出触发计数或将频率较高的方波信号加到需要校正的计数单元的输入端,校正好后,再转入正常计时状态即可。5)闹钟电路

一般时钟都应具备闹钟功能,即在到达某预定时间时,时钟会发出连续的或有节奏的音频声波,较复杂的也可以是实时语音提示,以示提醒。实验用器件管脚介绍:

四、实验内容与步骤

1、用两片74HC(LS)160连接构成秒计数器,并连接数码管显示(基本命题)

例如采用整体置零法。实现计数范围为0000 0000--0101 1001。电路连接完成后,检验其功能。

2、在实验内容与步骤1的基础上再用两片74 HC(LS)160实现分的计数(基本命题)

分计数器的个位和十位之间的连接类同于秒计数器。需实现从秒到分的进位。电路连接完成后检验其功能。

3、实现校时功能(扩展命题)

检验功能

4、实现闹钟功能(扩展命题)

连接电路,检验其功能。

五、实验注意事项 集成电路要轻插轻拔!

六.实验电路图

1.用两片74HC(LS)160连接构成秒计数器,并连接数码管显示

2.在实验内容与步骤1的基础上再用两片74 HC(LS)160实现分的计数

七.其他(实验过程中出现的问题或心得体会)这次实验增加了我对计数器的了解,增强了我的动手能力。这次实验我们插错了一根线,结果成了模100的计数器,经过仔细的检查才发现。

第二篇:数字电子时钟实验报告

华大计科学院

数字逻辑课程设计说明书

题目:

多功能数字钟

专业:

计算机科学与技术

班级:

网络工程1班

姓名:

刘群 学号:

1125111023

完成日期:

202_-9

一、设计题目与要求

设计题目:多功能数字钟 设计要求:

1.准确计时,以数字形式显示时、分、秒的时间。2.小时的计时可以为“12翻1”或“23翻0”的形式。

3.可以进行时、分、秒时间的校正。

二、设计原理及其框图 1.数字钟的构成

数字钟实际上是一个对标准频率1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路。图 1 所示为数字钟的一般构成框图。

图1 数字电子时钟方案框图 ⑴多谐振荡器电路

多谐振荡器电路给数字钟提供一个频率1Hz 的信号,可保证数字钟的走时准确及稳定。⑵时间计数器电路

时间计数电路由秒个位和秒十位计数器、分个位和分十位计数器及时个位和时十位计数器电路构成。其中秒个位和秒十位计数器、分个位和分十位计数器为60 进制计数器。而根据设计要求,时个位和时十位计数器为24 进制计数器。⑶译码驱动电路

译码驱动电路将计数器输出的8421BCD 码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。⑷数码管

数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管。本设计提供的为LED数码管。2.数字钟的工作原理 ⑴多谐振荡器电路

555 定时器与电阻R1、R2,电容C1、C2 构成一个多谐振荡器,利用电容的充放电来调节输出V0,产生矩形脉冲波作为时钟信号,因为是数字钟,所以应选择的电阻电容值使频率为1HZ。⑵时间计数单元

六片74LS90 芯片构成计数电路,按时间进制从右到左构成从低位向高位的进位电路,并通过译码显示。在六位LED 七段显示起上显示对应的数值。⑶校时电源电路

当重新接通电源或走时出现误差时都需要对时间进行校正。通常,校正时间的方法是:首先截断正常的计数通路,然后再进行人工出触发计数或将频率较高的方波信号加到需要校正的计数单元的输入端,校正好后,再转入正常计时状态即可。

根据要求,数字钟应具有分校正和时校正功能。因此,应截断分个位和时个位的直接计数通路,并采用正常计时信号与校正信号可以随时切换的电路接入其中。图8所示即为带有基本RS 触发器的校时电路。

三、元器件

1.实验中所需的器材 单刀双掷开关4 个.5V 电源.共阴七段数码管 6 个.74LS90D 集成块 6 块.74HC00D 6个 LM555CM 1个 电阻 6个 10uF 电容 2个

2.芯片内部结构及引脚图

图2 LM555CM集成块

图3 74LS90D集成块

五、各功能块电路图

1秒脉冲发生器主要由555 定时器和一些电阻电容构成,原理是利用555 定时器的特性,通过电容的充放电使VC 在高、低电平之间转换。其中555 定时器的高、低电平的门阀电压分别是2/3VCC 和1/3VCC电容器充电使VC 的电压大于2/3VCC 则VC 就为高电平,然

而由于反馈作用又会使电容放电。当VC 小于1/3VCC 时,VC 就为低电平。同样由于反馈作用又会使电容充电。通过555 定时器的这一性质我们就可以通过计算使他充放电的周期刚好为1S这样我们就会得到1HZ 的信号。其中555 定时器的一些功能对照后面目录。其中 555 定时器组成的脉冲发生器电路见附图4.图4 555 定时器组成的脉冲发生器

由于我们要得到1HZ 的信号,所以我们就可以通过555 定时器充放电一次所需的时间的公式。将那时间设为1S然后设定两个电阻计算出另外那个电容值.在设定电阻值时我们要记住将电阻值设为比较常用的那种电阻值,得到的电容值也尽可能让它是比较普遍使用 的。这样就避免了在实际组装过程中很难买到当初设定的那电阻和计算出 的电容值。

在这次设定中我们设定的电阻值RA=10KΩ,RB=62kΩ,C=10uF 经公式

f = 1.43 ÷【(RA + 2RB)×C 】 可得近似为1HZ。

2、利用一个LED 数码管一块74LS90D 连接成一个十进制计数器,电路在晶振的作用下数码管从0—9 显示见图5。

图5、利用2 片74LS90D 芯片连接成一个六十进制电路,电路可从0—59 显示。第一片74LS90D芯片构成10 进制计数器,第二片74LS90D 芯片构成6 进制计数器。74LS90D 具有异步清零功能。

在第一片74ls90 构成的十进制计数器中,当第十个脉冲来到时。此时他的四级触发器的状态为“1001”。这时他就会自动清零。同时给第二片74ls90 构成的6 进制计数器进一,第六个脉冲进位到来时,此时第二片74ls90 芯片的触发器的状态为“0110”,这时QB,QC 均为高电平。将QB 与RO1 相连,将Ro2 与Qc 相连,就会进行异步清零。如此循环就会构成60 进制计数器.见附图6.图6 十六进制电路

4、利用2 片74LS90D 芯片构成24 进制计数器。一片构成二进制计数器,一片构成四进制计数器。由于74LS90D 芯片清零是由两个清零端控制的,所以当第24 个脉冲到来时,第一片74lLS90D芯片的Qc 为高电平。第二片74LS90D 芯片的Qb 为高电平,让第一片74LS90D 芯片的Qc 与两片芯片的Ro1 相连.让第二片74ls90 芯片的QB 与两片芯片的Ro2 相连。当第24 个脉冲到来时就会进行异步清零。如此循环就会构成24 进制计数器。见附图7.图7 24进制电路

5、数字钟电路由于秒信号的精确性和稳定性不可能坐到完全准确无误,又因为电路中其他的原因数字钟总会产生走时误差的现象。所以,电路中就应该有校准时间功能的电路。在这次设计中教时电路用的是一个RS 基本触发器的单刀双置开关,每搬动开关一次产生一个计数脉冲.实现校时功能。见附图8。

7、利用两个六十进制和一个二十四进制连接成一个时、分、秒都会进位的电路总图。见附图8

图8 总电路图

六、心得体会

在这次设计中我们深深地体会到了理论跟实践的不同,理论学的再好不会动手那也只能是纸上谈兵。我们了解了集成电路芯片的型号命名规律,懂得了没有某种芯片时的替代方法,以及在网上查找电子电路资料的方法,掌握了各芯片的逻辑功能及使用方法,进一步熟悉了集成电路的引脚安排,掌握了数字钟的设计方法,明白了数字钟的组成原理以及工作原理。掌握了计数器的工作原理,以及计数器进制的组成方法和级联方法,实现了一次理论指导实践、理论向实践过渡的跨越,虽然期间遇到一些困难,但这些困难却增强了我们分析问题、解决问题的能力,使我们以后不仅只学习书本中的理论知识,而且知道学以致用,动过动手实践是我们对书本中的理论知识掌握地跟牢固、理解地跟深刻,这对我们今后的工作及学习有积极的影响。这次课程设计不仅再次复习了数字电子和模拟电子,而且让我对于芯片的使用更加了解。增加了我的动手操作能力,加深了对该软件的了解。这就是这次课程设计的成果,相信这些实际的操作经验会是我们以后的宝贵财富。

第三篇:数字时钟设计实验报告

电 子 课 程 设 计

目:数字时钟

数字时钟设计实验报告

一、设计要求:

设计一个 24 小时制的数字时钟。

要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。

发挥:增加闹钟功能。

二、设计方案:

由秒时钟信号发生器、计时电路和校时电路构成电路。

秒时钟信号发生器可由振荡器和分频器构成。

计时电路中采用两个 60 进制计数器分别完成秒计时和分计时;24 进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。

校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。

三、电路框图:

图一 数字时钟电路框图

四、电路原理图:

(一)秒脉冲信号发生器 秒脉冲信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了数字钟的质量。由振荡器与分频器组合产生秒脉冲信号。

 振荡器: 通常用 555 定时器与 RC 构成的多谐振荡器,经过调整输出 1000Hz 脉冲。

 分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能 扩展电路所需要的信号,选用三片 74LS290 进行级联,因为每片为 1/10 分频器,三片级联好获得 1Hz 标准秒脉冲。其电路图如下:

译码器 译码器 译码器 时计数器(24 进制)分计数器(60 进制)秒计数器(60 进制)校 时 电 路 秒信号发生器

图二 秒脉冲信号发生器

(二)秒、分、时计时器电路设计 秒、分计数器为 60 进制计数器,小时计数器为 24 进制计数器。

 60 进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成 60 进制计数器。当计数到 59 时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器 CD40110 设计 10 进制计数器显示秒的个位。个位计数器由 0 增加到 9 时产生进位,连在十位部计数器脉冲输入端 CP,从而实现 10 进制计数和进位功能。利用 74LS161 和 74LS11 设计 6 进制计数器显示秒的十位,当十位计数器由 0 增加到 5 时利用 74LS11 与门产生一个高电平接到个位、十位的 CD40110 的清零端,同时产生一个脉冲给分的个位。其电路图如下:

图三 60 进制--秒计数电路

 60 进制——分计数电路 分的个位部分为逢十进一,十位部分为逢六进一,从而共同完成 60 进制计数器。当计数到 59 时清零并重新开始计数。秒的个位部分的设计:来自秒计数电路的进位脉冲使分的个位加 1,利用十进制计数器 CD40110 设计 10 进制计数器显示秒的个位。个位计数器由 0 增加到 9 时产生进位,连在十位部计数器脉冲输入端 CP,从而实现 10 进制计数和进位功能。利用 74LS161 和 74LS11 设计 6 进制计数器显示秒的十位,当十位计数器由 0增加到 5 时利用 74LS11 与门产生一个高电平接到个位、十位的 CD40110 的清零端,同时产生一个脉冲给时的个位。其电路图如下:

图四 60 进制--分计数电路

 24 进制——时计数电路 来自分计数电路的进位脉冲使时的个位加,个位计数器由 0 增加到 9 是产生进位,连在十位计数器脉冲输入端 CP,当十位计到 2 且个位计到 3 是经过 74LS11 与门产生一个清零信号,将所有 CD40110 清零。其电路图如下:

图五 24 进制--时计数电路

 译码显示电路 译码电路的功能是将秒、分、时计数器的输出代码进行翻译,变成相应的数字。用以驱动 LED 七段数码管的译码器常用的有 74LS148。74LS148 是 BCD-7 段译码器/驱动器,输出高电平有效,专用于驱动 LED 七段共阴极显示数码管。若将秒、分、时计数器的每位输出分别送到相应七段数码管的输入端,便可以进行不同数字的显示。在译码管输出与数码管之间串联电阻 R 作为限流电阻。其电路图如下:

图六 译码显示电路

校时电路

校时电路是数字钟不可缺少的部分,每当数字钟与实际时间不符时,需要根据标准时间进行校时。一般电子表都具有时、分、秒等校时功能。为了使电路简单,在此设计中只进行分和小时的校时。“快校时”是通过开关控制,使计数器对 1Hz 校时脉冲计数。图中

S1 为校正用的控制开关,校时脉冲采用分频器输出的 1Hz 脉冲,当 S1 为“0”时可以进行“快校时”。

其电路图如下:

图七 校队电路

五、实验方法:

1、秒脉冲产生部分

采用555多谐振荡器产生1HZ频率信号,作为秒脉冲及整体电路的信号输入部分。其仿真电路图如下图所示:

图八 秒脉冲发生器仿真电路

2、计数电路 电子钟计时分为小时、分钟和秒,其中小时为二十四进制,分钟和秒均为六十进制,输出可以用数码管显示,所以要求二十四进制为 00000000~00100100 计数,六十进制为 00000000~01100000 计数,并且均为 8421 码编码形式。

(1)

小时计数——二十四进制电路仿真

用两片 74LS160N(分 A 片、B 片)设计一个一百进制的计数器,在 24(00100100)处直接取出所有为 1 的端口,经过输入与非门 74LS00D,再给两个清零端 CLR。使用 74LS160N 异步清零功能完成二十四进制循环,计数范围为 0~23。然后用七段显示译码器 74LS47D 将 A、B 两片8

U1074LS01

U1174LS0112

U1074LS00

R3.3 C0.01uS1

GN10

1U8E

74LS01HZ

S2/M2 +5

74LS160N 的输出译码给 LED 数码管。仿真电路如图九所示。

图九 24 进制——时计数器仿真电路(2)分钟、秒计数——六十进制电路仿真

此电路类似于二十四进制计数器,采用 74LS160N 设计出一百进制的计数器,在 60(01100000)处直接取出所有为 1 的端口,经过输入与非门 74LS00D,再给两个清零端 CLR。使用 74LS160N异步清零功能完成六十进制循环,计数范围为 0~59。然后用七段显示译码器 74LS47D 将 A、B两片 74LS160N 的输出译码给 LED 数码管。仿真电路如图所示:

图十 60 进制——秒计数器仿真电路

图十一 60 进制——分计数器仿真电路

(四)校时校分(秒)电路。

数字钟应具有分校正和时校正功能,因此,应截断分个位和时个位的直接计数通路,并采用正常计时信号与校正信号可以随时切换的电路接入其中。这里利用两个与非门加一个单刀双掷开关来实现校时功能。第一个 74LS00D 与非门的输入端一端接清零信号,另一端接第二个与非门的输入端,第二个 74LS00D 的输入端一端接计数脉冲,另一端接一个单刀双掷开关。开关接通的一段接地,另一端接高电平。当开关打到另一端时,时或分的个位就单独开始计数,这样就能实现校时功能。其电路图如图所示:

图十二 校分仿真电路

六、实验结果和结论:

数字时钟仿真电路图如下图所示,在 Multisim11.0 中进行仿真,可以实现数字时钟的显示功能、校时功能。显示功能中,小时实现的是 24 进制,分和秒实现的是 60 进制,通过校时电路能够分别校对时和分。

图十三 数字时钟仿真电路

七、设计体会:

在本次 Multisim 仿真过程,从安装软件、选定课题、设计电路、进行仿真、运行结果都自己实际操作完成。在数字时钟设计中,根据老师上课所讲的内容,可以用两片集成十进制同步计数器 74LS160D 级联为 100 进制,再利用其异步清零功能,可以分别实现小时的 24 进制和分秒的 60 进制。当然,在仿真过程中也遇到了很多困难和问题。比如说,无法直接从秒进位到分和分进位到时,并且在仿真中总是出错。于是自己请教了一些也做数字时钟的同学,同时在网上查找了相关资料,最后终于用两个与非门和单刀双掷开关实现了从秒到分的进位、分到时的进位功能及校准功能。

通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习电子技术基础的意义,也达到了其培养的目的。也明白了一个道理:成功就是在不断摸索中前进实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。

当然,自己的仿真技术和应用能力还是很欠缺的,虽然完成了基本的设计要求,但是很多自己想要的扩展功能还未能实现。而且很多时候会走过很多弯路,浪费了很多不必要的时间。不过,这次设计经历必将使我受益终身,让我明白如何更好的获取知识,如何更好的理论联系实际。今后的学习更需要不断努力,在获得知识的同时获得快乐,真正的主动探索,主动学习,形成自己的思维方式,不断应用,不断进取。

第四篇:FPGA可调数字时钟实验报告

浙江大学城市学院

实验报告纸

一、实验要求

1、用vhdl编程,实现10进制计数器

2、用vhdl编程,实现60进制计数器

3、用vhdl编程,实现数字时钟,时、分、秒、毫秒分别显示在数码管上。

4、实现可调数字时钟的程序设计,用按键实现时、分、秒、毫秒的调整。

二、实验原理

用VHDL,行为级描述语言实现实验要求。思路如下:

1、分频部分:由50MHZ分频实现1ms的技术,需要对50MHZ采取500000分频。

2、计数部分:采用低级影响高级的想法,类似进位加1的思路。对8个寄存器进行计数,同步数码管输出。

3、数码管输出部分:用一个拨码开关控制显示,当sw0=0时,四位数码管显示秒、毫秒的计数。当sw0=1时,四位数码管显示时、分得计数。

4、调整部分:分别用四个按键控制时、分、秒、毫秒的数值。先由一个开关控制计数暂停,然后,当按键按下一次,对应的数码管相对之前的数值加1,,通过按键实现时间控制,最后开关控制恢复计数,完成时间调整。

5、整个实现过程由一个文件实现。

三、实验过程

各个引脚说明: Clk:50MHZ SW:数码管切换,SW=’0’时,数码管显示为秒,毫秒。SW=’1’时,数码管显示为时,分。

SW1:暂停与启动。SW1=’0’时,时钟启动,SW=’1’时,时钟暂停。

SW2:时钟调整接通按钮,当SW2=’0’时,不进行调整,当SW=’1’时,通过按键调整时间。

KEY0: 毫秒调整,按一次实现+1功能 KEY1:秒调整,按一次实现+1功能

浙江大学城市学院 实 验 报 告 纸

KEY2:分调整,按一次实现+1功能 KEY3:时调整,按一次实现+1功能 Q0;第一个数码管 Q1;第二个数码管 Q2: 第三个数码管 Q3: 第四个数码管

1、源代码如下:

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity paobiao is port(clk,sw,key0,key1,key2,key3,sw1,sw2:in std_logic;

q0:out std_logic_vector(6 downto 0);

q1:out std_logic_vector(6 downto 0);

q2:out std_logic_vector(6 downto 0);

q3:out std_logic_vector(6 downto 0));end paobiao;architecture behave of paobiao is signal cntt1 :integer range 0 to 10;signal cntt2 :integer range 0 to 10;signal cntt3 :integer range 0 to 10;signal cntt4 :integer range 0 to 6;signal cntt5 :integer range 0 to 10;signal cntt6 :integer range 0 to 10;signal cntt7 :integer range 0 to 10;signal cntt8 :integer range 0 to 6;浙江大学城市学院 实 验 报 告 纸

signal cntttt1 :integer range 0 to 10;signal cntttt2 :integer range 0 to 10;signal cntttt3 :integer range 0 to 10;signal cntttt4 :integer range 0 to 6;signal cntttt5 :integer range 0 to 10;signal cntttt6 :integer range 0 to 10;signal cntttt7 :integer range 0 to 10;signal cntttt8 :integer range 0 to 6;

begin

process(clk)--,key0,key1,key2,key3)

variable cnt :integer range 0 to 500000;

--variable cnt9 :integer range 0 to 3000000000;

variable cnt1 :integer range 0 to 10;

variable cnt2 :integer range 0 to 10;

variable cnt3 :integer range 0 to 10;

variable cnt4 :integer range 0 to 6;

variable cnt5 :integer range 0 to 10;

variable cnt6 :integer range 0 to 10;

variable cnt7 :integer range 0 to 10;

variable cnt8:integer range 0 to 6;

begin if(clk'event and clk='1')then

if(sw1='0')then if(cnt>=2)then

cnt:=0;

cnt1:=cnt1+1;浙江大学城市学院 实 验 报 告 纸

if(cnt1=10)then

cnt1:=0;

cnt2:=cnt2+1;

if(cnt2=10)then

cnt1:=0;

cnt2:=0;

cnt3:=cnt3+1;

if(cnt3=10)then

cnt1:=0;

cnt2:=0;

cnt3:=0;

cnt4:=cnt4+1;

if(cnt4=6)then

cnt1:=0;

cnt2:=0;

cnt3:=0;

cnt4:=0;

cnt5:=cnt5+1;

if(cnt5=10)then

cnt5:=0;

cnt6:=cnt6+1;

if(cnt6=6)then

cnt5:=0;

cnt6:=0;

cnt7:=cnt7+1;

if(cnt7=4)then

cnt5:=0;

cnt6:=0;

cnt7:=0;浙江大学城市学院 实 验 报 告 纸

cnt8:=cnt8+1;

if(cnt8=3)then

cnt5:=0;

cnt6:=0;

cnt7:=0;

cnt8:=0;

end if;

end if;

end if;

end if;

end if;

end if;

end if;

end if;

else cnt:=cnt+1;

end if;

if(sw2='0')then

cntt1<=cnt1;

cntt2<=cnt2;

cntt3<=cnt3;

cntt4<=cnt4;

cntt5<=cnt5;

cntt6<=cnt6;

cntt7<=cnt7;

cntt8<=cnt8;

else

cnt1:=cntttt1;

cnt2:=cntttt2;

cnt3:=cntttt3;浙江大学城市学院 实 验 报 告 纸

cnt4:=cntttt4;

cnt5:=cntttt5;

cnt6:=cntttt6;

cnt7:=cntttt7;

cnt8:=cntttt8;

cntt1<=cnt1;

cntt2<=cnt2;

cntt3<=cnt3;

cntt4<=cnt4;

cntt5<=cnt5;

cntt6<=cnt6;

cntt7<=cnt7;

cntt8<=cnt8;

end if;

end if;end if;end process;

process(key0)variable cnttt1 :integer range 0 to 10;variable cnttt2 :integer range 0 to 10;begin if(key0'event and key0='0')then

cnttt1:=cnttt1+1;

if(cnttt1=10)then

cnttt1:=0;

cnttt2:=cnttt2+1;

if(cnttt2=10)then 浙江大学城市学院 实 验 报 告 纸

cnttt2:=0;

end if;

end if;

cntttt1<=cnttt1;

cntttt2<=cnttt2;end if;

end process;process(key1)variable cnttt3 :integer range 0 to 10;variable cnttt4 :integer range 0 to 10;begin if(key1'event and key1='0')then

cnttt3:=cnttt3+1;

if(cnttt3=10)then

cnttt3:=0;

cnttt4:=cnttt4+1;

if(cnttt4=6)then

cnttt4:=0;

end if;

end if;cntttt3<=cnttt3;

cntttt4<=cnttt4;end if;end process;process(key2)variable cnttt5 :integer range 0 to 10;variable cnttt6 :integer range 0 to 10;begin

if(key2'event and key2='0')then 浙江大学城市学院 实 验 报 告 纸

cnttt5:=cnttt5+1;

if(cnttt5=10)then

cnttt5:=0;

cnttt6:=cnttt6+1;

if(cnttt6=6)then

cnttt6:=0;

end if;

end if;cntttt5<=cnttt5;

cntttt6<=cnttt6;

end if;end process;process(key3)variable cnttt7 :integer range 0 to 10;variable cnttt8 :integer range 0 to 10;begin

if(key3'event and key3='0')then

cnttt7:=cnttt7+1;

if(cnttt7=4)then

cnttt7:=0;

cnttt8:=cnttt8+1;

if(cnttt8=3)then

cnttt8:=0;

end if;

end if;

cntttt7<=cnttt7;

cntttt8<=cnttt8;

end if;浙江大学城市学院 实 验 报 告 纸

end process;

--end if;--end process;

process(cntt1,cntt5)

begin

if(sw='0')then

case cntt1 is

when 0=>q0<=“1000000”;

when 1=>q0<=“1111001”;

when 2=>q0<=“0100100”;

when 3=>q0<=“0110000”;

when 4=>q0<=“0011001”;

when 5=>q0<=“0010010”;

when 6=>q0<=“0000010”;

when 7=>q0<=“1011000”;

when 8=>q0<=“0000000”;

when 9=>q0<=“0010000”;

when others=>q0<=NULL;end case;else

case cntt5 is

when 0=>q0<=“1000000”;

when 1=>q0<=“1111001”;

when 2=>q0<=“0100100”;

when 3=>q0<=“0110000”;

when 4=>q0<=“0011001”;

when 5=>q0<=“0010010”;

when 6=>q0<=“0000010”;

浙江大学城市学院 实 验 报 告 纸

when 7=>q0<=“1011000”;

when 8=>q0<=“0000000”;

when 9=>q0<=“0010000”;

when others=>q0<=NULL;end case;

end if;

end process;

process(cntt2,cntt6)

begin if(sw='0')then

case cntt2 is

when 0=>q1<=“1000000”;

when 1=>q1<=“1111001”;

when 2=>q1<=“0100100”;

when 3=>q1<=“0110000”;

when 4=>q1<=“0011001”;

when 5=>q1<=“0010010”;

when 6=>q1<=“0000010”;

when 7=>q1<=“1011000”;

when 8=>q1<=“0000000”;

when 9=>q1<=“0010000”;

when others=>q1<=NULL;end case;else

case cntt6 is

when 0=>q1<=“1000000”;

when 1=>q1<=“1111001”;

when 2=>q1<=“0100100”;浙江大学城市学院 实 验 报 告 纸

when 3=>q1<=“0110000”;

when 4=>q1<=“0011001”;

when 5=>q1<=“0010010”;

when 6=>q1<=“0000010”;

when 7=>q1<=“1011000”;

when 8=>q1<=“0000000”;

when 9=>q1<=“0010000”;

when others=>q1<=NULL;end case;end if;

end process;process(cntt3,cntt7)

begin

if(sw='0')then

case cntt3 is

when 0=>q2<=“1000000”;

when 1=>q2<=“1111001”;

when 2=>q2<=“0100100”;

when 3=>q2<=“0110000”;

when 4=>q2<=“0011001”;

when 5=>q2<=“0010010”;

when 6=>q2<=“0000010”;

when 7=>q2<=“1011000”;

when 8=>q2<=“0000000”;

when 9=>q2<=“0010000”;

when others=>q2<=NULL;end case;else

case cntt7 is 浙江大学城市学院 实 验 报 告 纸

when 0=>q2<=“1000000”;

when 1=>q2<=“1111001”;

when 2=>q2<=“0100100”;

when 3=>q2<=“0110000”;

when 4=>q2<=“0011001”;

when 5=>q2<=“0010010”;

when 6=>q2<=“0000010”;

when 7=>q2<=“1011000”;

when 8=>q2<=“0000000”;

when 9=>q2<=“0010000”;

when others=>q2<=NULL;end case;end if;

end process;

process(cntt4,cntt8)

begin if(sw='0')then

case cntt4 is

when 0=>q3<=“1000000”;

when 1=>q3<=“1111001”;

when 2=>q3<=“0100100”;

when 3=>q3<=“0110000”;

when 4=>q3<=“0011001”;

when 5=>q3<=“0010010”;

when others=>q3<=NULL;end case;else

case cntt8 is

when 0=>q3<=“1000000”;浙江大学城市学院 实 验 报 告 纸

when 1=>q3<=“1111001”;

when 2=>q3<=“0100100”;

when 3=>q3<=“0110000”;

when 4=>q3<=“0011001”;

when 5=>q3<=“0010010”;

when 6=>q3<=“0000010”;

--when 7=>q3<=“1011000”;--when 8=>q3<=“0000000”;--when 9=>q3<=“0010000”;

when others=>q3<=NULL;end case;end if;

end process;end behave;

2、原理图如下:

浙江大学城市学院 实 验 报 告 纸

3、功能仿真如下

1、秒、毫秒计数仿真

2、分、时计数仿真

注释:由于仿真时间限制,小时不能显示。注意SW由0变成1;

浙江大学城市学院 实 验 报 告 纸

3、暂停的仿真,数码管显示用秒,毫秒。

4、按键调整的仿真,主要仿真毫秒的仿真

四、实验结果

实验结果均完成所有要求,但有一个bug,在实现调整功能的时候,不能实时调整数码管暂停下来的数字,只能从之前调整过的数值起开始调整,不过能实现调整之后,开启时钟,时钟即在设定的时间开始跑。当然找到解决的方法,当由于思路和已经 写好的程序冲突性较大,所以此处不再修改。

五、心得体会

本次实验在分频的基础上进行拓展,同时应用数码管显示,开关和按键的控制,比较系统的做了一个实验,对自身的提高还是很有帮助的。

说到心得,此次实验告诉我一下经验:

1、在开始写程序之前最好先评估好自己的思路,简易画出想象中的原理图,再进行编程,对之后的修改有很大的帮助。

2、程序写长了,发现错得时候,修改比较麻烦,所有注意编程习惯很重要,适当的加一些注释,提高程序的可读性。

3、程序最好分模块写,比较清晰。

浙江大学城市学院 实 验 报 告 纸

第五篇:数字电子时钟设计

(电子技术课程)

设计说明书

数字电子时钟

起止日期:

202_ 年

11月23日 至

202_年 11月 27 日

学生姓名

班级 学号

成绩

指导教师(签字)

交通工程学院(部)202_年

11月

29日

数字电子钟

设计一个数字电子钟,具体要求:

1、以24小时为一个计数周期;具有“时”、“分”、“秒”数字数码管显示电路;

2、具有校时功能;

3、整点前10秒,数字钟会自动报时,以示提醒;

4、设计+5V直流电源。(设计220V输入,+5V输出)

5、启动电路。

6、用PROTEUS画出电路原理图仿真成功再用数字电子技术实验箱验证。;

设计步骤及内容:

一、首先对本次设计所需要用到的器件的引脚及功能进行详细的了解 1、555定时器

“1”脚为公共接地端GND;“8”脚为正电源电压VCC;“2”脚是触发端;“4”脚为复位输出端; “7”脚为放电端;“6”脚位阈值端;“5”脚为控制电压输入端;“3”脚是输出端。2、74LS163

CEP、CET:计数使能输入端,高电平有效;CLK:时钟脉冲,上升沿触发;

MR:清零端,低电平有效;LOAD:并行置数使能端,低电平有效;RCO:进位信号输出端; D[0:3]:并行二进制数据输入端;Q[3:0]:计数状态输出端。

二、实验步骤

1、连接555定时器,产生1Hz方波。

首先将555定时器按照如图所示的接法连接起来,并根据555定时器电容充放电时间的计算确定各元件的取值。

电容充电时间T=0.7(R1+R2)C1 为使555定时器输入1Hz的方波,经计算各元件的取值为 R1=43K,R2=51K,C1=10u F,C2=0.01u F。3脚作为时钟脉冲的输出连接到各个计数器的CLK。

2、时钟电路的连接

本次设计使用的是74LS163芯片,因为它是16进制计数器,所以需要在控制端加上适当的门电路使其构成十进制计数器,将计数器按照如图所示的方式连接起来。

a、秒各位

将输出端的Q3、Q1用与门(74LS08)连接起来并输入到清零端MR,其目的是为了构成十进制,当计数器计数到9时,与门U1打开,经过非门U1A输出低电平使得MR在下一个脉冲上升沿时清零。

b、秒十位

与秒各位不同的是,秒十位的使能端是由各位Q3、Q1相与的电平控制的,秒十位的进位的条件是当各位为9时,在下一个脉冲的上升沿来临时进位。秒十位的清零需要等到个位为9且十位为5时,U2与U3经过U4输出高电平再经过U3A输出低电平,是的MR在下一个脉冲上升沿是清零。

c、分个位

分各位的构成原理与秒个位相似,不同的是控制端上的门电路换成了与非门U4(为了使之后方便连接门电路),分个位的使能信号由U3输入,清零条件为分个位为9,秒为59时清零,清零信号由U5A输出的低电平提供。

d、分十位

分十位的构成原理与秒十位相似,使能信号由U4输出的高电平提供,清零条件为分为59,秒为59,清零信号由U7A输出的低电平提供。

e、时

时个位的使能信号由U7提供,时十位的使能信号由U9提供。时个位有两个清零信号,一个是当它自身为9时,等到下一个时钟脉冲的上升沿时清零,另一个是当十位为2,个位为3时,十位和个位同时清零。用与非门U12将个位Q2和十位Q1相连,再将两个清零信号相与,实现清零工作。

完整的时钟电路如下图所示

3、校准电路

校准电路连线图如图所示,当开关打在右边时,U14B关闭不工作,U14C送出一个高电平信 6

号,等到秒对分的进位信号来临时和进位信号通过U15A送出一个低电平,使得U15B打开,又因为U15B接入了分个位的使能端,所以相当于开关打在右边时校准电路成为分个位的使能信号进位信号;开关打在左边时,U14C关闭不工作,U14B送出一个高电平信号,然后与秒脉冲信号通过U14D送出一个低电平接入分个位的使能端,所以相当于开关打在左边时,分个位接收了一个秒脉冲信号,使得它能像秒钟一样计时并且能向十位进位,就相当于校准功能,当分钟跳到你想要的时间时把开关打到右边(此时时钟电路照常工作)从你调整好的时间继续计数,达到校准的目的。(时的校准电路与分的校准电路一样)

但是直接把校准电路这样连入时钟电路会出现一些问题,就是在校准的时候分会出现16进制,所以就需要在电路中加入反馈,将它控制到10进制,具体的反馈连接方式如图所示(不能接在MR端,不然会使电路出现问题)时钟电路与校准电路如图所示 将开关打到左边进行校准:

完成之后将开关打到右边继续计数:

4、报时电路

报时电路使用的是74HC30芯片,它是一个8输入与非门芯片,只有当所有输入都为1时输出为0,使得喇叭能够正常工作(喇叭一端接高电平一端接低电平),因为是整点报时,所以秒个位就不用接入芯片,只需在多余的两个引脚接入电源就可以实现在59分50秒到59秒的报时,具体接法如下图所示

整个可校准可报时的数字电路如图所示

三、心得体会

本次数字电子课程设计是我觉得收获非常大的一次实习,而这次课程设计给我们提供了一个应用自己所学知识来设计作品的平台。

在本次课程设计中,我更加熟悉Proteus软件的操作了,同时对74LS163、74LS161、74HC30、555等芯片加深了了解,和对它们的使用,对于数字、模拟电路的综合运用有了更深一步理解,为以后的电路分析和设计奠定了一定的基础。

本次课程设计很遗憾没能选择最有挑战性的课题来做,因为基础知识不够扎实,做数字电子时钟也是费了很大劲。

这次设计我主要觉得有两个难点:

一、从一开始没选择十进制计数器来做,所以使设计的电路看起来很复杂,并且进位需要考虑的很周全,越高位必要条件越多,所以用了许多门电路;

二、校准电路直接连入电路会产生十六进制,所以需要加反馈,在最开始不太理解反馈的意思,又去翻了数电书还问了老师很多次,接了很多遍才将反馈接出来。

但是最后成功了看着自己能把理论知识运用到实际,心里还是非常开心的,在做课题的这几天学会了很多,对仿真也产生了浓厚的兴趣,想自己试着在课余时间再做做几个课题。

    版权声明:此文自动收集于网络,若有来源错误或者侵犯您的合法权益,您可通过邮箱与我们取得联系,我们将及时进行处理。

    本文地址:https://www.feisuxs.com/wenku/jingpin/1/2590545.html

相关内容

热门阅读
随机推荐