基于STC89C52单片机的多功能电子万年历.docx

上传人:李司机 文档编号:6680087 上传时间:2023-12-24 格式:DOCX 页数:45 大小:239.24KB
返回 下载 相关 举报
基于STC89C52单片机的多功能电子万年历.docx_第1页
第1页 / 共45页
基于STC89C52单片机的多功能电子万年历.docx_第2页
第2页 / 共45页
基于STC89C52单片机的多功能电子万年历.docx_第3页
第3页 / 共45页
基于STC89C52单片机的多功能电子万年历.docx_第4页
第4页 / 共45页
基于STC89C52单片机的多功能电子万年历.docx_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《基于STC89C52单片机的多功能电子万年历.docx》由会员分享,可在线阅读,更多相关《基于STC89C52单片机的多功能电子万年历.docx(45页珍藏版)》请在三一办公上搜索。

1、摘要本文介绍了基于STC89C52单片机的多功能电子万年历的硬件结构和软硬件设计方法。本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。系统以STC89C52单片机为控制器,以串行时钟口历芯片DS1302记录口历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。温度采集选用DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602A液晶显示模块,可以在LCD上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、本钱低廉等诸多优点,具有广阔的市场前景。关键字:万年历温度计液晶显示

2、ABSTRACTThispaperintroducesthebasedonSTC89C52multi-functionelectroniccalendarofthehardwarestructureandsoftwareandhardwaredesignmethod.Thisdesignbydatadisplaymodule,temperatureacquisitionmodule,timeprocessingmoduleandsetmodulefourmodules.WithSTC89C52single-chipmicrocomputersystemforthecontrollertoser

3、ialclockcalendarchipDS1302recordcalendarandtime,itcanbetodateandtime,minutesandsecondsforthetime,alsohasaleapyearcompensationandotherfunctions.TemperaturegatheringchooseDS18B20chip,calendarbyusingobjectdigitaldisplay,datashowedthatthe1602Aliquidcrystaldisplaymodule,canbeintheLCDshowsatthesametimeyea

4、r,month,day,Sunday,when,minutesandseconds,stillhavetimecalibrationetc.Function.Thiscalendarhasreadtheconvenient,directdisplay,functionaldiversity,simplecircuit,lowcost,andmanyotheradvantages,hasabroadmarketprospect.Keywords:PerpetualCalendarthermometerLCDdisplay目录摘要IAbstracti前言II1绪论O1. 1课题研究的背景O1.2课

5、题的研究目的与意义O1.3课题解决的主要内容O2系统的方案设计与论证12. 1单片机芯片设计与论证13. 2按键控制模块设计与论证14. 3时钟模块设计与论证25. 4温度采集模块设计与论证26. 5显示模块模块设计与论证23系统硬件的设计37. 1STC89C52单片机38. 2时钟芯片DS1302接口设计与性能分析69. 3温度芯片DS18B20接口设计与性能分析910. 4LCD显示模块113. 5按键模块设计124. 6复位电路的设计124系统的软件设计134.1 主程序流程图的设计134. 2程序设计145系统的机体设计195. 1系统的模块组成196. 2功能实现19结论21参考文

6、献22致谢23附录24刖S随着科技的快速开展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。目前,单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来了诸多方便。随着微电子技术的高速开展,单片机在国民经济的个人领域得到了广泛的运用。单片机以体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。单片机单芯片的微小体积和低的本钱,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元

7、、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具,于是基于单片机的醒目而时尚的电子版万年历顺应而生。基于单片机的电子万年历结合了时钟和Fl历的功能,将其二者融为一体,在显示时间的同时还能显示日期和年、月,它主要是通过单片机来读取时钟芯片的时间、日期,然后送给显示设备显示出来。而电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。因为它的有很好的开放性和可发挥性,因此对作者的要求比拟高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。数字显示

8、的日历钟己经越来越流行,特别是适合在家庭居室、办公室、大厅、会议室、车站和广场等使用,壁挂式LED数码管显示的日历钟逐渐受到人们的欢送。LED数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可以扩展出多种功能。1绪论1.1课题研究的背景随着科技的快速开展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用STC89C52单片机作为核心,功耗小,能

