基于DS18B20的数字温度计.pdf
科技信息计算机与网络
基于DS18B20的数字温度计
同济大学电子与信息工程学院信息与通信工程系叶爱芬
[摘要]本文主要介绍了DS18B20数字温度传感器,给出基于DS18B20和AT89C51的数字温度计的软硬件设计方案。本系统的
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量。特别是当测温现场无
法提供直流电源时,DS18B20可采用寄生电源供电方式。
[关键词]DS18B20温度计AT89C51
0.引言编写显示程序时,需要解决的问题是:如何将温度值进行个位数和
以往的温度测控系统多采用热敏电阻或热电偶测量温度。由于热十位数的拆分;如何将显示的数值转换成字型码在LED数码管上进行
敏电阻和热电偶是模拟温度传感器,其输出为模拟信号,还须加A/D转显示。第一个问题的解决方法是利用逻辑与指
换环节把模拟信号转换成单片机可以处理的数字信号,使得硬件电路步取得个位数和十位数。第二个问题的解决方法是将字型码根据数值
结构复杂、成本较高;且电路易受干扰,使测温不准确。本文设计打破常大小排列成一个表格,然后通过查表来实现转换。
规采用DS18B20数字温度传感器进行温度测量,不仅提高了系统的可
靠性而且还简化了电路。
1.DS18B20芯片介绍
DS18B20数字温度传感器测温范围为-55℃~+125℃,在-10℃~
+85℃范围内,精度为±0.5℃。可以程序设定9位~12位分辨率。新的
产品支持3V~5.5V的电压范围。在DS18B20中的每个器件上都有独
一无二的序列号。
DS18B20的使用方法
由于DS18B20采用的是“一线总线”协议方式,即在一根数据线实
现数据的双向传输,而对AT89C51单片机来说,硬件上并不支持单总
线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完
成对DS18B20芯片的访问。另外简单的硬件电路需用严格的通信协议
来保证各位数据传输的正确性和完整性,所以DS18B20对读写的数据
位有着严格的时序要求。
根据DS18B20的通信协议,主机控制DS18B20完成温度转换必须
经过如下三个步骤。
1)初始化DS18B20;
2)发ROM功能命令;
3)发RAM存储器操作命令。
2.温度采集模块设计
温度采集模块要求完成将DS18B20测得的温度数值读到内部
RAMTEMPER_H和TEMPER_L单元。并将其转换成BCD码存于内部
RAMTEMPER_NUM单元中。其硬件电路见下图1。单片机的P3.3引脚
接数字温度传感器的DQ端。图2从DS18B20读温度值流程图图3报警模块流程图
4.报警模块设计
报警模块实现的功能是当温度低于下限温度或高于上限温度时报
警。且高于上限时,将接在P1.0口的红色发光二极管点亮;当低于下限
时,将接在P1.1的绿色发光二极管点亮。对应的软件设计见图3所示。
5.结束语
本文设计是以AT89C51单片机为控制核心,采用数字温度传感器
DS18B20进行温度测量。DS18B20集温度测量和A/D转换于一体,直接
输出数字信号,大大简化了硬件电路;现场温度直接以“一线总线”的数
字方式传输,大大提高了系统的