久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1946|回復: 5
收起左側

單片機小車超聲波舵機模塊不知道為什么只有舵機轉,小車不走

[復制鏈接]
ID:702493 發表于 2020-3-10 22:09 | 顯示全部樓層 |閱讀模式
大佬看看是不是代碼有問題,已經卡這快一個星期了,
#include<reg52.h>
#include<intrins.h>
#define uint  unsigned int
#define uchar unsigned char
sbit trig=P1^0;
sbit echo=P2^0;    //觸發控制信號輸入
sbit pwm=P2^6;     //回響信號輸出
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()  //前進
  {
  M1A=0;
    M1B=1;
    M2A=0;
    M2B=1;
  }
  void houtui()   //后退
  {
  M1A=1;
    M1B=0;
    M2A=1;
    M2B=0;
  }
  void zuozhuan()  //左轉
  {
  M1A=1;
    M1B=0;
    M2A=0;
    M2B=1;
  }  
    void youzhuan()  //右轉
{
    M1A=0;
    M1B=1;
    M2A=1;
    M2B=0;
}  
void ceju(void)
{
  while(!echo);   //當echo為零時等待
    TR0=1;          //開啟計數
    while(echo);    //當echo為1計數并等待
  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中斷用來計數器溢出,超過測距范圍
  {
  flag=1;                //中斷溢出標志
  }
  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();
     }
    }
   }
  }


回復

使用道具 舉報

ID:702493 發表于 2020-3-11 09:55 | 顯示全部樓層
我寫了個小車移動的程序,里面沒有關于超聲波舵機的相關程序,只要插上超聲波trig小車就不走,拔了走,求原因
回復

使用道具 舉報

ID:367369 發表于 2020-3-11 15:28 | 顯示全部樓層
sbit echo=P2^0;    //觸發控制信號輸入

void ceju(void)
{
  while(!echo);   //當echo為零時等待
    TR0=1;          //開啟計數
    while(echo);    //當echo為1計數并等待
  TR0=0;
  time=TH0*256+TL0;
  TH0=0;
  TL0=0;
  s=(time*1.7)/100;  //單位cm
}
P2^0腳的模式是怎樣的  后面沒看到echo 的變化
這里兩個while 如果echo 值沒有一直01變化
就必然會產生一個while(1)的死循環;程序就會死在這里
回復

使用道具 舉報

ID:702493 發表于 2020-3-11 19:40 來自觸屏版 | 顯示全部樓層
game灬boy 發表于 2020-3-11 15:28
sbit echo=P2^0;    //觸發控制信號輸入

void ceju(void)

可我看很多資料都這么寫啊!
1583926787701.jpg
回復

使用道具 舉報

ID:367369 發表于 2020-3-29 16:10 | 顯示全部樓層
1145421628 發表于 2020-3-11 19:40
可我看很多資料都這么寫啊!

小車不走肯定是程序死在某個地方了,安照你的代碼問題應該出在ceju上面

示例代碼可能有把ECHO初始化,然后超聲波返回時對其進行改變,或者在中斷中將其變化
看不到你得硬件很難分析;你的P20腳的電平必須在ceju();時01變化

sbit trig=P1^0;
sbit echo=P2^0;    //觸發控制信號輸入
sbit pwm=P2^6;     //回響信號輸出

你得這些接的什么腳?可能是硬件接法問題
你得分析P20腳的電平到底怎么變的
回復

使用道具 舉報

ID:477107 發表于 2020-3-29 19:46 | 顯示全部樓層
程序看上去沒有明顯錯誤,確定硬件也沒有問題嗎,接線也都是正確的?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品成人一区二区三区 | 久久精品国产亚洲一区二区三区 | 亚洲国产成人精品女人久久久野战 | 国产一区二区三区四区区 | 亚洲综合大片69999 | 中文字幕亚洲欧美 | 久久专区 | 一区日韩 | 精品一区二区三区视频在线观看 | 夜夜骑综合 | 久久九九99 | 欧美网站一区二区 | 中日字幕大片在线播放 | 国产91av视频在线观看 | 91啪影院| 少妇诱惑av | 国产精品久久久久久久久久免费 | 韩国av网站在线观看 | 亚洲视频免费观看 | 一区二区国产精品 | av片网站 | 国产xxxx搡xxxxx搡麻豆 | 国产精品一区二区福利视频 | 99re在线免费视频 | 欧美影院 | 国产精品色婷婷久久58 | 日韩欧美黄色 | 成人欧美一区二区三区在线播放 | 五十女人一级毛片 | 欧美三级久久久 | 四虎最新视频 | 国产成人精品一区二区三 | 免费观看毛片 | 亚洲欧美一区二区三区在线 | 久久大 | 91视频网址 | 午夜精品视频一区 | 亚洲一二三在线观看 | 凹凸日日摸日日碰夜夜 | 成人精品一区亚洲午夜久久久 | 日韩精品成人一区二区三区视频 |