#include <REGX51.H>
sbit K1 = P1^0;
bit bz,bz2;
unsigned char dat = 0x01;
void delay(unsigned int i)
{
while(i--);
}
void main(void)
{
TMOD|=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)/256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(K1)bz=1;
if(!K1&&bz)
{
bz=0;
delay(1000);
if(!K1)
{
if(bz2)bz2=0;
else bz2=1;
}
}
}
}
void TIM0_IRQHandler(void) interrupt 1
{
unsigned char i;
TH0=(65536-50000)/256;
TL0=(65536-50000)/256;
i++;
if(i>=10)
{
i=0;
if(bz2)
{
if(dat != 0)dat>>=1;
else dat = 0x80;
}
else
{
if(dat != 0)dat<<=1;
else dat = 0x01;
}
P2 = ~dat;
}
}