技术中心

新型数字温度传感器DS18B20组成的温度巡检系统

来源:烟台勾股通信技术有限公司
2006/11/29 9:21:54
1632
导读:
1 概 述 随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统已经应
用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件,热敏电阻成本低,但需要后续信号处理电路,而且
热敏电阻的可靠性相对较差,测量温度的准确度低,检测系统的精度差[1]。我们选用了美国DALLAS公司推出
的DS18B20数字式温度传感器,DS18B20是DS1820的更新产品,它与传统的热敏电阻温度传感器不同,它能够直接
读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式,可以分别在93.75ms和750ms内
将温度值转化9位和12位的数字量。因而使用DS18B20可使系统结构更趋简单,可靠性更高。

2 AT89C2051单片机 本文选用的单片机为AT89C2051,它是一个只有20引脚的体积小、价格便宜的Flash ROM型单片
机。提供以下标准功能:一个8位CPU、2KB的闪烁存储器、128字节RAM、15根I/O线、两个16位定时器、一个全双
工串行口、5个中断源,还有片内振荡电路和时钟电路及一个精密模拟比较器。具有与MCS-51*兼容的指令系
统,因而系统硬件设计简单,软件设计也十分方便[2]。

3 DS18B20温度传感器的特点
·单线接口,只有一根信号线与CPU连接 ·传送串行数据,不需要外部元件
·不需要备份电源、可用数据线供电 ·温度测量范围从-50oC~125oC,-10oC~85oC时测量精度为±0.5oC
·通过编程可实现9~12位的数字值读数方式, ·在93.75ms和750ms内将温度值转化9位和12位的数字量
·用户可自设定非易失性的报警上下限值 ·报警搜索命令可以识别哪片DS18B20温度超限

4 DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦
除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。暂存存储器包含了8个连续字节,前两个字节是
测得的温度信息,*个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、
TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第
六、七、八个字节用于内部计算。第九个字节是冗余检验字节。 暂存存储器的前两个子节代表的数据格式是:

温度低位字节(A)  温度高位字节(B)

温度算法:①SSSSS=11111b,D=-1;SSSSS=00000b,D=1 zui小分辨率为0.0625oC:② 当D=1时,温度值 ③ 当D=-
1时,温度值 结构寄存器的内容用于确定温度值的数字转换分辨率。该字节各位的意义如下:    
MSB  LSB

TM R1 R0 1 1 1 1 1

低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设
置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)  
表1 分辨率设置表  
R1 R0  分辨率  温度zui大转换时间
0 0 9位 93.75ms
0 1 10位 187.5ms
1 0 11位 375ms
1 1 12位 750ms

5数码显示 利用AT89C2051串行口的移位寄存器工作方式,通过外接美国MAXIM公司推出的MAX7219串行LED显示驱
动器,避免了CPU直接定时对LED服务,使CPU让出更多的时间去处理被控制对象。MAX7219是串行输入共阴极显示
驱动器,每片可驱动8个LED数码管。用户只需对片内的位和控制寄存器编程,即可选择译码方式、LED个数、显示
亮度和关闭等一些功能[3]。

6 硬件电路 系统硬件结构图如图1所示:

7系统软件概述 由于DS18B20的分辨率可以通过编程进行选择,使得DS18B20比DS1820在分辨率提高的前提下,整体
表现出一致性很好。 


  
系统的主程序用C51编写,主要是C51调用汇编语言,完成对DS18B20的调用、中断管理、测量温度值的计算及温度
值的显示等功能。显示程序实现定时对各路温度值的巡检和显示,并且在一个通道上允许修正中断,以实现根据
温度标称值修正传感器的目的。使用者只需打开电源就可以从观察屏上看到关心的温度变化情况并且很方便纪录
数据。

  

相关技术