数字温度显示报警系统毕业设计 下载本文

河南工业职业技术学院毕业论文

DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。

在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。

表2 一部分温度对应值表

温度/℃ +125

+85 +25.0625 +10.125 +0.5 0 -0.5 -10.125 -25.0625 -55

二进制表示 0000 0111 1101 0000 0000 0101 0101 0000 0000 0001 1001 0000 0000 0000 1010 0001 0000 0000 0000 0010 0000 0000 0000 1000 1111 1111 1111 0000 1111 1111 0101 1110 1111 1110 0110 1111 1111 1100 1001 0000

十六进制表示

07D0H 0550H 0191H 00A2H 0008H 0000H FFF8H FF5EH FE6FH FC90H

3.4 报警电路设计

报警电路中加一PNP三极管驱动,基极接单片机P11口,当端口变成低电平时,驱动三极管会导通,VCC电压加载到蜂鸣器使其发声、报警发光二极管亮,如图3.4。

图 3.4报警电路

12

河南工业职业技术学院毕业论文

3.5 显示电路设计

如图3.5,采用LG3641BH LED数码管显示电路采用4位共阳LED数码管从P14,P15,P16,P17串口输出段码。用PNP三极管进行驱动,当相应的端口变成低电平时,驱动相应的三极管会导通,驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示数字。

图 3.5 数码管显示电路

3.6电源电路设计

我们选用的是串联起来的4节1.5v的5号电池,从经济的角度考虑的,干电池比较便宜,但其还有不足之处,干电池存储的是电量。随着电量的消耗,它的供电电压就会不断的下降,所有我们需要使用一个稳压器,来保证电源供给的是标准的5v电压。4节1.5v串联起来产生的和电压最大是6v,而本文的AT89S52单片机工作电压的范围是4v—5.5v,在该系统中我们使用的电压是5v。这时我们可以用LM7805稳压器来产生稳定的5v电压。稳压电路如下图3.6所示:

13

河南工业职业技术学院毕业论文

图3.6 LM7805稳压电路

在该电路中,C12是极性电容,起到稳压的作用,而C2是非极性电容,它起的作用是滤除输出电压中不是直流的成分,即滤波。

LM7805稳压芯片的稳压压差为2V左右,在实际使用中容易出现电压过低的状态,此时提供的电源达不到系统的电源要求,会出现程序跑飞的现象,而另一款LM2904的稳压压差可以达到40mV,效果比LM7805好很多,但考虑到经济原因我们采用LM7805,只要在稳压前端提供较大的电源供应即可。

4. 系统软件设计

系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,按键扫描。 4.1主程序

主程序的主要功能是负责读出并处理DS18B20的测量的当前温度值,温度的实时显示,并根据设置的上下限判断是否报警。系统开始运行时,温度传感器测量并计算温度值通过P1.0口传输进单片机里进行处理,经过处理后的数据再通过P0口传输到数码管进行显示。通过按键设置温度报警界限,当超过报警界限时单片机将相应的数据通过P1.1口传输进行声光报警。温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4.1所示。

14

河南工业职业技术学院毕业论文

开始 初始化 调用温度模块程否 DS18B20存在? 是 处理温度值转换错误处理, 显8.8.8.8. 送AT89S52处理 按键扫描模块 显示模块,LED显示温否 是否越限? 是 报警 图4.1 主程序流程图

4.2读出温度子程序

读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图4.2示

15