STC89C52单片机在流水灯程序中使用外部中断0

2024-12-21 17:46:28
推荐回答(2个)
回答1:

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;};

回答2:

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;
}