你好,我在用DS18B20做温度测试的单片机,想知道读取到的DMPL=read_byte( );DMPH=read_byte 是几进制数?

还有语句temp=TMPL/16+TMPH*16具体是什么意思?它具体对数据进行了什么处理?我想让它的温度数据精确到小数点后一位,整数部分的十位和个位我都能计算出来,但是... 还有语句 temp= TMPL / 16 + TMPH * 16 具体是什么意思?
它具体对数据进行了什么处理?

我想让它的温度数据精确到小数点后一位,整数部分的十位和个位我都能计算出来,但是小数部分具体要怎么编程?
展开
 我来答
turntogo
2012-03-08 · 超过13用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:15万
展开全部
读到的两个字节一个是高8位,一个是低8位,将高8位乘以256再加上低8位,得到的就是DS18B20传回的温度数据,把这个数据乘以0.0625便得到温度数。
因为传回的数据是补码表示,而一般的单片机内部的整数也是补码表示,所以直接相乘就可以了,不需要做额外的码制转换。
至于你那个语句,应该是舍去了低4位,低4位是小数部分,得到的数据就是温度的整数部分。
追问
你说的“将高8位乘以256再加上低8位,得到的就是DS18B20传回的温度数据” 这个传回的温度数据是几进制的?

那我要计算得到可以显示一位小数的温度,要怎么编写程序?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式