/*********************************************
//小车的驱动函数
//1:前进 2:后退 3:左转 4:右转 5:停止
//L R表示左右轮子的转速,共有1个档位
***************************************************/
#include "PWM.H"
#include "STC15F2K.h"
#include "drive.h"
sbit EAD=P0^0;
sbit EBD=P0^1;
sbit PA1=P0^2; //左边 PA1=0 PA2=1 前
sbit PA2=P0^3;
sbit PB1=P0^4; //右边 PB1=0 PB2=1 前
sbit PB2=P0^5;
typedef unsigned char uchar;
typedef unsigned int uint;
/*********************************************
L_wheel1左边前进,L_wheel2左边后退L_wheel3左边停止
***************************************************/
#define L_wheel1 {P0|=0X09;P0&=0X03B ;} //前进
#define L_wheel2 {P0|=05;P0&=0X37;} //后退
#define L_wheel3 {P0|=0X00;P0&=0X32;} //停止
#define R_wheel1 {P0|=0X22;P0&=0X2F;} //前进
#define R_wheel2 {P0|=0x12;P0&=0X1F;} //后退
#define R_wheel3 {P0|=0X00;P0&=0X0D;} //停止
extern uint Count0;
void drive(unsigned char dir)
{
static unsigned char f;
if(f!=dir)
{
switch(dir)
{
case 1:L_wheel1;R_wheel1;
break;
case 2:L_wheel2;R_wheel2;
break;
case 3:L_wheel2;R_wheel1;
break;
case 4:L_wheel1;R_wheel2;
break;
case 5:L_wheel3;R_wheel3;
}
f=dir;
}
}