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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

基于51單片機的智能小車(遙控模塊尋跡避障)

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年03月28日   【字體:

在淘寶購買的尋跡模塊+自己做的小車底盤 測試成功

#include<reg52.h>
sbit P1_0 = P1^0;
sbit P1_1 = P1^1;
sbit P1_2 = P1^2;
sbit P1_3 = P1^3;
sbit P1_4 = P1^4;
sbit P1_5 = P1^5;
sbit P1_6 = P1^6;
sbit P1_7 = P1^7;
sbit P2_0 = P2^0;
sbit P2_1 = P2^1;
sbit P2_2 = P2^2;
sbit P2_3 = P2^3;
sbit P2_4 = P2^4;
sbit P2_5 = P2^5;
sbit P2_6 = P2^6;
sbit P2_7 = P2^7;
sbit P3_2 = P3^2;
sbit P3_3 = P3^3;
sbit P3_4 = P3^4;
sbit P3_5 = P3^5;
sbit P3_6 = P3^6;
sbit P3_7 = P3^7;
#define uchar unsigned char
#define uint unsigned int
#define Left_1_led        P3_2  //P3_2接四路尋跡模塊接口第一路輸出信號即中控板上面標記為OUT1
#define Right_1_led       P3_3  //P3_3接四路尋跡模塊接口第二路輸出信號即中控板上面標記為OUT2 
#define Left_2_led        P3_4  //P3_4接四路尋跡模塊接口第三路輸出信號即中控板上面標記為OUT3
#define Right_2_led       P3_5  //P3_5接四路尋跡模塊接口第四路輸出信號即中控板上面標記為OUT4
#define Left_moto_go      {P1_0=1,P1_1=0,P1_2=1,P1_3=0;}  //左邊兩個電機向后轉
#define Left_moto_back    {P1_0=0,P1_1=1,P1_2=0,P1_3=1;}    //左邊兩個電機向前走
#define Left_moto_Stop    {P1_0=0,P1_1=0,P1_2=0,P1_3=0;}    //左邊兩個電機停轉                    
#define Right_moto_go     {P1_4=1,P1_5=0,P1_6=1,P1_7=0;} //右邊兩個電機向前走
#define Right_moto_back   {P1_4=0,P1_5=1,P1_6=0,P1_7=1;} //右邊兩個電機向前走
#define Right_moto_Stop   {P1_4=0,P1_5=0,P1_6=0,P1_7=0;} //右邊兩個電機停轉  
/*********************************延時函數 ***************************************/ 
void delay(uint k)
{   
  uint x,y;
  for(x=0;x<k;x++)
    for(y=0;y<2000;y++);
}
/**********************************前進**************************************/
 void  run(void)
{
  Left_moto_go ;
  Right_moto_go ;
}
/**********************************后退**************************************/
 void  back(void)
{
 Left_moto_back;        //左邊兩個電機反式開始轉
 Right_moto_back;        //右邊兩個電機反轉
}
/**********************************左轉**************************************/
 void  leftrun(void)
{
 Right_moto_go;         //右邊兩個電機正轉
 Left_moto_back;        //左邊兩個電機反式開始轉
}
/**********************************右轉**************************************/
 void  rightrun(void)
{
 Left_moto_go;         //左邊兩個電機正轉
 Right_moto_back;        //右邊兩個電機反轉
}
/**********************************停止**************************************/
 void  stop(void)
{
 Left_moto_Stop;         //右邊兩個電機正轉
 Right_moto_Stop;        //左邊兩個電機反式開始?
}
/**********************************遙控模塊**************************************/
void remotecontrol()
{
   if(P2_0 == 1)
   {
      delay(10);//延時去抖動
   if(P2_0==1)
      {
  run();
      }
   }
   if(P2_1 == 1)
   {
      delay(10);//延時去抖動
   if(P2_1==1)
      {
  back();
      }
   }
   if(P2_2 == 1)
   {
      delay(10);//延時去抖動
   if(P2_2==1)
      {
  leftrun();
      }
   }
   if(P2_3 == 1)
   {
      delay(10);//延時去抖動
   if(P2_3==1)
      {
  rightrun();
      }
   }
}
/***********************************循跡模塊***********************************/
void track()
{
 if(Left_1_led==0&&Right_1_led==0)     //有信號為0  沒有信號為1
     
  run();
 
 else
 {  
  if(Left_1_led==0&&Right_1_led==1)  //右邊檢測到黑線
  {  
   rightrun();
  } 
  if(Right_1_led==0&&Left_1_led==1)     //左邊檢測到黑線
  {  
   leftrun();
  }
  if(Right_1_led==1&&Left_1_led==1)     //左邊檢測到黑線
  {  
   stop();
  }
 }
}
/***********************************避障***************************************/
void bar()
{
 if(Left_2_led==1&&Right_2_led==1)     //有信號為0  沒有信號為1
 
  run();
 
 else
 {  
  if(Left_2_led==1&&Right_2_led==0)  //右邊檢測到障礙
  {  
   leftrun();
  } 
  if(Right_2_led==1&&Left_2_led==0)     //左邊檢測到障礙
  {  
   rightrun();
  }
  if(Right_2_led==0&&Left_2_led==0)     //左右邊都檢測到障礙
  {  
   rightrun();
  }
 }   
}
/**********************************主函數**************************************/
void main(void)
{
 while(1)       /*無限循環*/
 {
  if(P2_4 == 0)
  {
   delay(10);//延時去抖動
   if(P2_4==0)
   {
    stop();
    while(P2_5&P2_6)
    {
     remotecontrol();
    }
 
   }
  }
    if(P2_5 == 0)
    {
       delay(10);//延時去抖動
    if(P2_5==0)
   {
    while(P2_4&P2_6)
    {
     track(); 
    }    
    }
    }
    if(P2_6 == 0)
    {
       delay(10);//延時去抖動
    if(P2_6==0)
   {
    while(P2_4&P2_5)
    {
     bar(); 
    }    
    }
    }
 }
}
關閉窗口

相關文章

主站蜘蛛池模板: 黄a免费网络 | 噜久寡妇噜噜久久寡妇 | 久久av一区二区三区 | 国产一区高清 | 亚洲一区二区精品视频 | www.久久99 | 欧美亚洲在线视频 | 国产91视频播放 | 不卡一区 | 国产一二三区精品视频 | 免费观看的av毛片的网站 | 欧美日韩在线播放 | 欧美三级在线 | 久久精品国产99国产精品 | 亚洲一区二区av | 国产91九色 | 在线a视频网站 | 欧美日韩a | 91精品久久久久久久久久入口 | 久久r久久 | 国产成人精品免费视频大全最热 | 中文字幕在线网 | 日韩靠逼 | 精品国产一区二区三区免费 | 亚洲综合字幕 | 中文字幕乱码一区二区三区 | 天天拍天天插 | 久草视频在线看 | 久久国产日本 | 国产一区在线免费 | 天堂精品视频 | 一级片网站视频 | 精品一区二区三区在线观看 | 精品国产一区二区国模嫣然 | 欧美男人的天堂 | 日韩在线播放中文字幕 | h视频在线免费 | 精品欧美一区二区三区久久久 | 午夜爽爽爽男女免费观看影院 | 午夜欧美一区二区三区在线播放 | 国产目拍亚洲精品99久久精品 |