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

📄 main.c

📁 用单片机实现(载波监听/冲突检测)的功能
💻 C
📖 第 1 页 / 共 5 页
字号:
  }
  
  if((Key == ENT)  &&((DisplayFlg & ErrFlg) !=ErrFlg))                                                      //确认按键
  {
    if((Flag & ResetFlg) ==ResetFlg)                             //确认键处理
    {
      if(((DisplayFlg & NumSetFlg) == NumSetFlg) && (ConvertCode > 0))
      {                                                          //工数设定确认
#ifdef _Project1
        Target =0;
#else 
#ifdef _Project2
        Target = Target;
#endif
#endif
        Real =0;
        Number = ConvertCode;
      }
      else if(((DisplayFlg & PlanSetFlg) == PlanSetFlg) && (ConvertCode > 0))
        Plan = ConvertCode;                                     //计划设定确认
      else  if(((DisplayFlg & ClockSetFlg) == ClockSetFlg) && (ConvertCode > 0))
      {                                                         //时钟设定确认
        Hour = ConvertCode/100;
        Min  = ConvertCode%100;
        Second =0;
        ClockCount=0;
        CounterForNumber=0;
      }
      else if(((DisplayFlg & AddressSetFlg) == AddressSetFlg) && (ConvertCode > 0))
      {                                                         //地址设定确认
        SelfAddress = ConvertCode;
      }
    }
    
    if((DisplayFlg & TimeSection1SetFlg) == TimeSection1SetFlg)
    {                                                          //时间段的数据组校验处理
      if(((DisplayFlg & CheckTimeFlg) ==CheckTimeFlg) 
         && ((DisplayFlg & TimeFirstFlg) == TimeFirstFlg))
      {
        TimeSectionIndex = SearchIndex*2+1;
        DisplayFlg &= ~TimeFirstFlg;
      }
      else
        TimeSectionIndex++;
      if(TimeSectionIndex >50)
      {
        DisplayFlg &= ~TimeSection1SetFlg;
      }
      else
      {
        SecIndex = (TimeSectionIndex-1)/2;                      //时间段索引
        TimeIndex = (TimeSectionIndex+1)%2;                     //开始、结束时间索引
        {
          
          {
            if(TimeIndex ==0)
            {
              DisplayFlg &= ~DShrinkFlg;
            }
            else if(TimeIndex ==1)
            {
              DisplayFlg &= ~DShrSetFlg;
            }
            ConvertCode = TimeSec1[SecIndex][TimeIndex];
          }
          else
          {
            if(((DisplayFlg & CheckTimeFlg) ==CheckTimeFlg))
            {
              temp = TimeSec1[SecIndex][TimeIndex];
              TimeSec1[SecIndex][TimeIndex] = ConvertCode;
              ConvertCode = temp;
            }
            else
             TimeSec1[SecIndex][TimeIndex] = ConvertCode; 
          }
          
        }
          
        
        if((TimeIndex == 0))                                
        {
          DisplayFlg  |= DShrSetFlg;                          //第二行闪烁标志
          DisplayFlg  &= ~DShrinkFlg;                         //第一行停止闪烁
        }
        else if((TimeIndex != 0))
        {
          DisplayFlg  &= ~DShrSetFlg;                         //第二行闪烁标志
          DisplayFlg  |= DShrinkFlg;                          //第一行停止闪烁
        }
         
        if((TimeSectionIndex != 1) 
           && ((DisplayFlg & CheckTimeFlg) != CheckTimeFlg)
          
              ConfirmData();                                  //数据确认函数
      }
      
      if(((DisplayFlg & CheckTimeFlg) == CheckTimeFlg))       //修改时的数据确认处理
      {
        if(TimeIndex == 0)
        {
           if((SecIndex >0)
             && ((TimeSec1[SecIndex-1][1] >= TimeSec1[0][0])
               && (TimeSec1[SecIndex-1][1] <= 2359))
             && ((ConvertCode >= TimeSec1[0][0])
               && (ConvertCode <= 2359)))
           {
             if((TimeSec1[SecIndex][1] > TimeSec1[0][0])
                && (TimeSec1[SecIndex][1] <= 2359))
             {
               if((ConvertCode >= TimeSec1[SecIndex-1][1])
                &&(ConvertCode < TimeSec1[SecIndex][1]))
               {
                 DisplayFlg  |= DShrSetFlg;                          //第二行闪烁标志
                 DisplayFlg  &= ~DShrinkFlg;                         //第一行停止闪
               }
               else if(SecIndex >0)
               {
                  DisplayFlg  &= ~DShrSetFlg;                        //第二行停止闪烁标志
                  DisplayFlg  |= DShrinkFlg;                         //第一行闪烁
                  TimeSec1[SecIndex][TimeIndex] = 0;                 //还原被修改的数据
                  TimeSectionIndex--;
                  SecIndex  =(TimeSectionIndex-1)/2;
                  TimeIndex =(TimeSectionIndex+1)%2;
               } 
             }
             else if((TimeSec1[SecIndex][1] >=0)
                       &&(TimeSec1[SecIndex][1] < TimeSec1[0][0]))
             {
                if(((ConvertCode >= TimeSec1[SecIndex-1][1])
                   &&(ConvertCode <=2359))
                  || ((ConvertCode >=0) && (ConvertCode < TimeSec1[SecIndex][1])))
                {
                   DisplayFlg  |= DShrSetFlg;                          //第二行闪烁标志
                   DisplayFlg  &= ~DShrinkFlg;                         //第一行停止闪烁
                }
                else if(SecIndex >0)
               {
                  DisplayFlg  &= ~DShrSetFlg;                         //第二行停止闪烁标志
                  DisplayFlg  |= DShrinkFlg;                          //第一行闪烁
                  TimeSec1[SecIndex][TimeIndex] = 0;                  //还原被修改的数据
                  TimeSectionIndex--;
                  SecIndex  =(TimeSectionIndex-1)/2;
                  TimeIndex =(TimeSectionIndex+1)%2;
               }
             }
           }
           else if((SecIndex >0)
             && ((TimeSec1[SecIndex-1][1] >= 0)
               && (TimeSec1[SecIndex-1][1] < TimeSec1[0][0]))
             && ((ConvertCode >= 0)
               && (ConvertCode < TimeSec1[0][0])))
           {
              if((ConvertCode >= TimeSec1[SecIndex-1][1])
                 &&(ConvertCode < TimeSec1[SecIndex][1]))
              {
                 DisplayFlg  |= DShrSetFlg;                          //第二行闪烁标志
                 DisplayFlg  &= ~DShrinkFlg;                          //第一行停止闪烁
              }
              else if((SecIndex >0))
              {
                  DisplayFlg  &= ~DShrSetFlg;                         //第二行停止闪烁标志
                  DisplayFlg  |= DShrinkFlg;                          //第一行闪烁
                  TimeSec1[SecIndex][TimeIndex] = 0;                 //还原被修改的数据
                  TimeSectionIndex--;
                  SecIndex  =(TimeSectionIndex-1)/2;
                  TimeIndex =(TimeSectionIndex+1)%2;
              }
           }
            else if((SecIndex >0)
             && ((TimeSec1[SecIndex-1][1] >= ConvertCode)))
          {
             if((TimeSec1[SecIndex][1] >= 0)
                &&(TimeSec1[SecIndex][1] <TimeSec1[0][0]))
             {
               if(TimeSec1[SecIndex][1] > TimeSec1[SecIndex][0])
               {
                  DisplayFlg  |= DShrSetFlg;                          //第二行闪烁标志
                  DisplayFlg  &= ~DShrinkFlg;                          //第一行停止闪烁
               }
               else
               {
                 DisplayFlg  &= ~DShrSetFlg;                         //第二行停止闪烁标志
                 DisplayFlg  |= DShrinkFlg;                          //第一行闪烁
                 TimeSec1[SecIndex][TimeIndex] = 0;                 //还原被修改的数据
                 TimeSectionIndex--;
                 SecIndex  =(TimeSectionIndex-1)/2;
                 TimeIndex =(TimeSectionIndex+1)%2;
               }
             }
             else
             {
                 DisplayFlg  &= ~DShrSetFlg;                         //第二行停止闪烁标志
                 DisplayFlg  |= DShrinkFlg;                          //第一行闪烁
                 TimeSec1[SecIndex][TimeIndex] = 0;                 //还原被修改的数据
                 TimeSectionIndex--;
                 SecIndex  =(TimeSectionIndex-1)/2;
                 TimeIndex =(TimeSectionIndex+1)%2;
             }
            
          }
          else 
          {
            if(SecIndex == 0)
            {
               if((ConvertCode < TimeSec1[SecIndex][1])
                  &&((TimeSec1[SecIndex][TimeIndex] > ScaleClock)
                      ||(TimeSec1[SecIndex][TimeIndex] < ScaleClock))
                  &&(ScaleClock != -1))
               {
                 //if((TimeSec1[SecIndex][TimeIndex] < ScaleClock))
                 {
                   if((ScaleClock <= 2359) &&(ScaleClock > TimeSec1[SecIndex][1]))
                   {
                     if((TimeSec1[SecIndex][TimeIndex] > 0)
                        &&(TimeSec1[SecIndex][TimeIndex]< TimeSec1[SecIndex][1]))
                     {
                        DisplayFlg  |= DShrSetFlg;                          //第二行闪烁标志
                        DisplayFlg  &= ~DShrinkFlg;                          //第一行停止闪烁
                     }
                     else
                     {
                       DisplayFlg  &= ~DShrSetFlg;                         //第二行停止闪烁标志
                       DisplayFlg  |= DShrinkFlg;                          //第一行闪烁
                       TimeSec1[SecIndex][TimeIndex] = ConvertCode;                 //还原被修改的数据
                       TimeSectionIndex--;
                       //SecIndex  =(TimeSectionIndex-1)/2;
                       //TimeIndex =(TimeSectionIndex+1)%2;
                     }
                   }
                   else if((ScaleClock >0) && (ScaleClock <= ConvertCode))
                   {
                     if((TimeSec1[SecIndex][TimeIndex] > ScaleClock)
                        &&(TimeSec1[SecIndex][TimeIndex]< TimeSec1[SecIndex][1]))
                     {
                        DisplayFlg  |= DShrSetFlg;                          //第二行闪烁标志
                        DisplayFlg  &= ~DShrinkFlg;                          //第一行停止闪烁
                     }
                     else
                     {
                       DisplayFlg  &= ~DShrSetFlg;                         //第二行停止闪烁标志
                       DisplayFlg  |= DShrinkFlg;                          //第一行闪烁
                       TimeSec1[SecIndex][TimeIndex] = ConvertCode;                 //还原被修改的数据
                       TimeSectionIndex--;
                       //SecIndex  =(TimeSectionIndex-1)/2;
                       //TimeIndex =(TimeSectionIndex+1)%2;
                     }
                   }
                 }
               }
             else if(ConvertCode > TimeSec1[SecIndex][1])
             {
               
               {
                 if((TimeSec1[SecIndex][TimeIndex] >= ScaleClock)
                    &&(TimeSec1[SecIndex][TimeIndex] <= ConvertCode))
                 {
                    DisplayFlg  |= DShrSetFlg;                          //第二行闪烁标志
                    DisplayFlg  &= ~DShrinkFlg;                          //第一行停止闪烁
                 }
                 else
                 {
                    DisplayFlg  &= ~DShrSetFlg;                         //第二行停止闪烁标志
                    DisplayFlg  |= DShrinkFlg;                          //第一行闪烁
                    TimeSec1[SecIndex][TimeIndex] = ConvertCode;                 //还原被修改的数据
                    TimeSectionIndex--;
                    //SecIndex  =(TimeSectionIndex-1)/2;
                    //TimeIndex =(TimeSectionIndex+1)%2;
                 }
               }
              }
            }
            
          }  
           
        }
        else if(TimeIndex ==1)
        {
          if((SecIndex >0)
             && ((TimeSec1[SecIndex+1][0] >= TimeSec1[0][0])
               && (TimeSec1[SecIndex+1][0] <= 2359))
             && ((ConvertCode >= TimeSec1[0][0])
               && (ConvertCode <= 2359)))
          {
             if((ConvertCode <= TimeSec1[SecIndex+1][0])
                &&(ConvertCode > TimeSec1[SecIndex][0])
                &&((TimeSec1[SecIndex+1][0] != 8888)))
             {
                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;
            }

⌨️ 快捷键说明

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