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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1953|回復(fù): 2
收起左側(cè)

為啥我的單片機循跡小車程序燒錄進(jìn)去之后不能循跡啊 就一直按著直線走?

[復(fù)制鏈接]
ID:1029445 發(fā)表于 2022-5-24 23:37 | 顯示全部樓層 |閱讀模式
幫忙看看謝謝大家
單片機源程序如下:
#include <reg52.h>#define uint unsigned int
#define uchar unsigned char
sbit IN11=P1^6;    //左前輪
sbit IN12=P1^7;
sbit IN13=P1^4;     //右前輪
sbit IN14=P1^5;
sbit IN21=P1^0;     // 左后輪
sbit IN22=P1^1;
sbit IN23=P1^2;     //右后輪
sbit IN24=P1^3;
sbit S1=P0^3;       //速度
sbit S2=P0^2;
sbit S3=P0^1;
sbit S4=P0^0;
sbit D1=P2^3;       //循跡
sbit D2=P2^2;
sbit D3=P2^1;
sbit D4=P2^0;
uchar counter,compare;
void a ()          //左輪前進(jìn)
{
  IN11=1;      
  IN12=0;
        IN21=1;
        IN22=0;
}
void aa ()          //左輪后退
{
  IN11=0;      
  IN12=1;
        IN21=0;
        IN22=1;
}
void b ()
{
        IN13=0;     //右輪前進(jìn)
  IN14=1;
        IN23=0;
        IN24=1;
}
void bb ()
{
        IN13=1;     //右輪后退
  IN14=0;
        IN23=1;
        IN24=0;
}
void car_stop ()     //停止
{
        IN11=1;
        IN12=1;
        IN13=1;
        IN14=1;
        IN21=1;   
  IN22=1;
        IN23=1;
        IN24=1;
}

void Timer0_Init()                //100微秒@11.0592MHz
{

        TMOD &= 0xF0;                //設(shè)置定時器模式
        TMOD |= 0x01;                //設(shè)置定時器模式
        TL0 = 0xA4;                //設(shè)置定時初始值
        TH0 = 0xFF;                //設(shè)置定時初始值
        TF0 = 0;                //清除TF0標(biāo)志
        TR0 = 1;                //定時器0開始計時
        ET0=1;      //定時器0中斷允許開關(guān)
        EA=1;      //定時器總開關(guān)
        PT0=0;    //定時器0中斷優(yōu)先級
}
void Timer0_Routine() interrupt 1 //中斷函數(shù)
{
        TL0 = 0xA4;               
        TH0 = 0xFF;               
  compare=6;
        counter++;
        if(counter>=20)
  {
                counter=0;
  }
  if(counter<compare)
  {
          S1=1;
          S2=1;
          S3=1;
          S4=1;
  }
  else
  {
          S1=0;
          S2=0;
          S3=0;
          S4=0;
  }
}
void car_go()   //小車向前
{
        compare=5;
        a();
        b();
}
void car_back()//小車向后
{
  compare=5;
        aa();
  bb();
}
void car_leftgo()//左拐
{                        
        compare=5;
        aa();
        b();
}
void car_rightgo()  //右拐
{
        compare=5;
  a();
  bb();        
}
void delayms (uint x)
{
        int i,j;
        for(i=x;i>0;i--)
  for(j=110;j>0;j--);
}
void xunji ()
{
if(D1==1&&D2==1&&D3==1&&D4==1)  //全檢測到黑線
{
   car_go ();
}
if(D1==0&&D2==1&&D3==0&&D4==0)  //中間右側(cè)檢測到黑線,小車偏左,小車向右移動
{
  car_rightgo ();
  if(D1==0&&D2==0&&D3==0&&D4==0)
  {
          car_go ();
        }
}
if(D1==0&&D2==0&&D3==1&&D4==0)  //中間左側(cè)檢測到黑線,小車偏右,小車向左移動
{
  car_leftgo ();
  if(D1==0&&D2==0&&D3==0&&D4==0)
  {
          car_go ();
        }
}
if(D1==0&&D2==0&&D3==1&&D4==1)  //直角左拐
{
  car_go ();
  delayms(500);
  if(D1==0&&D2==0&&D3==0&&D4==0)
  {
   car_stop();
   delayms(500);
   car_leftgo ();
  }
}
if(D1==1&&D2==1&&D3==0&&D4==0)  //直角右拐
{
  car_go ();
  delayms(500);
  if(D1==0&&D2==0&&D3==0&&D4==0)
  {
   car_stop();
   delayms(500);
   car_rightgo ();
  }
}
if((D1==0&&D2==0&&D3==0&&D4==1)||(D1==0&&D2==1&&D3==0&&D4==1)||(D1==0&&D2==1&&D3==1&&D4==1))  //銳角左拐
{
  car_go ();
  delayms(500);
  delayms(500);
  if(D1==0&&D2==0&&D3==0&&D4==0)
  {
   car_stop();
   delayms(500);
   car_leftgo();
  }
}
if((D1==1&&D2==0&&D3==0&&D4==0)||(D1==1&&D2==0&&D3==1&&D4==0)||(D1==1&&D2==1&&D3==1&&D4==0))  //銳角右拐
{
  car_go ();
  delayms(500);
  delayms(500);
  if(D1==0&&D2==0&&D3==0&&D4==0)
  {
   car_stop();
   delayms(500);
   car_rightgo();
  }
}
if(D1==0&&D2==1&&D3==1&&D4==0)
{
   car_go();
}

}
void main ()
{
Timer0_Init();
car_go ();
while (1)
{
   xunji ();
}
}
回復(fù)

