void ISR_Key(void) interrupt 0 using 1
{
EX0=0;
if(a==0){P1=0x7f;a=1;}; //在这一行,令a=1,马上就符合下面的条件了
if(a==1){P1=0xfe;a=0;}; //在这一行,又把a改成了0
EX0=1; //经过上面的两行,a永远是0
}
如下改动比较简单:
if(a==0){P1=0x7f;a=1;}; //这一行,不变
else{P1=0xfe;a=0;};
void ISR_Key(void) interrupt 0 using 1
{
EX0=0;
if(a==0){P1=0x7f;a=1;} 这里有问题了
else if(a==1){P1=0xfe;a=0;}
EX0=1;
}