标题: 如何理解单片机程序中18b20的输出数乘以0.0625? [打印本页]

作者: wh8010jky    时间: 2018-11-27 14:42
标题: 如何理解单片机程序中18b20的输出数乘以0.0625?
   temp=temp*0.0625*10+0.5;
这是18b20单片机程序中的一句,好多文章都说是18b20的精度要求,解释都不够详细,不理解,求有耐心的朋友帮忙解释一下,谢谢。

作者: caiseshamo    时间: 2018-11-27 20:34
temp*0.0625是讲读取数据按照分辨率0.0625转变为实际温度
*10+0.5是将浮点数转变为整数,+0.5是四舍五入,以31.25℃为例,进行该运算后,变为312.5+0.5=313

313是整数,上位机读取后再除以10就得到31.3℃,这就是取一位小数的意思。
作者: HC6800-ES-V2.0    时间: 2018-11-28 11:11
这里说的很清楚:
https://wenku.baidu.com/view/29e04ffff705cc1755270934.html
是百度文库——器件手册。
其中关键的一些内容是这样的:
器件自动设置的是最高分辩率,此时的数据存贮格式是这样的

现在就好懂了,为什么分辨率是1/16=0.0625
根据手册说明,还可以推知其它分辨率的数据存贮模式



老实说,我以前也没有搞懂这个,看到这个问题,在网上找资料,是可以学懂的嘛.


作者: wh8010jky    时间: 2018-11-28 13:09
caiseshamo 发表于 2018-11-27 20:34
temp*0.0625是讲读取数据按照分辨率0.0625转变为实际温度
*10+0.5是将浮点数转变为整数,+0.5是四舍五入, ...

明白了,谢谢!
作者: wh8010jky    时间: 2018-11-28 13:09
HC6800-ES-V2.0 发表于 2018-11-28 11:11
这里说的很清楚:
https://wenku.baidu.com/view/29e04ffff705cc1755270934.html
是百度文库——器件手册 ...

明白了,谢谢!




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