目标:DS18B20数字温度计(一)
1. DS18B20简介
DS18B20 是由 DALLAS 半导体公司推出的一种的“一线总线”接口的温度传感器。与传统的热敏电阻等测温元件相比,它是一种新型的体积小、适用电压宽、与微处理器接口简单的数字化温度传感器。但因为是一线总接式其对时序脉冲的精度要求高。
注意不要插反了,看插时对着圆弧的位置插。
DS18B20温度传感器具有如下特点:
- 1、适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数
据线供电- 2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即
可实现微处理器与DS18B20的双向通讯。- 3、DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实
现组网多点测温。- 4、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成
在形如一 只三极管的集成电路内。- 5、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃。
- 6、可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、
0.25℃、0.125℃ 和0.0625℃,可实现高精度测温,这里的分辨率位数选择由内部配置寄存器控制选择。- 7、在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨
率时最多在750ms内把温度值转换为数字,速度更快。- 8、测量结果直接输出数字温度信号,以"一根总线"串行传送给CPU,
同时可传送CRC校验码,具有极强的抗干扰纠错能力。- 9、负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能
正常工作。
2. DS18B20内部结构:
配置寄存器是来配置不同的位数来选择温度检测精度的:
- 我们要看的只是R1和R0,低5位固定为1,TM固定是1表示可以开始工作
- R1和R0用来设置DS18B20的精度,可设置为9,10,11或12位,对应的分辨率温度是0.5℃,0.25℃,0.125℃和0.0625℃
-
高速暂存存储器由9个字节组成:
- LS和MS分别是所测温度的低位和高位所在的字节
- 高温限值和低温限值是指当前所要测的温度范围,如果高于高温限制开启风扇降温还是低于低温限制来增加温度什么的
温度数据格式如下:
- LS是温度的低位所在,2^-1后面是负数的是小数部分,前面是整数部分
- MS是温度的高位所在,前面那5个S 是符号位,如果测得的温度大于0,这5位为‘0’,只要将测到的数值乘以0.0625(默认精度是12位)即可得到实际温度;如果温度小于0,这5位为‘1’,测到的数值需要取反加1再乘以0.0625即可得到实际温度。
温度与数据对应关系如下:
比如我们要计算+85°C,高5位是0,后面的11位才是我们需要的数据位,后面的数据位换算成十进制是1360,所以温度是1360*0.625 = 85°C
再比如我们计算-0.5°C前5位是1,后面的11位先取反变成1111 1000 0000 0111,再加1变成 1111 1000 000 1000换算成十进制再乘0.625就是0.5了