学习C51 LED流水灯时,自己写了一段代码,其中有一句软件不执行,直接跳过了。
[复制链接]
#include <REGX52.H>
unsigned char LEDNum; //定义一个无符号字符型变量LEDNum
/*定义一个无符号整型n,可以设置任意延时时常,基于1ms延时的倍数*/
void Delay(unsigned int n) //@12.000MHz
{
unsigned char i, j;
while(n--)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
/*主函数*/
void main()
{
LEDNum=0x01;
while(1)
{
if(LEDNum>=0x81)
LEDNum=0x01;
else
{
LEDNum<<1;
P2=~LEDNum;
Delay(500);
}
}
}
本意是:定义了一个无符号型字符LEDNum,初始赋值0000 0001,然后条件语句判断,如果LEDNum大于1000 0001时,就重新赋值0000 0001,如果没到1000 0001时,执行LEDNum<<1,左移一位,但是这句我在单步执行时发现被忽略了,没被执行,所以最终结果也不对,还请高手帮忙指出问题原因,本人新手,万分感激
|