万年历
设计任务及要求
用中、小规模集成电路设计一个能自动显示“年、月、日、星期、时、分”的数字式日历牌,能实现以下功能:
- 由555定时器产生1Hz的标准“秒”信号。
- “秒计数器”为00 ~ 59的六十进制计数器。
- “分计数器”为00 ~ 59的六十进制计数器。
- “时计数器”为00 ~ 23的二十四进制计数器。
- “星期计数器”为一、二、三、四、五、六、日的七进制计数器。
- “日计数器”根据月的不同,可为二十八、二十九、三十、三十一进制计数器。
大月:1、3、5、7、8、10、12——31天
小月:4、6、9、11——30天
闰年2月:29天
平年2月:28天 - “月计数器”为1 ~ 12的十二进制计数器。
- 具有校时功能。即只要将开关置于校时位置,可分别对“年、月、日、星期、时、分”进行手动脉冲输入或连续脉冲输入的校正。
- 闹钟、整点报时
设计方案
(1)用555定时器接成多谐振荡电路,调节RC,产生频率一定的脉冲信号;
(2)显示电路连接至数码管;
(3)用计数器74LS160实现计数;在每一个不同功能的计数器中,每当其下一位的进位信号或者CLK信号到达时,它开始计数;设定一个值,使得计数器在计数到此值时,向其高位计数器输出一个进位信号,当下一个脉冲信号到达时,数据清空,从头开始计数;月计数器和年计数器设置反馈信号,通过小规模器件实现闰年以及大月小月的判断,将之反馈给日计数器;日计数器需要从月和年计数器的反馈中判断其计数最小值;
(4)在每个计数器的CLK信号通过开关连接至脉冲光电源,通过控制开关实现计数器的自行计数以及接入电路计数
(5)每个计数器置零端接一个开关控制计数器的强制置零
(6)整点报时用门电路判断出是否出现0分0秒
(7)闹钟用74HC85进行比较当相等时得到高电平
系统框图
单元电路设计
555定时器
555定时器连接成多谐振荡电路,得到一个周期性的稳定的脉冲波信号
f
=
(
R
4
+
2
R
5
)
C
l
n
2
f=(R_4+2R_5)Cln2
f=(R4+2R5)Cln2
时分秒计数器
三种单元电路类似,以分为例,由两片74LS160、译码显示器及与非门等小规模器件组成。QA、QB、QC、QD接到数码管显示器,低位片的EP、ET接到电源端,其进位端接到高位片的EP、ET端。CLK由555定时器产生的信号提供,当计数器的值计到59时,计数器向时计数器产生一个进位,等到下一个CLK信号作用时,计数器被重新置为00,即为从00至59的六十进制计数器。开关S控制两片160的置零,开关A、B分别控制分的个位十位自己计数
星期计数器
星期计数器单元电路由74LS160、译码显示器及非门等小规模器件组成。将计数器置成0001的初态,即ABCD=0001;在QAQBQCQD端通过或非门等连接至译码显示器,使得计数器计数到6时,即QAQBQCQD=0110,译码显示器显示为8。CLK由时计数器产生的进位信号提供,当CLK信号到达时,计数器开始计数。当计数到0110时,等到下一个CLK信号作用后,计数器被置为0001,即为1、2、3、4、5、8循环的六进制计数器。开关M实现自行计数
月、日计数器
年计数器
年计数器单元电路由两片74LS160、译码显示器、闰年-闰月判断器及非门等小规模器件组成。其A、B、C、D和QA、QB、QC、QD端分别接至地端和数码管,低位片的进位端接到高位片的EP、ET端,CLK由月计数器的进位信号提供。每当CLK信号到达时,计数器开始计数。通过与门非门等门电路的判断,判断是否为闰年
整点报时
对分秒进行检测,当都为00时输出高电平
闹钟
用74HC85对输入的时间以及当前的时间进行比较,当时间相等时输出高电平
完整电路图
难点分析
闰年的判断
用与或非简单门电路进行判断
闰年:能被4整除但不能被100整除或者能被400整除。
分解来看:能被4整除但不能被100整除为十位个位不为零的情况,此时只需要看个位十位能否被4整除,不需要考虑千位百位。分为两种情况:
a. 当十位为偶数的时候,个位为0、4、8。
b. 当十位为奇数的时候,个位为2、6。
可以被400整除,此时说明个位十位必须都得满足为0。此为限制条件。千位百位则能被4整除即可,同上一段分析。
区别大小月及闰年平年的2月
利用四选一选择器并用大小月及2月出现条件构成AB选择条件
先利用74LS42这个4-10译码器将月份的个位进行进制的转换,再将是否为闰年的判断以及月份的十位数字与个位转换完的输入74LS148这个8-3优先编码器使输出能成为四选一选择器的地址码
A | B | 闰年信号 | 进制 |
---|---|---|---|
0 | 0 | X | 30 |
0 | 1 | X | 31 |
1 | 0 | 1 | 29 |
1 | 1 | 0 | 28 |