图8 显示子程序流程框图
2.5数字电子钟软件系统程序清单
软件系统的程序清单如附录F所示。
11
3 数字电子钟的仿真分析
3.1 系统的组成及使用说明
系统的组成部分包括:数码管显示器,三个按键,其它为单片机的最小系统组成单元,包括电源,晶振,三极管驱动部分,S1为复位按键/调时键,S2为增加键,S3为减少键,当按下S2,加一。当按下S3,减一。
3.2仿真结果
系统的仿真主要是针对硬件设计之前的软件与硬件设计的一个仿真验证,看是电路及软件是否正确可行,仿真结果如下图9:
图9 仿真结果
3.3设计课题的仿真调试
先用keil软件编好源程序,然后用keil软件进行调试,如果不符合,则对源程序在进行修改,然后再调试运行,直到运行的结果符合要求为此,程序编好之后,生成Hex文件,再将编好的程序添加到proteus仿真软件的单片机的单片机中,运行proteus ,看显示是否正确,按相应的按键,看时或分是否会增加,如果显示不正常,则去修改相应的显示子程序,如果按键不正常,则去查按键子程序。
3.4 误差分析
该电子钟在运行中存在一定的误差,误差产生有三种可能,首先是采用的计时方案是软件计时的,计时优势利用中断来实现。而当电子钟运行时间1秒时,又得去执行中断程序,这个过程是需要时间的,所以就产生了一定的误差,当然这个误差是避免不了的,其次还有硬件系统也有一定的影响。第三,设计用到12MHz的晶振,计算是满20次为一秒钟,但实际会慢很多。
12
4 数字电子钟硬件系统的设计
4.1 硬件原理框图
图10电子钟硬件原理框图
4.2设计课题硬件系统各模块功能简要介绍
4.2.1 AT89S52单片机原理简介
图11单片机的结构图
13
单片机的最小系统是由电源、复位、晶振、/EA=1组成,下面介绍一下每一个组成部分。 (1)电源引脚
VCC 电源端 GND 接地端
工作电压为5V,另有AT89LV51工作电压则是2.7-6V, 引脚功能一样。 (2)外接晶体引脚
图12晶振连接的内部方式图
XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。 (3)复位 RST
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在
14