当前位置:文档之家› 电子万年历设计

电子万年历设计

课程论文
论文题目基于单片机的电子万年历设计课程名称单片机原理及接口技术
专业年级 2014级自动化3班
学生姓名孙宏远贾腾飞
学号 ******** ********
2016年12 月3 日
摘要:
本文介绍了基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。

系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。

万年历采用直观的数字显示,可以在LED上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。

此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。

关键词:AT89C51单片机,DS1602时钟芯片,LCD1602显示屏。

串口通信。

一:引言
本设计的基于单片机控制的电子万年历,具有年、月、日、星期、时、分、秒的显示等功能,实现过程就是由主控制发送信息给DS1302时钟芯片再由时钟芯片反馈给单片机,再由主控制器传送给LCD1602显示屏显示信息。

并且可以在键盘设置模块输入修改时间,当键盘设置时间、日期时,单片机主控制根据输入信息,通过串口通信传送给DS1302时钟芯片,DS1302芯片读取当前新信息产生反馈传送给单片机,然后单片机根据控制最后输送显示信息到LCD1602液晶显示屏模块上显示。

二:硬件设计:
2.0.硬件的设计总框图
2.1 DS1032时钟电路
DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。

在主电源关闭的情况下,也能保持时钟的连续运行。

DS1302由Vcc1或Vcc2两者中的较大者供电。

当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。

当Vcc2小于Vcc1时,DS1302由Vcc1供电。

X1和X2是振荡源,外接32.768kHz
晶振。

芯片如图。

DS1302的内部主要由移位寄存器、指令和控制逻辑、振荡分频电路、实时时钟以及RAM组成。

每次操作时,必须首先把CE置为高电平。

再把提供地址和命令信息的8位装入移位寄存器。

数据在SCLK的上升沿串行输入。

无论是读周期还是写周期发生,也无论传送方式是单字节还是多字节,开始8位将指定内部何处被进行访问。

在开始 8个时钟周期把含有地址信息的命令字装入移位寄存
器之后。

紧随其后的时钟在读操作时输出数据。

2.2 LCD1602与AT89C52的引脚接线
LCD1602采用总线式与单片机相连,AT89c52的P1口直接与液晶模块的数据总线D0~D7相连;P2 口的0,1,2脚分别与液晶模块的RS、RW、E脚相连。

滑动变阻器用于调整液晶显示的亮度。

电路如图
2.3 DS1602与AT89C52的接线
在电路中单片机的P1.7控制DS1302的复位输入端,P1.4与数据输入/输出引脚相连,P1.3用来作为 DS1302的输入时钟SCLK控制端。

由于单片机复位时,所有单片机的端口均为高电平,如果直接用单片机的某一口线同DS1302的RST相连,则影响了系统加电时对DS1302的初始化,从而造成 DS1302计时的不稳定。

因此,本主电源(5 V)接 VCC2,备份电池采用可充电镉镍电池(3.6 V)接 VCC1
2.4 键盘设置电路
设置电路的功能主要是把时间和日期设置到当前的时间,可以在系统运行中进行。

用4个独立式按键完成,分别接到单片机P1口的高4位。

第1个按钮表示是否进行设置,按下时表示设置,并且每按一次,在显示器上分别在年、月、日等日期时间上跳转,表示对相应的项进行更改;第2个按钮按下表示对第1
个按钮选中的项进行加1操作;第3个按钮按下表示进行减1操作;第4个按钮按下表示停止设置。

只有在第1个按钮按时才可进行加减操作。

其电路如图3
所示。

其中电容的作用是消除按键的抖动,也可用双稳态触发器去除按键时的抖动,同时为了提高可靠性,硬件去抖动的同时,还可以用软件去抖动的方法。

三:软件设计
3.1软件设计总框图
系统软件设计主要包括主程序设计、日期数据采集子模块程序设计、按键处理子模块程序设计和显示子模块程序设计等。

主程序主要完成器件的初始化,并判断有无按键按下,并根据判断的结果调用相应的子模块程序;日期数据采集子模块程序完成相应的数据采集、处理和保存,按键处理子模块程序完成日期的设置,而显示子模块程序只要把上述子模块储存的数据送去显示即可。

3.2 主程序流程图
3.3按键的检测
通过中断的办法来实现,利用按键进行间调整。

K1按下则开始设置时间及日期,同时在第一行最右端显示被选择的对象,第一次按下K1时,设置年份,若按下K3,则是减1操作,按下K2是加1操作,设置好年后,第二次按下K1时,则是设置月份,按K3减,按K2则加1,依次循环下去,则可以将时间和日期设置完毕,K4是确定键,设置好按下即可保存设置了.
3.4 软件总设计
软件总设计:主程序首先对系统环境初始化,设置定时器T0工作模式为16位定时/计数器模式,置位总中断允许位EA,并对键盘端口置位,再对LCD1602初始化,DS1302初始化。

接着扫描键盘,在键盘程序里面是对时间、日期,最下面是时间的显示。

四:调试过程及问题解决
4.1实验结果
LCD1602显示屏可以同时显示年、月、日、周日、时、分、秒,还具有时
间校准等功能
4.2 调试过程及问题解决
(1)烧入程序后,液晶显示空屏,而且亮度不均匀。

解决:首先对调用的仔细检查程序,可以解决显示闪动问题。

其次,检查接线是否正确。

由于其亮度由10K的电位器来调节,适当调节防止过暗或过亮的情况发生。

(2)修改时间、日期时没有与按键自动对应上。

解决:把不相关的程序暂时屏蔽,对按键的子程序独立调试,发现在调用按键自动更新时,时间与按键协调不好,所以会造成错乱。

最后该延时为中断进行修改,使得时间、日期与按键自动对应上,最后解决了此问题.
2)加入温度的程序后,进行修改时间、日期时相应的LCD1602显示位没有按要求闪动。

解决:由于DS18B20是串行通信数据,只用一个口线传输,在处理采集的模拟信号时需要一定的时间,当把万年历的程序相接入时,会对延时有很大的影响。

所以在调用温度子程序时,先关闭定时器1中断允许,在温度子程序反回时再打开定时器1中断允许。

最终解决了此问题。

五:作品总结
这次实验自己焊接了时钟芯片模块,温度模以及LCD1602显示模块,对其引脚功能有了进一步并且直观地了解。

在连接个模块的时候,经常会出现引脚接不对,液晶屏不显示,按键不能去抖等情况。

在分析解决这些问题后后有了很大的收获,对于单片机有了更深的了解,为学习嵌入式有了扎实的铺垫。

六:参考文献
1.杨子文,单片机原理及应用,西安电子科技大学出版社
2.王法能,单片机原理及应用,北京科学出版社
3.余梦尝,数字电路技术基础,高等教育出版
4.赵春见,王香婷. 基于DS1302的实时日历时钟系统的设计,中国科技论文在线
5.王越明,《电子万年历的设计》. 黑龙江科技信息出版社2004年
6.沈卫红,《基于单片机的智能系统设计与实现》电子工业出版社
7.刘训非,陈希.《单片机技术及应用》清华大学出版社 2010
8.李全利,《单片机原理及接口技术》高等教育出版社
9.周国雄,《单片机应用系统设计精讲》中国铁道出版社
附录总电路图。

相关主题