基于单片机设计的温度报警器_第1页
基于单片机设计的温度报警器_第2页
基于单片机设计的温度报警器_第3页
基于单片机设计的温度报警器_第4页
基于单片机设计的温度报警器_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、 本科毕业论文(设计)题 目: 基于单片机设计的温度报警器 学 生: 常彬彬 学号: 201040620104 学 院:物理与电子科学学院 专业:电子信息科学与技术 入学时间: 2010 年 9 月 15 日指导教师: 董秀英 职称: 助教 完成日期: 2014 年 4 月 15 日基于单片机设计的温度报警器摘要 这篇文章主要的讲述了一个在STC89C52单片机上开发的温度报警系统,清晰明了的描写了使用DS18B20温度传感器开发测温系统的过程,对温度传感器每一个系统模块的流程,软件的编程和在C52单片机下的个个硬件连接重点的进行了详细的分析,还有温度控制系统的电路也都逐一去介绍。最主要的是这

2、一个温度控制系统可以很简单的去进行温度的采集和温度值的显示,也可以根据我们的需要去随意的设置报警温度。而且这个温度控制系统有很多的优点,比如我们可以使用的很方便,而且它的功耗非常低,体积很小,精确度和灵敏度很高,量程很宽。关键词:DS18B20;STC89C52单片机;数码管;Based on single-chip microcomputer temperature alarmAbstract This article mainly tells the story of a developed on STC89C52 single-chip microcomputer temperature

3、 alarm system, clear the description of the development process of temperature measuring system using DS18B20 temperature sensor, the temperature sensor is the process of every system module, software programming and all hardware connection under C52 mainly has carried on the detailed analysis, and

4、circuit of temperature control system are to introduce them one by one. The mainest is it a temperature control system can be easily to the collection of temperature and temperature display, can also according to our need to set the alarm temperature at will. And the temperature control system has m

5、any advantages, such as we can use is very convenient, and it's very low power consumption, small size, precision and high sensitivity, range is very wide.Key words:DS18B20. STC89C52 single-chip microcomputer; Digital tube;1引言11.1课题背景和意义11.2国内外发展的现状22系统器件的选择和芯片的介绍22.1 DS18B20的概述22.1.1 传感器DS18B20

6、的封装和引脚功能32.1.2 DS18B20温度传感器的内部结构42.1.3 DS18B20的供电模式52.1.4 DS18B20测量温度原理62.1.5 DS18B20控制方法72.2 STC89C52的概述73 设计内容及性能指标94 系统方案比较、设计与论证94.1主控制器模块94.2 温度测量104.3 设置温度104.4 显示模块114.5 电源选取115 硬件实现以及单元电路设计115.1 主控制模块125.2 显示模块电路125.3数码管显示驱动电路135.4 温度传感器(DS18B20)电路146 系统软件设计146.1 程序结构分析146.2 系统程序流图146.2.1DS1

7、8B20初始化程序流程图166.2.2 读温度子程序流程图167 系统的安装与调试177.1 安装步骤177.2 电路的调试187.3 本章小结19结 论20参考文献21附录A22致谢:231引言1.1课题背景和意义 在这个高速发展的科技社会中,温度对于我们言是特别的重要。在我们的工业中它也是作为一个主要的参数,比如说各种各样化工生产,食品生产还有冶金业。在这个快速发展的科技社会里,我们对于各式各样信息的精确度要求也越来越高,如何准确而又快速的去得到这些参数又受限制与当今社会基础信息的发展水平。计算机技术,通信技术,传感器技术这三大信息即分别对应着信息处理,信息传输,信息采集对我们来说都是非常

8、重要的,而其中的传感器技术属于信息技术的高端产品,而温度传感器技术又是重中之重,在我们国家中应用特别广泛,毫不夸张的说已经渗透在我们生活里的方方面面。我们的生活和温度是分离不开的,在工业的生产中需要精确的温度控制,在农业中也需要温度的测量,所以呢研究如何测量温度和温度报警装置有着非常大的意义。而温度传感器又是温度测量必不可少的,温度传感器经过长久的发展有三个阶段:传统的分立式温度传感器模拟集成温度传感器智能集成温度传感器。其中在工业中应用最广泛的即传统的分立式温度传感器(热电偶传感器)它是需要和被测对象直接接触,但是不会受到中间介质的影响,具有非常高的精度,测量范围也比较广,测量范围可在-50

9、1600°C之间进行连续的测量。模拟集成温度传感器是经过半导体集成工艺制作而成,它又被称作硅传感器,是在发明在20世纪80年代,这种传感器集成在一个芯片上面,可以完成温度的测量和模拟信号的输出等功能。它的功能比较单一但是它的测量误差比较小价格也低,响应的速度快,传输距离远,体积小,功耗低。发明于20世纪90年代的智能温度传感器,它是三种技术的结晶,即ATE技术、计算机技术和微电子技术。他是可以输出温度数据和相关的温度控制量,适应每一种的MCU(微控制器)。随着社会快速的发展,我们对传感器的要求也慢慢增加,如今的温度传感器在单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向

