微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > ds18b20温度大于100时显示异常,什么情况啊

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;
        }

不是很懂,你把百位数显示了吗?

肯定显示了啊……………………

自己顶一下

/*******帖子长度不符合要求,加个小尾巴*******/

研究了半天,原来是百位显示这里这个符号搞错了,应该是个    %   的,   我给打成  &号 了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top