概述
手把手教你设计数字钟(基于protues8.6)
本次实验内容在protues仿真中可以实现:
①一个具有“时”、“分”、“秒”显示的数字钟;
②具有校时功能;
③具有整点报时功能;
④具有定时闹钟功能。
由于水平有限,秒信号没有用产生电路采用石英晶体构成的振荡器实现4M Hz或32768 Hz),直接用1HZ的脉冲代替。
最终,可以实现以下结果
1: 通过两个单刀双掷开关,分别实现分和时的快速累加,实现校时功能。
2: 整点报时功能则是到几点,响多少下,(例如到了17:00:00,蜂鸣器会响17下)和家里的挂钟一样。
3: 定时闹钟,可以通过改变LOGICSTATE的值,实现精确到秒的闹钟,并且可以控制闹钟蜂鸣器响的时间(这个点相比要求中算是一个创新)。
想要完整电路图的小伙伴可直接可加我微信:wxid_c82ezb72s7cf22或QQ:1871478767。
模块讲解
1. 60秒计数模块
由于本人学校不仅要仿真,还要用面包板搭器件电路(学校只有八段数码管),所以本次实验选用共阴极八段数码管,并用CD4511进行译码,附上数码管和CD4511引脚图
CD4511的A1-A3依次为低位到高位依次连上74LS90的QA-QD
附上74LS90的真值表
这里我们把CP2连上QA,输出8421BCD码,CP1直接给1HZ的脉冲,置数端S9(1),S9(2)接地。10在8421BCD码中是1010,所以把QD和QB分别接入R0(1)和R0(2),这样,一个10进制计数器就完成了。
对于60进制,只需要将QC接入第二个74LS90的CP1,6在8421BCD码中是0110,所以将QB和QC接入R0(1)和R0(2)。其余的大体和上面10进制的差不多,这里就不再赘述。
另外要将QB和QC接入一个与门(这里采用的是74LS08)的输入,输出作为60分钟计时器的输入(进位信号)。
也可以用4段数码管,这样更加方便,直接从右到左依次与74LS90的QA-QD相连,其余的也没有变化。(四段数码管最右端为最低位,最左端为最高位)
2. 60分钟计数模块
本模块基本上和60秒计数模块相同,这里不再赘述。
3. 24小时计数模块
如图
这样,就可以很巧妙的完成一个24进制计数器,U36的CPA接上60分钟的进位信号。到这里,一个数字钟的基本显示功能就完成了。
4. 校时模块
要求
(1)只进行分、时的校时。
(2)在小时校时时不影响分、秒的正常计数;在分校时时不影响小时、秒的正常计数。
先看校分键,2脚接入的是60秒进制的进位信号,3脚作为60分钟进制的时钟输入,接入个位的CP1。
我们都知道,74LS90的时钟信号CP1,是靠时钟脉冲来驱动并且开始计数的,单刀双掷开关平常打到上面时,秒进位信号和GND(0)相或,秒进位信号传来脉冲时,60分钟计数接受一个脉冲,即开始正常计数;当单刀双掷开关,打到下面时,下面是一个1HZ的时钟,这时候就是秒进位信号和1HZ的单位脉冲相或(这里采用的或门是74LS32),60分钟计数则接收1HZ脉冲,即像60秒计数模块一样,1秒1下递增,当分钟1秒加一下,加到用户想要的时间点后,只需将单刀双掷开关打到上边,就可以进行正常时钟功能。
如果想要校时更快,上图中的SW(1)(2)也可以用5HZ,10HZ等。
校时键原理相同,不再赘述。
5. 整点报时模块
为了实现“整点为几报几下”,此处需要一个减计数器,每减一下,输出一个脉冲,从而使蜂鸣器鸣叫一下。
本实验采用的是两片74LS192。附上功能表:
每个74LS192的Q0-Q3都要分别连上小时模块的CD4511的ABCD,或者74LS90的Q0-Q3(都是一根线),即小时位的个位,十位直接作为74LS192的输入端,意思就是小时模块的时间是多少,就从这个数减到0,并且每减一下,输出一个高电平(通过后面的电路)。
如果是四段数码管,两个74LS192的Q0-Q3都要分别连上小时位的四段数码管的最低位至最高位。
小时个位的74LS192的TCD,连上十位的74LS192的DN,就可以进行减计数。
由于PL(置数控制端)是低电平有效,所以需要输入低电平脉冲来触发。本实验用的是74LS123。附上74LS123的功能表。
从功能表中可以看出,拿A输入来举例,当输入的电平由高电平翻转为低电平时,可以在Q非收到一个低电平脉冲,即可用来连接PL,来触发这个减计数器。
6. 定时闹钟模块
定时闹钟本实验采用的是74LS85比较器,附上74LS85功能表:
从功能表中,可看出,输入IA=IB为高电平1时,比较器会从A3,B3一直比较到A0,B0,当A3A2A1A0与B3B2B1B0的值相同时,比较器会在QA=QB输出一个高电平。
74LS85的A0-A3可以连接每个计数模块的CD4511的ABCD,或者74LS90的Q0-Q3(都是一根线),B0-B3则是连接自己设置的闹钟时间,通过8421BCD码调整每个LOGICSTATE的值,比如
本实验设置的时间是00(时):01(分):00(秒),将每个时、分,秒接入一个6输入与门的输入(本实验用的是4068,八输入与非门,因为没找到6输入与门,只能用4068代替,多出来的两个脚接高电平1,后面接一个非门,就可以构成一个6输入与门)
即如果到了1分钟的时候,此处会输出一个高电平。根据整点报时减计数器的思想,可以把这个高电平接入一个74LS123的A端,即上升沿触发,后面就是把那个减计数模块复制一次,
我这里设置的是:十位8421BCD码0000,个位8421BCD码0011。也就是到达一分钟后,蜂鸣器响三下,用户可以根据自己的需要自行设置时间。
写在后面的话
整个数字钟只有真正理解其中的原理,才能把他运用好,就像那个减计数器一样,只有在整点报时那里搞清楚,才能在定时闹钟那个地方应用出来。
想要完整电路图的同学可直接可加我微信:wxid_c82ezb72s7cf22或QQ:1871478767。
1: 关于校时模块,有人因该有疑问,为什么用单刀双掷开关,而不用按键?其实一开始我就是用按键,但是如下图:
他的电平那一块是灰色的,也就是没有电器属性,只有当按键按下时,才有电器属性,但是此时已经进入了校时功能,也就是说影响了正常工作,方案一pass。
2:后来我想到,我可以这样,如下图
我直接在按键和或门之间加一个非常小的电压,这样就有了电器属性,但是当我的按键按下时,
按键就失去了控制功能。当时我本以为加一个比较小的电压,只是将脉冲信号整体往上抬了一点点,但是现实将方案二也pass了。(个人感觉如果在是实体电路中,对于精度没有那么高的器件,还是可行的)
3: 对于如何让蜂鸣器在proteus中响,也是困扰了我蛮久的(后来才知道可以用发光二极管代替),为了解决这个问题,查了很多资料,发现只有如下图
这样,蜂鸣器才能鸣叫。这个电路也很简单,利用NPN三极管的放大原理,只需在B极(基极)又很小的电流,C极(集电极)和E极(发射极)就会有很大的电流,从而使蜂鸣器发声。注意配置蜂鸣器的工作电压如下图
我配置的是2V,对应的VCC也应该设置2V
想要完整电路图的小伙伴可直接可加我微信:wxid_c82ezb72s7cf22或QQ:1871478767。
最后希望大家多多关注,多多打赏,多多点赞。我是不吃土豆丝。
仿真文件的链接https://download.csdn.net/download/qq_56304301/19832274
最后
以上就是明亮哈密瓜为你收集整理的手把手教你设计数字钟(基于protues8.6)手把手教你设计数字钟(基于protues8.6)模块讲解的全部内容,希望文章能够帮你解决手把手教你设计数字钟(基于protues8.6)手把手教你设计数字钟(基于protues8.6)模块讲解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复