基于STC89C52单片机的温度测量与警报电路设计说明_第1页
基于STC89C52单片机的温度测量与警报电路设计说明_第2页
基于STC89C52单片机的温度测量与警报电路设计说明_第3页
基于STC89C52单片机的温度测量与警报电路设计说明_第4页
基于STC89C52单片机的温度测量与警报电路设计说明_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEXXII/NUMPAGES22摘要摘要:在日常生活与工业生产过程中,经常要用到温度的检测与控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。传统的测温元件有热电偶和二电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。我们用一种相对比较简单的方式来测量。采用美国DALLAS半导体公司推出的一种改进型智能温度传感器DS18B20作为检测元件,温度围为-55~125ºC,最高分辨率可达0.0625ºC。DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。基于STC89C52单片机的温度测量与报警电路,电路采用DS18B20作为温度监测元件,测量围0℃-~50℃,使用LCD模块显示,能设置温度报警上下限。着重介绍软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,STC89C52单片机功能和应用。该电路设计新颖、功能强大、结构简单。关键词:温度测量报警DS18B20STC89C52AbstractAbstract:Indailylifeandindustrialproductionprocess,oftenusedinthedetectionandcontroloftemperature,temperatureistheproductionprocessandscientificexperimentsingeneralandoneoftheimportantphysicalparameter.Traditionalthermocoupleandtemperaturecomponentsarethesecondresistor.Thethermocoupleandthermalresistancearegenerallymeasuredvoltage,andthenreplacedbythecorrespondingtemperature,thesemethodsarerelativelycomplex,requiringarelativelylargenumberofexternalhardwaresupport.Weusearelativelysimplewaytomeasure.

UsetheUnitedStatesfollowingDALLASSemiconductorDS1820improvedaftertheintroductionofasmarttemperaturesensorDS18B20asthedetectionelement,atemperaturerangeof-55ºC~125ºC,uptoamaximumresolutionof0.0625ºC.DS18B20canbedirectlyreadoutthetemperatureonthenorthside,andthree-wiresystemwithsingle-chipconnectedtoadecreaseoftheexternalhardwarecircuit,withlow-costandeasyuse.Theintroductionofacost-basedSTC89C52MCUatemperaturemeasurementcircuits,thecircuitsusedDS18B20high-precisiontemperaturesensor,measuringscope0ºC~+100ºC,cansetthewarninglimitation,theuseofsevensegmentsLCDthatcanbedisplaythecurrenttemperature.Thepaperfocusesonprovidingasoftwareandhardwaresystemcomponentscircuit,introducedthetheoryofDS18B20,thefunctionsandapplicationsofAT89C51.Thiscircuitdesigninnovative,powerful,canbeexpansionarystrong.Keywords:TemperaturemeasurementwarningDS18B20STC89C52目录绪论………………………11.1引言……………………11.2设计容与要求11.3主体的部分……………….22AT89S52单片机介绍与应用………………42.1AT89S52的主要功能………………….42.2引脚结构与说明………………………52.2.1方框图…………….62.2.2引脚说明…………72.3特殊功能寄存器……………………102.4存储器结构132.5软件看门狗与串口…………………142.5.1WDT的使用………………………..142.5.2掉电和空闲方式下的WDT……………………..152.5.3定时器2………………………..152.6其他功能介绍………………………163系统软件的设计233.1程序设计语言………………………..233.2主程序………………..233.3显示子程序…………..243.4定时器T0中断服务程序……………253.5T1中断服务程序……………………..253.6调时功能程序……………………….253.7时钟/秒表功能程序…………………254硬件电路的操作和显示……………….264.1硬件工作过程………………………264.2LED的性能特点………………….275其他外围电路设计………….285.1时钟电路……………285.2复位电路……………295.3键盘电路……………30结论………………………….32致………………………….33参考文献……………………..34附录A英文和翻译………….35附录B电路原理图43第一章绪论1.1引言随着科技的发展,在工业、农业生产等重要领域对温度的控制要求越来越高,因而对温度报警系统的要求也越来越高。如何设计一款成本低廉、报警准确、操作简单的智能温度报警系统成为一个重要问题。以STC89C52单片机为处理核心,通过数字温度传感器DS18B20将检测到的数据输入单片机进行处理,与声光报警电路组合就可以构成温度报警系统,这种设计系统的成本较小,结构简单、操作方便,并且测量也很准确,能够满足工业、农业生产对温度要求不是特别高的地方。温度报警系统,在工业、农业自动化控制中占有非常重要的地位。单片机系统的开发应用给现代工、农业测控领域带来了一次新的技术革命,自动化、智能化均离不开单片机的应用。将单片机控制方法运用到温度控制系统中,可以克服温度控制系统中存在的严重滞后现象,同时在提高采样频率的基础上可以很大程度的提高控制效果和控制精度。现代自动控制越来越朝着智能化发展,在很多的小型系统中,处理机的成本占系统成本的比例高达20%,而对于这些小型的系统来说,配置一个如此高速的处理机没有任何必要,因为这些小系统追求经济效益,而不是最在乎系统的快速性,所以用成本低廉的单片机控制小型的,而又不是很复杂,不需要大量复杂运算的系统中是非常适合的。

