找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1397|回复: 0
收起左侧

关于DS18b20的单片机程序问题,有2句看不懂

[复制链接]
ID:390344 发表于 2018-9-18 10:41 | 显示全部楼层 |阅读模式
  tvalue=tvalue*(0.0625);  
uint get_temper()//获取温度
{  
     
uchar a,b;
float wendu;
ds1820rst(4);
delay_18B20(4);  //延时   
ds1820wr(0xcc);  //跳过读序列号
ds1820wr(0x44);  //启动温度转换
ds1820rst(4);   
ds1820wr(0xcc);  //跳过读序列号
ds1820wr(0xbe);  //读取温度
a=ds1820rd();
b=ds1820rd();
tvalue=b;
tvalue<<=8;
tvalue=tvalue|a;
if(tvalue<0x0fff)   
  {
   tflag=0;           //温度正负标志=0为正
  }
else
  {
   tvalue=~tvalue+1;
   tflag=1;          //温度正负标志=0为正
  }
tvalue=tvalue*(0.0625);   //温度值扩大10倍,精确到1位小数
temp=tvalue;

return temp;
}

这两句什么意思  具体为什么这么写  ,  是怎么也能算的  可以直接用二进制数字成一个0.0625?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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