单片机测温芯片DS18B20 是一款常用的IC,那么它有何优势和特色呢?关于ds18b20 又是怎么处理和支撑负温度的呢?一起来了解一下。
ds18b20优势和特色
(1)在温度转化精度为±0.5℃时,电压规模:3.0~5.5V,寄生电源办法下可由数据线供电。既能够用寄生电源供电,也可采用外部电源供电。
(2)共同的单线接口办法:DS18B20与微处理器衔接仅需一个I/O口线便可完成微处理器与DS18B20的双向通讯。无需改换其他电路,即可直接输出被测温度值。
(3)支撑多点组网功用,多个DS18B20能够并联在仅有的三线上,完成组网多点测温。
(4)温度丈量规模为-55℃~+125℃,在-10~+85℃时精度为±0.5℃,固有测温分辩率为0.5℃。
(5)掉电维护功用:内部有EEPROM(Electrically-Erasable Programmable Read-Only Memory,可擦可编程只读存储器),体系掉电后,它仍可保存分辩率及报警温度的设定值。
(6)在9位分辩率时最长转化时刻为93.75ms;12位分辩率时,最长转化时刻为750ms。
(7)直接以数字信号办法输出温度丈量成果,以“一线总线”串行办法传送给CPU (Central Processing Unit,中央处理器),一起可传送校验码,具有极强的抗干扰纠错才能。
(8)负压特性:电源极性接反时,芯片不会被焚毁,但不能正常作业。
(9)可编程分辩率为9~12位,对应的分辩温度为0.5℃、0.25℃、0.125℃、和 0.0625℃。
(10)每个芯片仅有编码,支撑联网寻址,零功耗等候。
DS18B20数据处理支撑负温度
18B20片内有一个9Byte的 SRAM 和一个3Byte的 EEPROM。如下图:
其间咱们需求运用的便是SRAM中的前两个字节,这儿贮存的便是咱们要的温度值。这两个字节的结构如下:
咱们能够看到,LS(低字节)的高四位 和 MS(高字节)的低四位共8个字节构成了实践的一个带符号位的字节数据能够表明(-128~127)满足表明18B20的温度规模。MS的高四位为符号为的扩展,当温度值为正时MS高5位(图中S的五位)全为0,温度值为负时全为1。LS的低四位为小数部分,不是要求太高的话能够疏忽。咱们这儿暂不套路小数部分的处理办法。
下面咱们就来评论整数部分的数据处理办法。
整数部分咱们实践只要高字节的第四位和低字节的高四位。首要经过移位求或后生成一个无符号位的字节。然后判别这个无符号的值是否大于127,假如大于128阐明是个负温度需求处理,不然就能够直接回来。
18B20的负温度运用补码方式输出,咱们只需求对这个字节进行取反加1后便是这个负温度的绝对值,这时候咱们需求一个符号符号告知输出函数这是个负温度需求显现负号即可。
下面贴出数据处理部分的代码:
uchar readtemp() //读取温度
{
uchar temp = 0;
uchar tmp[2]
reset();
writebyte(0xCC); // 越过序列号
writebyte(0x44); // 发动温度转化
delayms(1000);
reset();
writebyte(0xCC);
writebyte(0xBE); //读9个寄存器,前两个为温度
tmp[0]=readbyte(); //低位
tmp[1]=readbyte(); //高位
temp = ((tmp[1]《《4)&0xF0)|((tmp[0]》》4)&0x0F);
if(temp》127)
{
temp = ~temp + 1;
}
return (temp);
}