9、在3V的低压工作,电压可选用35V电压供电.此万年历具有读取方便、显示直观、功能多样、电路简洁、本钱低廉等诸多优点,符合电子仪器仪表的开展趋势,具有广阔的市场前景。12课题的研究目的与意义二十一世纪是数字化技术高速开展的时代,而唯片机在数字化高速开展的时代扮演着极为重要的角色。电子万年历的开发与研究在信息化时代的今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共场地等场合,可以说普及人们生活的每一个角落。所以说电子万年历的开发是国家之所需,社会之所需,人民之所需。由于社会对信息交换不断提高的要求及高新技术的逐步开展,促使电子万年历开展并且投入市场得到广泛应用

10、。13课题解决的主要内容本课题所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内容包括以下几个方面:(1)选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、抗断电的器件。(2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。(3)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。(4)根据硬件电路图,在开发板上完成器件的焊接。(5)根据设计的硬件电路,编写控制STC89C52芯片的单片机程序。(6)通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。(7)在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等

11、因素。2系统的方案设计与论证单片机电子万年历的制作有多种方法,可供选择的器件和运用的技术也有很多种。所以,系统的总体设计方案应在满足系统功能的前提下,充分考虑系统使用的环境,所选的结构要简单使用、易于实现,器件的选用着眼于适宜的参数、稳定的性能、较低的功耗以及低廉的本钱。系统的功能往往决定了系统采用的结构,经过本钱,性能,功耗等多方面的考虑决定用三个8位74LS164串行接口外接LED显示器,RESPACK-8对单片机STC89C52进行供电,时间芯片DS1302连接单片机STC89C52。从而实现电子万年历的功能。按照系统设计的要求,初步确定系统由电源模块、时钟模块、显示模块、键盘接口模块、

12、温度测量模块和闹钟模块共六个模块组成,电路系统构成框图如图1所示。图1硬件电路框图1. 1单片机芯片设计与论证方案1:采用AT89C51芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能用于3V的超低电压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的屡次拔插会对芯片造成一定的损坏。方案二:采用STC89C52芯片作为硬件核心,采用FlashROM,能以3V的超低电压工作,而且与MCS-51系列单片机完全兼容,该芯片内部存储器为8KBROM存储

13、空间。同样具有STC89C52的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片屡次拔插,所以不会对芯片造成损坏。由于STC89C52内部具有8KBR0M存储芯片并且支持ISP在线编程,因此采用STC89C52作为主控芯片。2. 2按键控制模块设计与论证方案一:采用矩阵键盘,由于按键多可实现数值的直接键入,但在系统中需要CPU不间断的对其端口扫描。方案二:采用独立按键,查询简单,程序处理简单,可节省CPU资源。因系统中所需按键不多,为了释放更多的CPU占有时间,操作方便,故采用方案二。3. 3时钟模块设计与论证方案一:直接采

14、用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约本钱,但是,实现的时间误差较大。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM作为数据暂存区,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA.由于DS1302时钟芯片计数时间精度高,而且具有闰年补偿功能等优点,故采用方案二。2. 4温度采集模块设计与论证方案一:采用温度传感器(如热敏电阻或AD590),再经AD转换得到数字信号,精度较准,但价格昂贵,电路

15、较复杂。方案二:采用数字式温度传感器DS18B20,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式,但准确度不高,误差最大达2度。因为用DS18B20温度芯片,采用单总线访问,降低本钱、降低制作难度且可节省单片机资源,故采用方案二。3. 5显示模块模块设计与论证方案一:采用静态显示方法,静态显示模块的硬件制作较复杂及功耗大,要用到多个移位存放器,但不占用端口,只需两根串口线输出。方案二:采用动态显示方法,动态显示模块的硬件制作简单,段扫描和位扫描各占用一个端口,总需占用单片机14个端口,采用间断扫描法功耗小、硬件本钱低及整个硬件系统体积相对减小。方案三:采

16、用LCD的方法,具有硬件制作简单可直接与单片机接口,显示内容多,功耗小,本钱低等优点,LCM1602可显示32个字符,采用LCD的缺点是亮度不睇比拟以上三种方案:方案一硬件复杂体积大、功耗大;方案二硬件简单、功耗小;方案三硬件简单,显示内容多,功耗小,本钱低等。本系统设计要求到达功耗小、体积小、本钱低,显示信息多等要求,权衡三种方案,选择方案三。3系统硬件的设计根据上述所确定的系统方案设想,下面进行系统硬件电路的具体设计,系统的具体设计在下面会详细介绍。4. 1STC89C52单片机本系统采用的是美国ATMEL公司生产的STC89C52单片机,首先我们来熟悉一下STC89C52单片机的外部引脚

17、和内部结构。1单片机的引脚功能STC89C52单片机有40个引脚。 Vcc:电源电压+5V GND:接地 PO口:PO口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个HL逻辑门电路,对端口写“1可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线服用,在访问期间激活内部上拉电阻。在Flash编程时,PO口接收指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉电阻。 Pl口:Pl口是一个带内部上拉电阻的8位双向I/O,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写1,通过内部

18、的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。Flash编程和程序校验期间,Pl接收低8位地址。 P2口:P2口是一个带内部上拉电阻的8位双向I/O,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(MoVXRi指令)时,P2口线

19、上的内容也即特殊功能存放器(SFR)区中P2存放器的内容),在整个访问期间不改变。Flash编程和程序校验期间,P2亦接收低高位地址和其他控制信号。 P3口:P3口是一组带内部上拉电阻的8位双向I/O,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入1时,它们被内部的上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一股的I/O口线外,更重要的用途是它的第二功能,见表1所不:P3口还接收一些用于FIaSh闪速存储器编程和程序校验的控制信号。表1P3口的第二功能图端口引脚第二功能PXORXD(串行输入口)P3.1TXD(串行

20、输出口)P3.2INTO(外中断0)Pl3INTl外中断1)P3.4TO(定时/计时器0外部输入)P3.5Tl(定时/计时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通) RST:夏位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。TOT溢出将使引脚输出高电平,设置SFRAUXR的DISRTO地址8EH)可翻开或关闭该功能。DISRTO位缺省为RESET输出高电平翻开状态。 ALE/PR0G:当访问外部程序存储器或数据存储器时,ALE(地址锁存器允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的

21、1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FlaSh存储器编程期间,该引脚还用于输入编程脉冲(PROG)o如有必要,可通过多特殊功能存放器(SFR)区中的8EH单元的Do位置,可禁止ALE操作。该位置后,只有一条MoVX和MoVC指令ALE才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。 PSEN:程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次

22、有效的PSEN信号。 EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为OooOH一FFFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LBl被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU那么执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的变成电压Vpp. XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。STC89C52单片机内部结构2. STC89C52单片机与MCS-51完全兼容 看门狗(WDT):WDT是一种需要软件控制的复位方式。WDT由13位计数器和特殊功

23、能存放器中的看门狗定时器复位存储器(WDTRST)构成。WDT在默认情况下无法工作;为了激活WDT,用户必须往WDTRST存放器(地址:0A6H)中依次写入OIEH和OEIH。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了赁位(硬件复位或WDT溢出复位),没有方法停止WDT工作。当WDT溢出,它将驱动RSR引脚输出一个高电平。 可编程串口(UART)在STC89C52中,UART的操作与STC89C52和AT89C52样。STC89C52系列单片机的串行通信口可以工作于同步和异步通信方式。当工作于异步方式时,它具有全双工的操作功能,也就是说,它可

24、以同时进行数据的发送和接收。串行口内的接收器采用的是双缓冲结构,能够在接收到的第一个字节从接收存放器读走之前就开始接收第二个字节(当然,如果第二个字节接收完毕,而第一个字节仍然没有被读走,那将会丢掉一个字节)。串行口的发送和接收操作都是通过特殊功能存放器中的数据缓冲存放器SBUF进行的,但在SBUF的内部,接收存放器和发送存放器在物理结构上是完全独立的。如果将数据写入SBUF,数据会被送入发送存放器准备发送。如果执行SBUF指令,那么读出的数据一定来自接收缓存器。因此,CPU对SBUF的读写,实际上是分别访问2个不同的存放器。这2个存放器的功能决不能混淆。 振荡电路:STC89C52系列单片机

25、的内部振荡器,由一个单极反相器组成。XTALl反相器的输入,XTAL2为反相器的输出。可以利用它内部的振荡器产生时钟,只要XTALI和XTAL2引脚上一个晶体及电容组成的并联谐振电路,便构成-个完整的振荡信号发生器,此方式称为内部方式。另一种方式由外部时钟源提供一个时钟信号到XTALl端输入,而XTAL2端浮空。在组成一个单片机应用系统时,多数采用这种方式,这种方式结构紧凑,本钱低廉,可靠性高。在电路中,对电容Cl和C2的值要求不是很严格,如果使用高质的晶振,那么不管频率为多少,Cl、C2通常都选择30pF 定时/计数器:STC89C52单片机内含有2个16位的定时器/计数器。当用于定时器方式

26、时,定时器的输入来自内部时钟发生电路,每过一个机器周期,定时器加1,而一个机器周期包含有12个振荡周期,所以,定时器的技术频率为晶振频率的1/12,而计数频率最高为晶振频率的1/24。为了实现定时和计数功能,定时器中含有3种根本的存放器:控制存放器、方式存放器和定时器/计数器。控制存放器是一个8位的存放器,用于控制定时器的工作状态,方式存放器是一个8位的存放器,用于确定定时器的工作方式,定时器/计数器是16位的计数器,分为高字节和低字节两局部。 RAM:高于7FH内部数据存储器的地址是8位的,也就是说其地址空间只有256字节,但内部RAM的寻址方式实际上可提供384字节。的直接地址访问同一个存

27、储空间,高于7FH的间接地址访问另一个存储空间。这样,虽然高128字节区分与专用寄器,即特殊功能存放器区的地址是重合的,但实际上它们是分开的。究竟访问哪一区,存是通过不同的寻址方式加以区分的。 SFR:SFR是具有特殊功能的所有存放器的集合,共含有22个不同存放器,它们的地址分配在80HFFH中。虽然如此,不是所有的单元都被特殊功能存放器占用,未被占用的单元,其内容是不确定的。如对这些单元进行读操作,得到的是一些随机数,而写入那么无效,所以在编程时不应该将数据写入这些未确定的地址单元中,特殊功能存放器主要有累加器ACC、B存放器、程序状态字存放器PSW、堆栈指针SP、数据指针DPTR、I/O端

28、口、串行口数据缓冲器SBUF、定时器存放器、捕捉存放器、控制存放器。 中断系统:STC89C52单片机有6个中断源,中断系统主要由中断允许存放器IE、中断优先级存放器IP、优先级结构和一些逻辑门组成。IE存放器用于允许或禁止中断;IP存放器用于确定中断源的优先级别;优先级结构用于执行中断源的优先排序;有关逻辑门用于输入中断请求信号。在整个中断响应过程中CPU所执行的操作步骤如下:CD完成当前指令的操作(2)将PC内容压入堆栈(3)保存当前的中断状态(4)阻止同级的中断请求(5)将中断程序入口地址送PC存放器(6)执行中断效劳程序(7)返回3. 2时钟芯片DS1302接口设计与性能分析3. 2.

29、1DS1302性能简介DS1302是DaIIaS公司生产的一种实时时钟芯片。它通过串行方式与单片机进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整;它还拥有用于主电源和备份电源的双电源引脚,在主电源关闭的情况下,也能保持时钟的连续运行。另外,它还能提供31字节的用于高速数据暂存的RAM。DS1302时钟芯片内主要包括移位存放器、控制逻辑电路、振荡器。DS1302与单片机系统的数据传送依靠RST,I/O,SCLK三根端线即可完成。其工作过程可概括为:首先系统RST引脚驱动至高电平,然后在SCLK时钟脉冲的作用下,通过I/O引脚向D

30、S1302输入地址/命令字节,随后再在SCLK时钟脉冲的配合下,从I/O引脚写入或读出相应的数据字节。因此,其与单片机之间的数据传送是十分容易实现的,DS1302的引脚排列及内部结构图如图2:DS1302引脚说明:Xlf X232. 768kHz晶振引脚GND地线RST复位端I/O数据输入/输出端口SCLK串行时钟端口vCCI SCLKIQRSTDS13O28 PIN DIP (300 MIL)VCClVCC2慢速充电引脚 电源引脚图2 DS1302管脚图2 DS1302的引脚3.2.2DS1302接口电路设计1时钟芯片DS1302的接口电路及工作原理:图3DS1302与MCU接口电路图3为D

31、S1302的接口电路,其中VCCl为后备电源,Vcc2为主电源。VCCl在单电源与电池供电的系统中提供低电源并提供低功率的电池备份。VCC2在双电源系统中提供主电源,在这种运用方式中VCCl连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。DS1302由VCCl或VCC2两者中较大者供电。当VCC2大于VCC1+0.2V时,VCC2给DS1302供电。当VCC2小于VCCl时,DS1302由VCCl供电。DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置0,接着把RST端置“1,最后才给予SCLK脉冲;读/写时序如下列图5所示。表T为DS1302的控制字,此控制字的

32、位7必须置1,假设为0那么不能对DS1302进行读写数据。对于位6,假设对时间进行读/写时,CK=O,对程序进行读/写时RAM=1。位1至位5指操作单元的地址。位0是读/写操作位,进行读操作时,该位为1;进行写操作时,该位为0。控制字节总是从最低位开始输入/输出的。表-2为DS1302的日历、时间存放器内容:CH是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行JWP是写保护位,在任何的对时钟和RAM的写操作之前,“WP必须为0。当WP为1时,写保护位防止对任一存放器的写操作。2、DS1302的控制字DS1302的控制字如表2所示。控制字节的

33、高有效位(位7)必须是逻辑1,如果它为0,那么不能把数据写入DS1302中,位6如果0,那么表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为1表示进行读操作,为0表示进行写操作。控制字节总是从最低位开始输出。表2DS1302的控制字格式1RAM/CKA4A3A2AlAORD/WR3、数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。如下列图4所示。图4DS1302

34、读/写时序图4、DS1302的存放器AMDS1302有12个存放器,其中有7个存放器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间存放器及其控制字见表3,表3DS1302的日历、时间存放器写存放器读存放器Bit7Bit6Bit5Bit?Bit3Bit2BitlBitO80H81HCH0秒秒82H83H10分分Mll85H12/24010时时AM/PM86H87H0010088H89H00010月月OO8EH8EHWP0OOOOOOO星期8H 8BH8CH 8DHIO年年此外,DS1302还有年份存放器、控制存放器、充电存放器、时钟突发存放器及与RAM相关的存放器等。时钟突发存放器可

35、一次性顺序读写除充电存放器外的所有存放器内容。DS1302与RAM相关的存放器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为COHFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM存放器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。3.3温度芯片DS18B20接口设计与性能分析3. 3.1DS18B20性能简介1. DS18B20的主要特性DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改良型智能温度传感器,与传统的热敏电阻等元件相比,它能直接读出被测温度,并且可根据实际要求通过

36、简单的编程实现9-12位的数字值读数方式。现场温度直接以一线总线的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V5.5V的电压范围,使系统设计更灵活、方便。其性能特点可归纳如下:1独特的单线接口仅需要一个端口引脚进行通信;2测温范围在-55C到125,分辨率最大可达0.0625C;3采用了3线制与单片机相连,减少了外部硬件电路;4零待机功耗;5可通过数据线供电,电压范围在3.0V-5.5V;6用户可定义的非易失性温度报警设置;7报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器

37、件;8负电压特性,电源极性接反时,温度计不会因发热烧毁,只是不能正常工作。2. DS18B20工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。DS18B20测温原理如图5所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器U高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度存放器被预置在一55C所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器I的预置值减到O时,温度存放器的值将加1,计数器

38、1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度存放器值的累加,此时温度存放器中的数值即为所测温度。图5中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。图5 DS18B20测温原理DS18B20接口电路设计如6图所示,该系统中采用数字式温度传感器DS18B20,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,用P3.7与DS18B20的DQ口连接,VCC接电源,GND接地。图6温度传感器DS18B20接口电路DS18B20的工作时序图7复位时序图图8读时序图1、复位时

39、序图1、读时序图3、写时序图图9写时序图3、工作时序D总线时序图10总线时序2)写周期时序图11写周期时序3)起始/停止时序图12起始/停止时序4)应答时序图13应答时序5)立即地址读时序图14立即地址读时序3. 4LCD显示模块3. 4.1LCM1602的特性及使用说明1LCMl602的接口信号说明如表4:表4LCM1602的接口信号编号引脚符号功能说明编号引脚符号功能说明1VSS电源地9D2DATA1/02VDD电源正极10D3DATA1/03VL液晶显示偏压信号11D4DATA1/04RS数据/命令选择端(H/L)12D5DATAI/O5R/W读/写选择端(H/L)13D6DATA1/0

