#include "reg51.h"
#define uint unsigned int
#define uchar unsigned char
sbit a=P1^4;
sbit b=P1^5;
sbit c=P1^6;
sbit d=P1^7;
sbit k1=P3^4;
sbit k2=P3^5;
sbit k3=P3^6;
sbit k4=P3^7;
void delay(uchar i)//延时函数
{
uint x,y;
for(x=i;x>0;x--)
for(y=30;y>0;y--);
}
void run(uchar i)//运转函数
{
a=0;
delay(i);
a=1;
b=0;
delay(i);
b=1;
c=0;
delay(i);
c=1;
d=0;
delay(i);
d=1;
}
void main()
{
P3=0xff;
a=1;
b=1;
c=1;
d=1;
while(1)
{
stop :if(k1==0)//停止运转
a=b=c=d=1;
k2 :if(k2==0)//低速运转
{
delay(5);
if(k2==0)
{
while(k2==0);
while(1)
{
if(k1==0)
goto stop;
if(k3==0)
goto k3;
if(k4==0)
goto k4;
run(300);
}
}
}
k3 :if(k3==0)//中速运转
{
delay(5);
if(k3==0)
{
while(k3==0);
while(1)
{
if(k1==0)
goto stop;
if(k2==0)
goto k2;
if(k4==0)
goto k4;
run(250);
}
}
}
k4 :if(k4==0)//高速运转
{
delay(5);
if(k4==0)
{
while(k4==0);
while(1)
{
if(k1==0)
goto stop;
if(k3==0)
goto k3;
if(k2==0)
goto k2;
run(200);
}
}
}
}
}
|