找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于DS18B20正负温度的判断问题

查看数: 3735 | 评论数: 4 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-5-24 14:37

正文摘要:

正温度的话直接乘0.625就得到实际温度,而负温度的话要取反加1再乘0.625,这里它是怎么判断正负温度的?

回复

ID:282850 发表于 2020-5-25 09:35
      if(Tempe & 0x800        )          //第12位为1,则温度为负值,取反加一,将补码变成原码
      {
            Tempe= ~Tempe+1;
      }
Tempe=Tempe*0.625+0.5;        //扩大10倍,四舍五入
ID:213173 发表于 2020-5-25 08:01
temp = (double)t; 在这里t被强制转换成双精度变量,就能以t的最高位判断+/-。
ID:195446 发表于 2020-5-24 22:53
因为负温度是用补码表示的,所以要取反加1。
ID:70069 发表于 2020-5-24 22:10
高8位大于7就是负温度,

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

Powered by 单片机教程网

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