#include<reg51.h>
typedef unsigned int uint16;
typedef unsigned char uint8;
sbit key1=P3^5; //正转按钮
sbit key2=P3^6; //反转按钮
sbit key3=P3^7; //停止按钮
sbit l1=P0^0; //正转灯
sbit l2=P0^1; //反转灯
sbit l3=P0^2; //停止灯
uint8 a[4]={0x03,0x06,0x0c,0x09}; //正转2圈参数
uint8 b[4]={0x0c,0x06,0x03,0x09}; //反转2圈参数
void delay(uint16 i)
{
while(i--);
}
void main()
{
uint8 i,j,k;
l1=l2=0,l3=1;
while(1)
{
if(!key1)
{
delay(1000); //延时10ms去抖
if(!key1)
{
l3=0,l2=0;
l1=1;
for(k=0;k<6;k++)
{
for(i=0;i<4;i++) //正转2圈
{
P2=a[i];
delay(10000);
if(!key3)
{
delay(1000);
if(!key3)
{
l1=0,l2=0;
l3=1;
delay(1000);
}
while(!key3);
}
}
}
}
while(!key1);
}
if(!key2)
{
delay(1000);
if(!key2)
{
l1=0,l3=0;
l2=1;
for(k=0;k<6;k++)
{
for(j=0;j<4;j++) //反转2圈
{
P2=b[j];
delay(10000);
if(!key3)
{
delay(1000);
if(!key3)
{
l1=0,l2=0;
l3=1;
delay(1000);
}
while(!key3);
}
}
}
}
while(!key2);
}
if(!key3)
{
delay(1000);
if(!key3)
{
l1=0,l2=0;
l3=1;
delay(1000);
}
while(!key3);
}
}
}