10、快速的发展,向着更高精确度,更多功能总线标准化、高可靠性以及安全性等高科技的方向发展着。这篇文章就是介绍了智能集成温度传感器的结构特点和控制方法,而且利用这个传感器、STC89C52单片机为控制器设计的温度控制装置的工作原理和程序设计进行了全面的介绍。这个装置可以比较方便的读数、控制和进行输出温度的数字显示,主要在一些对温度控制要求高的场所和科研试验所所使用。这个温度传感器利用了STC89C52单片机、DS18B20温度传感器和数码管实现温度的显示。1.2国内外发展的现状温度是在工业、农业、国防和科研等部门中应用最普遍的被测物理量。有资料表明,温度传感器的数量在各种传感器中位居首位,约占50%

11、左右。因此,温度测量在保证产品质量,提高生产效率,节约能源,安全生产,促进国民经济发展等诸多方面起到了至关重要的作用。2系统器件的选择和芯片的介绍2.1 DS18B20的概述 DS18B20是在Dallas公司推出DS1820传感器后的一种改进的传感器,它属于智能数字温度传感器,和传统的热敏电阻比较它只需要一根线就可以直接的读出被测量的温度值,而且可以根据实际情况用编程去实现912位数字值的读数方式。2.1.1 传感器DS18B20的封装和引脚功能 图2.1 温度传感器DS18B20的封装形式和引脚功能如图2.1所示,温度传感器DS18B20的形状像一只三极管,个个引脚的名称和作用下示:GND

12、:接地端。DQ:数据输出/输入脚,与TTL电平相兼容VDD:接电源/接地。每一个温度传感器DS18B20都有两种供电方式:外部供电和数据总线供电。数据总线供电的方式是VDD接地,可以省下来一根传输线,但是测量数据完成的时间特别长;而另一种外部供电的方式需要VDD接+5V,需要多用一根数据线,但是加快了速度的测量。2.1.2 DS18B20温度传感器的内部结构图2.2 传感器内部结构(1)64位ROM是芯片的标识号。(2) 温度传感器。温度传感器是DS18B20的最重要组成部分也是核心,它的功能是来完成测量温度时通过编程可将-50°C125°C范围内的温度值按照9位、10位、

13、11位、12位的分辨率进行量化,上面所描述的每一种的分辨率都是包含有一个符号位,它所对应着不同的温度量化值分别是0.5°C、0.25°C、0.125°C、0.0625°C,它的最高的分辨率是0.0625°C。芯片出厂的时候是有一个默认值12位的转换精度,当它接收到44H(温度转换信号)之后,就会开始转换,转换后的温度是以16位带符号扩展的二进制补码形式所表示的,保存在高速缓存器RAM的第0,1字节中,它的前五位的二进制数是符号位。当它所测的温度大于0的时候,前五位符号位都为零,只需要将测得的温度数值乘于0.0625就可以得到实际上的温度;如果测

14、得的温度小于0的时候,前五位符号位均为一,这时候需要将测得的温度数值全部取反然后在乘上0.0625即可以得到我们想要得到的实际数值。(3) 高速缓存器。它内部的高速缓存器包含一个高速缓存器RAM和一个非易失性可电擦除的EEPRAM。而这个EEPRAM是用来存放配置寄存器、低温触发器TL和高温触发器TH中的信息。(4) 配置寄存器。它的作用就是用来确定温度值的数值转化率。DS18B20的工作是根据这个寄存器的分辨率将温度值转化为比较精确的数值。DS18B20是需要一个单线端口通讯。在这个条件下,它必须先建立ROM的操作协议,才可以去完成存储器和控制的工作。所以,操作器必须要先完成下完五个ROM操

15、作命令之一:读ROM;匹配ROM;搜索ROM;跳过ROM;报警搜索。上面所描述的每一个命令对器件的激光ROM部分进行操作的时候,在单线总线上挂有多个器件的时候。是可以区分出来单个器件的,同时也可以向总线控制器指明有几个器件以及它们是什么类型的器件。当一条控制操作命令指示传感器DS18B20完成一次问的测量的时候,他的测量结果会存放在传感器DS18B20的暂存器里面,然后我们在用一条读取暂存器内容的存储操作命令就可以将暂存器里面的内容读取出来。2.1.3 DS18B20的供电模式 (1)外部电源供电模式:这种供电模式是将DS18B20的GND接地,DQ作为信号线与总线相连,而VDD和外部电源的正

