APP下载

基于89C51时钟电路的设计与制作

2015-02-05淮安市高级职业技术学校

电子世界 2015年13期
关键词:数码管字节闹钟

淮安市高级职业技术学校 杨 祾

基于89C51时钟电路的设计与制作

淮安市高级职业技术学校 杨 祾

本人以芯片89C51为核心,设计了一个能实现定时,时钟,星期显示功能的时间电子时钟。实验结果表明,基于89C51的数字时钟能实现时钟星期的功能:能进行时、分、秒的显示。也具有星期计算、显示和时钟,星期的校准、定时时间的设定,实现三路开关定时输出等功能。

89C51;电子制作;数字时钟

随着电子技术的飞速发展,单片机的使用率越来越高。教学之余,为了激发学生对51单片机的学习兴趣,我利用89C51制作了一款电子时钟,经验证这款电子时钟简单实用,以至于班上的每个同学都制作一款。由于51系列单片机机展小巧、程序编写简、功能强大、价格便宜等优点,由51单片机制作的小型智能产品越来越多,也是电子技术相关专业学生毕业设计的首选芯片(见图1)。

1 电路设计流程框图(见图2)

2 基于89C51时钟电路的方案及原理

图1 基于89C51时钟电路的电路图

图2

基于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)

图3

4 定时闹钟扫描子程序

该子程序的功能是:将事先编好的闹钟程序代码从EEPROM中逐条读出,并与当前的实时时钟进行一次比较。若某一条闹钟程序的语句(下面有说明)中的时间代码与当前的实时时钟相同,则执行该语句对应的闹钟功能。否则扫描下一条语句,直至闹钟程序末。

闹钟程序:所以闹钟语句的集合

闹钟语句:由一个时代码、一个分代码和一个闹钟时长代码组成。一条闹钟语句定义一个闹钟操作。

闹钟程序存放在EEPROM芯片(型号AT24C16)中, AT24C16是ATMEL公司生产的电擦电写串行存储器,容量是2K字节。一周的闹钟程序被编成7页,一天一页,每一页占256个字节,AT24C16中剩下的256个字节留备用。

每条闹钟语句分配4个字节:

第一个字节:存放“时”代码(指定 时)

第二个字节:存放“分”代码(指定 分)

第三个字节:存放“时长”代码(控制闹钟时间长短)

第四个字节:未用。

因为一页占256个字节,那么一页中可存放约60条闹钟语句,即在一天中最多可设置60个闹钟点。

定时闹钟程序流程框图(见图4)。

图4

5 结论

以89C51为核心制作的数字时钟,经过电路调试和软件调试,可以实时时钟的显示和调整、整点报时、定时闹钟的设定、以一周为周期的闹钟功能。

杨祾,高级讲师,供职于淮安市高级职业技术学校。

猜你喜欢

数码管字节闹钟
多彩创意闹钟
No.8 字节跳动将推出独立出口电商APP
微课教学设计之“数码管动态显示”
天然闹钟
Arduino编程
No.10 “字节跳动手机”要来了?
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
小闹钟的提醒
能帮我设个闹钟不等四则