标题: 寻迹小车程序 [打印本页]

作者: 深海的鱼0821    时间: 2019-1-17 15:00
标题: 寻迹小车程序
/*赛道边框黑,赛道白*/
#include <reg52.h>  
/****L298N硬件连接***/  
sbit ENA = P1^0;
sbit ENB = P1^1;  
sbit IN4 = P1^2;  /*1*/  
sbit IN3 = P1^3;  /*0*/
sbit IN2 = P1^4;  /*1*/
sbit IN1 = P1^5;  /*0*/

sbit left3 = P0^0;  
sbit left2 = P0^1;
sbit left1 = P0^2;  
sbit right1= P0^3;  
sbit right2= P0^4;
sbit right3= P0^5;
unsigned char zkb1 = 0;  
unsigned char zkb2 = 0;  
unsigned char t = 0;  
  
  
void init()  
{  
    EA = 1;  
    TMOD |= 0x01;  
    TH0 =(65536 - 100) / 256;  
    TL0 = (65536 - 100)% 256;     
    ET0 = 1;  
    TR0 = 1;  
}  
  
void timer0() interrupt 1  
{  
  
    TH0 = (65536 - 100) / 256;  
    TL0 = (65536 - 100) % 256;  
         
    if(t < zkb1)  
         
      ENA = 1;         
      else         
      ENA = 0;                 
      
     
    if(t < zkb2)  
      
        
      {  
          ENB = 1;  
      }  
      else   
        
          ENB = 0;  
        
        
    ++t;  
    if(t >= 100)  
    {  
        t = 0;  
    }            
}
  
  
void turn_left1()  
{  
    zkb1 = 30;  
    zkb2 = 0;   
}  
void turn_left2()  
{  
    zkb1 = 0;  
    zkb2 = 50;   
}
void turn_left3()  
{  
    zkb1 = 0;  
    zkb2 = 50;   
}

  
void turn_right1()  
{  
    zkb1 =0;  
    zkb2 =50;
}
void turn_right2()  
{  
    zkb1 =50;  
    zkb2 =0;
}
void turn_right3()  
{  
    zkb1 =30;  
    zkb2 =0;
}
void turn_qianjin()  
{  
    zkb1 =80;  
    zkb2 =80;
}

/****主函数部分***/
void main()  
{  
    init();  
  zkb1 = 70;  
  zkb2 = 70;  
    IN1 = 0;  
    IN2 = 1;  
    IN3 = 1;  
    IN4 = 0;  
    while(1)  
   {
  if((left3==1)&&(left2==0)&&(right3==0)&&(right2==0)&&(right1==0))
     turn_left3() ;
     if((left3==0)&&(left2==1)&&(right3==0)&&(right2==0)&&(right1==0))
     turn_left2() ;
  if((left3==0)&&(left2==0)&&(left1==0)&&(right3==0)&&(right2==0)&&(right1==0))
     turn_left1() ;
     if((left3==0)&&(left2==0)&&(left1==0)&&(right3==1)&&(right2==0))     
    turn_right3();
  if((left3==0)&&(left2==0)&&(left1==0)&&(right3==0)&&(right2==1))     
    turn_right2();
  if((left3==0)&&(left2==0)&&(left1==0)&&(right3==0)&&(right2==0)&&(right1==0))     
    turn_right1();
  if((left3==0)&&(left2==0)&&(left1==1)&&(right3==0)&&(right2==0)&&(right1==1))
   {
    turn_qianjin() ;
   }
   }
}



作者: admin    时间: 2019-1-18 01:21
补全原理图或者详细说明一下电路连接即可获得100+黑币




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1