关于流水灯的程序 灯不能全灭????

2019-07-15 20:13发布

#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?不显示灯全灭呢?

各位大神帮忙看看 谢谢了!!!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
zy2014
1楼-- · 2019-07-15 23:14

if(P2 == 0Xff)
{
    LED=0X00 ;                 
}
LED = LED << 1;
LED =LED+1;  

当P2=0xff的时候,循环之后LED值为0x01,而循环当中0x00并未赋值给P2;

可以把P2 = LED;放到for循环下边。这样应该就可以了
ZDHCK
2楼-- · 2019-07-16 02:57
把延时放到P2=LED;后面
lukas_luo
3楼-- · 2019-07-16 07:23
 精彩回答 2  元偷偷看……

一周热门 更多>