40、6E使能信号14D7DATA1/07DODATAI/O15BLA背光正极8DlDATAI-O16BLK背光负极2、根本操作时序如下:1)读状态:RS=L,RW=H,E=H2)写指令:RS=L,RW=L,D0D7=指令码,E=高脉冲3)读数据:RS=H,RW=H,E=H4)写数据:RS=H,RW=L,DOD7=数据,E=高脉冲3、初始化设置1)显示模式设置如表5:表5显示模式设置指令码功能00111000设置16*2显示,57点阵,8位数据接口2)显示开/关及光标设置如表6:表6显示开/关及光标设置指令码功能00001DCB开显示:D=O关显示C=I显示光标;C=O不显示光标B=I光标闪烁;B=

41、O光标不显示000001NSN=I当读或写一个字符后地址指针加一,且光标加一N=O当读或写一个字符后地址指针减一,且光标减一S=I当写一个字符,整屏显示左移(N=I)3.4.2LCM1602与MCU的接口电路1.CD的D0D7分别接单片机的的P2口,作为数据线,因为PO口内部没有上拉电阻,所以外部另外加上IOK的上拉电阻;P1.0-P1.2分别接LCD的RS、RW、E三个控制管脚;RVl用来调节LCD的显示灰度;BLK、BLA为背光的阴极和阳极,接上相应电平即点亮背光灯。4. 5按键模块设计本系统用到了5个按键,其中一个用作系统手动复位,另外4个采用独立按键,该种接法查询简单,程序处理简单,可

