单片机 测温芯片 18B20 是一款常用的IC,优势特点不多说,这里主要讨论温度值的处理,尤其是负温度。
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);
}
18b20的ram中,前两个字节放的是温度信息。其中第二个字节的高五位是符号位,当温度为正的时候,高五位的字节是0,当温度为负的时候,高五位字节为一。当温度为正的时候,只需要将两个字节的数合到一个字节,然后乘以0.0625就是实际的温度。
那么,当温度为负的时候,该怎么读取温度呢?是将两个字节合为一个字节,然后先取反,再加一,最后再和0.0625相乘吗?这样得出的结果就是实际的负温度值吗?
判断是否是负,就是取高几位的读取值采用与的方式判断,比如(000) 11111 00001000,那么高5位可以这样弄,tempH&0x1f,如果这个值=1;说明是负的,否则就是正的啊,不过有一点,取反是对的,还要加1啊,记得哦。
至于在LCD中显示的,确实是按你说的那样,直接写上一个符号即可。
DS18b20 输出的负温度数据是定点补码(小数点后固定二进制四位),符号可由最高位判定(0为正,1为负)。若是负数,则求其补码即可,具体为“取反加一”或 0x10000 - T (T为度出来的补码)。
把读出来的数temperaturebuffer定义成16位的带符号整形,进行带符号的移位,直接转成浮点数,正负号就在里面了,用下面的表达式,你不用判断正负。
((float)(temperaturebuffer》》4))+((temperaturebuffer&0x0F)/16.0)
其内有两个温度上下限寄存器TH和TL,所采温度若超过此温度范围后会置相应的报警标志位。至于那个校验,是CRC-8,这并不太复杂,可以找些相关资料了解一下便知。
相关热词:#电子电路图
电感器设计流程和见解
时间:2026-05-01
什么是触发器?触发器的作用是什么?
时间:2026-05-01
什么是电源?电源是如何进行分类的?
时间:2026-05-01
电驱动NVH的特点和结构
时间:2026-05-01
什么是霍尔传感器?
时间:2026-05-01
电负性的计算方法
时间:2026-04-30
电导的定义_电导的单位_电导怎么算
时间:2026-04-30
什么是计数器_计数器的作用
时间:2026-04-30
什么是欧姆定律_欧姆定律公式
时间:2026-04-30
RAID是什么?RAID有哪些?
时间:2026-04-30
电阻的原理和作用 电阻色环识别图 电路中电...
时间:2026-03-09
NVIDIA CPU+GPU超级芯片大升级!
时间:2026-03-09
什么是室温超导?半导体时代将走向结束?芯...
时间:2026-03-09
石英灯电子变压器电路原理
时间:2026-03-06
什么是硅片或者晶圆?一文了解半导体硅晶圆
时间:2026-03-09
半导体光刻工艺 光刻—半导体电路的绘制
时间:2026-03-09
一文详解MOS管驱动电路拓扑的设计
时间:2026-03-09
汽车芯片业应汲取的教训
时间:2026-03-09
压敏电阻型号的含义
时间:2026-03-05
半导体行业之ICT技术简介
时间:2026-03-09