微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 菜鸟求救为什么只亮一个灯不流动啊?

菜鸟求救为什么只亮一个灯不流动啊?

时间:10-02 整理:3721RD 点击:
#include<reg51.h>
#include<intrins.h>
#define GPIO_LED P2
  void Delay10ms(unsigned int);
void main(void)
{
   unsigned char n ;
   GPIO_LED=0xfe;
   while(1)
   {
          for(n=0;n>7;n++)
          {
                GPIO_LED=_crol_(GPIO_LED,1);
                Delay10ms(50);
                }
          for(n=0;n>7;n++)
          {
                GPIO_LED=_cror_(GPIO_LED,1);
                Delay10ms(50);
                }
         }
}
void Delay10ms(unsigned int c)   
{
    unsigned char a,b;
    for(;c>0;c--)
        for(b=38;b>0;b--)
            for(a=130;a>0;a--);
}
程序编译没问题。就是只亮一个灯不动!

好像是你的GPIO_LED每次for都没有修改保存,只是做了一次移位,一直是0xfe的

for(n=0;n>7;n++)
改为  for(n=0;n<8;n++) 试试看
      

  while(1)
   {
          for(n=0;n>7;n++)//你这里的for语句表达式错,n=0.n>7假所以不会执行for里面的语句应该是for(n=0;n<7;n++)

          {
                GPIO_LED=_crol_(GPIO_LED,1);
                Delay10ms(50);
                }
          for(n=0;n>7;n++)//你这里的for语句表达式错,n=0.n>7假所以不会执行for里面的语句。应该是for(n=0;n<7;n++)
          {
                GPIO_LED=_cror_(GPIO_LED,1);
                Delay10ms(50);
                }
         }
}

  while(1)
   {
          for(n=0;n>7;n++)//你这里的for语句表达式错,n=0.n>7假所以不会执行for里面的语句应该是for(n=0;n<7;n++)

          {
                GPIO_LED=_crol_(GPIO_LED,1);
                Delay10ms(50);
                }
          for(n=0;n>7;n++)//你这里的for语句表达式错,n=0.n>7假所以不会执行for里面的语句。应该是for(n=0;n<7;n++)
          {
                GPIO_LED=_cror_(GPIO_LED,1);
                Delay10ms(50);
                }
         }
}

谢谢各位大侠,果然是for语句的问题!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top