使用道具 舉報

ID:844772 發(fā)表于 2022-5-25 09:39 | 顯示全部樓層
1.調(diào)整好紅外模塊,基本每次上場都要調(diào)的。
2.確認(rèn)你模塊邏輯,你程序認(rèn)為在黑線上是1,平時是0,確認(rèn)一下是不是真這樣?
3.循跡程序有問題,發(fā)現(xiàn)黑線后,車轉(zhuǎn)向需要時間,可能會有一個過線的情況,你馬上跟了判斷全白的程序,來不及執(zhí)行轉(zhuǎn)向就收到直行命令了。建議你先做簡單判斷尋線程序,成功后再逐步增加特殊情況。
回復(fù)

使用道具 舉報

ID:979299 發(fā)表于 2022-5-25 11:48 | 顯示全部樓層
程序看上去沒什么問題,只有倒車函數(shù)未調(diào)用,檢查硬件正常工作了沒有,有沒有插錯,接反和損壞之類的
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品一区二区三区蜜桃久 | 午夜影院普通用户体验区 | 国产三级 | 极品国产视频 | 91一区| 97人人爱| 国产精品久久久久久久久免费相片 | 亚洲欧美一区二区三区视频 | 国产精品久久影院 | 久久婷婷麻豆国产91天堂 | 国产精品欧美一区二区三区不卡 | 一区二区视频 | 欧美激情久久久久久 | 欧美久久一区二区三区 | 视频一区在线观看 | 精品一区二区三区不卡 | 国产精品一二三区 | 亚洲成人精品 | 在线视频日韩 | 久久精品国产99国产精品 | 福利视频一区二区 | 欧美久久国产 | 国产精品久久久久久久久久久久久 | 波多野结衣亚洲 | 亚洲精品大全 | 性色的免费视频 | 国产偷自视频区视频 | 国产一区二区欧美 | 国产激情91久久精品导航 | 九九亚洲 | 亚洲 欧美 在线 一区 | 91国内精精品久久久久久婷婷 | 黑人性hd | 国产精品99久久久久久久久 | 三级免费 | 日本在线一二 | 红桃成人在线 | 91在线精品秘密一区二区 | 久久久久亚洲精品 | 国产成人精品一区二区三区在线 | 奇米影视77 |