标题: 求助,DS18B20中的温度传感器完成对温度的测量的十六进制为什么除以十六 [打印本页]

作者: 张小霞    时间: 2013-3-16 22:03
标题: 求助,DS18B20中的温度传感器完成对温度的测量的十六进制为什么除以十六
DS18B20中的温度传感器完成对温度的测量,用16位二进制形式提供,例 如+125℃的数字输出为07D0H (正温度 直接吧16进制数转成10进制即得到温度值 ) 7*16*16+13*16不等于125啊?为什么呢?
作者: 青苹果    时间: 2013-3-17 10:35

建议你可能一下十六进制转十进制,转二进制,二进制转十进制的算法

 

你也可以用计算机内置计算器来算一下,在十六进制内输入7D,再点十进制看是不是125


作者: ahshmj    时间: 2013-3-17 18:52

DS18b20的温度转换结果是用2个字节(16进制2字节,二进制16位)表示的。其中高5位表示正负值,或全为0(正数),或全为1()负数。

 

 

低4位表示小数。(如果除以16,就是右移4位,就是去掉小数部分,只保留整数,7DH=125 。)

 

 

而0D70H=2000,是以“0.0625”为单位的(2000个0.0625)。2000*0.0625=125 。  而0.0625=1/16,所以(2000*0.0625)=(2000*(1/16))=2000/16。

 

 

16进制右移4位=除以16 。             小数部分(低4位)需要提出来,然后*0.0625 。


作者: 史粑粑    时间: 2019-1-9 18:03
总的再乘0.0625




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