基于c51的电子钟设计

基于c51的电子钟设计

ID:35568249

大小:120.00 KB

页数:16页

时间:2019-03-29

基于c51的电子钟设计_第1页
基于c51的电子钟设计_第2页
基于c51的电子钟设计_第3页
基于c51的电子钟设计_第4页
基于c51的电子钟设计_第5页
资源描述:

《基于c51的电子钟设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.基于AT89C51单片机的电子钟设计1系统电路设计1.1系统总体设计思路此设计原理框图如下所示,电路包括四个部分:单片机,键盘,锁存及显示电路,掉电保护电路。51单片机锁存器数码管显示独立键盘掉电保护电路图1.1单片机实现数码管显示电子钟总框图对于各部分:(1)单片机发送的信号经过锁存电路最终在数码管上显示出来。(2)单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。(3)掉电保护电路保证系统掉电时时钟不会停止。(4)为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校正数码管上显示的时间。1.2工作原理设计的电

2、路主要由四大模块构成:掉电保护电路,单片机控制电路,显示电路以及校正电路。本设计采用C语言程序设计,使单片机控制数码管显示年、月、日、时、分、秒,当秒计数计满60时就向分进位,分计数器计满60后向时计数器进位,小时计数器按“23翻0”规律计数。时、分、秒的计数结果经过数据处理可直接送显示器显示。当计时发生误差的时候可以用校时电路进行校正。时计数器计满24小时后自动向日计数器进一,日计数器需判断平年、闰年和大月、小月,当日计数器计满时,向月计数器进位,月计数器计满12月向年计数器进位。设计采用的是年、月、日、时、分、秒显示,单片

3、机对数据进行处理同时在数码管上显示。2单元电路设计2.1单片机电路设计本设计采用AT89C52单片机进行设计,它是一种低功耗,高性能的CMOS8位微处理器,内部有8K字节的程序存储器和256字节的数据存储单元,32个I/O端口,3个16位定时/计数器,8个中断源。时钟电路是单片机系统的心脏,它控制着单片机的工作节奏。本设计采用内部时钟方式,12MHz的石英晶体振荡器。电路图如下...图2.1时钟电路复位电路由单片机引脚RST接入,只要RST端保持10ms以上的高电平,就能使单片机有效地复位,本设计采用上电复位和手动复位两种方式

4、。电路图如下图2.2复位电路2.2掉电保护电路设计本设计采用如下掉电保护电路,当电源供电正常时,一方面给单片机供电,另一方面给电池充电,当电源断电时,电池放电,继续给单片机供电,保证其正常工作。在电源掉电时,为了不使低电平影响到单片机的VCC端,在电源与单片机的VCC端加一二极管。图2.3掉电保护电路2.3独立键盘设计此键盘是为设置时间而设计的人机交互装置。虽然矩阵键盘操作方便,但其硬件电路和软件都较复杂,考虑各方面因素,最终决定采用独立键盘,这样的话只需三个按键即可。电路如下图所示图2.4键盘电路...其中,按下set键进入

5、时间设置方式,此时默认设置秒,按add键进行加1设置,按minus键进行减1设置,再次按下set键进入分设置,以此类推,直至年设置完成后再次按下set键,进入正常模式。2.4显示电路设计由于要显示年、月、日、时、分、秒,因此需14个8段数码管进行显示,为了节省单片机的I/O端口,本设计采用动态扫描的方式进行显示。电路图如下图2.5显示电路其中,单片机的P0口与三个锁存器并行连接,P2.0,P2.1,P2.2分别作为它们的片选信号,锁存器U1的输出连接7段显示的8个引脚,锁存器U2,U3的输出分别作为14个7段显示的位选信号。3

6、软件设计本设计的软件部分采用C语言编写,并将其模块化,在主程序中进行调用。在主程序中首先要完成初始化工作,然后进入循环阶段,它包括对年月日时分秒的动态扫描子函数以及时钟设置子函数的循环调用,虽然主程序不断调用设置子函数,但只有当按下set键时才真正进入设置函数的内部,由于设置函数并不影响显示函数,因此设置时间日期的同时,可以在数码管上实时观测。这样一来,主程序实际上主要完成数码管的动态扫描过程,与此同时,内部定时器在不断地工作着,每到1s就进入中断子程序,由CPU。首先对电子钟的主程序进行分析,然后对各个子函数进行说明,主程序

7、的流程图如下...开始初始化年月日时分秒动态扫描显示设置NNY设置时间子函数图3.1主程序流程图以下对各个模块的子函数进行说明。3.1初始化子函数此函数中要对各个变量和定时器进行初始化,具体流程图如下开始标志变量清0时分秒清0年月日置1开总中断,允许定时器0中断,设置为方式1,置初值,开启定时器结束图3.2初始化子函数流程图其中,定时器为1s计时,1s过后引起中断,CPU进行相应的处理,本设计采用定时器0,且将其设置为方式1,由于晶振为12MHz,因此设置初值为50000,当其有20次中断时,则1s时间到。3.2显示子程序..

8、.本函数包括6个小部分,分别为年月日时分秒显示,在此以秒显示为例进行介绍。开始结束位选数码管显示取秒的个位及十位个位送至数码管并锁存位选数码管显示十位送至数码管并锁存由于本设计采取动态扫描的方式,因此年月日时分都采用类似的方法显示,且循环调用显示子函数以实现动态扫描。3.3设

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。