打印

关于超声波调试的问题

[复制链接]
2554|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我用89S52做了个超声波测试的,感觉上电路、程序没错,调了一天但就是调不出来,一点数据显示都没!真烦部分程序如下:
void CountDistance()  //计算距离
{
if(succeed_flag==1)
{
    time=TH0;
    time=time*256+TL0;   //计算超声波往返用时
    distance=time*0.0172; //  算出车尾距障碍物的距离
}
else
{
    distance=0;
   //  test = !test; //测试灯变化
}
}

void DistanceDisplay()//距离值显示
{
uchar tvalue;
CountDistance();
if(distance==0)
{
  Writestring(0x80,"No Signal!");
}
else
{
  tvalue=distance;
   disdata[0]=tvalue/10000+0x30;//千位数
  disdata[1]=tvalue/1000+0x30;//百位数     
  disdata[2]=tvalue%1000/100+0x30;//十位数     
  disdata[3]=tvalue%100/10+0x30;//个位数     
        
     
  if(disdata[0]==0x30)   
   {
    disdata[0]=0x20;//如果百位为0,不显示   
    if(disdata[1]==0x30)   
    {
     disdata[1]=0x20;//如果百位为0,十位为0也不显示  
     if(disdata[2]==0x30)
      disdata[2]=0x20;
    }   
          }      
  WriteCommand(0x80);   
  WriteData(disdata[0]);//显示千位
  WriteCommand(0x81);   
  WriteData(disdata[1]);//显示百位   
  WriteCommand(0x82);   
  WriteData(disdata[2]);//显示十位   
  WriteCommand(0x83);   
  WriteData(disdata[3]);//显示个位   
  WriteCommand(0x85);   
  WriteData(0x43);//显示小数点   
  WriteCommand(0x86);   
  WriteData(0x4D);//显示小数位
}  
}
void send()
{
    TL0=0x00;
TH0=0x00;
#pragma asm
MOV R4,#01H
    SETB TR0
N1: CPL P3.4
    NOP
    NOP
    NOP
    NOP
    NOP
NOP
    NOP
    NOP
    NOP
NOP
    NOP
    NOP
CPL P3.4
    NOP
    NOP
    NOP
    NOP
NOP
    NOP
NOP
    NOP
    NOP
//    NOP       //10
    DJNZ R4,N1
    #pragma endasm
   
Delay5ms();
EA=1;
EX1=1;
}

//timer0中断子程
void timer0(void)interrupt 1//定时器0溢出,超过测距范围65535us*170m/s
{
TH0=0;
TL0=0;//复位
ET0=0;
TR0=0;//关闭定时器0
}
//外部中断int1中断子程
void exter1(void)interrupt 2
{
TR0=0;
EX1=0;
EA=0;
succeed_flag=1; //成功标志
}

void main()
{
LCMInit();
Writestring(0x80,"No Signal!");
distance=0;
time=0;
// times=0;  //发射超声波次数
Transmit=0;
TMOD=0x01;  //模式
TL0=0x00;
TH0=0x00;
IT1=1;    // 外部中断1 exter1 为边沿触发(下降沿有效)
// EX1=0;

while(1)
{
   succeed_flag=0; //清测量成功标志
   send();
   Delay5ms();
   Delay5ms();
   DistanceDisplay();
   Delay5ms();
   Delay5ms();
   Delay5ms();
  
}
}
麻烦各位帮小弟分析一下,或有更好的资料可以发到QQ:330410780@qq.com
在此谢各位咯!

发射.jpg (113.16 KB )

发射.jpg

接收.jpg (124.89 KB )

接收.jpg

相关帖子

沙发
sunreds|  楼主 | 2011-1-8 14:21 | 只看该作者
哦,忘了说,那个R11已经换上4.7欧的了

使用特权

评论回复
板凳
chenxiaocong| | 2011-1-8 14:29 | 只看该作者
先用示波器测试下,单片机的那个模拟38KHz的pin脚,有38KHz的波形出来么?

使用特权

评论回复
地板
chunyang| | 2011-1-8 14:33 | 只看该作者
先确认频率是否精确,超声传感器本身的谐振频率必须精确,否则输出功率很低,20106的接收接收频点也要与之相配。总体而言,楼主的硬件就不合适,软件也过于简单,肯定也有很多问题。

使用特权

评论回复
5
sunreds|  楼主 | 2011-1-8 14:53 | 只看该作者
呵呵,谢谢3楼和4楼的建议,至于那个5脚的谐振调节我改用200K的贴片跟20K的可调电阻串起来,还是没见效,不过我还没用过示波器测试,等下我拿到实验室测试一下!

使用特权

评论回复
6
chunyang| | 2011-1-8 15:02 | 只看该作者
频率是软件实现的,用定时器。

使用特权

评论回复
7
cumade| | 2011-1-8 16:38 | 只看该作者
:)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

4

帖子

1

粉丝