42、节省CPU资源,按键电路如图15所示,4个独立按键分别与STC89C52的P3.4、P3.5、P3.6、P3.7接口相连。图15按键电路对以上4个按键作简要说明:S4SET键,S3UP键,S2DOWN键,S5OUT/STOP键。SET键:按下SET键进入时间校准状态,按一下进入秒调整,两下分调整,依此类推可进行各年月日,时分秒以及星期的校准;UP键:当SET键按下时,UP进行SET选定项(如:小时)的加操作;DoWN键:当SET键按下时,DoWN进行SET选定项(如:小时)的减操作;OUT键:当OUT键按下时,此键功能为退出校准功能,进入下一模式,显示温度值和上下限的温度值。3.6复位电路的设

43、计当STC89C52单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就完成了复位操作。如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序。因此要求单片机复位后能脱离复位状态。而本系统选用的是12MHZ的晶振,因此一个机器周期为1弊,那么复位脉武W最小应为2s。在实际应用系统中,考虑到电源的稳定时间,参数漂卜振稳定时间以及复位的可靠性等因素,必须有足够的余量。根居应目的要求,复位操作通常有两种根本形式:上电复位、手动复位。上电复立要后接通电源后,自动实现复位操作。STC89C52单片机的上电复位POfPcverOnReset)实质上就是上电延时复位,也