随着电子技术以与应用需求的发展,单片机技术得到了迅速的发展,在高集成度,高速度,低功耗以与高性能方面取得了很大的进展。伴随着科学技术的发展,电子技术有了更高的飞跃,我们现在完全可以运用单片机和电子温度传感器对某处进行温度检测,而且我们可以很容易地做到多点的温度检测,如果对此原理图稍加改进,我们还可以进行不同地点的实时温度检测和控制。设计容与要求采用STC89C52单片机作为处理器。STC89C52是一个超低功耗,和标准51系列单片机相比较具有运算速度快,抗干扰能力强,支持ISP在线编程,片含8k空间的可反复擦写1000次的Flash只读存储器,具有256bytes的随机存取数据存储器(RAM),32个I/O口,2个16位可编程定时计数器。其指令系统和传统的8051系列单片机指令系统兼容,降低了系统软件设计的难度,电路设计简单、价格低廉,其精确度和运算速度也都完全符合系统的要求。本设计以AT89S51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。该控制系统的硬件部分,包括:温度检测电路、温度控制电路、PC机与单片机串口通讯电路和一些接口电路。单片机通过对信号进行相应处理,从而实现温度控制的目的采用干电池供电第二章AT89S52单片机介绍与应用2.1AT89S52的主要功能AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。1、与MCS-51单片机产品兼容;2、8K字节在系统可编程Flash存储器;3、1000次擦写周期;4、全静态操作:0Hz-33MHz;5、三级加密程序存储器;6、32个可编程I/O口线;7、三个16位定时器/计数器;8、8个中断源;9、全双工UART串行通道;10、低功耗空闲和掉电模式;11、掉电后中断可唤醒;12、看门狗定时器;13、双数据指针;14、掉电标识符。2.2引脚说明AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片晶振与时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口是一个具有部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位地址字节。P2口是一个具有部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVXDPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的部上拉发送1。在使用8位地址(如MOVXRI)访问外部数据存储器时,P2口输出P2锁存器的容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口是一个具有部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能:P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。XTAL1振荡器反相放大器和部时钟发生电路的输入端。XTAL2振荡器反相放大器的输出端。2.3存储器MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于89S52,如果EA接VCC,程序读写先从部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:2000H~FFFFH。数据存储器:AT89S52有256字节片数据存储器。高128字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有一样的地址,而物理上是分开的。当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。例如,下面的直接寻址指令访问0A0H(P2口)存储单元MOV0A0H,#data使用间接寻址方式访问高128字节RAM。例如,下面的间接寻址方式中,R0容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。MOVR0,#data堆栈操作也是间接寻址方式。因此,高128字节数据RAM也可用于堆栈空间。2.4看门狗定时器WDT是一种需要软件控制的复位方式。WDT由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT在默认情况下无法工作;为了激活WDT,用户必须往WDTRST寄存器(地址:0A6H)中依次写入01EH和0E1H。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当WDT溢出,它将驱动RSR引脚一个高电平输出。WDT的使用为了激活WDT,用户必须向WDTRST寄存器(地址为0A6H的SFR)依次写入01EH和0E1H。当WDT激活后,用户必须向WDTRST写入01EH和0E1H喂狗来避免WDT溢出。当计数达到8191(1FFFH)时,13位计数器将会溢出,这将会复位器件。晶振正常工作、WDT激活后,每一个机器周期WDT都会增加。为了复位WDT,用户必须向WDTRST写入01EH和0E1H(WDTRST是只读寄存器)。WDT计数器不能读或写。当WDT计数器溢出时,将给RST引脚产生一个复位脉冲输出,这个复位脉冲持续96个晶振周期(TOSC),其中TOSC=1/FOSC。为了很好地使用WDT,应该在一定时间周期性写入那部分代码,以避免WDT复位。掉电和空闲方式下的WDT在掉电模式下,晶振停止工作,这意味这WDT也停止了工作。在这种方式下,用户不必喂狗。有两种方式可以离开掉电模式:硬件复位或通过一个激活的外部中断。通过硬件复位退出掉电模式后,用户就应该给WDT喂狗,就如同通常AT89S52复位一样。通过中断退出掉电模式的情形有很大的不同。中断应持续拉低很长一段时间,使得晶振稳定。当中断拉高后,执行中断服务程序。为了防止WDT在中断保持低电平的时候复位器件,WDT直到中断拉低后才开始工作。这就意味着WDT应该在中断服务程序中复位。为了确保在离开掉电模式最初的几个状态WDT不被溢出,最好在进入掉电模式前就复位WDT。在进入待机模式前,特殊寄存器AUXR的WDIDLE位用来决定WDT是否继续计数。默认状态下,在待机模式下,WDIDLE=0,WDT继续计数。为了防止WDT在待机模式下复位AT89S52,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入待机模式。2.5DS18B20的介绍2.5.1DS18B20的主要特点温度传感器的种类众多,在高精度、高可靠性的应用场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器比较理想。它体积小,硬件开消低,抗干扰能力强,精度高,附加功能强。与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。它具有独特的单线接口仅需要一个端口引脚进行通信,并可通过数据线供电,电压围为3.0~5.5V。2.5.2DS18B20的结构TO-92封装的DS18B20的引脚排列见下图。图3.2.1DS18B20实物图与封装其引脚功能描述见下表。表3.2.1DS18B20详细引脚功能描述序号名称引脚功能描述1GND接地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。DS18B20的部结构示意图如下图所示。C64C64位ROM和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器VddI/O图3.2.2DS18B20部结构64位ROM的结构起始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。DS18B20温度传感器的部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存器RAM由9个字节的存储器组成。第0-1个字节是温度的显示位;第2和第3个字节是TH和TL,同时第2和第3个字节的数字可以更新;第4个字节是配置寄存器,同时第4个字节的数字也可以更新;第5、6、7三个字节是保留的。第8字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。2.5.3DS18B20的测温原理DS18B20的测温原理是这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1和温度寄存器中。DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图3.2.3所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期提供足够的电流,可用一个MOSFET管来完成对总线的上拉。图3.2.3DS18B20的接口电路当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、写数据、读数据。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。(1)DS18B20的初始化时序先将数据线置高电平1延时(该时间要求不是很严格,但尽可能短一点)数据线拉到低电平0延时750us(该时间围可以设定为480-960us围)数据线拉到高电平1延时等待。如果初始化成功则在15-60ms产生一个由DS18B20返回的低电平0,据该状态可以确定它的存在。若CPU读到数据线上的低电平0后,还要进行延时,其延时的时间从发出高电平算起最少480us将数据线再次拉到高电平1后结束(2)DS18B20的写数据数据线先置低电平0延时确定的时间为15us按从低位到高位的顺序发送数据(一次只发送一位)延时时间为45us将数据线拉到高电平1重复1-5步骤,直到发送完整个字节最后将数据线拉到1(3)DS18B20的读数据将数据线拉高到1延时2us将数据线拉低到0延时6us将数据线拉高到1延时4us读数据线的状态得到一个状态位,并进行数据处理重复1-7步骤,直到读取完一个字节2.6LCD1602的介绍LCD1602液晶显示器也叫1602字符型液晶显示器。它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成。每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。LCD1602是指显示的容为16X2,即可以显示两行,每行16个字符液晶模块。管脚功能HYPERLINK://baike.baidu/albums/5881209/5943668/0/0.htmlLCD1602引脚图LCD1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。第6脚:E(或EN)端为使能(enable)端。第7~14脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。操作控制1602液晶模块部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形。这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等。每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。指令集1602通过D0~D7的8位数据端传输数据和指令。显示模式设置:(初始化)00111000[0x38]设置16×2显示,5×7点阵,8位数据接口;显示开关与光标设置:(初始化)00001DCBD显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)000001NSN=1(读或写一个字符后地址指针加1&光标加1),N=0(读或写一个字符后地址指针减1&光标减1),S=1且N=1(当写一个字符后,整屏显示左移)s=0当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。2.7硬件设计2.7.1硬件设计目标系统通过温度传感器DS18B20的数据线DQ与主控芯片51单片机的P3.3相连接,DS18B20将采集到的数据送给单片机,经过单片机处理后,显示在8位数据线与单片机P0口的液晶显示器LCD上。串口经过MAX232的电平转换后R1OUT和T1IN接到单片机的RXD与TXD来实现与用C语言编辑的计算机软件的界面间的通信。液晶LCD的RS、RW¯、E分别接到单片机的P2.0~P2.2来实现单片机控制液晶的读写命令和数据的显示控制。2.7.2硬件功能模块划分(1)STC89C52RC单片机:实现对整个系统的控制。(2)DS18B20、LCD1602:温度传感器DS18B20的数据线DQ与主控芯片51单片机的P3.3相连接,DS18B20将采集到的数据送给单片机,经过单片机处理后,显示在8位数据线与单片机P0口的液晶LCD上。2.7.3接口和连接方式(1)液晶LCD1602的数据和指令选择控制端RS接到单片机的P2.0,读写控制接到单片节的P2.1,数据读写控制位E接到单片机的P2.2,8位数据线DB0~DB7接到单片机的P0口。(2)4个按键K1~K4分别接到单片机的P1.0~P1.3。(3)DS18B20的DQ接到单片机的P3.3.2.7.4硬件仿真电路第四章软件设计程序介绍4.11602液晶显示处理部分在本次设计系统中定义了P2^2口为1602液晶的使能端;P2^0为数据命令的选择端;P2^1为读,写选择端。定义了有关的函数;write_()向1602写入命令码函数,write_date()向1602写入数据函数;display()1602显示函数;lcd_init()1602初始化;lcd_display()1602显示初始化。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论