建议你可能一下十六进制转十进制,转二进制,二进制转十进制的算法
你也可以用计算机内置计算器来算一下,在十六进制内输入7D,再点十进制看是不是125
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 。
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |