DS18B20负数显示:以下是显示部分程序,但读不了负温度,要怎么改才能显负数,请各位高手赐教....

2024-12-16 07:53:55
推荐回答(3个)
回答1:

temperature_value[0] // 这是读取到的低8位温度值
temperature_value[1]// 这是读取到的高8位温度值

if(temperature_value[1]>127)// 当高8位的第8位为1时,就是负值 { // 下面是进行转换
temperature_value[0]=(~temperature_value[0])+1; // 当为负值的时候,低8位的操作
if ((~temperature_value[0]) >= 0xff)// <-127度 ,则高8位进位
{
temperature_value[1]=(~temperature_value[1])+1;
}
else
{// 不小于-127度时,高8位取反
temperature_value[1]=~temperature_value[1]; }
s=1;//这个表示为负值,你只要在液晶上显示一个“-”就行。
}
然后把转换后的高低8位按你上面进行计算就行了。
不知道你能否看懂,看不懂照做就行了。

不知道为什么,这答案一放上去代码就乱换行,保持良好的代码风格是非常重要的。

回答2:

取得数和00001000 比较做出判断就行了

回答3:

歌颂搞活