#include<reg51.h>
unsigned char a=1;
unsigned int i;
bit direct;
bit b=0;
void delay()
{
while(i--);
}
void int0_srv(void) interrupt 0 using 1
{
direct=!direct;
}
void int2_srv(void) interrupt 2 using 1
{
b=~b;
}
void zhengfan()
{
P1=0;
if(!direct)
{
P1=a;
a=a<<1;
if(a==0)a=1;
delay();
}
else
{
P1=a;
a=a>>1;
if(a==0)a=0x80;
delay();
}
}
void shuangshan()
{
P1=b;
}
void main()
{
EX0=1;
IT0=1;
EX1=1;
IT1=1;
EA=1;
while(1)
{
shuangshan();
zhengfan();
}
}