下,均不允许连击;
(2)时、分、秒的间隔符“.”以一定频率闪烁; (3)时间显示以“灭零”方式进行;
(4)可调整运行的电子钟用两个按键(例如:A键、B键)来控制
1.3总体方案介绍
1.3.1计时方案
利用AT89S52单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。按先分后总的方法,先编写主程序、显“P.”子程序,使数码管能显示“P.”并让它闪烁。再编写显示子程序、键盘监视子程序、键功能子程序,使单片机能自动地将时间显示在数码管上,且能用按键达到相应的功能。最后编写中断程序、加一子程序、显间隔符“.”子程序等。最后再将程序衔接起来,进行最后的验证和校对。
1.3.2键盘/显示方案
AT89S52的P0口和P2口外接由六个LED数码管(LED6~LED1)构成的显示器,用P0口作LED的段码输出口,P2口作六个LED数码管的位控输出线,P1口外接四个按键A、B、C、D构成键盘电路。
AT89S52 是一种低功耗,高性能的CMOS 8位微型计算机。它带有8K Flash 可编程和擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51和80C52的指令系统及引脚兼容,片内Flash 集成在一个芯片上,可用与解决复杂的问题,且成本较低。简易电子钟的功能不复杂,采用其现有的I/O便可完成,所以本次设计中采用此种设计方案,结构如图1.1如示。
按键电路晶振电路AT89S52驱动电路LED复位电路电源图1.1 AT89S52电路显示方框
2
2 电子钟的工作原理
2.1实现时钟计时的基本方法
利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。 (1) 计数初值计算:
把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。
假设使用T/C0,方式1,50ms定时,fosc=12MHz。 则初值X满足(216-X)×1/12MHz×12μs =50000μs X=15536→0011110010110000→3CB0H
(2) 采用中断方式进行溢出次数累计,计满20次为秒计时(1秒); (3) 从秒到分和从分到时的计时是通过累加和数值比较实现。
2.2电子钟的时间显示
电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显示缓冲区共6个单元。
LED6 LED5 LED4 LED3 LED2 LED1 34H 34H 33H 32H 31H 30H 时十位 时个位 分十位 分个位 秒十位 秒个位 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5
2.3电子钟的启、停及时间调整
电子钟设置4个按键通过程序控制来完成电子钟的启、停及时间调整。 A键控制电子钟的启、停; B键调整时; C键调整分; D键调整秒。
3
3 电子钟原理图及元件清单
3.1电子钟电路原理图
电子钟原理图 (见附录)
3.2元件清单
电子钟元器件清单如表1.1所示:
表1.1 电子钟元器件清单 元件名称 单片机 显示驱动芯片 一位一体的共阳LED显示器 晶振 电容 电容 按键 电阻 电阻 上拉电阻 限流电阻 电源接口 下载端口 规格型号 AT89S52 74LS245 7SEG-MPX6-CA-BLUE 12MHz 33pF 22μF BUTTON 0.2K 1K 10K 4.7K 数量(个) 1 2 1 1 2 1 5 9 1 4 8 1 1
4
4 软件系统设计
4.1电子钟程序流程框图
4.1.1主程序流程框图
如图4.1所示:
开始
图4.1主程序流程框图 系统初始化P.显示NA键是否按下进入自动计时状态检测A键是否按下YY
NN进入时间设置状态检测A键是否按下Y5
4.1.2键扫子程序流程框图
如图4.2所示:
开始N有键闭合Y调显示子程序延时去抖动N有键闭合YN键释放否Y保存键值(A中)调显示子程序结
束
图 4.2 键扫子程序流程框图程框
6