12864万年历论文.docx
《12864万年历论文.docx》由会员分享,可在线阅读,更多相关《12864万年历论文.docx(57页珍藏版)》请在冰豆网上搜索。
![12864万年历论文.docx](https://file1.bdocx.com/fileroot1/2023-1/5/1f161129-b2bf-4c6b-abf1-e714f6aa0901/1f161129-b2bf-4c6b-abf1-e714f6aa09011.gif)
12864万年历论文
摘要
随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。
由其是单片机技术的应用产品已经走进了千家万户。
数字钟的出现给人们的生活带来的诸多方便。
本文首先描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块的算法和实现过程。
本设计以单片机技术为核心。
本文编写的主导思想是软硬件相结合,以硬件为基础,来进行各功能模块的编写。
本系统以单片机的C语言进行软件设计,增加了程序的可读性和可移植性,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。
系统通过12864点阵式液晶为载体显示数据,所以具有人性化的操作和美观的页面效果。
可以显示时间、公农历日期、星期、温度、节气、生肖、公历节日和播放音乐的功能。
关键词:
单片机;电子钟;液晶显示
Abstract
Withtherapiddevelopmentofelectronictechnology,especiallywiththelargescaleintegratedcircuitsappeartohumanlifebroughtaboutfundamentalchange.Microcontrollertechnologyistheapplicationofitsproductshaveenteredthethousandsofhouseholds.Theemergenceofdigitalclocktothemanypeople'sliveseasy.
Thispaperfirstdescribesthesystemhardwareworks,accompaniedbyasystemblockdiagramtoillustratethis,highlightingtheapplicationofthissystemthehardwareinterfacetechnologyandvariousinterfacemodulefunctionsandworkprocesses,followedbydetaileddescriptionoftheprogramandtheachievementofeachmoduleprocess.Thedesignsingle-chipmicrocomputertechnologyasthecore.Thispaperpreparedbythedominantideologyisacombinationofhardwareandsoftwaretohardware-based,tothepreparationofvariousfunctionalmodules.
ThesystemmicrocontrollerC-languagesoftwaredesigntoincreasethereadabilityandportabilityoftheprogram,inordertofacilitatetheexpansionandchange,thesoftwareisdesignedwithamodularstructure,sothatthelogicofprogramdesignismoresimpleandconcise.System,throughthe12864asacarriermatrixLCDdisplaydataandthereforehaveauser-friendlyoperationandaestheticresultspage.Candisplaythetime,thepublicandtheChinesedate,week,temperature,solarterms,zodiac,calendarfestivalsandmusicfunctions.
KeywordsMCU,electronicclock,calendar,liquidcrystaldisplay
目录
摘要I
AbstractII
第1章绪论1
1.1系统的开发背景1
1.2系统的开发意义1
1.3系统的开发目标1
1.4本章小结1
第2章方案选择3
2.1总体方案论证与选择3
2.2时钟模块的选择3
2.3温度传感器的选择3
2.4显示模块的选择4
2.5键盘模块的选择5
2.6本章小结5
第3章硬件设计6
3.1系统硬件设计及组成6
3.1.1主控模块6
3.1.2时钟模块10
3.1.3温度模块12
3.1.4键盘接口模块13
3.1.5显示模块14
3.1.6闹铃模块16
3.2硬件明细17
3.3本章小结18
第4章软件设计19
4.1引言19
4.2软件的总体设计19
4.3软件的详细设计20
4.3.1主程序20
4.3.2显示函数22
4.3.3温度读取函数26
4.3.4时间、日期读取函数29
4.3.5农历转换函数31
4.3.6生肖显示函数33
4.3.7阳历节日显示函数33
4.3.8二十四节气转换函数函数阳历节日显示函数33
4.4时间、日期设置程序35
4.5播放音乐程序36
4.6闹铃设置程序37
4.7本章小结38
第5章系统调试39
5.1硬件调试39
5.1.1显示电路调试39
5.1.2按键电路调试39
5.1.3温度传感器电路调试39
5.1.4时钟电路调试39
5.1.5闹铃电路的调试40
5.2软件调试40
5.3综合调试41
5.4本章小结41
结论42
致谢44
参考文献45
附录146
附录250
附录351
第1章绪论
1.1系统的开发背景
在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响。
为了更好的利用我们自己的时间,我们必须对时间有一个度量,因此产生了钟表。
钟表的发展是非常迅速的,从刚开始的机械式钟表到现在普遍用到的数字式钟表,即使现在钟表千奇百怪,但是它们都只是完成一种功能——计时功能,只是工作原理不同而已。
在人们的使用过程中,逐渐发现了钟表的功能太单一,没有更大程度上的满足人们的需求。
随着当今世界经济的快速发展和信息化时代的来临,各种各样的小型智能家电产品陆续出现在我们的生活当中。
日历是人们不可或缺的日常用品。
但一般日历都为纸制用品,使用不便,寿命不长。
1.2系统的开发意义
本课题所设计是一种采用智能电子控制和显示技术,结合了电子钟和纸制日历组成了多功能电子时钟,具有读取方便、显示直观、功能多样、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
因此,研究带万年历的多功能电子时钟及扩大其应用,有着非常现实的意义。
1.3系统的开发目标
当今社会电子技术迅速的发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。
由其是单片机技术的应用产品已经走进了千家万户。
多功能电子时钟的出现给人们的生活带来的诸多方便。
它不仅能显示时间、星期、日期还可显示温度、农历、生肖、二十四节气和公历节日,具有很高的实用价值。
1.4本章小结
本章详细的说明了多功能电子时钟的开发背景、开发意义、开发目的。
并具体的阐述了本系统设计的实用前景、商用价值,而且本章还将本系统的功能进行简单的分析。
通过本章的阅读可以使读者对与本次设计的开发有更清晰、更全面的了解。
第2章
方案选择
2.1总体方案论证与选择
方案一:
纯硬件电路系统,各功能采用分离的硬件电路模块实现。
用时序逻辑电路实现时钟功能,用555定时器实现闹钟的设定。
但这种实现方法可靠性差、控制精度低,灵活性小、线路复杂、安装调试不方便,而且方便实现对系统的扩展。
方案二:
采用ATMEL公司及51系列单片机作为系统的控制核心,由于使用了单片机,整个系统可编程,系统的灵活性大大增加了。
经过以上的比较论证,选用方案二来完成项目设计的要求。
2.2时钟模块的选择
方案一:
基本门电路搭建用基本门电路来实现时钟发生器,电路结构复杂,故障系数大,不易调试。
方案二:
由单片机实现时钟功能,单片机内部具有定时器,可方便实现定时功能。
通过计算可知,使定时器每25ms产生一次中断,当产生40次中
断后秒单元将加一,以此类推,从而实现时、分、秒的走时,并加以显示。
但由于系统晶振误差、温漂、中断响应时间的不确定性及定时器重新装载时间常数所带来的误差,决定它不能用来作为时钟的时间基准。
方案三:
专用时钟芯片,目前市场上已有很多实时时钟芯片。
如DS12887、DS1302、DS1307、PCF8563、X1227等,芯片内都集成了时钟/日历功能,给时钟系统设计带来很多方便。
因此计时功能以选专用时钟芯片为宜,时钟模块采用方案三来实现。
系统启动工作后先设定时间,后通过室外光强传感器、室内温度传感器、室内湿度的传感器采集数据,将采集的数据送入中央控制器进行处理,并把采集到的光强、温度、湿度、时间的数据实时的显示出来,在根据设定值与采集值比较来控制百叶窗的开合,并且还将报警值与采集值进行比较来进行报警操作。
2.3温度传感器的选择
方案一:
采用热电阻进行温度信号采集,常用的有Pt100,Pt1000等,它们的阻值随温度变化而变化,通过常用的AD转换求电阻的方法可以很方便的得到温度值。
从理论上讲,利用铂电阻测温,精度可以做得很高,比如Pt1000的精度可达0.05℃,这是数字温度传感器远不及的。
另外,铂电阻测温范围宽,可达数XX之高。
但是由于它阻值较小(最大的仅1KΩ),若串在电路中功耗很大,并且价格较贵。
综合考虑,放弃此方案。
方案二:
采用具有负温系数的热敏电阻(NTC)进行温度信号的采集,常用的有MF58系列等,热敏电阻具有体积小,精度高,响应快,耐振动等优点。
由于热敏电阻具有阻值大,负温度系数的特性,所以与Pt1000等相比,在常温下更节省电能。
而且价格也最为便宜。
通过线性插值,软件修正等方法处理,精度完全可以达到题目要求。
但是尽管热敏电阻阻值较大,目前最大的可以达到500KΩ,但是如果通过分压法经AD转换求温度,功耗仍然很大,即使串联3MΩ电阻,电流仍然在1μA左右,而且通过测量,当串联电阻太大时,不仅降低了测量准确性,而且由于电流太小,受外界干扰很大,数值不稳,综合考虑,放弃此方案。
方案三:
采用数字温度传感器,常用的有DS18B20,LM75A等,它们能将采集到的温度信号直接转换成数字信号,并且方便组网进行多点温度采集,价格相对低廉,功耗也非常低,有很好的温度分辨率,比如DS18B20最大温度分辨率高达0.0625℃,LM75A也高达0.125℃,并且由于传输数字信号,抗干扰能力很强,其中DS18B20精度可以高达±0.5℃,LM75A测量精度略差,为±2℃.并且它们都支持待机模式,经过测量DS18B20待机电流约为0.5μA,与理论最大值0.5μA基本吻合,并且测温范围相对较宽,可达-55℃到125℃,其各方面均可达到题目要求。
综合考虑,选择此方案。
2.4显示模块的选择
方案一:
采用数码管显示。
数码管亮度高、体积小、重量轻,非常适合显示数字,价格也最为便宜,但是由于它工作电流较大、不能显示汉字,显示的信息量有限,若在此题目中应用就会受到很大的限制。
方案二:
采用字符或点阵式液晶显示器,来实现显示功能,液晶显示具有功耗低、轻便防震,不仅可以实现基本的显示信息,而且可以显示丰富的符号指示信息以及文字指示信息,信息量丰富且直观易懂。
而且液晶显示有功耗低,体积小,重量轻,寿命长,不产生电磁辐射污染等优点。
界面友好清晰,操作方便。
目前市场上已经推出多种低电压(3V)供电液晶。
系统采用方案二,设计选用ST7920,具有128*64点阵显示。
2.5键盘模块的选择
方案一:
采用独立式按键电路,每个键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。
但是
当按键较多时占用单片机的I/O数目较多。
方案二:
采用阵列式键盘,此类键盘是采用行列扫描方式,当按键较多时可以降低占用单片机的I/O口数目。
由于本系统所使用的按键不多(4个按键足以满足设置要求)因此采用1*4键盘,采用独立式按键电路。
2.6本章小结
综上所述,本章目的主要根据题目要求是选取了该课设所需的硬件设备,以及设计方式的选择,它追求技术较为成熟、完备、可靠,因此本系统具有一定的开发前景。
第3章
硬件设计
3.1系统硬件设计及组成
按照系统设计功能的要求,初步确定设计系统由主控模块、时钟模块、温度模块、键盘接口模块、显示模块和闹铃模块共6个模块组成,电路系统构成框图如图3-1所示。
主控芯片使用STC89C54,时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片DS1302,温度模块采用美国DALLAS半导体公司最新推出的一种改进型智能温度传感器DS18B20,DS1302作为主要计时芯片,可以做到计时准确。
更重要的是,DS1302可以在很小电流的后备(2.5~5.5V电源,在2.5V时耗电小于300nA)下继续计时。
其软硬件设计简单,可广泛应用于长时间连续显示的系统中。
液晶显示
DS1302
时钟电路
扬声器
键盘接口电路
温度采集器
图3-1多功能电子时钟系统设计硬件框图
3.1.1主控模块
本系统中央控制器采用的单片机STC89C54,复位电路采用上电复位电路。
由于本系统不进行远距离的数据传输通信,所以外接的晶振先12MHz晶振。
系统的最小系统电路图如图3-2所示。
图3-2STC89C54最小系统图
STC89C54有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,片内时钟电路,STC89C54采用两种软件控制其进入省电睡眠模式的静态逻辑工作闲置方式设计,可以用RAM、定时/计数器、串行口和外部中断唤醒睡眠状态而继续工作,在睡眠模式下,RAM被冻结,其他功能全部停止,直至下个外中断触发或硬件复位方可开始运行。
特别是可反复擦写的Flash存储器可有效地降低开发成本。
STC89C54单片机的管脚说明如图3-3所示。
图3-3STC89C54引脚图
(1)主要电源引脚
VCC电源端
②GND接地端
(2)外接晶体引脚XTAL1和XTAL2
XTAL1接外部晶体的一个引脚。
在单片机内部,它是构成片内振荡器的反相放大器的输入端。
当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时发生器的输入端。
②XTAL2接外部晶体的另一个引脚。
在单片机内部,它是上述振荡器的反相放大器的输出端。
采用外部振荡器时,此引脚应悬浮不连接。
(3)
控制或与其它电源复用引脚RST、ALE/
、
和
/VPP
复位输入端。
当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。
②ALE/
当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。
即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。
因此,它可用作对外输出的时钟,或用于定时目的。
然而要注意的是:
每当访问外部数据存储器时,将跳过一个ALE脉冲。
在对Flash存储器编程期间,该引脚还用于输入编程脉冲(
)[6]。
③
程序存储允许(
)输出是外部程序存储器的读选通信号。
当STC89C54由外部程序存储器取指令(或常数)时,每个机器周期两次
有效(既输出2个脉冲)。
但在此期间内,每当访问外部数据存储器时,这两次有效的
信号将不出现。
④
/VPP外部访问允许端。
要使CPU只访问外部程序存储器(地址为0000H~FFFFH),则
端必须保持低电平(接到GND端)。
当
端保持高电平(接VSS端)时,CPU则执行内部程序存储器中的程序。
(4)输入/输出引脚P0.0~P0.7、P1.0~P1.7、P2.0~P2.7和P3.0~P3.7
P0端口(P0.0~P0.7)P0是一个8位漏极开路型双向I/O端口。
作为输出口用时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。
②P1端口(P1.0~P1.7)P1是一个带有内部上拉电阻的8位双向I/O端口。
P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
作输入口时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
③P2端口(P2.0~P2.7)P2是一个带有内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
④P3端口(P3.0~P3.7)P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。
P3口也可作为STC89C54的一些特殊功能,这些特殊功能见表3-1。
表3-1P3端口的特殊功能
端口引脚
兼用功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时器0的外部输入)
P3.5
T1(定时器1的外部输入)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器读选通)
3.1.2时钟模块
时钟系统是由时钟芯片DS1302与一个32.768KHz的晶振所组成。
本系统对系统的时间日期有时、分、秒、星期、年、月、日。
而且在I/O分配的时候只有3个I/O分配为时间的采集,所以需要串行的实时时钟芯片进行时间数据的采集。
本系统选用实时时钟芯片DS1302,此芯片易于控制、价格适中。
具体的时间采集电路如图3-4所示。
图3-4时钟模块设计电路图
DS1302是DALLAS公司推出的涓流充电时钟芯片,它包括实时时钟/日历和31字节的静态RAM。
它经过一个简单的串行接口与微处理器通信。
实时时钟/日历提供秒、分、时、日、周、月和年等信息。
对于小于31天的月和月末的日期自动进行调整,还包括闰年校正的功能。
时钟的运行可以采用24h或带AM(上午)/PM(下午)的12h格式。
DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线:
1、RES复位,2、I/O数据线,3、SCLK串行时钟。
时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信DS1302工作时功耗很低保持数据和时钟信息时功率小于1mW。
DS1302有主电源/后备电源双电源引脚:
VCC1在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份;VCC2在双电源系统中提供主电源,在这种运用方式中,VCC1连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。
DS1302由VCC1或VCC2中较大者供电。
当VCC2大于VCC1+0.2V时,VCC2给DS1302供电;当VCC2小于VCC1时,DS1302由VCC1供电。
DS1302是由DS1202改进而来,增加了以下的特性双电源管脚用于主电源和备份电源供应Vcc1为可编程涓流充电电源,附加七个字节存储器,它广泛应用于电话传真、便携式仪器以及电池供电的仪器仪表等产品领域。
DS1302封装图如图3-5所示。
如图3-5时钟芯片DS1302封装引脚图
下面将主要的性能指标作一综合:
(1)实时时钟具有能计算2100年之前的秒、分、时、日、星期、月、年的能力还有闰年调整的能力。
(2)31个8位暂存数据存储RAM。
(3)串行I/O口方式使得管脚数量最少。
(4)宽范围工作电压2.0至5.5V。
(5)工作电流2.0V时,小于300nA。
(6)读/写时钟或RAM数据时有两种传送方式单字节传送和多字节传送,字符组方式简单3线接口。
(7)与TTL兼容Vcc=5V
(8)可选工业级温度范围-40至+85。
3.1.3温度模块
本系统中的室内温度采集是采用温度传感器DS18B20,这种温度传感器有别传统的温度传感器。
传统的温度传感器是模拟量输出,经A/D转换为数字量后才可以送中央控制器处理。
而DS18B20则自带A/D转换,直接输出数字量。
本系统是将DS18B20采集的数据通过I/O口P3.6送入单片机进行处理。
温度检测电路如图3-6所示。
图3-6温度采集电路图
下面介绍一下DS18B20:
DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,大大简化了电路的复杂度,以及算法的要求。
DS18B20可编程温度传感器有3个管脚。
GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。
VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,工作电压范围3.O~5.5V。
DS18B20封装图如图3-7所示。
图3-7DS18B20封装图
主要特点有:
(1)用户可自设定报警上下限温度值。
(2)不需要外部组件,能测量-55~+125℃范围内的温度。
(3)-10℃~+85℃范围内的测温准确度为±0.5℃。
(4)通过编程可实现9~l2位的数字读数方式,可在至多750ms内将温度转换成12位的数字,测温分辨率可达0.0625℃。
(5)独特的单总线接口方式,与微处理器连接时仅需要一条线即可实现与微处理器双向通讯。
本设计中DS18B20使用外部电源供电,没有使用DS18B20所带有的温度上下限报警,而是仅用DS18B20采集温度转换后送CPU处理。
DS18B20具有很高的精度、简单的接线方式以及低廉的价格,非常符合本设计对温度传感器的要求。
DS18B20在不需要外部组件的情况下,可以测量-55℃~+125℃范围内的温度;本设计中室温的精度为0.1℃,而DS18B20的测温分辨率可达0.0625℃。
3.1.4键盘接口模块
本设计中的键盘输入系统由P1.4-P1.7口和4个微动开关组成,开关的另一端连接到地线上。
当无键按下时P1.4-P1.7口输入为高电平,有键按下时P1口所对应I/O口会被拉低,P1.4-P1.7中有低电平输入。
分别对应时间、日期调整,退出、播放音乐和闹铃开关键的功能。
具体的键盘输入电路如图3-8所示。
图3-8键盘接口模块设计电路图