⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 用单片机实现(载波监听/冲突检测)的功能
💻 C
📖 第 1 页 / 共 5 页
字号:
          }
          else if((SecIndex >0)
             && ((TimeSec1[SecIndex+1][0] >= 0)
               && (TimeSec1[SecIndex+1][0] < TimeSec1[0][0]))
             && ((ConvertCode >= 0)
               && (ConvertCode < TimeSec1[0][0]))) 
          { 
            if((TimeSec1[SecIndex][0] >= TimeSec1[0][0])
               &&(TimeSec1[SecIndex][0] < 2359))
            {
               if(TimeSec1[SecIndex][1] <= TimeSec1[SecIndex+1][0])
               {
                  DisplayFlg  &= ~DShrSetFlg;                          //第二行闪烁标志
                  DisplayFlg  |= DShrinkFlg;                          //第一行停止闪烁
                  DisplayFlg  |= TimeIndexFlg;                          //下一时间段设定
                  SearchIndex++;
               }
               else
               {
                 DisplayFlg  |= DShrSetFlg;                         //第二行停止闪烁标志
                 DisplayFlg  &= ~DShrinkFlg;                          //第一行闪烁
                 TimeSec1[SecIndex][1]=0;
                 TimeSectionIndex--;
                 SecIndex  =(TimeSectionIndex-1)/2;
                 TimeIndex =(TimeSectionIndex+1)%2;
               }
            }
            else if((TimeSec1[SecIndex][0] >= 0)
             &&(TimeSec1[SecIndex][0] < TimeSec1[0][0]))
                {
                   if((TimeSec1[SecIndex][1] > TimeSec1[SecIndex][0])
                      &&(TimeSec1[SecIndex][1] <= TimeSec1[SecIndex+1][0]))
                   {
                      DisplayFlg  &= ~DShrSetFlg;                          //第二行闪烁标志
                      DisplayFlg  |= DShrinkFlg;                          //第一行停止闪烁
                      DisplayFlg  |= TimeIndexFlg;                          //下一时间段设定
                      SearchIndex++;
                   }
                   else
                   {
                     DisplayFlg  |= DShrSetFlg;                         //第二行停止闪烁标志
                     DisplayFlg  &= ~DShrinkFlg;                          //第一行闪烁
                     TimeSec1[SecIndex][1] =0;
                     TimeSectionIndex--;
                     SecIndex  =(TimeSectionIndex-1)/2;
                     TimeIndex =(TimeSectionIndex+1)%2;
                   }
                }
          }
          else if((SecIndex >0)
             && ((TimeSec1[SecIndex+1][0] <= ConvertCode)))
          {
             DisplayFlg  &= ~DShrSetFlg;                          //第二行闪烁标志
             DisplayFlg  |= DShrinkFlg;                          //第一行停止闪烁
             DisplayFlg  |= TimeIndexFlg;                          //下一时间段设定
             SearchIndex++;
          }
          
          else if((TimeSec1[SecIndex+1][0] != 8888) && (SecIndex > 0))
          {
             DisplayFlg  |= DShrSetFlg;                         //第二行停止闪烁标志
             DisplayFlg  &= ~DShrinkFlg;                          //第一行闪烁
             TimeSec1[SecIndex][1] =0;
             TimeSectionIndex--;
             SecIndex  =(TimeSectionIndex-1)/2;
             TimeIndex =(TimeSectionIndex+1)%2;
          }
          else if(TimeSec1[SecIndex+1][0] == 8888)              
          {
            if(((TimeSec2[0][0] >= 0) && (TimeSec2[0][0] <= TimeSec1[0][0]))
               || ((TimeSec2[0][0] >= TimeSec1[0][0] && (TimeSec2[0][0] <= 2359))))
            {
               TimeSec1[SecIndex][1] =ConvertCode;
               TimeSectionIndex--;
               TimeIndex = (TimeSectionIndex+1)%2;
            }
            else
            {
              TimeSec1[SecIndex][1] =ConvertCode;
              DisplayFlg &= ~CheckTimeFlg;
              DisplayFlg &= ~DShrSetFlg;
              DisplayFlg |= DShrinkFlg;
              DisplayFlg  |= TimeIndexFlg;                          //下一时间段设定
              SearchIndex++;
            }
          }
          else if(SecIndex == 0)
          {
            if(TimeSec1[SecIndex][TimeIndex] <= TimeSec1[SecIndex+1][0])
            {
               DisplayFlg  &= ~DShrSetFlg;      
               DisplayFlg  |= DShrinkFlg;                          //第二行闪烁标志
               DisplayFlg  |= TimeIndexFlg;                          //下一时间段设定
               SearchIndex++;
            }
            else
            {                                                      //第二行停止闪烁标志
              DisplayFlg  &= ~DShrinkFlg;                          //第一行闪烁
              DisplayFlg  |=  DShrSetFlg;
              TimeSec1[SecIndex][1] =0;
              TimeSectionIndex--;
              SecIndex  =(TimeSectionIndex-1)/2;
              TimeIndex =(TimeSectionIndex+1)%2;
            }
          }
        }
      }
    }

       
    
    
    
    
    
    
    
    
    
    
    //第二时间
    if((DisplayFlg & TimeSection2SetFlg) == TimeSection2SetFlg)
    {
      if(((DisplayFlg & CheckTimeFlg) ==CheckTimeFlg) 
         && ((DisplayFlg & TimeFirstFlg) == TimeFirstFlg))
      {
        TimeSectionIndex = SearchIndex*2+1;
        DisplayFlg &= ~TimeFirstFlg;
      }
      else
        TimeSectionIndex++;
      if(TimeSectionIndex >=18)
      {
        DisplayFlg &= ~TimeSection2SetFlg;
      }
      else
      {
         SecIndex = (TimeSectionIndex-1)/2;
         TimeIndex = (TimeSectionIndex+1)%2;

         {
           if(TimeIndex ==0)
           {
              DisplayFlg &= ~DShrinkFlg;   
           }
           else if(TimeIndex ==1)
           {
             DisplayFlg &= ~DShrSetFlg;    
           }
           ConvertCode = TimeSec2[SecIndex][TimeIndex];
         }
         else
         {
            TimeSec2[SecIndex][TimeIndex] = ConvertCode;
         }
         Counter =0;
      }
         
      if(TimeIndex == 0)
      {
         DisplayFlg  |= DShrSetFlg;                          //第二行闪烁标志
         DisplayFlg  &= ~DShrinkFlg;                         //第一行停止闪烁
      }
      else if(TimeIndex != 0)
      {
        DisplayFlg  &= ~DShrSetFlg;                          //第二行闪烁标志
        DisplayFlg  |= DShrinkFlg;                           //第一行停止闪烁
      }
         
      if(((DisplayFlg & CheckTimeFlg) != CheckTimeFlg))
         ConfirmData();                                      //数据确认函数
      
     
      if(((DisplayFlg & CheckTimeFlg) == CheckTimeFlg))      //修改时的数据确认处理
      {
        if(TimeIndex == 0)
        {
           if((SecIndex >0)
             && ((TimeSec2[SecIndex-1][1] >= TimeSec2[0][0])
               && (TimeSec2[SecIndex-1][1] <= 2359))
             && ((ConvertCode >= TimeSec2[0][0])
               && (ConvertCode <= 2359)))
           {
             if((TimeSec2[SecIndex][1] > TimeSec1[0][0])
                && (TimeSec2[SecIndex][1] <= 2359))
             {
               if((ConvertCode >= TimeSec2[SecIndex-1][1])
                &&(ConvertCode < TimeSec2[SecIndex][1]))
               {
                 DisplayFlg  |= DShrSetFlg;                          //第二行闪烁标志
                 DisplayFlg  &= ~DShrinkFlg;                         //第一行停止闪
               }
               else if(SecIndex >0)
               {
                  DisplayFlg  &= ~DShrSetFlg;                        //第二行停止闪烁标志
                  DisplayFlg  |= DShrinkFlg;                         //第一行闪烁
                  TimeSec2[SecIndex][TimeIndex] = 0;                 //还原被修改的数据
                  TimeSectionIndex--;
                  SecIndex  =(TimeSectionIndex-1)/2;
                  TimeIndex =(TimeSectionIndex+1)%2;
               } 
             }
             else if((TimeSec2[SecIndex][1] >=0)
                       &&(TimeSec2[SecIndex][1] < TimeSec2[0][0]))
             {
                if(((ConvertCode >= TimeSec2[SecIndex-1][1])
                   &&(ConvertCode <=2359))
                  || ((ConvertCode >=0) && (ConvertCode < TimeSec2[SecIndex][1])))
                {
                   DisplayFlg  |= DShrSetFlg;                          //第二行闪烁标志
                   DisplayFlg  &= ~DShrinkFlg;                         //第一行停止闪烁
                }
                else if(SecIndex >0)
               {
                  DisplayFlg  &= ~DShrSetFlg;                         //第二行停止闪烁标志
                  DisplayFlg  |= DShrinkFlg;                          //第一行闪烁
                  TimeSec2[SecIndex][TimeIndex] = 0;                  //还原被修改的数据
                  TimeSectionIndex--;
                  SecIndex  =(TimeSectionIndex-1)/2;
                  TimeIndex =(TimeSectionIndex+1)%2;
               }
             }
           }
           else if((SecIndex >0)
             && ((TimeSec2[SecIndex-1][1] >= 0)
               && (TimeSec2[SecIndex-1][1] < TimeSec2[0][0]))
             && ((ConvertCode >= 0)
               && (ConvertCode < TimeSec2[0][0])))
           {
              if((ConvertCode >= TimeSec2[SecIndex-1][1])
                 &&(ConvertCode < TimeSec2[SecIndex][1]))
              {
                 DisplayFlg  |= DShrSetFlg;                          //第二行闪烁标志
                 DisplayFlg  &= ~DShrinkFlg;                         //第一行停止闪烁
              }
              else if((SecIndex >0))
              {
                  DisplayFlg  &= ~DShrSetFlg;                        //第二行停止闪烁标志
                  DisplayFlg  |= DShrinkFlg;                         //第一行闪烁
                  TimeSec2[SecIndex][TimeIndex] = 0;                 //还原被修改的数据
                  TimeSectionIndex--;
                  SecIndex  =(TimeSectionIndex-1)/2;
                  TimeIndex =(TimeSectionIndex+1)%2;
              }
           }
            else if((SecIndex >0)
             && ((TimeSec2[SecIndex-1][1] >= ConvertCode)))
          {
             if((TimeSec2[SecIndex][1] >= 0)
                &&(TimeSec2[SecIndex][1] <TimeSec2[0][0]))
             {
               if(TimeSec2[SecIndex][1] > TimeSec2[SecIndex][0])
               {
                  DisplayFlg  |= DShrSetFlg;                          //第二行闪烁标志
                  DisplayFlg  &= ~DShrinkFlg;                         //第一行停止闪烁
               }
               else
               {
                 DisplayFlg  &= ~DShrSetFlg;                        //第二行停止闪烁标志
                 DisplayFlg  |= DShrinkFlg;                         //第一行闪烁
                 TimeSec2[SecIndex][TimeIndex] = 0;                 //还原被修改的数据
                 TimeSectionIndex--;
                 SecIndex  =(TimeSectionIndex-1)/2;
                 TimeIndex =(TimeSectionIndex+1)%2;
               }
             }
             else
             {
                 DisplayFlg  &= ~DShrSetFlg;                        //第二行停止闪烁标志
                 DisplayFlg  |= DShrinkFlg;                         //第一行闪烁
                 TimeSec2[SecIndex][TimeIndex] = 0;                 //还原被修改的数据
                 TimeSectionIndex--;
                 SecIndex  =(TimeSectionIndex-1)/2;
                 TimeIndex =(TimeSectionIndex+1)%2;
             }
          }
          else 
          {
            DisplayFlg  &= ~DShrSetFlg;                         //第二行停止闪烁标志
            DisplayFlg  |= DShrinkFlg;                          //第一行闪烁
            TimeSec2[SecIndex][TimeIndex] = 0;                  //还原被修改的数据
            TimeSectionIndex--;
            SecIndex  =(TimeSectionIndex-1)/2;
            TimeIndex =(TimeSectionIndex+1)%2;
          }  
           
        }
        else if(TimeIndex ==1)
        {
          if((SecIndex >0)
             && ((TimeSec2[SecIndex+1][0] >= TimeSec2[0][0])
               && (TimeSec2[SecIndex+1][0] <= 2359))
             && ((ConvertCode >= TimeSec2[0][0])
               && (ConvertCode <= 2359)))
          {
             if((ConvertCode <= TimeSec2[SecIndex+1][0])
                &&(ConvertCode > TimeSec2[SecIndex][0])
                &&((TimeSec2[SecIndex+1][0] != 8888)))
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -