请问为什么在keil中我用下面代码烧录进89c52单片机,按键控制的流水灯。
但是每次第一个灯按k2向左移一位时,它并没有让第八个灯亮。或者是每次第八个灯按k1向右移一位时,它并没有让第一个灯亮。
void main()
{
P2=~0x01;
while(1)
{
if(P3_1==0)
{
Delay(2);
while(P3_1==0);
Delay(2);
if(P2==~0x80)
P2=~0x01;
else
P2=~(~P2<<1);
}
else if(P3_0==0)
{
Delay(2);
while(P3_0==0);
Delay(2);
if(P2==~0x01)
P2=~0x80;
else
P2=~(~P2>>1);
}
}
}
但是我写成这样就可以在第一个灯时按k2向左时,让第八个灯亮。在第八个灯时按k1向右时,让第一个灯亮。
这样写就没问题。⬇
能解释一下嘛。
void main()
{
P2=~0x01;
while(1)
{
if(P3_1==0)
{
Delay(2);
while(P3_1==0);
Delay(2);
if(P2_7==0)
P2=~0x01;
else
P2=~(~P2<<1);
}
else if(P3_0==0)
{
Delay(2);
while(P3_0==0);
Delay(2);
if(P2_0==0)
P2=~0x80;
else
P2=~(~P2>>1);
}
}
}
请指教