欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 51單片機(jī)超聲波小車(chē)的疑問(wèn) [打印本頁(yè)]

作者: 1145421628    時(shí)間: 2020-3-13 23:50
標(biāo)題: 51單片機(jī)超聲波小車(chē)的疑問(wèn)
程序沒(méi)有有關(guān)超聲波的內(nèi)容,只是一個(gè)直走的命令,但HC-SR04超聲波模塊連在單片機(jī)上,小車(chē)不走。
拔掉echo端口,小車(chē)直走。
檢查超聲波模塊,超聲波模塊完好。
這什么原因啊?求解答。

作者: 靳赟少    時(shí)間: 2020-3-14 09:25
你可以檢測(cè)主板波形
作者: HC6800-ES-V2.0    時(shí)間: 2020-3-14 10:11
你不提供軟件、硬件的信息,我們?cè)趺床碌玫接惺裁磫?wèn)題。就是平時(shí)你在學(xué)校問(wèn)師傅,也是要拿著那個(gè)東西問(wèn)吧?
作者: 1145421628    時(shí)間: 2020-3-14 12:00
HC6800-ES-V2.0 發(fā)表于 2020-3-14 10:11
你不提供軟件、硬件的信息,我們?cè)趺床碌玫接惺裁磫?wèn)題。就是平時(shí)你在學(xué)校問(wèn)師傅,也是要拿著那個(gè)東西問(wèn)吧?

#include<reg52.h>
#include<intrins.h>
#define uint  unsigned int
#define uchar unsigned char
sbit trig=P1^0;
sbit echo=P2^0;    //觸發(fā)控制信號(hào)輸入
sbit pwm=P2^6;     //回響信號(hào)輸出
sbit M1A=P0^0;
sbit M1B=P0^1;
sbit M2A=P0^2;  
sbit M2B=P0^3;
uchar count,jd;
uint  time=0,timer=0;   
bit flag =0;   
unsigned long s=0,zs=0,ys=0;
void delay(uint x)  
{
uint i,j;
     for(i=x;i>0;i--)   
for(j=110;j>0;j--);  
}
  void tingzhi()  //停止
  {
  M1A=0;
    M1B=0;
    M2A=0;
    M2B=0;
  }
  void qianjin()  //前進(jìn)
  {
  M1A=0;
    M1B=1;
    M2A=0;
    M2B=1;
  }
  void houtui()   //后退
  {
  M1A=1;
    M1B=0;
    M2A=1;
    M2B=0;
  }
  void zuozhuan()  //左轉(zhuǎn)
  {
  M1A=1;
    M1B=0;
    M2A=0;
    M2B=1;
  }  
    void youzhuan()  //右轉(zhuǎn)
{
    M1A=0;
    M1B=1;
    M2A=1;
    M2B=0;
}  
void ceju(void)
{
  while(!echo);   //當(dāng)echo為零時(shí)等待
    TR0=1;          //開(kāi)啟計(jì)數(shù)
    while(echo);    //當(dāng)echo為1計(jì)數(shù)并等待
  TR0=0;
  time=TH0*256+TL0;
  TH0=0;
  TL0=0;
  s=(time*1.7)/100;  //單位cm
}
   void qingling()
   {
    time=0;
    TH1=65036/256;
  TL1=65036%256;
    count=0;
   }
  void zd0()interrupt 1  //T0中斷用來(lái)計(jì)數(shù)器溢出,超過(guò)測(cè)距范圍
  {
  flag=1;                //中斷溢出標(biāo)志
  }
  void zd1()interrupt 3
  {
  TH1=65036/256;
  TL1=65036%256;
   if(count<jd) pwm=1;
   else pwm=0;
   count++;
   count=count%40;
   timer++;
    if(timer>=800)
    {
    timer=0;
     trig=1;
  _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
     trig=0;
    }
  }
  void main(void)
  {
  jd=3;
   count=0;
   TMOD=0x11;
   TH0=0;
   TL0=0;
   TH1=65036/256;
  TL1=65036%256;
   IE=0x8a;
   while(1)
   {
   TR1=1;
    ceju();
    if(s<=10);
    {
    tingzhi();
     jd=1;
     count=0;
     delay(20);
     TR1=0;
     qingling();
     TR1=1;
     ceju();
     ys=s;
     jd=5;
     count=0;
     delay(20);
     TR1=0;
     qingling();
     TR1=1;
     ceju();
     zs=s;
     jd=3;
     count=0;
     delay(20);
     TR1=0;
     if((zs>=ys)&&(zs>10))
     {
     zuozhuan();
     }
     else if((ys>=zs)&&(ys>10))
     {
     youzhuan();
     }
     else
     {
     houtui();
     }
     if((s>10)||(flag==1))
     {
      qianjin();
     }
    }
   }
  }
小車(chē)代碼
用的51單片機(jī),HC-SR04超聲波模塊,l298n電機(jī)驅(qū)動(dòng),還有HC-06藍(lán)牙模塊。
大佬,我這都快卡半個(gè)月了,一直找不出問(wèn)題。
作者: 51hei**1140    時(shí)間: 2020-3-14 13:27
你好!
先檢查下,超聲波模塊的收發(fā)是不是裝反了
作者: 1145421628    時(shí)間: 2020-3-14 15:13
51hei**1140 發(fā)表于 2020-3-14 13:27
你好!
先檢查下,超聲波模塊的收發(fā)是不是裝反了

沒(méi)有啊
作者: 李清波8    時(shí)間: 2020-3-14 17:58
應(yīng)該是你程序問(wèn)題,加入你的程序設(shè)置的是lenth<3.5m(實(shí)際距離遠(yuǎn)小于3.5m)小車(chē)走,則小車(chē)一直動(dòng)
作者: xianming    時(shí)間: 2020-3-15 10:51
每次超聲波測(cè)距之前需要先給trig一個(gè)觸發(fā)信號(hào),你的觸發(fā)放在中斷里了。
作者: HC6800-ES-V2.0    時(shí)間: 2020-3-15 11:34
1145421628 發(fā)表于 2020-3-14 12:00
#include
#include
#define uint  unsigned int

至少要改改這一句:
s=(time*1.7)/100;  //單位cm
改成這樣:
S= (long)(time*0.17);
如果不強(qiáng)制進(jìn)行類(lèi)型轉(zhuǎn)換,很可能s一直是零,所以車(chē)不動(dòng)。
作者: lem    時(shí)間: 2020-3-15 12:18
好好檢查一下硬件連接是否短路




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1