做了快一个星期的数字逻辑课设,存手动连线,虽然年那块还没有做完 ,但是文章提供了思路,本文的重点是后面的问题解决
软件是使用proteus7
CSDN下载:https://download.csdn.net/download/qq873044564/11005415
设计要求:
1).设计一个能显示日期、小时、分钟、秒的数字电子钟,并具有整点报时的功能。
2).由晶振电路产生1HZ标准的信号。分、秒为六十进制计数器,时为二十四进制计数器。
可手动校正时、分时间和日期值。
用到的元件:
7SEG-BCD 一位显示屏
74LS00 二与非门
74LS04 非门
74LS10 三与非门
74LS11 三与门
74LS163 四位二进制可预置的同步加法计数器
AND 与门
AND_3 三与门
AND_4 四与门
AND_5 五与门
AND_8 八与门
BUTTON 按钮
BUZZER 蜂鸣器
LOGICTOGGLE 逻辑触发
NAND_2 二与非门
NAND_3 三与非门
NAND_4 四与非门
NAND_5 五与非门
NAND_8 八与非门
NOR_3 三或非门
NOT 非门
OR 或门
OR_3 三或门
OR_4 四或门
RES 电阻
设计报告(以下七点)
1.摘要(本设计要点):
本设计要求设计数字电子钟,月份,日期,时分秒的进制都要考虑清楚,在考虑日期时要注意月份和日期都是从一开始的,要求整点报时以及手动校正时间.
2.设计方案论证与选择,理论依据
都使用了74LS163元件进行进制计数,低位高位共同控制进行预置和清零的操作.
3.实现设计方案的原理框图,系统结构图,明确功能划分。
手画即可(必须把每个过程都画清楚,不然会被老师打回来┭┮﹏┭┮)
4.单元电路设计,包括元器件选择和相关电路参数设计和计算.
都使用了74LS163元件进行进制计数,低位高位共同控制进行预置和清零的操作.然后每一部分到达最高进位时会为下一部分的低位开始计数.
5. 运行效果或仿真效果。
截图
6.本设计的收获与体会
端口基础知识:
*MR端--复位端,计数器输出全0,包括进位错位.
*LOAD端--有此使能端说明此计数器有预置输入端,可预置输入计数起始值,即计数器可以不从0开始计数,LOAD端使能就是要加载预置输入值.
*ENP和ENT全名叫ENABLE P,ENABLE T,中文名叫使能端,ENABLE P,ENABLE T两个输入端输入同时为高时才能进行计数,两端接高电平就始终计数,要想控制计数加逻辑门,或用单片机控制计数.
问题解决:(全文重点)
①月份一开始如何显示1而不是显示0:
判断00000000信号时接入ENT,ENP端使其变为1(八个非门连起来,然后接到8与门上)
②大月,小月,二月的天数控制:
因为小月相对少一些,所以当小月(即4,6,9,11)的时候用或门连起来,接到日期的LOAD端去,二月一样原理,当大月时就是前两种情况的或起来的非
③关于9和59的冲突问题
这个问题就是比如说困扰了我好久,比如说当8分59秒时,到九分时只会闪烁一下便会跳到十分钟去,然后问了老师说是当低的那一部分(秒)到达59时会给高的那部分(分)的低位置入一个上升沿,而高部分的低位也会有到9会有一个上升沿(就如同9秒到10秒)所以要加一个条件:9分的时候不要进位,9分59秒都满足才进位,时和日,月,年同理可解决类似问题.
④蜂鸣器
使用BUZZER元件,注意将属性调为0.2V,然后一端高电平一端低电平即可使用,比较简单,在我的电路中是在00时00分00秒开始响,然后10秒后停止,注意把频率调低才能听到.别拿着频率调到2000多然后还问我为什么不响,2000频率十秒只相当于0.005秒,你能听到就怪了.
⑤校正器
用到BUTTON接到高电平以及用一个或门与时钟连起来,当按钮按下的时候为高电平,相当于直流电,始终肯定不变,当按钮不按下时正常计数器计时.
⑥平年和闰年
闰年是能被4整除,但不能被100整除或者能被400整除这个不太好想,但是可以凭借规律来解决,先考虑千位(先不管百十个位)是肯定能被4整除的,同理百位也不用考虑,所以咱们只考虑十位和个位,当十位为1,3,5,7,9时(即低位Q0有信号)时,个位为2或者6能被4整除,当十位为偶数时(不连0),个位为0,4,8满足,当十位为0时,00肯定不行,因为能被100整除,04,08可以,所以所有情况用与门或门链接起来就做出来了(因为线太多,我到最后没有地方连线了)