g338 发表于 2013-4-10 09:33:41

求助超声波测距HC-SR04模块

{:cry:} 我的程序如下,下载到STC89C52的版子上,温度测量以及显示模块没问题,但是距离却总是少3厘米,求助各位大大啊!!!
写出一些首要的部分。






void main(void)




       
while(1)               
       {   
               if(15==count)         //900MS到检测温度
               {
         TH1=0;
         TL1=0;
         StartModule();
         while(!Echo);
         TR1=1;
         while(Echo);
         TR1=0;
         jsh=TH1;
         jsl=TL1;
       temp=wd();
         computer();//距离计算      
         hextobcd(); //转换BCD
       count=0;
       testtemp();
         display();
         }
      }
         
}

void StartModule(void)
{

          _nop_();
          _nop_();
          _nop_();
          _nop_();
          Trig=1;                                            
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          Trig=0;
          _nop_();
          _nop_();
          _nop_();
          _nop_();
}



void computer(void)
   {
          float c,d,s;
          uint t;
          if(temp<0x8000)         //温度为负
             c=331.4+0.607*temp*0.0625;               
          else
             c=331.4-0.607*temp*0.0625;
                      t=jsh*256+jsl;      //计算计数值
           d=(c*t*0.001)/2;
             d*=d;
             s=d-1.96;             //勾股定理,补偿
      distance=sqrt(s);      
    }

caicai2317 发表于 2013-4-10 10:04:55

总少3cm,那你直接加上3cm不就得了

yw231280 发表于 2013-6-17 14:48:23

感觉程序很精简哈,
页: [1]
查看完整版本: 求助超声波测距HC-SR04模块