- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于AT89C51单片机的电子钟设计
1 系统电路设计
1.1 系统总体设计思路
此设计原理框图如下所示,电路包括四个部分:单片机,键盘,锁存及显示电路,掉电保护电路。
图1.1 单片机实现数码管显示电子钟总框图
对于各部分:
单片机发送的信号经过锁存电路最终在数码管上显示出来。
单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。
掉电保护电路保证系统掉电时时钟不会停止。
为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校正数码管上显示的时间。
1.2 工作原理
设计的电路主要由四大模块构成:掉电保护电路,单片机控制电路,显示电路以及校正电路。
本设计采用C语言程序设计,使单片机控制数码管显示年、月、日、时、分、秒,当秒计数计满60时就向分进位,分计数器计满60后向时计数器进位,小时计数器按“23翻0”规律计数。时、分、秒的计数结果经过数据处理可直接送显示器显示。当计时发生误差的时候可以用校时电路进行校正。时计数器计满24小时后自动向日计数器进一,日计数器需判断平年、闰年和大月、小月,当日计数器计满时,向月计数器进位,月计数器计满12月向年计数器进位。设计采用的是年、月、日、时、分、秒显示,单片机对数据进行处理同时在数码管上显示。
2 单元电路设计
2.1 单片机电路设计
本设计采用AT89C52单片机进行设计,它是一种低功耗,高性能的CMOS8位微处理器,内部有8K字节的程序存储器和256字节的数据存储单元,32个I/O端口,3个16位定时/计数器,8个中断源。
时钟电路是单片机系统的心脏,它控制着单片机的工作节奏。本设计采用内部时钟方式,12MHz的石英晶体振荡器。电路图如下
图2.1 时钟电路
复位电路由单片机引脚RST接入,只要RST端保持10ms以上的高电平,就能使单片机有效地复位,本设计采用上电复位和手动复位两种方式。电路图如下
图2.2 复位电路
2.2 掉电保护电路设计
本设计采用如下掉电保护电路,当电源供电正常时,一方面给单片机供电,另一方面给电池充电,当电源断电时,电池放电,继续给单片机供电,保证其正常工作。在电源掉电时,为了不使低电平影响到单片机的VCC端,在电源与单片机的VCC端加一二极管。
图2.3 掉电保护电路
2.3 独立键盘设计
此键盘是为设置时间而设计的人机交互装置。虽然矩阵键盘操作方便,但其硬件电路和软件都较复杂,考虑各方面因素,最终决定采用独立键盘,这样的话只需三个按键即可。电路如下图所示
图2.4 键盘电路
其中,按下set键进入时间设置方式,此时默认设置秒,按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 软件设计
本设计的软件部分采用C语言编写,并将其模块化,在主程序中进行调用。在主程序中首先要完成初始化工作,然后进入循环阶段,它包括对年月日时分秒的动态扫描子函数以及时钟设置子函数的循环调用,虽然主程序不断调用设置子函数,但只有当按下set键时才真正进入设置函数的内部,由于设置函数并不影响显示函数,因此设置时间日期的同时,可以在数码管上实时观测。这样一来,主程序实际上主要完成数码管的动态扫描过程,与此同时,内部定时器在不断地工作着,每到1s就进入中断子程序,由CPU。首先对电子钟的主程序进行分析,然后对各个子函数进行说明,主程序的流程图如下
图3.1 主程序流程图
以下对各个模块的子函数进行说明。
3.1 初始化子函数
此函数中要对各个变量和定时器进行初始化,具体流程图如下
图3.2 初始化子函数流程图
其中,定时器为1s计时,1s过后引起中断,CPU进行相应的处理,本设计采用定时器0,且将其设置为方式1,由于晶振为12MHz,因此设置初值为50000,当其有20次中断时,则1s时间到。
3.2 显示子程序
本函数包括6个小部分,分别为年月日时分秒显示,在此以秒显示为例进行介绍。
由于本设计采取动态扫描的方式,因此年月日时分都采用类似的方法显示,且循环调用显示子函数以实现动态扫描。
3.3 设置时间日期子函数
本函数的流程图如下
其中,flag为标志变量,当set键按下时,flag自加1,CPU会根据它的数值去判断设置哪一个变量,当flag的值达到7时,将其清0。
4 优缺点分析
本设计的硬件电路简单可行,只需
文档评论(0)