求深度解析单片机C语言中的下列程序(部分),我实在看不懂。能不能帮我一句句解释一下

P1=0xff;
for(j=0;j<3;j++)//灯一盏盏从上往下亮
{
for(x=0;x<8;x++)
{
P1>>=1;
delayxms(500);

if(P1==0x00)
{
P1=0xff;
for(x=0;x<8;x++)
{
P1<<=1;
delayxms(500);
}
}
}
}
P1=0xff;这个是让P1口的神基弯八个灯全灭。
for(j=0;j<3;j++)//灯一盏盏从上往下亮
{
for(x=0;x<8;x++)控制第几个灯亮的;
{
P1>>=1;右移一位第一灯亮了,依次亮
delayxms(500);每个灯锋棚亮的时间,延迟函数游闷

if(P1==0x00)如果第八个灯亮了 后;就要重新赋予P1口的值;
{
P1=0xff;P1口从新赋值;
for(x=0;x<8;x++)这个语句和上面的类似,就是顺序反过来了,他是从第八个灯开始亮的;
{
P1<<=1;左移一位第一灯亮了,依次亮
delayxms(500);延迟函数
}
}
}
}大概就是这样了 不明白在问我
ls说的很棒!
顶了