温度报警装置毕业设计.docx
《温度报警装置毕业设计.docx》由会员分享,可在线阅读,更多相关《温度报警装置毕业设计.docx(47页珍藏版)》请在冰豆网上搜索。
温度报警装置毕业设计
温度报警装置毕业设计
第一章引言
随着“信息时代”的到来,作为获取信息的手段——传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。
传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。
因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。
由于传感器能将各种物理量、化学量和生物量等信号转变为电信号,使得人们可以利用计算机实现自动测量、信息处理和自动控制,但是它们都不同程度地存在温漂和非线性等影响因素。
传感器主要用于测量和控制系统,它的性能好坏直接影响系统的性能。
因此,不仅必须掌握各类传感器的结构、原理及其性能指标,还必须懂得传感器经过适当的接口电路调整才能满足信号的处理、显示和控制的要求,而且只有通过对传感器应用实例的原理和智能传感器实例的分析了解,才能将传感器和信息通信和信息处理结合起来,适应传感器的生产、研制、开发和应用。
另一方面,传感器的被测信号来自于各个应用领域,每个领域都为了改革生产力、提高工效和时效,各自都在开发研制适合应用的传感器,于是种类繁多的新型传感器及传感器系统不断涌现。
温度传感器是其中重要的一类传感器。
其发展速度之快,以及其应用之广,并且还有很大潜力。
为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。
本文利用单片机结合传感器技术而开发设计了这一温度控制系统。
文中传感器理论单片机实际应用有机结合,详细地讲述了利用DS18B20温度传感器探测环境温度的过程,以及实现热电转换的原理过程。
本设计应用性比较强,设计系统可以作为热水器温度调节系统、实验室温度监控系统等等。
课题主要任务是完成环境温度检测,利用单片机实现温度调节实施温度监控。
设计后的系统具有操作方便,控制灵活等优点。
第二章方案设计与论证
2.1测量部分
2.1.1方案一
采用热敏电阻经A/D转换,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的。
而且使用热敏电阻,需要用到十分复杂的算法,一定程度上增加了软件实现的难度。
2.1.2方案二
采用温度芯片DS18B20测量温度。
该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。
在0—100摄氏度时,最大线形偏差小于1摄氏度。
该芯片直接向单片机传输数字信号,便于单片机处理及控制。
本制作的最大特点之一就是直接采用温度芯片对温度进行测量,使数据传输和处理简单化。
采用温度芯片DS18B20测量温度,体现了作品芯片化这个趋势。
部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。
而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。
所以芯片的使用将成为电路发展的一种趋势。
本方案应用这一温度芯片,也是顺应这一趋势。
2.2主控制部分
2.2.1方案一
此方案采用AT89C51八位单片机实现。
单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。
但是,AT89C51单片机需要用仿真器来实现软硬件的合成在线调试,较为繁琐,很不简便。
而且AT89C51的地位已经渐渐的被AT89S51所取代。
逐渐成为历史。
事实也证明了AT89S51在工业控制上有着广泛的应用。
2.2.2方案二
此方案采用AT89S51八位单片机实现。
它除了89C51所具有的优点外,还具有可在线编程,可在线仿真的功能,这让调试变得方便。
当与凌阳十六位单片机相比时,AT89S51八位单片机的价格便宜,再编程方便。
而且AT89S51在工业控制中有广泛的应用,编程技术及外围功能电路的配合使用都很成熟。
这对于在网上查找相关资料和在图书馆查找相关资料时非常方便。
2.3显示部分
2.3.1方案一
此方案采用LED数码管显示,即将所有位的段选线相应的并联在一起,有一个8位I/O口控制,形成段选线的多路复用。
而各位的共阳极或共阴极分别由相应的I/O线控制,实现各位的分时选通。
其中段选线占用一个8位I/O口,而位选线占用一个4位I/O口。
采用扫描显示方式,即在某一时刻,只让某一位的位选线状态,而其他各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字节的段码。
在确定LED不同位显示的时间间隔,不能太短,因为发光二极管从导通到发光有一定的延时,导通时间太短,发光太弱人眼无法看清。
但也不能太长,因为毕竟要受限于临界闪烁频率,而且此时间越长,占用CPU时间也越多,另外,显示位增多,也将占用大量的CPU时间,因此动态显示实质是一牺牲CPU时间来换取元件的减少。
优点是LED数码管价格便宜,显示清晰并且编程较简单。
2.3.2方案二
此方案采用1602LCD液晶显示,1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。
为了便于学习1602型LCD显示模块工作原理和编程技巧,我们这次设计采用了1602LCD作为显示模块。
2.4总结
综上所述实际采用电路方案如下图:
图2—1 总体设计方框图
第三章各电路的设计
3.1单片机AT89S51电路
3.1.1AT89S51主要特性
●与MCS-51单片机产品兼容●4K字节在系统可编程Flash存储器
●1000次擦写周期●全静态工作:
0Hz—33MHz
●32个可编程I/O口线●2个16位定时器/计数器
●6个中断源●全双工UART串行通道
●低功耗空闲和掉电模式●掉电后中断可唤醒
●看门狗定时器●双数据指针
●灵活的ISP编程●4.0---5.5V电压工作范围
3.1.2AT89S51内部结构
图3—1是单片机AT89S51的内部结构总框图。
它可以划分为CPU、存储器、并行口、串行口、定时/计数器和中断逻辑几个部分。
图3—1AT89S51内部结构框图
●CPU由运算器和控制逻辑构成。
其中包括若干特殊功能寄存器(SFR)
●AT89S51时钟有两种方式产生,即内部方式和外部方式。
(如图3—2所示)AT89C51中有一个构成内部震荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英或陶瓷震荡器一起构成自激震荡器震荡电路如图。
外接石英晶体(或陶瓷震荡器)及电容C1、C2接在放大器的震荡回路中构成并联震荡电路。
对外接电容C1、C2虽然没有非常严格的要求,但电容的大小会轻微影响震荡频率的高低、震荡工作的稳定性、起震的难易程序及温度稳定性,如果使用石英晶体,推荐使用30pF±10pF,而如果使用陶瓷谐振器建议选择40pF±10pF。
用户还可以采用外部时钟,采用外部时钟如图所示。
在这种情况下,外部时钟脉冲接到XTAL1端,既内部时钟发生器的输入端,XTAL2悬空。
由于外部时钟信号是通过一个2分频的触发器后作为内部时钟信号的所以外部时钟的占空比没有特殊要求,但最小高电平持续的时间和最大低电平持续的时间应符合产品技术条件的要求。
内部震荡电路外部震荡电路
图3—2AT89S51的时钟电路
●AT89S51在物理上有四个存储空间:
片内/片外程序存储大路、片内/片外数据存储器。
片内有256B数据存储器RAM和4KB的程序存储器ROM。
除此之外,还可以在片外扩展RAM和ROM,并且和有64KB的寻址范围。
●AT89S51内部有一个可编程的、全双工的串行接口。
它串行收发存储在特殊功能寄存器SFR的串行数据缓冲器SBUF中的数据。
●AT89S51共有4个(P0、P1、P2、P3口)8位并行I/O端口,共32个引脚。
P0口双向I/O口,用于分时传送低8位地址和8位数据信号;P1、P2、P3口均为准双向I/O口;其中P2口还用于传送高8位地址信号;P3口每一引脚还具有特殊功能(图3-3),用于特殊信号的输入输出和控制信号。
●AT89S51内部有两个16位可编程定时器/计数器T0、T1。
最大计数值为216-1。
工作方式和定时器或计数器的选择由指令来确定。
●中断系统允许接受5个独立的中断源,即两个外部中断,两个定时器/计数器中断以及一个串行口中断。
3.1.3外部特性(引脚功能)
AT89S51芯片有40条引脚,双列直插式封装引脚图如3—4所示:
●Vcc(40):
电源+5V
●Vss(20):
接地
●XTAL1(19)和XTAL2(18):
使用内部振荡电路时,用来接石英晶体和电容;使用外部时钟时,用来输入时钟脉冲。
●P0口(39—32):
是一组8位漏极开路行双向I/O口,也既地址/数据总线复用口。
可作为输出口使用时,每位可吸收电流的方式驱动8个TTL逻辑电路,对端口写“1”可作为高阻抗输入输入端用。
在访问外部数据存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,PO口接收指令字节,而在程序校验时,输出指令字节,校验时,要求接上拉电阻。
●P1口(1—8):
是一个内部有上拉电阻的8位双向I/O口,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输出口。
作输入口时,因为内部存在上拉电阻,某个引脚被外部信号拉低时输出一个电流(I)。
Flash编程和程序校验期间,P1口接收8位地址。
●P2口(21—28):
是一个带有内部上拉电阻的8位双向I/O口,P2的输入缓冲极可以驱动(输入或输出电流)4个TTL逻辑门电路。
对端口“1”,通过内部的上拉电阻把端口拉到高电平,此时和作为输出口,作输出口时,因为存在内部上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部存储器或1位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口线的内容(也既特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。
Flash编程或校验时,P2亦接收高地址和其他控制信号。
●P3口(10—17):
是一组带有内部上拉电阻的8位双向I/O口,,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输出端口。
作输出端口时,被外部拉低的P3口将用上拉电阻输出电流。
P3口除可作为一般的I/O口线外,更重要的用途是它的第二功能,如图3—3所示:
P3口还接收一些用于Flas闪速存储器编程和程序校验的控制信号。
图3—3P3口引脚的特殊功能图3—4AT89S51引脚图
●ALE/
(30):
地址锁存信号输出端。
在访问片外丰储器时,若ALE为有效高电平,则P0口输出地址低8位,可以用ALE信号作外部地址锁存信号。
公式(2—1)fALE=1/6fOSC,也可作系统中其它芯片的时钟源。
第二功能
是对EPROM编程时的编程脉冲输入端。
●RST/VPD(9):
复位信号输入端。
AT89S51接能电源后,在时钟电路作用下,该脚上出现两个机器周期以上的高电平,使内部复位。
第二功能是VPD,即备用电源输入端。
当主电源Vcc发生故障,降低到低电平规定值时,VPD将为RAM提供备用电源,发保证存储在RAM中的信号不丢失。
AT89S81通常采用上电自动复位和开关手动复位,我们采用的就是这种方法。
●
/Vpp(31):
内部和外部程序存储器选择线。
=0时访问外部ROM0000H—FFFFH;
=1时,地址0000H—0FFFH空间访问内部ROM,地址1000H—FFFFH空间访问外部ROM。
●
(29):
片外程序存储器选通信号,低电平有效。
3.1.4AT89S51本设计外围电路(见附:
原理图)
3.2键盘电路
单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。
键盘有编码和非编码两种。
非编码键盘硬件电路极为简单故本系统采用。
为了去抖动我们采用软件方法,它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响。
本设计的四个设置按键一端接地,另一端分别接单片机的P1.4,P1.5,P1.6,P1.7。
3.3加热器控制电路
单片机通过三极管控制继电器的通断,最后达到控制电热器的目的。
当温度未达到要求时,单片机发送低电平信号使三极管饱和导通,继电器使电源与电热器接通,电热器加热。
温度慢慢升高。
当温度上升到预定温度时,单片机发送高电平信号三极管进入截止状态,继电器的弹片打到另一侧,使电热器与电源断开,电热器停止加热。
继电器电路中有一个二极管4004的保护电路,即将一个二极管反向接到继电器的两端。
连接方法如图3—5所示。
其原理是:
当继电器突然断电时,继电器产生很大的反向电流。
二极管的作用是将反向电流分流,使流过三级管的电流比较小,达到保护三极管的作用。
DS18B20
图3—5加热器控制电路图3—6温度芯片DS18B20
3.4温度测试电路
这里我们用到温度芯片DS18B20。
使用集成芯片,能够有效的减小外界的干扰,提高测量的精度,简化电路的结构。
使用集成芯片,已经慢慢的成为设计电路的一种趋势。
本系统使用温度芯片也正是顺应了这一趋势。
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
DS18B20的性能特点如下:
●独特的单线接口仅需要一个端口引脚进行通信;
●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
●无须外部器件;
●可通过数据线供电,电压范围为3.0~5.5V;
●零待机功耗;
●温度以9或12位数字;
●用户可定义报警设置;
●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;
DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图3—7所示。
图3—7DS18B20内部结构
64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。
温度报警触发器TH和TL,可通过软件写入户报警上下限。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
高速暂存RAM的结构为8字节的存储器,结构如图3所示。
头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
该字节各位的定义如图3—8所示。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。
温度LSB
温度MSB
TH用户字节1
TL用户字节2
配置寄存器
保留
保留
保留
CRC
图3—8 DS18B20字节定义
由表3—1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。
因此,在实际应用中要将分辨率和转换时间权衡考虑。
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
表3—2是一部分温度值对应的二进制温度数据。
表3—1DS18B20温度转换时间表
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。
若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。
因此,可用多只DS18B20同时测量温度并进行报警搜索。
在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。
主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。
DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。
其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。
表3—2 一部分温度对应值表
温度/℃
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010000
0191H
+10.125
0000000010100001
00A2H
+0.5
0000000000000010
0008H
0
0000000000001000
0000H
-0.5
1111111111110000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001101111
FE6FH
-55
1111110010010000
FC90H
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作按协议进行。
操作协议为:
初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。
另一种是寄生电源供电方式,如图3—9所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。
采用寄生电源供电方式时VDD端接地。
由于单线制只有一根线,因此发送接口必须是三态的。
图3—9DS18B20与单片机的接口电路
3.51602LCD显示电路
现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。
1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。
1602型LCD可以显示2行16个字符,有8位数据总线D0~D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。
1.外型尺寸:
80X36X13(LXWXH)
2.接口信号说明
表3—31602型LCD的接口信号说明
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
DataI/O
2
VDD
电源正极
10
D3
DataI/O
3
VL
液晶显示偏压信号
11
D4
DataI/O
4
RS
数据/命令选择端(H/L)
12
D5
DataI/O
5
R/W
读写选择端(H/L)
13
D6
DataI/O
6
E
使能信号
14
D7
DataI/O
7
D0
DataI/O
15
BLA
背光源正极
8
D1
DataI/O
16
BLK
背光源负极
3.主要技术参数
表3—41602型LCD的主要技术参数
显示容量
16X2个字符
芯片工作电压
4.5~5.5V
工作电流
2.0mA(5.0V)
模块最佳工作电压
5.0V
字符尺寸
2.95X4.35(WXH)mm
4.基本操作程序
读状态:
输入:
RS=L,RW=H,E=H输出:
D0~D7=状态字
读数据:
输入:
RS=H,RW=H,E=H输出:
无
写指令:
输入:
RS=L,RW=L,D0~D7=指令码,E=高脉冲输出:
D0~D7=数据
写数据:
输入:
RS=H,RW=L,D0~D7=数据,E=高脉冲输出:
无
5.RAM地址映射图
控制器内部带有80字节的RAM缓冲区,
表3—5RAM缓冲区对应关系
LCD
16字X2行
‘
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
。
。
。
27
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
。
。
。
67
6.状态字说明
表3—6状态字说明
STA7
D7
STA6
D6
STA5
D5
STA4
D4
STA3
D3
STA2
D2
STA1
D1
STA0
D0
STA0~STA6
当前地址指针的数值
STA7
读写操作使能
1:
禁止;0:
允许
☆注意每次对控制器进行读写操作之前,都必须进行读写检测,确保STA7为0。
7.数据指针设置
控制器内部设有一个数据地址指针,用户可以通过它们访问内部的全部80字的RAM。
表3—7数据指针设置
指令码
功能
80H+地址码(0~27H,40~67H)
设置数据地址指针
8.其它设置
表3—8其它设置
指令码
功能
01H
显示清屏:
1.数据指针清0
2.所有显示清0
02H
显示回车:
数据指针清0
9.初始化设置
(1)显示模式设置
表3—9显示模式设置
指令码
功能
0
0
1
1
1
0
0
0
设置16X2显示,5X7点阵,8位数据接口
(2)显示开/关及光标设置
表3—10