基于51单片机的万年历设计

2021-09-10 22:44周春涛李志钊李潭朱鑫朝曹海彬
江苏广播电视报·新教育 2021年1期

周春涛 李志钊 李潭 朱鑫朝 曹海彬

摘要:随着人们生活水平的提高,时间观念越来越受人的重视,因此,一款方便快捷的精确显示时间的万年历也会受到人们的追捧。由其是单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来的诸多方便,作为一种附加功能,现在越来越广泛的被应用于各种电子产品中,具有广阔的市场前景。目前,万年历主要实现的功能是年,月,日,星期几,具体的时间和闹钟等内容。

关键词:万年历;C52单片机;DS1302;LCD1602

引言:在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响,随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。为了在观测时间的同时,能够了解其它与人类密切相关的信息,比如温度、星期、日期等,电子万年历诞生了,它集时间、日期、星期、闹钟功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势。伴随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。随着人们的时间观念也越来越强,万年历的出现毫无疑问是有巨大意义的,给了我们随时随地知道时间的条件。目前,电子万年历作为许多电子产品的附加功能应用十分广泛。国内目前的万年历产品基本都是实现显示日期,时间,闹钟等功能,简单方便。由于万年历的使用十分方便因此万年历即使在以后还是有很大的发展前景。

1基于51单片机的万年历项目需求分析

(1)熟悉51单片机集成开发环境,运用C语言编写工程文件,实现万年历的软件设计;(2)熟练应用所选用单片机的内部结构、资源,以及软硬件调试设备的基本方法;(3)自行构建基于单片机的最小系统,完成相关硬件电路的设计实现;(4)理解万年历的原理和掌握实现方法;(5)使万年历可以显示年、月、日,时、分、秒;星期几;另外还可以设置闹钟。

2硬件设计

2.1最小系统模块

STC89C52的最小系统如图1所示,整个最小系统由三个部分组成,晶振电路部分、复位电路部分、电源电路等三个部分组成。

晶振电路包括2个30pF的电容C2和C3,以及12M的晶振X1。电容的作用在这里是起振作用,帮助晶振更容易的起振,取值范围是15-33pF。晶振的取值也可以是24M,晶振的取值越高,单片机的执行速度越快。在进行电路设计的时候,晶振部分越靠近单片机越好。

单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。

复位电路由10uF的极性电容C1和10K的电阻R4构成。利用电容电压不能突变的性质,可以知道,当系统一上电,RESET脚将会出现高电平,并且这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RESET脚的高电平持续两个机器周期以上就将复位,所以适当组合RC的取值就可以保证可靠的复位。

最后一个是电源部分,采用5V的USB直接供电,可采用手机充电器、电脑USB口、移动电源等设备进行供电。

2.2液晶显示模块

液晶模块的电路的连接图如图2所示,第1脚和第2脚分别接到了电路的GND和VCC,这2个脚是液晶工作的电源输入脚。第3脚通过一个10K的电位器连接到地端,可通过调节该电位器来调节液晶的对比度。第4脚是液晶的寄存器控制脚,接到了单片机的P27脚上。第5脚是液晶的读写控制脚,接到了单片机的P26脚上。第6脚是液晶的使能脚,接到了单片机的P25脚上。第7脚到第14脚是液晶的数据/地址8位总线接到了单片机的P0口上。最后第15脚和第16脚是液晶的背光电源脚,直接连接系统VCC和GND。

2.3 DS1302模块

DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有閏年补偿功能,工作电压为2.0V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。

3系统程序设计

本系统的软件流程图如图3所示,最开始先进行液晶的初始化,包括液晶功能初始化和液晶显示内容初始化,接着就进行时钟芯片的初始化,主要就是初始化时钟芯片引脚电平。然就进入了一个循环处理的过程,包括先读取时钟芯片的日期时间数据,然后在1602液晶上面显示出来,接着判断读取到的时间是否需要启动闹钟报警,是的话则控制蜂鸣器鸣叫。再往下就是判断设置按键或闹钟按键是否被按下,是的话,则进入时钟设置或闹钟设置状态。

结论:诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,但是所有这些,都是以钟表数字化为基础的。因此,研究万年历及扩大其应用,有着非常现实的意义。它可以对年、月、日、周日、时、分、秒进行计时,对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒等信息,还具有时间校准等功能。另外此次实践加入了蜂鸣器,使它可以完成闹钟功能,让它在生活中的应用更加实用。

参考文献:

[1]郑郁正.单片机原理及应用.成都:四川大学出版社,2003.9.

[2]王怀平,王仁波,胡开明.Proteus仿真设计基于单片机AT89C51的电子万年历[J].科技广场,2008,10:197-198.

[3]潘永雄,沙河.电子线路CAD实用教程(第三版).西安:西安电子科技大学出版社,2007.7(2009.8重印).

[4]张俊谟编著单片机中级教程——原理与应用(第二版).北京航空航天大学出版社

(河南科技大学 河南省洛阳市 471023)