标题: 关于DS18B20单片机程序中的问题 [打印本页]

作者: 嘻哈诗人    时间: 2018-4-2 23:06
标题: 关于DS18B20单片机程序中的问题
        TEMP=TEMP_data[1]&0xf0;
        if(TEMP==0xf0)   
        {
                if(TEMP_data[0]==0)
                {
                        TEMP_data[0]=~TEMP_data[0]+1;
                        TEMP_data[1]=~TEMP_data[1]+1;
                }
                else
                {
                        TEMP_data[0]=~TEMP_data[0]+1;
                        TEMP_data[1]=~TEMP_data[1];
                }
这几段程序什么意思呢?


作者: HC6800-ES-V2.0    时间: 2018-4-3 08:45
老实说,这段程序是什么意思,还真不知道。你编过程序就知道,变量取名是有编程者思路的,没注释时,看程序是非常困难的。而且你还只发个部分出来。
所以没有人帮你,不是不帮,是帮不了。

我猜了个答案,不知道对不对:
因为18B20转换出来的温度值,是以补码方式保存的,所以,读温度值时,就必须转换为正常的数值。
补码规则是:正数的补码就是正数本身,负数的补码,是原码取反再加一。
看你这个程序,好像是这样的数据转换,至于是怎么用的,就不知道了。
我猜的,不知道对不对。
作者: 嘻哈诗人    时间: 2018-4-3 09:54
HC6800-ES-V2.0 发表于 2018-4-3 08:45
老实说,这段程序是什么意思,还真不知道。你编过程序就知道,变量取名是有编程者思路的,没注释时,看程序 ...

谢谢





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1