16、极相连接。 (2)这种供电模式是将GND端口和VDD端口都直接接地,而DQ和单总线相连接,51单片机中的一个I/0口和DQ相连。2.1.4 DS18B20测量温度原理 主要是由温度存储器、斜率累加器、温度系数振荡器、减法计数器等功能部件所组成完成。斜坡累加器 比较预置预置低温度系数振荡器计数器清零温度寄存器增加高温度系数振荡器计数器停止图2.3DS18B20的原理图 DS18B20的测温流程程:在一个高温度系数的振荡器去确定一个门周期,内部的计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应-55°C的一个值。如果在这个门周期内计数器达到0,那

17、么温度寄存器的值增加,表明所测温度大于-55°C。在这个同时,计数器就会被复位到一个由斜坡式累加器电路确定的值,而这个电路有是用来补偿感温振荡器的抛物线特性。之后计数器便开始计数到0为止,在这个门周期内,会重复这个过程。DS18B20遵循单总线协议,DS18B20完成温度转换必须经过3个过程:初始化;ROM操作指令;存储器操作指令;2.1.5 DS18B20控制方法DS18B20有六条控制命令: 温度转换(Convert T)44H 启动DS18B20进行一次的温度转换 。 读暂存器(Read scartchpad) BEH 读取暂存器第一到第九字节的内容,并且可以随时随刻发出复位命

18、令去停止数据读取的操作。 写暂存器(Write scartchpad ) 4EH 允许将数据写入暂存器的两个字节内即TH、TL字节。 第一个写进TH字节中,第二个写进TL字节中。 复制暂存器(Copy scartchpad)48H 把暂存器的TH、TL字节复制到EEPRAM中。如果主机在发出这个命令的同时又发出其他的操作,DS18B20就会输出一个“0”,如果已经转换结束就会输出一个“1”。 重新调EEPRAM(Recall E2) B8H 把EEPRAM中的TH、TL字节重新写到暂存器TH、TL字节内。 读电源供电方式(Read power supply) B4H 启动DS18B20发送电源

19、供电方式的信号给主CPU ,DS18B20就会回到它的电源使用模式,外部电源为1,寄生电源为0。2.2 STC89C52的概述2.2.1单片机STC89C52的介绍STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。STC89C52具体介绍如下: 主电源引脚(2根)VCC(Pin40):电源输入,接5V电源GND(Pin20)

20、:接地线外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。PO口(Pin39

21、Pin32):8位双向I/O口线,名称为P0.0P0.7P1口(Pin1Pin8):8位准双向I/O口线,名称为P1.0P1.7 P2口(Pin21Pin28):8位准双向I/O口线,名称为P2.0P2.7 P3口(Pin10Pin17):8位准双向I/O口线,名称为P3.0P3.7STC89C52主要功能如表所示。表一 STC89C52主要功能主要功能特性兼容MCS51指令系统8K可反复擦写Flash ROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低

22、功耗空闲和掉电模式软件设置睡眠和唤醒功能3 设计内容及性能指标 这个设计主要就是去介绍在51单片机下设计的温度报警系统,清楚的描述了它的硬件的设计和软件的设计,并且对它的每个功能模块做了比较详细的介绍,它的主要功能和指标如下:单片机在实时检测温度传感器DS18B20的工作状态的同时将DS18B20所得到的测量数据进行处理。通电后数码管将显示当时环境的温度,并且通过按键去设置高温和低温的报警温度,当检测到的温度高于设置的报警值的时候,报警系统的指示灯会熄灭,温度检测的精确度是0.1度。并具有掉电保存功能,数据保存在单片机内部EEPOM中,进入设置界面后如果没有键按下系统会在15秒后自动退出设置界

23、面。4 系统方案比较、设计与论证这个系统主要是由温度的测量和温度的设置以及系统状态的显示三个部分的电路组成,下面将介绍实现这个系统功能的方案。4.1主控制器模块方案1:选择可编程逻辑器件(CPLD)作为我们设计的控制器。CPLD可以完成多种复杂的逻辑功能,而且它的稳定性高、规模比较大、体积比较小、IO资源非常丰富、且易于我们进行多种功能的扩展。采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。但是我们的系统不需要那么复杂的逻辑功能而且对数据的处理数度要求也很低,最主要的是这个控制器的成本比较高,所以我们就放弃了这个方案。方案2: 选择STC89C52单片机作为我们

24、系统设计的控制核心,用它来控制温度的测量来完成我们所需要的性能指标,充分的去分析我们的系统,完成温度测量的自动控制。而在这一点上,单片机就凸显出来它的优势控制快速、方便、简单。根据我们设计的要求来看单片机就可以完全发挥它资源丰富、强大的控制功能以及可位寻址操作功能。并且,C52单片机的价格也很低廉,它的性能也能完全满足我们对控制器的要求,所以就选择了这个方案。4.2 温度测量方案1: 采用数字温度芯片DS18B20和单片机结合来测量实际温度。单片机和温度传感器的结合所需要的电路非常少,且容易控制。系统的结构设计也比较简单,体积也小。单片机的软件编程的自由度大,可通过实现很多种算法和逻辑控制。单

