|
#include <reg52.h>
sbit IN1=P0^0;
sbit IN2=P0^1;
sbit IN3=P0^2;
sbit IN4=P0^3;
sbit L_PWM=P0^4;
sbit R_PWM=P0^5;
sbit hongwai_l1=P2^2;
sbit hongwai_r1=P2^3;
sbit hongwai_l2=P2^4;
sbit hongwai_r2=P2^5;
#define uint unsigned int
#define uchar unsigned char
unsigned char l_tt=0;
unsigned char l_Lpwm=3;
unsigned char l_Rpwm=3;
void timer0()interrupt 1 using 2 //¶¨Ê±Æ÷ÖжÏ1£¬ÓõÚ2×é¼Ä´æÆ÷
{
TH0=0XFC;
TL0=0X18;
l_tt++;
if(l_tt>9)l_tt=0;
if(l_tt<=l_Lpwm){
L_PWM=1;
}
else{
L_PWM=0;
}
if(l_tt<=l_Rpwm){
R_PWM=1;
}
else{
R_PWM=0;
}
}
void delay1ms(uint i)
{
uint t;
for(;i>0;i--)
{
for(t=110;t>0;t--);
}
}
void main(void)
{
EA=1;
TMOD|=0X11;
TH0= 0XFC;
TL0= 0X14;
TR0= 1;
ET0= 1;
while(1){
if(hongwai_l1==0&&hongwai_r1==0)
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
delay1ms(10);
}
if(hongwai_l1==1&&hongwai_r1==1)
{
IN1=1;
IN2=1;
IN3=1;
IN4=1;
delay1ms(200);
IN1=0;
IN2=1;
IN3=0;
IN4=1;
delay1ms(200);
}
if(hongwai_l1==1&&hongwai_r1==0)
{
IN1=1;
IN2=1;
IN3=1;
IN4=0;
delay1ms(10);
}
if(hongwai_l1==0&&hongwai_r1==1)
{
IN1=1;
IN2=0;
IN3=1;
IN4=1;
delay1ms(10);
}
if(hongwai_l2==1)
{
while(1)
{
IN1=0;
IN2=1;
IN3=1;
IN4=0;
if(hongwai_l1==1)
break;
}
}
if(hongwai_r2==1)
{
while(1)
{
IN1=1;
IN2=0;
IN3=0;
IN4=1;
if(hongwai_r1==1)
break;
}
}
}
}
|
|