来人帮我看看问题在哪

2019-07-15 14:04发布

        while(1)
        {
           if(TF0 == 1 && flag ==1)
           {
                     TF0 = 0;
                  TH0 = 0x4c;
                  TL0 = 0x00;
                  n++;
                  if(n >= 20)
                  {
                           n = 0;
                         P0 = ~(0x01<<i);
                         i++;
                         if(i>=7)
                         {
                                 flag = 0;
                               
                         }
                  }
           }
           if(TF0 == 1 && flag == 0)
           {
                      TF0 = 0;
                   i = 0;
                   TH0 = 0x4c;
               TL0 = 0x00;
                   n++;
                   if(n >= 20)
                   {
                             n = 0;
                          P0 = ~(0x80>>i);
                          i++;
                          if(i>=7)
                          {
                                    flag = 1;
                                  i = 0;
                          }
                   }
          
           }
这是一个流水灯的小程序 编译运行OK 但是小灯左移第一次走到最后一个就常亮了 不进入到下个大if语句右移了
这是什么情况?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。