44、就是在上电延时期间把单可备定在复位状态上。在单片机每次初始加电时,首先投入工作的功能部件强复位电路。复位电路把单片机锁定在复位状态上并且维持一个延时(记作TRST),以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳己之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间;?单片机开始进入运行状态之前,还要至少推迟2个机器周期的延时。本设十采用上电且开关复位电路,如图16所示上电后,由于电容充电,使叫工d续二段高电平时间。当单片机己在运行之中时,按下复位键也能使RST持城段时间的高电平,从而实现上电且开关复位的操作。通常选择C=IO30畔,本设计采用的电容值为10F的电容和电阻为

45、4.7K的电阻。图16复位电路4系统的软件设计电子万年历的功能是在程序控制下实现的。该系统的软件设计方法与硬件设计相对应,按整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来。这样有利于程序修改和调试,增强了程序的可移植性。本系统的软件局部主要要进行公历计算程序设计,温度测量程序设计,按键的扫描输入等。程序开始运行后首先要进行初始化,把单片机的各引脚的状态按程序里面的初始化命令进行初始化,初始化完成后运行温度测量程序,读取出温度传感器测量出来的温度,然后运行公历计算程序,得到公历的时间、日期信息,再运行按键扫描程序,检测有无按键按下,如果没有按键按下那

46、么直接调用节日计算程序,根据得到的公历日期信息计算出节日,如果有按键按下那么更新按键修改后的变量后送给节日计算程序,由节日计算程序根据修改后的变量计算出对应的节假日,计算完成后运行显示程序,显示程序将得到的温度数据、公历信息、节假日信息送给对应的数码管让其4. 1主程序流程图的设计主程序流程图如图17:图17主程序流程图5. 2程序设计5.2. 1DS1302读写程序设计本系统的时间读取主要来源于单片机对DS1302的操作,在硬件上时钟芯片DS1302与单片机的连接需要三条线,即SCLK、1/0(6)、RST(5),具体连接图见系统硬件设计原理图。读取写程序设计如下:sbitclk=Pl3;dsl302时钟线定义sbitio=P14;数据线sbitrst=Pl5;复位线秒分时日月年星期ucharcodewrite_add=0x80,0x82,0x84,0x86,0x88,0x8c,0x8a;写地址ucharcoderead_add=0x81,0x83,0x85,0x87,0x89,0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号