标题: DS18B20的温度计部分单片机程序,为什么Temp>1000时表示大于10度呢? [打印本页]

作者: 1258011    时间: 2018-6-6 18:24
标题: DS18B20的温度计部分单片机程序,为什么Temp>1000时表示大于10度呢?
void datapros(int temp)   
{
    float tp;  
if(temp< 0)   
   {
  DisplayData[0] = 0x40;   
temp=temp-1;
  temp=~temp;
  tp=temp;
  temp=tp*0.0625*100+0.5;
  if(temp>1000)//这里为什么是大于10呢?是怎么算的?
  {P1_2=0;P1_1=1;
  beeIO();}
  else
  {P1_2=1;P1_1=1;}

   }
如题,基于DS18B20的温度计部分程序,为什么Temp>1000时表示大于10度呢?


作者: 小猫猫爱吃鱼    时间: 2018-6-6 20:54
还有两位小数在里面
作者: devcang    时间: 2018-6-6 21:01
temp=tp*0.0625*100+0.5; /////这放大了100倍的。。。。。为了方便使用整数表示小数(2位小数)
作者: fengye615    时间: 2018-6-6 22:07
为了方便使用整数表示小数(2位小数)
作者: 1258011    时间: 2018-6-6 23:32
devcang 发表于 2018-6-6 21:01
temp=tp*0.0625*100+0.5; /////这放大了100倍的。。。。。为了方便使用整数表示小数(2位小数)

明白了,谢谢!
作者: 1258011    时间: 2018-6-6 23:33
fengye615 发表于 2018-6-6 22:07
为了方便使用整数表示小数(2位小数)

明白了,谢谢!




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