600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 单片机简易数字钟c语言程序 用AT89C51/AT89S52单片机制作的简易数字钟

单片机简易数字钟c语言程序 用AT89C51/AT89S52单片机制作的简易数字钟

时间:2021-09-11 21:25:04

相关推荐

单片机简易数字钟c语言程序 用AT89C51/AT89S52单片机制作的简易数字钟

本文介绍的单片机控制数字钟硬件结构简单,所需元器件少,价格低廉,制作容易,适合初学者习作。单片机选用带flashROM的51系列,具体型号AT89C51或AT89S52等。PO口、Pl口、P2口、P3口各接一共阳数码管,直接驱动。PO和P1所接的数码管分别显示分、十分。P2口所接的数码管显示小时,为了和分钟数字区别开,该数码管的小数点常亮。P3口的P3.O和P3,1分别接第四个数码管的b、c段显示1,即十小时。如果不到十小时,则不显示。

小时为12进制,分为60进制。时钟为12MHz。两按钮分别校时和校分。复位按钮清零。总体框图如上图。

一、硬件电路(参见原理图下图)

1、电源:51系列单片机需要5V直流稳压电源。将220V交流电降压,变压器选择5W,次级电压为10V。桥式整流,二极管选择1N4002。选三端稳压器7805。2个100UF25V电容在输入和输出滤波。在5V输出端再加一个0.01uF瓷片电容进行高频滤波。

2、复位电路:复位电路采用上电复位和按钮复位。由一个10UF的电容和一个按钮以及51kQ、2.2kQ电阻各一个构成。

3、外部晶振电路:外部晶振电路由2个30pF的电容和一个12MHz的晶体振荡器构成。

4、校时和校分电路:由P3.3外接一个按钮开关到地作为校时键。由P3.2外接一按钮到地作为校分键。

5、显示电路:因为P口的灌电流在15mA左右,可直接驱动数码管。由PO口和P1口各外接一个共阳极数码管,直接驱动,PO所接数码管显示分,P1所接数码管显示十分,小数点不点亮。P2口外接一个数码管显示小时,但小数点要点亮,用以分隔时分。P3口的P3.1和P3.0分别外接到一数码管的b段和c段,显示十小时,如果不到十小时,该两段灭。小时的显示为12进制。

二、软件系统

软件系统分四个部分:主程序部分,计时显示中断子程序部分,校时中断子程序部分,校分中断子程序部分,分别介绍如下:

1、主程序部分

主程序流程如右图.主要有设置堆栈,清R2(为50ms计数器)、R3(分计数器)、R4(十分计数器)、R5(小时计数器)、R6(十小时计数器);设置定时器,设置中断等,汇编语言源程序如下:

三、电路安装和调试

电路安装参考图(万能板焊接面)如下图。为了安装方便,其中各数码管管脚和单片机P口各驱动电阻端直接用细软导线相连,下图中未画出。只要安装无误,硬件方面不需调试。如时间误差过大(每天误差大于10秒),在软件方面,可修改计时显示中断子程序中装入TLO中的初值BOH,加大或减小即可。

四、元器件明细表

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。