找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5843|回复: 3
打印 上一主题 下一主题
收起左侧

求助,DS18B20中的温度传感器完成对温度的测量的十六进制为什么除以十六

[复制链接]
跳转到指定楼层
楼主
ID:41597 发表于 2013-3-16 22:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DS18B20中的温度传感器完成对温度的测量,用16位二进制形式提供,例 如+125℃的数字输出为07D0H (正温度 直接吧16进制数转成10进制即得到温度值 ) 7*16*16+13*16不等于125啊?为什么呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:27916 发表于 2013-3-17 10:35 | 只看该作者

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

 

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

回复

使用道具 举报

板凳
ID:7485 发表于 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 。

回复

使用道具 举报

地板
ID:462365 发表于 2019-1-9 18:03 | 只看该作者
总的再乘0.0625
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表