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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2025|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1029445 發(fā)表于 2022-5-24 23:37 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
幫忙看看謝謝大家
單片機(jī)源程序如下:
#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è)置定時(shí)器模式
        TMOD |= 0x01;                //設(shè)置定時(shí)器模式
        TL0 = 0xA4;                //設(shè)置定時(shí)初始值
        TH0 = 0xFF;                //設(shè)置定時(shí)初始值
        TF0 = 0;                //清除TF0標(biāo)志
        TR0 = 1;                //定時(shí)器0開始計(jì)時(shí)
        ET0=1;      //定時(shí)器0中斷允許開關(guān)
        EA=1;      //定時(shí)器總開關(guān)
        PT0=0;    //定時(shí)器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è)檢測到黑線,小車偏左,小車向右移動(dòng)
{
  car_rightgo ();
  if(D1==0&&D2==0&&D3==0&&D4==0)
  {
          car_go ();
        }
}
if(D1==0&&D2==0&&D3==1&&D4==0)  //中間左側(cè)檢測到黑線,小車偏右,小車向左移動(dòng)
{
  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 ();
}
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 337p日本欧洲亚洲大胆 | 亚洲日韩中文字幕一区 | www日日日| 免费麻豆视频 | 亚洲视频中文字幕 | 日韩在线播放一区 | 日韩欧美国产一区二区三区 | 成人影院一区二区三区 | 成人网在线观看 | 香蕉视频91 | 在线国产一区 | 国产亚洲黄色片 | 亚洲精品久久久一区二区三区 | 日韩中文字幕免费 | 精品日韩 | 手机av网| 成人在线中文字幕 | 国产欧美精品一区二区 | 美日韩中文字幕 | 日本中出视频 | 澳门永久av免费网站 | 国产精品自产拍 | 视频一区二区中文字幕 | 精品综合久久久 | 蜜桃综合在线 | 久草热线 | 成人在线播放网站 | 久久国产精品一区二区三区 | 精品国产精品一区二区夜夜嗨 | 中文字幕一区二区三区精彩视频 | 国产精品久久99 | 久热精品视频 | 综合色站导航 | 91精品久久久久久久久 | 亚洲在线 | 色综合久久天天综合网 | h在线观看 | 亚洲一区久久 | 亚洲国产精品第一区二区 | 亚洲一区二区三区免费在线观看 | 国产精品视频久久久 |