通用单片机组成低价位时钟显示器

2020-01-08 17:08:31 fandoukeji

通用单片机组成低价位时钟显示器

一.概述:

这里,我们用低价位单片机HT48R05A设计一款时钟显示电路,采用一个组合显示单元,可显示4位7段数码,例如显示“时:分”或“分:秒”值,同时设置四个按键用于校准时间,虽然通用单片机没有使用标准校时专用晶体,时间也不容易做到非常准确(例如要求每个月误差不大于1s),但对于很多不需要精确时间控制的应用电路还是有很多应用空间。


推而广之,也可用其他系列资源基本足够的单片机来实现,例如EM78P153等,但他们的指令不一定相同,但编程方法是基本一致的。

功能方框图

我们用HT48R05A-1的PA0-PA6口作为段口线(因为只需7段,PA7不用),输出数码的段数据,其它空余的口(取决与PCB布局方便,用任何5个I/O口均可)作为位驱动输出,因为电路图中我们使用了NPN三极管作为驱动管,那么数码管必须是共阴极的,当然也可使用共阳极,但需使用PNP驱动三极管,同时程序的位操作是刚好相反的。我们采用四个数码管(LED)显示单元采用动态扫描显示,PA口线还接有4个键盘,分别可作为控制键使用(例如“时、分、秒”的设置,“开始”、“选择”,“电源”等按键)。


PA口既作输出口又作输入口,在程序上必须时刻改变其口线方式,作为输出口时,必须对其控制寄存器写“0”,而作为输入口线时,必须对其控制寄存器写“1”。所以PA的工作状态是时刻改变的,动态扫描要求扫描频率不能太低,否则显示的数字会出现闪烁,一般频率不低于50Hz,就感觉不到闪烁,这在程序上是比较容易实现。


程序中我们使用了定时中断来实现时间的加或减时,这样主程序只需要监控动态扫描输出和键盘。在定时中断程序中对时,分或秒进行加(或减时)操作,并将更新数据送到显示缓冲区,这样动态扫描显示时的时间取自显示缓冲区单元即可。

这样的设计我们几乎使用了HT48R05A-1的全部资源,达到“物尽其用”的目的,这样才能使成本最低,价格具有较强的竞争优势,当然HT48R05A-1的ROM容量仅为512Byte,但对于仅作时间显示器是完全足够的,只要合理地安排流程,程序并不复杂。 六功能多模式时间控制器-主控板


值得注意的是,单片机中运算是采用16进制进行的,而时钟的加(或减时)则有多种制式,例如每10秒进十,属于十进制,而每60秒加一分钟和每60分钟加(或减)一小时,则属于60进制,每十二个小时(或二十四小时)为一天又属于12进制(或二十四进进制),这在程序中必须变换,保证时间能正确显示。


同时,因为HT48R05A-1具有13个I/O口线,我们此电路仅使用了11个,还剩余两个I/O口,也可生级为驱动6位LED的可完整显示"时,分,秒"的时钟电路,按同样原理即可,当然,程序也需同步考虑.


标签: 单片机