基于AT89S51单片机的数字钟设计与实现
2017-09-07祝良郭臣鹏苏宏锋
祝良+郭臣鹏+苏宏锋
摘要:设计了一种以AT89S51单片机为控制器的数字钟,基于Proteus 7.8开发平台与Keil软件进行电路设计与仿真,实现数字钟的PCB实物制作、元件焊接与程序设计。软件仿真与试验结果表明,数字钟电路通电后工作稳定,具有自动计时,时间设置与闹钟功能。
关键词:AT89S51;数字钟;PCB;电路仿真
中图分类号:TH39 文献标识码:A 文章编号:1007-9416(2017)05-0160-02
Design and Implementation of Digital Clock Based on AT89S51 Single Chip Microcomputer
Zhu Liang,Guo Chenpeng,Su Hongfeng
(Sichuan Vocational and Technical College of Communication, Sichuan Chengdu,611130)
Abstract:A digital clock with AT89S51 microcontroller as the controller is designed. Circuit designing and simulation are realized based on Proteus 7.8 development platform and Keil software.It achieves the PCB physical production, component welding and program design. Software simulation and test results show that the digital clock circuit with power works well and has automatic timing, time setting and alarm function.
Key Words:AT89S51;Digital Clock;PCB; Circuit simulation
1 引言
数字钟是一种用数字电路技术实现时、分、秒计时的钟表,与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用[1]。本文所设计的数字钟具有如下功能:
(1)数字钟电路上电后,系统从00:00:00开始计时自动显示时间,6位LED显示器分别显示时、分、秒;
(2)具有时钟校准功能,可设置当前时间;
(3)具有闹钟设置/启闹/停闹功能:按下闹钟设置键,数码管显示00:00:00,进入闹钟设置状态;可以设置启闹时间,等待键入启闹时间,按一次设置分,按两次设置小时,按三次确认设置完毕;当定时时间到,蜂鸣器鸣叫10秒后停闹。
2 系统方案设计
本系统选用主流芯片AT89S51单片机作为主控制器,利用单片机内部定时器实现计时、以行列式键盘(4*4矩阵键盘)完成时钟的设置、修改,利用单片机并行I/O端口连接6位数码管,实现数字钟的动态LED显示。系统总体设计图1所示。
3 數字钟设计
3.1 硬件电路设计
控制器选用主流芯片AT89S51[2],内部带有4KB的Flash ROM,无需外扩程序存储器。由于数字钟不需要进行大量运算和数据暂存,片内128B的RAM可以满足设计要求,无须外扩片外RAM。AT89S51内部定时/计数器进行中断定时,配合软件延时实现时、分、秒的设计。使用单片机并行口作为显示接口,无须外扩接口芯片,实现LED动态显示。
单片机的P1口作为6位LED显示的位选口,其中P0.0~P0.5分别对应连接LED0~LED5,P0口作为段选口,由于采用共阴数码管,因此P1口输出低电平选中相应的位,而P0口输出高电平则点亮相应的段。单片机P2口的P2.3~P2.6为键盘输入端(行输入扫描口),对应0~3行,P2口的P2.0~P2.2做键盘的列扫描口。单片机的P2.7引脚接蜂鸣器,高电平驱动蜂鸣器鸣叫,模拟闹钟启闹。所设计的数字钟硬件电路原理图与PCB图如图2与图3所示。
3.2 软件设计
主程序函数用于完成系统初始化工作,主要包括时钟、闹钟初始参数及初始标记的设定;I/O端口、定时/计数器初始状态的设定;时间更新显示,循环扫描按键,根据按键分别进行闹钟和时钟的设置管理。LED显示函数根据显示单元首地址显示时钟(或闹钟)时间,实现6位LED的动态显示功能。时钟设置函数实现时钟时间的设置修改。闹钟判断启动函数判断闹钟启动时间到否,若时间到,则启动闹钟,延时10S后自动关闹钟,清除闹钟设置标志。定时器中断函数定时修改时钟参数中断服务子程序。数字钟程序模块如图4所示。
3.3 系统仿真
在Proteus 7.8开发环境下,设计了数字钟的硬件电路,结合Keil uvision5软件环境,采用C语言编程,编译通过后生产.hex文件,将程序导入proteus[3]中进行仿真。搭建的仿真电路运行如图5所示,仿真结果表明该电路实现了计时、时钟校准与闹钟功能。
3.4 PCB实物制作与调试
仿真结果准确无误后,接下来进行PCB板实物制作。结合四川交通职业技术学院电子实训情况,采用曝光法制作PCB,主要步骤包括硫酸纸的打印、铜面的处理、贴膜、静置、曝光、显影、腐蚀及脱膜[4]。曝光法具有成本低,浪费少,精度高,成功率高的优点。根据元件清单和PCB装配图,完成PCB板上的元件焊接。
焊接完成后,使用万用表进行线路检测,按照电路原理图,检查印制电路板中所有器件的引脚,尤其是电源的连接是否正确,排除短路故障;检查P0口、P1口和P2口的连接线是否有短路等故障,顺序是否正确;检查各开关按键是否能正常开关,是否连接正确;检查各限流电阻是否短路等。用下载线连接单片机下载接口与电脑,上电后将编译通过的程序下载到单片机,完成了时间显示、时间校准与闹钟设置等功能,如图6所示。
4 结语
本文根据数字钟的功能,设计数字钟的硬件电路、分析系统软件流程,实现了系统硬件仿真与实物制作,仿真与实物调试结果表明,系统方案可行,可实现数字钟的时间显示,时钟校准与闹钟功能。该方案已应用与四川交通职业技术学院电子专业学生实训课程中,通过数字钟的设计,使学生熟练操作Proteus 7.8与Keil uVision5软件,对提高学生实践能力与单片机知识的综合应用能力具有重要意义。
参考文献
[1]程光璇.普通单片机电子时钟的设计[J].电子世界,2011(8):33-35.
[2]郭占苗,潘鲁宁.基于STC89C52单片机的数字钟设计[J].微处理机,2016(4):83-86.
[3]黄智伟.印制电路板(PCB)设计技术与实践[M].北京:电子工业出版社,2013.
[4]徐作华.基本数字钟电路的设计、制作与检测[J].数字技术与应用,2013(6):180-180.endprint