51单片机的数字万年历的设计与实现

随着科技的不断发展,人们对时间显示的要求已不仅仅局限于以前简单钟表所能实现的功能。数字万年历就可以对当前的年、月、日、时、分、秒进行计时并显示,同时还能显示星期以及当天的温度状况。给人们日常的生活带来极大的方便。基于上述背景,本课题完成了数字万年历的设计。采用STC89C51作为主控制器,利用时钟芯片DS1302生成系统时间、DS18B20采集温度、语音模块WT588D播报语音、OLED液晶屏显示信息。以模块化思想为主,基于C语言编写,可移植性强,便于后期扩展,硬件成本低,适合家庭用户使用。文章最后对数字万年历进行综合调试,实现了万年历的时间日期准确显示,人性化的闹钟设置以及环境温度的实时显示,基本实现了设计目标。
目 录
1. 绪论 1
1.1 课题研究的背景及意义 1
1.2 主要研究目标与内容 1
1.3 系统总体方案 1
1.4 本文章节安排 2
2. 系统硬件电路设计 3
2.1 单片机最小系统硬件设计 3
2.2 矩阵键盘电路设计 4
2.3 液晶显示电路设计 5
2.4 时钟电路设计 7
2.5 温度电路设计 8
2.6 语音模块的电路设计 8
2.7 电源电路 10
3. 系统软件设计 11
3.1 系统软件的总体结构 11
3.2 人机交互模块 12
3.2.1 OLED显示屏显示 12
3.2.2 按键控制 13
3.3 时钟电路程序设计 15
3.3.1 当前时间程序设计 17
3.3.2 阳历转换农历程序设计 18
3.3.3 闹钟程序设计 20
3.4 温度检测程序设计 20
3.5 语音模块程序设计 22
4. 系统调试 24
4.1 系统模块调试 24
4.1.1 单片机的最小系统调试 24
4.1.2 OLED液晶显示模块调试 24
4.1.3测温模块调试 24
4.1.4时钟电路调试 24

 *好棒文|www.hbsrm.com +Q: %3^5`1^9`1^6^0`7^2# 
4.1.5语音模块调试 25
4.2 系统综合调试 26
5. 总结与展望 29
5.1 总结 29
5.2 展望 29
参考文献 31
附录 32
附录一 系统电路原理图 32
附录二 实物图 33
附录三 核心代码 34
致谢 39
1. 绪论
1.1 课题研究的背景及意义
20世纪末,电子信息技术飞速发展,毫无疑问,在其推动下,现代各类电子产品几乎渗透到了社会的各个领域。随着科技发展的不断进步以及全球化日益激烈的竞争,电子产品的性能不断在提高,致使产品更新换代的节奏也不断在加快。这也就造就了人们对各个方面所需物品的要求也是越来越高,比如计时产品。就传统意义上来讲,时钟的作用主要就是能够给人类实时显示当前时间的基本信息,即时、分、秒。然而,在当今这种发展日新月异的时代,老式的钟表功能早已不能满足人们的需求了,多功能电子时钟才是人们所需要的。
二十一世纪的今天,最具代表性的计时产品就是数字万年历。纵观近代世界钟表的发展史,一共经历了三次革命。第一次革命是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时时差从分级缩小到秒级,代表性产品是带有摆或摆轮游丝的机械钟或表。第二次是石英晶体振荡器的应用,走时精度更高的石英电子钟表的发明,使钟表的走时月差从分级缩小到秒级。第三次就是单片机数码计时技术的应用,使计时产品的走时日差可以从分级缩小到1/600万秒,显示方式也从原来的指针式发展为人们日常更为熟悉的夜光数字式。最主要的是,全自动的日历、温度以及其它日常附属信息的显示功能,使万年历较之以往简单的时钟显得更加实用,可以说这更符合消费者的生活需求。因此,对数字万年历的研究与实现有着十分重要的意义。
1.2 主要研究目标与内容
本课题在硬件选择上主要是以51系列单片机为主控制器并结合一些必要的芯片,再通过结合C语言程序的编写将其整合到一起,从而使万年历能具有以下功能:
1)实时显示阳历年、月、日、时、分、秒、星期以及农历日期的信息,并可以通过按键进行闹铃的设置以及农历日期的查询。
2)掉电后时钟芯片正常运行,重新上电后无需校正时钟。
3)定时时间到,闹铃音乐响起;手动按“关”键可使闹铃停止,通过按键切换可返回显示时间界面。
4)实时检测周围温度并进行显示。
5)不仅能整点报时还能通过按键设置实现实时报时。
1.3 系统总体方案
本设计本着能达到数字万年历所需实现的基本功能,系统基本结构框如图11所示。

图11 系统基本结构框图
该方案主要是通过对以单片机为主的主控模块、温度测量模块、时间模块、按键电路模块、液晶显示模块以及语音模块的设计,使其能够实现上述目标中所述的万年历的功能。
1.4 本文章节安排
第一章:绪论,简单介绍数字万年历的研究背景与意义,并阐述本课题的研究目标及主要内容。
第二章:系统的硬件设计,介绍STC89C51 最小系统设计,矩阵键盘电路设计,液晶显示电路设计,温度电路设计,语音模块电路设计
第三章:系统软件设计,介绍了系统软件的总体结构,单片机的初始化,人机交互,液晶显示,按键控制,时间程序,温度检测以及语音播报。
第四章:系统调试,介绍如何正确设置时间,查询时间,设置闹铃以及显示情况等,并对运行的结果进行总结和分析。
第五章:总结与展望,总结本设计的效果,并简要阐述本设计的发展方向。
2. 系统硬件电路设计
本系统的硬件电路设计本着能够达到高效、可靠、简洁等要求,主控芯片选择了体积小、成本低、功能强的STC89C51单片机。而对于时间的读写控制则选用了DALLAS公司推出的涓流充电时钟芯片DS1302,不仅计时精准,而且功耗低。硬件系统总体设计框图如图21所示。

图21 硬件系统设计框图
2.1 单片机最小系统硬件设计
STC89C51单片机的最小系统主要由电源、地、振荡电路以及复位电路组成。时钟电路主要用于产生单片机在工作时所需的时钟控制信号。在51单片机内部存在一个用于构成振荡器的高增益反向放大器, XTAL1引脚为其输入端,XTAL2引脚为其输出端。在这两个引脚间跨接一个石英晶体和两个微调电容,则可构成一个稳定的自激振荡器。需要注意的是,电路中C1和C2两个电容的选择很重要。该电容的大小会影响振荡器频率的高低及振荡的稳定性和起振的速度,其取值大约在数皮法到数十皮法左右(选择电容值不宜过高,否则电路将无法起振)。晶体振荡频率的范围通常是在1.2~12MHz,晶体的频率越高,系统的时钟频率越高,单片机的运行速度也就越快。同理,运行速度越快对存储器速度的要求也就越高。需要注意的是,在线路排版过程中,晶振和电容组成的电路要尽可能地靠近单片机,以减少寄生电容的产生,这样可以更好的保证振荡器工作的稳定性与可靠性。为了减小温漂,在选择器件的过程中应采用温度稳定性能较好的电容,在此电路中采用的是两个33pF的钽电容。STC89C51常选择振荡频率为6MHz或12MHz的石英晶体,在此电路中选用的是11.0592MHz的石英晶体。单片机最小系统原理图如图22所示。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jxgc/zdh/3124.html

好棒文