关于流水灯的程序 灯不能全灭?
时间:10-02
整理:3721RD
点击:
#include <reg52.h>
void main ()
{
unsigned int n;
unsigned char LED;
LED = 0x00;
while (1)
{
P2 = LED;
if(P2 == 0Xff)
{
LED=0X00 ;
}
for (n=0;n<20000;n++) ;
LED = LED << 1;
LED =LED+1;
}
}
这是我写的关于流水灯的程序
为什么 重新赋值LED,LED=0x00的时候会直接跳过到LED=0x01?不显示灯全灭呢?
各位大神帮忙看看 谢谢了!
void main ()
{
unsigned int n;
unsigned char LED;
LED = 0x00;
while (1)
{
P2 = LED;
if(P2 == 0Xff)
{
LED=0X00 ;
}
for (n=0;n<20000;n++) ;
LED = LED << 1;
LED =LED+1;
}
}
这是我写的关于流水灯的程序
为什么 重新赋值LED,LED=0x00的时候会直接跳过到LED=0x01?不显示灯全灭呢?
各位大神帮忙看看 谢谢了!
if(P2 == 0Xff)
{
LED=0X00 ;
}
LED = LED << 1;
LED =LED+1;
当P2=0xff的时候,循环之后LED值为0x01,而循环当中0x00并未赋值给P2;
可以把P2 = LED;放到for循环下边。这样应该就可以了
把延时放到P2=LED;后面
谢谢帮助 你的方法是成功的我后面改换 IF 句型的位置 到LED =LED+1;后 也可以正常运行了,但是还是稍微不明白 IF 在前在后的区别。