[电赛]寻迹小车代码

“7”字形循迹


/*请注意,这个程序是不能直接使用的,你要自己实现小车的向前,向后,向左,向右,及其延时的子程序*/
#include 
void CarGo();
void CarBack();
void CarTurnLeft();
void CarTurnRight();
void Delayms(unsigned char n);
void CarStop();

/*定义循迹传感器管脚*/
sbit CLP=P1^0;
sbit SS1=P1^1;
sbit SS2=P1^2;
sbit SS3=P1^3;
sbit SS4=P1^4;
sbit SS5=P1^5;
sbit Near=P1^6;


void CarGoLine()	 //小车沿黑线走
{  
 if(SS2==0) 
		{ 
		 	CarTurnLeft();
		}
		else
		{
	    if(SS4==0) 
		{  
		  CarTurnRight();
		}
		else 
		{  
		 CarGo();
		}
		}
}
void main()
{  	 
unsigned char flag;
flag=0; 
     while(flag==0)
	 {
	  CarGoLine();
	  if((SS1==0)||(SS2==1))
	  {  
		 CarGo();
		 Delayms(200);// 判断不是 “倒T” 字形接口  具体延时时间看小车的速度和性能
		 if(SS3==1) flag=1;
	  }
	 }

   CarStop();

}

“T ”字形循迹


/*这个程序是不能直接使用的,要自己实现小车的向前,向后,向左,向右,及其延时的子程序*/
#include 
void CarGo();
void CarBack();
void CarTurnLeft();
void CarTurnRight();
void Delayms(unsigned char n);
void CarStop();

/*定义循迹传感器管脚*/
sbit CLP=P1^0;
sbit SS1=P1^1;
sbit SS2=P1^2;
sbit SS3=P1^3;
sbit SS4=P1^4;
sbit SS5=P1^5;
sbit Near=P1^6;


void CarGoLine()	 //小车沿黑线走
{  
 if(SS2==0) 
		{ 
		 	CarTurnLeft();
		}
		else
		{
	    if(SS4==0) 
		{  
		  CarTurnRight();
		}
		else 
		{  
		 CarGo();
		}
		}
}
void main()
{  	 
unsigned char flag;
flag=0; 
     while(flag==0)
	 {
	  CarGoLine();
	  if((SS1==0)&&(SS5==0))
	  {  
		 CarGo();
		 Delayms(200);// 判断不是 “十” 字形接口  具体延时时间看小车的速度和性能
		 if(SS3==1) flag=1;
	  }
	 }

   CarStop();

}

“十”字形循迹


/*程序是不能直接使用的,要自己实现小车的向前,向后,向左,向右,及其延时的子程序*/
#include 
void CarGo();
void CarBack();
void CarTurnLeft();
void CarTurnRight();
void Delayms(unsigned char n);
void CarStop();

/*定义循迹传感器管脚*/
sbit CLP=P1^0;
sbit SS1=P1^1;
sbit SS2=P1^2;
sbit SS3=P1^3;
sbit SS4=P1^4;
sbit SS5=P1^5;
sbit Near=P1^6;


void CarGoLine()	 //小车沿黑线走
{  
 if(SS2==0) 
		{ 
		 	CarTurnLeft();
		}
		else
		{
	    if(SS4==0) 
		{  
		  CarTurnRight();
		}
		else 
		{  
		 CarGo();
		}
		}
}
void main()
{  	 
unsigned char flag;
flag=0; 
     while(flag==0)
	 {
	  CarGoLine();
	  if((SS1==0)&&(SS5==0))
	  {  
		 CarGo();
		 Delayms(200);// 判断不是 “T” 字形接口  具体延时时间看小车的速度和性能
		 if(SS3==0) flag=1;

	  }
	 }

   CarStop();

}

普通循迹

#include 
void CarGo();
void CarBack();
void CarTurnLeft();
void CarTurnRight();
void Delayms();
void CarStop();

/*定义循迹传感器管脚*/
sbit CLP=P1^0;
sbit SS1=P1^1;
sbit SS2=P1^2;
sbit SS3=P1^3;
sbit SS4=P1^4;
sbit SS5=P1^5;
sbit Near=P1^6;

void main(void)
{  
      CarGo();
      while(1)
      {  
        if(SS2==0) 
        { 
             CarTurnLeft();
        }
        else
        {
        if(SS4==0) 
        {  
          CarTurnRight();
        }
        else 
        {  
         CarGo();
        }
        }
      }
}

你可能感兴趣的:(电赛,嵌入式硬件,stm32)