张银慧 天津三星通信技术研究有限公司
电子万年历已经普遍应用,给我们的日常生活带来极大的便利。利用单片机技术设计制作的电子万年历,可以很方便的利用软件编程实现功能的调整和改进,使其在能够准确显示日期、时间和星期等基本信息的同时,还能具有农历日期显示、闹钟设定、整点提醒以及温度显示等一些实用性强的功能;同时具有电路实现简单、设计成本低廉等优点。
利用单片机设计电子万年历,主要采用单片机系统设计方法,基于单片机最小系统,设计合理的外围硬件电路;同时在软件系统中利用编程实现单片机的控制功能。本设计的系统原理框图如图1所示。
图1 系统总体原理框图
(1)单片机控制模块:以AT89C51单片机为核心器件,作为系统的控制单元,控制时钟显示芯片DS1302、按键输入模块、LCD1602液晶显示模块和蜂鸣器报警模块之间的协调工作,根据外部输入信号做出相应的数据处理以及控制输出设备进行相应的操作,主要包括液晶显示和蜂鸣器发声等。
(2)时钟显示芯片模块:采用时钟显示芯片DS1302,完成对日期时间和星期的读取,同时实现公历日期与农历日期的转换
(3)按键输入模块:通过4个按键实现对“时分秒”、“年月日”、“星期”信息的调整,以及闹钟时间的设置。
(4)液晶显示模块:采用LCD1602液晶屏,正常工作状态下显示“年月日”、24时制“时分秒”信息和星期信息;同时,在功能设置状态下,显示调整设置信息。
AT89C51单片机的P0口接LCD1602液晶显示模块,P1口接DS1302时钟显示芯片,P3口接按键输入模块和蜂鸣器。
DS1302时钟显示芯片内置32.768Hz晶振,采用串行数据传输,可以对“时分秒”、“年月日”、“星期”进行计时,并且具有闰年补偿等多种功能。
LCD1602液晶显示器通过数据端口(7~14管脚)与AT89C51的P0口相连接实现数据与指令的传输;通过控制端口RS、RW和EN(4~6管脚)与P1口中的P1.0~P1.2端口相接实现对数据和指令传输的控制。
4个独立按键是用户与万年历实现信息交互的接口,本设计中,按键具有自动恢复(弹回)的功能。当按键按下,与单片机连接的端口被降为低电平,按键松开则升为高电平。K1按键具有公历农历显示切换和数值减1的双重功能;K2按键实现数值加1;K3按键用来实现选定需要调整设置项的数据位置,如时、分、秒、年、月、日和星期;K4按键用来切换日期时间和闹钟的设置状态。
图2 系统硬件电路原理图
本设计中,软件系统主要完成公历日期与农历日期的转换、整点提醒、日期时间和星期的调整、闹钟的设置,以及液晶屏显示等功能。主程序主要完成系统的初始化功能,子程序主要有公历与农历日期转换子程序、整点提醒子程序、闹钟提醒子程序、液晶显示模块子程序等。软件系统程序流程图如图3所示。
图3 软件系统程序流程图
本设计中的数字万年历具体工作流程如下:
(1)单片机上电工作,系统完成对DS1302和LCD1602的初始化,单片机控制LCD液晶屏显示“时分秒”、“年月日”和“星期”信息,同时具有整点提醒功能。
(2)当进行功能设置时,按下K1键,则液晶显示农历日期信息。
(3)当第一次按下K4“设置”键时,可以调整“时分秒”、“年月日”和“星期”,首先通过K3键选择需要调整的选项位置,然后利用K1键(数字减1)或K2键(数字加1)来调整K3键确定的选项;当第二次按下K4键时,采用同样的方法可以设置闹钟时间。
(4)当第三次按下K4键时,系统保存设置后的参数信息并退出设置状态,系统恢复正常工作状态。
将利用Keil仿真软件编写的C语言单片机程序编译通过后,在Proteus仿真环境中加载到AT89C51中,进行软件系统和硬件仿真电路的联合调试,以验证系统功能。仿真结果显示,设计要求均能正常实现,性能良好。
本设计采用广泛使用的AT89C51单片机为核心,利用DS1302时钟芯片和LCD1602液晶显示模块,通过软硬件结合的设计方法,简化了硬件电路,提高了系统稳定性。本方案设计出的带农历显示的数字万年历具有显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。
[1]徐爱钧.单片机原理及应用-基于C51和Proteus仿真,北京:清华大学出版社,2015,11. 第1版
[2]张政,路阳.基于AT89C51单片机控制的万年历探究,电子技术,2014(04)
[3]王语园,张鑫.基于51单片机的电子万年历系统的设计,科技创新.2016(19)
[4]周颖,俞吉.基于AT89S52单片机的电子万年历系统设计,现代电子技术,2012, 13