流水灯控制,有没有人能解答一下为什么不能进入for循环进行时间延迟

以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
这个问题可能是因为for循环的条件设置不正确。在图1和图2的代码中,for循环的条件是a>50000,但实际上在进入for循环之前,a的值已经被设置为50000,所以条件不满足,无法进入for循环。
为了解决这个问题,你可以尝试将for循环的条件改为a>0,并在每次循环时递减a的值。以下是修改后的代码:
#include <stc89c5xrc.h>
unsigned int a;
void main()
{
while(1)
{
P1=0xaa;
a=50000;
while(a--);
P1=0x55;
a=50000;
while(a--);
//P1=0xff;
//a=50000;
//while(a--);
for(a=50000; a>0; a--)
P1=0xff;
}
}
这样,当a的值大于0时,for循环将会执行,并在每次循环时递减a的值。