利用at89c51引用外部中断INT0,INT1用按键S1,S2 已实现正反向流,不能实现双闪

#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();
}
}

img

img

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632