本文提出了基于单片机的双色无表针钟表的设计方案。该方案硬件以AT89S51 单片机为控制核心,采用 74LS154(4-16 线译码器)扩展I/O 口以控制钟表的显示,并采用12 个红色LED 灯表示小时,12 个绿色LED 灯表示分钟,每隔5 分钟,变化一次。
同一时间仅有两个LED 灯亮,节能、方便、易识别,且富有个性。
一、总体结构
1.主体结构模块
本设计分为核心控制、显示控制和时间调整三大模块,主体结构如图1 所示。
图1 主体结构模块
2.LED灯模块
该钟表中LED 灯的摆放位置如图2 所示:
图2(红色LED 灯表示小时,绿色LED 灯表示分钟)
二、硬件电路设计
1.主控电路
主控电路由AT89S51 单片机控制,74LS154(4-16 译码器) 进行I/O 口扩展, 采用11.0952MHz 晶振。AT89S51 有P0、P1、P2 和P3 四组I/O 口线,每组8 个端口,本设计采用P1、P2 和P3 三组线,P1.0~P1.3 口与74LS154 输入口相连,74LS154(0~11) 输出口各自与一个红色LED灯相连,控制小时显示,P2.0~P2.3 口与74LS154输入口相连,74LS154(0~11) 输出口各自与一个绿色LED 灯相连,控制分钟显示。在程序的控制下实现同一时间仅有两个灯亮的双色无表针钟表,其中红色表示小时,绿色表示分钟,例如,当1 :10 时,1 处红色LED 灯亮,2 处绿色LED 灯亮。其主控电路如图3 所示。
图3 主控电路
2.驱动与LED显示电路
用74LS154(2 个)24 个端口控制24 只LED 发光二极管的亮灭,当端口输出低电平时,LED 灯亮,反之,LED 灯灭。用直流5V 电源给AT89S51 和24 只LED 灯供电,通过程序控制各个LED 灯的亮灭,从而实现时间的显示。其驱动电路如图4 所示。
三、软件设计
1.工作流程
工作流程如图5 所示。现说明如下:
AT89S51 的T0 工作在定时状态,P1 口控制小时显示,P2 口控制分钟显示,T0 每次定时60ms,循环5000 次,即定时5min,P2 口输出值加1,分钟显示跳一格,分钟每跳12 格(1 小时),P1 口值加1,小时显示跳一格,P2 口送入0,重新开始循环。当小时显示跳12 格时(12 小时),P1 口送入0,重新开始循环。INT0、INT1 中断分别用于小时、分钟调整。
图5 工作流程示意图
2.系统程序
四、小结
本文所设计的基于单片机的双色无表针钟表,在同一时间仅保持两个LED 灯亮,耗电极低,更节能,双色显示更易辨认。
相关文章