河南工程学院毕业设计1摘要本文介绍了一款基于AT89S51单片机控制的带有温度显示的电子钟的设计,通过多功能数字钟带有温度的设计思路,详细叙述了系统硬件、软件的具体实现过程。论文重点阐述了数字钟硬件中MCU模块、温度模块、时钟模块、显示模块和相关控制模块等的模块化设计与制作;软件同样采用模块化的设计,包括中断模块、、温度模块、时间调整模块设计,并采用简单流通性强的C语言编写实现。本设计实现了时间的修改功能和年、月、日和星期的显示和温度显示功能。关键词:AT89S51单片机数字钟温度显示河南工程学院毕业设计IIAbstractThispaperintroducedthedesignofdigitalclockbasedonSCMofAT89S51,thespecificprocessofhowthesystemhardwareandsoftwareachievedweredetaileddescriptionthroughthedesignofmultifunctiondigitalclock.Themodulardesignandproduction,whichconsistedofMCUmodule,voicemodule,clockmoduleandtheassociatedcontrolmodule,weremainlyrecounted;Aswellashardwaredesigning,softwaredesignusethesamemethod,consistssuspensionmodule,alarmclockmodule,voicemodule,timeadjustmodule,andthatusetheClanguagetoachievebecauseofitssimpleandstrongnegotiability.Inthisdesignthefunctionsoftimeandalarmclockrunandchange,voicebroadcast,functionsoftheyear,month,dayandweekdisplayhavebeenachieved.Andbycomparingtheactualclock.Keywords:AT89S51MicrocontrollerDigitalClocktheDisplayofTemperature河南工程学院毕业设计1目录前言..............................................................1第一章系统实现功能、设计方案论证及芯片介绍...............2第一节系统要求实现功能.........................................2第二节设计方案论证..............................................2第三节芯片介绍..................................................4一、DS18B20芯片介绍.........................................4二、DS1302芯片介绍..........................................9第二章电路硬件设计及分析.................................13第一节时钟电路...............................................13第二节复位电路................................................13第三节DS1302时钟电路..........................................14第四节DS18B20温度计电路.......................................14第五节键盘电路................................................15第六节显示电路................................................16第七节按键提示电路............................................17第三章软件设计................................................18第一节主函数流程图............................................18第二节18B20温度计流程图......................................18第三节键盘电路流程图..........................................20第四节定时器T0中断服务程序流程图.............................21第四章结束语..................................................22附录1电路原理图...............................................23附录2主程序清单..............................................24参考文献........................................................36致谢...........................................................37河南工程学院毕业设计2前言单片微型计算机是随着超大规模集成电路技术的发展而诞生的,由于它具有体积小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。本文主要介绍由单片机控制的带有温度显示的电子钟的设计。随着人们生活水平的日益提高,人们对生活的要求越来越高,原有的事物已经不能满足人们的生活需求了,一些带有新功能的事物已经在慢慢的取代旧事物。就像电子钟一样,人们用电子钟不仅仅只是看时间了,人们还需要看温度了。越来越多的新功能更贴近人们的生活了,所以也越来越受人们所喜欢。带有温度的的电子钟可以使人们随时都可以了解温度的变化。河南工程学院毕业设计3第一章系统实现功能、设计方案论证及芯片介绍第一节系统要求实现功能(1)万年历(2)温度显示(3)三键调时(设置键,上调键,下调键)(4)按键蜂鸣器提示第二节设计方案论证方案一用主芯片为AT89C51的单片机控制实现,使用单片机内部的定时计数器实现时间的设定,使用按键进行时间的调整和定时,按键有蜂鸣器提示,温度传感器使用DALLAS公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度转化成串行数字信号(提供9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。显示时间和温度使用数码管显示。方案1系统结构框图如图1-1所示。AT89C51单片机DS18B20按键数码管显示图1-1方案1系统结构框图方案二用主芯片为AT89C51的单片机控制实现,为了满足单片机系统的实时控制的需求,采用实时钟芯片DS1302,使用按键进行时间的调整和定时,按键蜂鸣器提示,温度传感器使用普通的温度传感器,由于温度传感器采集的数据为模拟量,又因为单片机AT89C51内部没有集成模数转换器,需要在控制系统的外部使用A/D转换装置,另外系统还应该把采集来的数据进行信号处理,显示温度和时间使用LCD1602显示。方案2系统结构框图如图1-2所示。河南工程学院毕业设计4AT89C51单片机温度传感器信号调理电路AD转换电路LCD1602显示按键时钟芯片DS1302图1-2方案2系统结构框图方案三用主芯片为AT89C51的单片机控制实现,为了满足单片机系统的实时控制的需求,采用实时钟芯片DS1302,使用按键进行时间的调整和定时,按键有蜂鸣器提示,温度传感器使用DALLAS公司生产的单总线式数字温度传感器。显示时间和温度使用LCD1602显示。方案3系统结构框图如图1-3所示。AT89C51单片机DS18B20按键时钟芯片DS1302LCD1602显示图1-3方案3系统结构框图方案选择方案一直接使用单片机内集成的定时器,产生定时节拍,编制河南工程学院毕业设计5软件计数器,进行节拍技术,理论上讲,不但能够完成秒表设计,还能够实现分钟、刻钟、小时的实时计时功能,在此基础上,如果加上足够精确的误差时间补偿处理,甚至可以实现日、星期、月、年等日历功能。但使用片内定时器有以下几个问题:1、时间补偿片内定时器采用中断方式提供计时节拍,中断的实质是随机程序切换,那么,中断响应时间是不可精确预测的。这样,必然会导致计时节拍的时间误差,在计时时间较短的情况下,比如1~99s计时,可以采用一些软件措施进行误差补偿,但当系统所需要的计时时间较长时,比如进行年、月、日的日历计时,定时中断误差扥积累就会很大,无法满足时间精度的要求。因此,在需要日历、时钟的场合,片内定时器的作用有限。片内定时器只适合于单片机短时间计时的要求。2、时钟维持使用片内定时器进行计时的时候,单片机始终要处于工作状态。才能维持计时时间,一旦停机或进入待机状态,开机后,计时时间就需要重新设定。在单片机系统中,有时,需要维持一个时钟,对控制工作进行时间标定。不管单片机系统开机、关机还是待机,系统时钟要始终维持。为了满足单片机系统的实时钟需求,最可靠的方法是采用实时钟芯片DS1302。温度的数据采集如果是一般的温度传感器,需要对信号进行处理,另外还需要模数转换装置,如果采用的是数字温度传感器18B20,可以直接将采集的信号转化为数字信息供单片机控制,这样不仅节约了成本,还提高了系统的可靠性和稳定性。所以本设计采用的是方案三。第三节芯片介绍一、DS18B20芯片介绍DS18B20是DALLAS公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、搞干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度转化成串行数字信号(提供9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。它具有3引脚TO-92小体积封装形式,温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串河南工程学院毕业设计6行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生,多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。1、DS18B20外形及引脚说明DS18B20外形及引脚如图1-4所示。图1-4DS18B20外形及引脚图在TO-92和SO-8的封装中引脚有所不同,具体差别请查阅PDF手册,在TO-92封装中引脚分配如下:(1)GND:地;(2)DQ:单线运用的数据输入输出引脚;(3)VDD:可选的电源引脚。2、DS18B20工作过程及时序DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减计数到0河南工程学院毕业设计7时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。初始时,计数器1预置的是与-55℃相对应的一个预置值