标题: 单片机C语言写了i=1后为什么那个灯常亮了? [打印本页]

作者: wgxawwy    时间: 2021-5-14 16:00
标题: 单片机C语言写了i=1后为什么那个灯常亮了?
#include<reg51.h>
unsigned char code table[8] ={ 0xfe, 0xfd, 0xfb,0xf7,0xef, 0xdf,
0xbf, 0x7f };
void mdelay(unsigned int delay)
{ unsigned int i;
   for(;delay>0;delay--)
    { for(i=0;i<54;i++);
        }
}

void main()
{unsigned char i=0;
unsigned char a=1;
while(1)
  {i=0;
  P1=table[ i];
   mdelay(500);
   i=i+1;
   if(i>7)
    {while(i>0)
    {i=i-1;
           P1=table[ i];
        mdelay(500);
        if(i==0)
{  while(1)
   {P1=box[ i];
    i=i+1;
        mdelay(1000);
   }        


        
         }
   }


作者: tanyangkang    时间: 2021-5-14 19:50
{i=0;   P1=table[ i];    mdelay(500);    i=i+1;    if(i>7)     {while(i>0)     {i=i-1;
作者: tanyangkang    时间: 2021-5-14 19:55
你这个没进if循环吧,table[i]默认点亮那个灯,if(i>7)不运行,i=0初始化写死循环外面
作者: tanyangkang    时间: 2021-5-14 19:56
每次进行循环你i=0都被定义了
作者: 非凡科技    时间: 2021-5-15 21:39
你若果想初始化i=0  就需要把他写在死循环的外边
作者: wgxawwy    时间: 2021-5-15 23:25
谢谢各位的回答,问题我解决了。
作者: TTQ001    时间: 2021-5-16 08:09
i = 1始终处于无限循环中




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1