#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
bit sign_a=0,sign_b=0,sign_c=0,sign_d=0;//标志
uint count1=0,count2=0;
sbit LED1 = P2^0;
sbit LED2 = P2^1;
sbit LED3 = P2^2;
sbit key = P3^1;
void keyscan()
{
static uchar count=0;
if(key==0)
{
count++;
if(count>=100)
{
count=100;
if(sign_c==0)
{
sign_a=1;
sign_c=1;
EA = 0;
count2+=600;
EA = 1;
}
}
}
else
{
if(sign_c==1)
{
sign_c=0;
sign_d=1;
}
count=0;
}
}
void main(void)
{
TMOD = 0x01;
TH0 =(65536-50000)/256;
TL0 =(65536-50000)%256;
TR0=1;
EA = 1;
ET0 = 1;
while(1)
{
keyscan();
if(sign_b==1)
LED1 = 0,LED2 = 0,LED3 = 0;
else
LED1 = 1,LED2 = 1,LED3 = 1;
}
}
void time0() interrupt 1
{
TH0 =(65536-50000)/256;
TL0 =(65536-50000)%256;
if(sign_a==1)
{
count1++;
if(count1>=20)
{
count1=0;
sign_a=0;
sign_b=1;
}
}
if((sign_b==1)&(sign_d==1))
{
count2--;
if(count2==0)
{
sign_b=0;
sign_d=0;
}
}
}
|