供大家学习参考
#include"reg52.h"
#include"intrins.h"
sbit PWMA_1=P1^0;
sbit PWMA_2=P1^1;
sbit PWMB_1=P1^2;
sbit PWMB_2=P1^3;
sbit MTA_EN_1=P1^6;
sbit MTB_EN_1=P1^7;
sbit left=P2^1;
sbit right=P2^2; //此处引脚号应与硬件相对应
typedef unsigned char u8;
typedef unsigned int u16;
void delay(u16 i)
{
while(i--);
} //设置延迟
void lgo() //下面开始定义常用的新函数
{
PWMA_1=1;
PWMA_2=0;
MTA_EN_1=0;
}
void lback()
{
PWMA_1=0;
PWMA_2=1;
MTA_EN_1=0;
}
void lstay()
{
MTA_EN_1=1;
}
void rgo()
{
PWMB_1=1;
PWMB_2=0;
MTB_EN_1=0;
}
void rback()
{
PWMB_1=0;
PWMB_2=1;
MTB_EN_1=0;
}
void rstay()
{
MTB_EN_1=1;
}
void main() //主程序运行
{
while(1)
{
if(left==0&&right==1)
{
lgo();delay(1000);
lstay();delay(1500);
rback();delay(1000);
rstay();delay(1500);
}
if(left==1&&right==0)
{
rgo();delay(1000);
lstay();delay(1500);
lback();delay(1000);
rstay();delay(1500);
}
if(left==0&&right==0)
{
lgo();delay(1000);
lstay();delay(900);
rgo();delay(1000);
rstay();delay(900);
}
if(left==1&&right==1)
{
lback();delay(1000);
lstay();delay(1200);
rback();delay(1000);
rstay();delay(1200);
}
}
}