独立按键控制LED位移,想请教下

写了个,独立按键控制LED的代码,按p30就左移,按p31就右移。但是现在按p31就没有反应也不知道哪里出错了看😭😭😭😭

#include <REGX52.H>
void Delay1ms(unsigned int ms) //@11.0592MHz
{
unsigned char i, j;

while(ms)
{
    i = 11;
    j = 190;
    do
    {
        while (--j);
    } while (--i);
    ms--;
}

}
void main()
{
unsigned char led=0;
P2=~0x01;
while(1)

{
    if(P3_1==0)
    {
        Delay1ms(20);
        while(P3_1==0);
        Delay1ms(20);
        
        led++;   
        if(led>=8)
            led=0;
        P2=~(0x01<<led);
        
    }
    if(P3_0==0)
    {
        Delay1ms(20);
        while(P3_0==0);
        Delay1ms(20);
        if(led==0)
            led=7;
        else
            led--;
        P2=~(0x01<<led);
    }
}

}

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

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^