机器人团队第三周学习总结(补充)

小车电机前后左右综合实验

#include<AT89X52.H>	 //包含51单片机头文件
//定义智能小车驱动模块输入IO
sbit IN1 =	P1^2; // 高电平1 后退(反转)
sbit IN2 =  P1^3; // 高电平1 前进(正转)

sbit IN3 =	P1^6; // 高电平1 前进(正转)
sbit IN4 =  P1^7; // 高电平1 后退(反转)

sbit EN1 =	P1^4;   // 高电平使能 
sbit EN2 =  P1^5;	// 高电平使能 

//延时函数	
   void delay(unsigned int k)
{
    
        
     unsigned int x,y;
	 for(x=0;x<k;x++) 
	   for(y=0;y<2000;y++);
}

//小车前进函数
 void run(void)
 {
    
    
     IN1=0;		//左电机
	 IN2=1;

	 IN3=1;		//右电机
	 IN4=0;

	 EN1=1;   // 左端电机驱动开使能端
	 EN2=1;   // 右端电机驱动开使能端
 }

//小车后退函数
 void backrun(void)
 {
    
    
     IN1=1;		//左电机
	 IN2=0;

	 IN3=0;		//右电机
	 IN4=1;

	 EN1=1;
	 EN2=1;
 }
 //小车左转函数
 void leftrun(void)
 {
    
    
     IN1=0;		//左电机
	 IN2=0;

	 IN3=1;		//右电机
	 IN4=0;		

	 EN1=1;
	 EN2=1;
 }
  //小车右转函数
 void rightrun(void)
 {
    
    
     IN1=0;		//左电机
	 IN2=1;

	 IN3=0;		//右电机
	 IN4=0;

	 EN1=1;
	 EN2=1;
 }
   //小车停止函数
 void stopruo(void)
 {
    
    
     IN1=0;		//左电机
	 IN2=0;

	 IN3=0;		//右电机
	 IN4=0;

	 EN1=1;
	 EN2=1;
 }

//主函数
void main(void)
{
    
    
   
     run();   //调用前进函数
     delay(100);
	while(1)
	{
    
    
		   backrun();	//调用后退函数
		   delay(200);
		   leftrun(); 
		   delay(200);  
		   rightrun();
		   delay(200);
		   stopruo();
		   delay(400);
		   delay(400);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_51461824/article/details/112665585