找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7238|回复: 4
收起左侧

如何理解单片机程序中18b20的输出数乘以0.0625?

[复制链接]
ID:134430 发表于 2018-11-27 14:42 | 显示全部楼层 |阅读模式
   temp=temp*0.0625*10+0.5;
这是18b20单片机程序中的一句,好多文章都说是18b20的精度要求,解释都不够详细,不理解,求有耐心的朋友帮忙解释一下,谢谢。
回复

使用道具 举报

ID:119159 发表于 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℃,这就是取一位小数的意思。
回复

使用道具 举报

ID:164602 发表于 2018-11-28 11:11 | 显示全部楼层
这里说的很清楚:
https://wenku.baidu.com/view/29e04ffff705cc1755270934.html
是百度文库——器件手册。
其中关键的一些内容是这样的: 1.jpg
器件自动设置的是最高分辩率,此时的数据存贮格式是这样的
1.jpg
现在就好懂了,为什么分辨率是1/16=0.0625
根据手册说明,还可以推知其它分辨率的数据存贮模式
1.jpg


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

回复

使用道具 举报

ID:134430 发表于 2018-11-28 13:09 | 显示全部楼层
caiseshamo 发表于 2018-11-27 20:34
temp*0.0625是讲读取数据按照分辨率0.0625转变为实际温度
*10+0.5是将浮点数转变为整数,+0.5是四舍五入, ...

明白了,谢谢!
回复

使用道具 举报

ID:134430 发表于 2018-11-28 13:09 | 显示全部楼层
HC6800-ES-V2.0 发表于 2018-11-28 11:11
这里说的很清楚:
https://wenku.baidu.com/view/29e04ffff705cc1755270934.html
是百度文库——器件手册 ...

明白了,谢谢!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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