#include "reg52.h"
sbit L1=P0^0;
sbit S7=P3^0;
sbit YMQ_A=P2^5;
sbit YMQ_B=P2^6;
sbit YMQ_C=P2^7;
unsigned char stat=0;
unsigned char zkb;
unsigned char count=0;
void InitHC138(unsigned char n)
{
switch(n)
{
case 4:
YMQ_C=1;
YMQ_B=0;
YMQ_A=0;
break;
case 5:
YMQ_C=1;
YMQ_B=0;
YMQ_A=1;
break;
case 6:
YMQ_C=1;
YMQ_B=1;
YMQ_A=0;
break;
case 7:
YMQ_C=1;
YMQ_B=1;
YMQ_A=1;
break;
}
}
void Delay(unsigned int t)
{
while(t--);
}
void InitTimer0()
{
TMOD=0x01;
TH0=(65535-100)/256;
TL0=(65535-100)%256;
EA=1;
ET0=1;
}
void ServiceTimer0() interrupt 1
{
TH0=(65535-100)/256;
TL0=(65535-100)%256;
count++;
if(count<=zkb)
{
L1=0;
}
else if(count<100)
{
L1=1;
}
else if(count==100)
{
count=0;
}
}
void main()
{
InitTimer0();
InitHC138(4);
while(1)
{
if(S7==0)
{
Delay(50);
if(S7==0)
{
if(stat==0)
zkb=10,stat=1,TR0=1;
else if(stat==1)
zkb=50,stat=2;
else if(stat==2)
zkb=90,stat=3;
else if(stat==3)
TR0=0,L1=1,stat=0;
while(S7==0);
}
}
}
}