关于DS18B20的温度读取转换问题

[复制链接]
10362|10
 楼主| yuse 发表于 2009-10-31 21:32 | 显示全部楼层 |阅读模式
按照18B20的DATASHEET图表并结合例程可知实际温度值应该是单片机读出的18B20温度值*0.0625 我计算过,0度以上确实如此,但是0度以下为何也满足呢?我计算后发现*0.0625后应该减去4096才得到表中对应温度值。一直都是直接套用,没有仔细考虑过。请教大家是怎么回事呢?谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
LZL_83 发表于 2009-10-31 22:52 | 显示全部楼层
负数是用补码表示的
不亦心 发表于 2009-11-1 12:14 | 显示全部楼层
LS正解
 楼主| yuse 发表于 2009-11-1 16:44 | 显示全部楼层
谢谢 是我有些粗心了 也就是说单片机读出的直接就是个原码的补码 是个负的 然后我只需*0.0625换算就可以了吧
WLTXF 发表于 2009-11-1 17:36 | 显示全部楼层
判断数据的正负,若是负值,将读取到的数据转换为原码,再乘以0.0625,得到的数值的相反数,就是相应的零度以下的温度。显示的时候,在数值的前面加上“-”即可。
ningling_21 发表于 2009-11-1 18:10 | 显示全部楼层
连续工作4-5个小时为何读出的温度,比实际温度高出3-4度,难道是自升温?
328500920 发表于 2009-11-1 19:16 | 显示全部楼层
芯片自己也会发热
 楼主| yuse 发表于 2009-11-1 20:11 | 显示全部楼层
会有这种现象?稳定性那181B20还如何应用呢?我想不会吧...因为正好在做这个项目 上百个18B20 24小时工作不间断工作 6# ningling_21
 楼主| yuse 发表于 2009-11-1 20:13 | 显示全部楼层
会有这种现象?稳定性这么差 那181B20还如何应用呢?我想不会吧...因为正好在做这个项目 上百个18B20 而且需要工作时间呢不间断工作 7# 328500920
ningling_21 发表于 2009-11-1 20:33 | 显示全部楼层
9# yuse

你拿个温度计对比就知道了.
 楼主| yuse 发表于 2009-11-1 20:50 | 显示全部楼层
真如此,难道还得让设备工作一段时间停止一段时间?这样的话还如何达到要求呢?会不会是个别芯片出现这种现象,我想大部分应该不会的吧 呵呵 10# ningling_21
您需要登录后才可以回帖 登录 | 注册

本版积分规则

152

主题

453

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部