|
#include <reg52.h>
#define unint unsigned int
#define unchar unsigned char
/*
* ?????
*/
sbit ENA = P2^0;
sbit ENB = P2^1;
sbit IN1 = P2^2;
sbit IN2 = P2^3;
sbit IN3 = P2^4;
sbit IN4 = P2^5;
sbit jiance1 = P1^0; //????
sbit jiance2 = P1^1; //????
int time1 = 0,shu = 0;
void zhengzhuan();
void youzhuan();
void zuozhuan();
void xunji();
void Time0Config();
void main()
{
Time0Config();
P0=0xff;
while(1)
{
xunji(); //????
}
}
void Time0Config()
{
TMOD = 0x01; //???0????1
TH0 = 0x3C;
TL0 = 0xB0; //?????????50ms
ET0 = 1; //???0????
TR0 = 1;
EA = 1; //?????
}
void zhengzhuan()
{
int i;
for(i=0;i<30;i++)
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
}
for(i=0;i<10;i++)
{
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
}
void zuozhuan()
{
int i;
for(i=0;i<30;i++)
{
IN1=1;
IN2=0;
IN3=0;
IN4=0;
}
for(i=0;i<10;i++)
{
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
}
void youzhuan()
{
int i;
for(i=0;i<30;i++)
{
IN1=0;
IN2=0;
IN3=1;
IN4=0;
}
for(i=0;i<10;i++)
{
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
}
void stop()
{
int i;
for(i=0;i<100;i++)
{
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
}
void xunji()
{
zhengzhuan();
while(jiance1==1&&jiance2==0)
{
stop();
// break;
}
//????????,????
while(jiance1==0&&jiance2==0)
{
zuozhuan();
// break;
}
while(jiance1==1&&jiance2==1)
{
youzhuan();
// break;
}
}
void time0(void) interrupt 1 //???0??????
{
TH0 = 0x3C;
TL0 = 0xB0;
time1++;
if(!(time1 - 20))
{ time1 = 0;
shu++;
}
}
|
|