#include<AT89X52.H> //????52?????????
//????????С?????????????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; // ???????
sbit BUZZ=P2^3;
#define Left_1_led P3_3 // ??????
#define Right_1_led P3_2 //???????
#define Left_moto_pwm P1_5 //PWM????
#define Right_moto_pwm P1_4 //PWM????
//???????
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=0.01;
EN2=0.01;
}
//С?????????
void backrun(void)
{
IN1=1; //????
IN2=0;
IN3=0; //????
IN4=1;
EN1=0.01;
EN2=0.01;
}
//С?????????
void leftrun(void)
{
IN1=0; //????
IN2=0;
IN3=1; //????
IN4=0;
EN1=0.01;
EN2=0.01;
}
//С?????????
void rightrun(void)
{
IN1=0; //????
IN2=1;
IN3=0; //????
IN4=0;
EN1=0.01;
EN2=0.01;
}
//С????????
void stopruo(void)
{
IN1=0; //????
IN2=0;
IN3=0; //????
IN4=0;
EN1=0.01;
EN2=0.01;
}
//??????
void main(void)
{
while(1){
if(Left_1_led==1)
if(Right_1_led==0)
{backrun();}
if(Right_1_led==0)
{leftrun();delay(50);}
else
if(Left_1_led==0)
{rightrun();delay(50);}
if(Left_1_led==1)
if(Right_1_led==1)
{run();}
} }
|