ds18b20温度大于100时显示异常,什么情况啊
时间:10-02
整理:3721RD
点击:
问题已经解决,,谢谢大家
我写的一个18b20的温度显示程序,当温度大雨100的时候显示异常,大家给看看看什么情况下面是我温度数据处理
a=ReadOneChar(); //连续读两个字节数据 //读低8位
b=ReadOneChar(); //读高8位
if((b&0xf8)!=0x00) //负温度处理
{
b=~b;
a=~a+1;
flag=1;
}
else flag=0;
t=b;
t<<=8;
t=t|a; //两字节合成一个整型变量。
tt=t*0.0625; //得到真实十进制温度值,因为DS18B20可以精确到0.0625度,所以读回数据的最低位代表的是0.0625度
t= tt*10+0.5; //放大十倍,这样做的目的将小数点后第一位也转换为可显示数字,同时进行一个四舍五入操作。
显示方面我是这么处理的,大家看有问题吗
uint Hundred,Ten,One,Dot1;
P0=0xff;
P2=0x00;
Hundred=x/1000;
if(Hundred)
{
Ten=x%1000/100;
One=x&100/10; // 搞了半天原来是这里搞错了,这里应该是个 %
Dot1=x%10;
}
else
{
Ten=x/100;
One=x%100/10;
Dot1=x%10;
}
不是很懂,你把百位数显示了吗?
肯定显示了啊……………………
自己顶一下
/*******帖子长度不符合要求,加个小尾巴*******/
研究了半天,原来是百位显示这里这个符号搞错了,应该是个 % 的, 我给打成 &号 了