25、片机不仅可以和DS18B20连接使用也可以和PC机连接方便操作。方案2:采用热电偶温差电路测温,通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分可以使用A/D 转化,将所测量的温度由模拟信号转化为数字信号,在单片机的显示模块进行显示。但是它们也存在着输出电压小、容易遭受来自导线环影响和漂移较高的缺点,而且这种设计需要用到A/D 转换电路,感温电路比较麻烦。图1 热电偶电路图从上面两种方案,可以轻易的看出来方案二的测温装置能够测温度范围宽、体积小,但是线性误差较大。而方案一的测温装置电路比较简单、精确度也很高、实现方便、软件的设计也比较简单,因此本次的设计选择了方

26、案一。4.3 设置温度方案1: 采用键盘输入设置温度,键盘则可以用4个按键,一个复位键,一个功能设定键,一个加减一个减键。四个键比较常用,而且用到的接口得到了极好的利用,仅需要4个接口。方案2: 可采用4*4矩阵键盘,该键盘需要8个接口,而我们不需这么多键。综上所述,我们选择第一种方案。4.4 显示模块方案1: 用数码管进行显示。数码管的显示非常简单,而且使用起来也很方便,显示的效果简洁明了故此得到了非常广泛的应用。方案 2:用LCD液晶进行显示。LCD由于它的显示清晰,显示的内容也比较丰富,显示的信息量大,快速的显示和方便的使用也使得它得到了广泛应用。单对于此系统我们不需要显示丰富的内容,而

27、且LCD液晶价格贵,因此我们选择了此方案。综上所述我们选择方案14.5 电源选取 由于本系统采用电池供电,我们考虑了如下几种方案为系统供电。方案1:选择5V蓄电池作为测温系统电源。5V的蓄电池的电流驱动能力比较强而且它的电压输出稳定。但是蓄电池的体积过于庞大,在单片机测温系统中使用的特别麻烦,因此我们放弃了这个个方案。方案2:选择3节1.5 V的干电池共4.5V做作为系统电源。经过实验的验证系统工作时,单片机、传感器的工作电压稳定,可以满足系统对电源的要求,而且它的更换使用更加方便。所以选择方案2。5 硬件实现以及单元电路设计 硬件是一个工程设计项目的重要组成部分,他支撑并构成一个完整的系统骨

28、架,缺少这一骨架,就只能纸上谈兵,虚无缥缈。所以,系统的硬件设计是设计中的重点考虑对象。5.1 主控制模块主控制最系统电路如图5.1所示。 图5.1 单片主控电路5.2 显示模块电路显示采用四位数码管显示,当位选打开时,送入相应的段码,则相应的数码管打开,关掉位选,打开另一个位选,送入相应的段码,则数码管打开,而每次打开关掉相应的位选时,时间间隔低于20ms,从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。显示电路如图5.2图5.2 数码管显示5.3 数码管显示驱动电路三极管8550 4位数码管,不仅简单,而且价格便宜。图5.3 驱动电路5.4 温度传感器(DS18B20)电路6 系统

29、软件设计6.1 程序结构分析主程序调用了3个子程序,分别是数码管显示程序、温度信号处理程序、按键设定报警温度程序。温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。数码管显示程序:向数码管的显示送数,控制系统的显示部分。按键设定程序:可以设定低温和高温报警可精确到0.1度。6.2 系统程序流图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,主程序的主要功能是负责温度的实时显示,读出并处理DS18B20的当前温度值,与设定的报警温度比较,其程序流程见图6.1所示。通过调用读温度子程序把存

30、入内存储中的整数部分与小数部分开分存放在不的的两个单元中,然后通过调用显示子程序显示出来。图6.1 DS18B20温度流程图6.2.1 DS18B20初始化程序流程图在DS18B20工作之前需要进行初始化,流程图如下:发复位命令发跳过ROM命令 初始化成功 结束 图6.2 初始化程序流程图6.2.2 读温度子程序流程图读温度子程序的主要功能是从DS18B20中读出温度数据,移入温度暂存器保存。其程序流程图如下: 发复位命令发跳过ROM命令 发读取温度命令 移入温度暂存器 结束 图6.3 温度子程序流程图 7 系统的安装与调试7.1 安装步骤1.检查元件的好坏按电路图买好元件后首先检查买回元件的好坏,按各元件的检测方法分别进行检测,一定要仔细认真。而且要认真核对原理图是否一致,在检查好后才可上件、焊件,防止出现错误焊件后不便改正。2.放置、焊接各元件按原理图的位置放置各元件

温馨提示

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

评论

0/150

提交评论