随着电子技术的飞速发展,单片机的使用率越来越高。教学之余,为了激发学生对51单片机的学习兴趣,我利用89C51制作了一款电子时钟,经验证这款电子时钟简单实用,以至于班上的每个同学都制作一款。由于51系列单片机机展小巧、程序编写简、功能强大、价格便宜等优点,由51单片机制作的小型智能产品越来越多,也是电子技术相关专业学生毕业设计的**芯片(见图1)。
1 电路设计流程框图(见图2)
2 基于89C51时钟电路的方案及原理
基于89C51时钟电路主要由主要由微处理器电路、LED数码管显示电路、键盘电路、显示驱动电路、时钟模块、电源电路等组成。89C51的管脚及技术细节可以查阅有关手册。电路模块的基本工作过程是:
(1)显示电路主要由两片74HC595和7个LED共阴红色数码管、LED发光二极管及限流电阻组成。74HC595是数码管和发光二极管的显示驱动电路,是一种8位串行输入、8位串行输出或并行输出的高速CMOS移位寄存器、8位并行输出口具有三态输出功能(即可被程控成高阻状态)。显示电路采用动态扫描方式驱动数码管,即数码管的阴极和阳极都用74HC595驱动,微处理器控制将将要显示的内容(7位数字段码)快速的分时送到LED两端。这种设计的优点是**大限度地降低了系统的硬件支出(与静态显示电路相比)。
(2)时钟模块电路DS12887是美国Dalls公司生产的实时时钟芯片,采用CMOS技术制成,具有内部晶振和时钟芯片备份锂电池。该芯片具有良好的微处理器接口(有Motorola和Intel两种时序可供选择,在本系统中采用Intel时序)。芯片内含128个字节RAM单元与软件接口,其中14个字节作为时钟和控制寄存器。114个字节为通用RAM(在本系统中未用),所有RAM单元都具有掉电保护功能。采用该芯片作为该系统的实时时钟基准,是为了**时钟运行的高精度。
(3)键盘是单片机的主要输入设备,是时间设置和控制的人机接口。本系统中设计了16个键,本系统中实际使用9个键,其余7个键留备系统扩展用。16个按键的硬件连接方式是4×4矩阵。单片机对键盘状态的检测是通过动态扫描方式进行的。这样做的目的是大大减少了键盘电路所占用的单片机端口线的数量。16个键的键值读取占用了8根I/O口线(P2口)。如果采用静态键盘方式,则需占用16根口线。另外,这个键盘具有连击功能,即按下某一键达到一定时长后,该键对应的功能将得到反复执行。利用这个连击功能,可以快速地调整时钟和输入闹钟程序。
3 软件编程主程序流程框图(见图3)
4 定时闹钟扫描子程序
该子程序的功能是:将事先编好的闹钟程序代码从EEPROM中逐条读出,并与当前的实时时钟进行一次比较。若某一条闹钟程序的语句(下面有说明)中的时间代码与当前的实时时钟相同,则执行该语句对应的闹钟功能。否则扫描下一条语句,直至闹钟程序末。
闹钟程序:所以闹钟语句的集合闹钟语句:由一个时代码、一个分代码和一个闹钟时长代码组成。一条闹钟语句定义一个闹钟操作。闹钟程序存放在EEPROM芯片(型号AT24C16)中,AT24C16是ATMEL公司生产的电擦电写串行存储器,容量是2K字节。一周的闹钟程序被编成7页,一天一页,每一页占256个字节,AT24C16中剩下的256个字节留备用。
每条闹钟语句分配4个字节:
第一个字节:存放“时”代码(** 时)
第二个字节:存放“分”代码(** 分)
第三个字节:存放“时长”代码(控制闹钟时间长短)
第四个字节:未用。
因为一页占256个字节,那么一页中可存放约60条闹钟语句,即在一天中**多可设置60个闹钟点。定时闹钟程序流程框图(见图4)。
5 结论
以89C51为核心制作的数字时钟,经过电路调试和软件调试,可以实时时钟的显示和调整、整点报时、定时闹钟的设定、以一周为周期的闹钟功能。