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

📄 main.c

📁 用单片机实现(载波监听/冲突检测)的功能
💻 C
📖 第 1 页 / 共 5 页
字号:
           TimeSec2[Counter][1] = 8888;
         }
         for(i=0; i<25; i++)
         {
           if(((TimeSec1[i][0] !=0) && (TimeSec1[i][0] !=2359))
               ||((TimeSec1[i][1] !=0) &&(TimeSec1[i][1] !=2359)))
           {
              break;
           }
           ScaleClock = TimeSec1[i][1];                 //回退时钟标尺操作 
         }
       }
      DisplayFlg |= TimeIndexFlg;    
      Key = 0X0E;                                       //进入取消操作处理 
   }
    
   
    {
      
      if((KeyCode[Key] <= 9))                           //数据设定操作
      {
        if((DisplayFlg & TimeIndexFlg) == TimeIndexFlg)
        {
          DisplayFlg &= ~TimeIndexFlg;                  //数据设定条件下,不对时间段进行索引显示
        }
        
         if((DisplayFlg & TimeSection1SetFlg) == TimeSection1SetFlg)
        {                                              //时间段数据输入,停止闪烁
          DisplayFlg &= ~DShrinkFlg;
          DisplayFlg &= ~DShrSetFlg; 
          Counter++;
          if(Counter >=5)
            Counter = 0;
        }
        else if((DisplayFlg & TimeSection2SetFlg) == TimeSection2SetFlg)
        {                                             //时间段数据输入,停止闪烁 
          DisplayFlg &= ~DShrinkFlg;
          DisplayFlg &= ~DShrSetFlg; 
          Counter++;
          if(Counter >=5)
            Counter = 0;
        }
        
        ConvertCode =ConvertCode*10 + KeyCode[Key];
         if(((DisplayFlg & ClockSetFlg) == ClockSetFlg)
            ||((DisplayFlg & TimeSection2SetFlg) ==TimeSection2SetFlg)
            ||((DisplayFlg & TimeSection1SetFlg) ==TimeSection1SetFlg))
         {
           if(ConvertCode >240)                       //校验时间数据正确性
             if((ConvertCode >= 2400) ||(ConvertCode %100) >= 60)
             {
               ConvertCode =0;
               Counter = 0;
             }
         }
         else if((DisplayFlg & AddressSetFlg) == AddressSetFlg)
         {
           if(ConvertCode > 52)                      //校验地址数据的正确性
             ConvertCode = 0;
         }
         else
         {
           if(ConvertCode > 9999)                   //校验其他数据的正确性 
           {
             ConvertCode =0;
           }
         }
         
        
         
        if((DisplayFlg & PlanSetFlg) == PlanSetFlg)  //转化当前数据为显示数据
        {
          for(i=0; i<8; i++)
          {
            DisplayKeyCode[i] =LedCode[10];
          }
          temp1 =ConvertCode %10;
          DisplayKeyCode[8] =LedCode[temp1];
          temp1 =(ConvertCode/10)%10;
          DisplayKeyCode[9] =LedCode[temp1];
          temp1 =(ConvertCode/100)%10;
          DisplayKeyCode[10] =LedCode[temp1];
          temp1 =(ConvertCode/1000)%10;
          DisplayKeyCode[11] =LedCode[temp1];
        }
        
        if((DisplayFlg & NumSetFlg) == NumSetFlg)
        {
          
            for(i=0; i<8; i++)
            {
              DisplayKeyCode[i] =LedCode[10];
            }
            temp1 =ConvertCode %10;
            DisplayKeyCode[8] =LedCode[temp1];
            temp1 =(ConvertCode/10)%10;
            DisplayKeyCode[9] =LedCode[temp1];
            temp1 =(ConvertCode/100)%10;
            DisplayKeyCode[10] =LedCode[temp1];
            temp1 =(ConvertCode/1000)%10;
            DisplayKeyCode[11] =LedCode[temp1];
            if((DisplayFlg & NumSetFlg) == NumSetFlg)
            {
              DisplayKeyCode[9] += 0X80;     
            }
        }
        
         if((DisplayFlg & ClockSetFlg) == ClockSetFlg)
         {
           for(i=0; i<8; i++)
         {
            DisplayKeyCode[i] =LedCode[10];
         }
          temp1 =ConvertCode %10;
          DisplayKeyCode[8] =LedCode[temp1];
          temp1 =(ConvertCode/10)%10;
          DisplayKeyCode[9] =LedCode[temp1];
          temp1 =(ConvertCode/100)%10;
          DisplayKeyCode[10] =LedCode[temp1];
          temp1 =(ConvertCode/1000)%10;
          DisplayKeyCode[11] =LedCode[temp1];
         }
         
          if((DisplayFlg & AddressSetFlg) == AddressSetFlg)
         {
           for(i=0; i<8; i++)
           {
             DisplayKeyCode[i] =LedCode[10];
           }
          temp1 =ConvertCode %10;
          DisplayKeyCode[8] =LedCode[temp1];
          temp1 =(ConvertCode/10)%10;
          DisplayKeyCode[9] =LedCode[temp1];
          temp1 =(ConvertCode/100)%10;
          DisplayKeyCode[10] =LedCode[temp1];
          temp1 =(ConvertCode/1000)%10;
          DisplayKeyCode[11] =LedCode[temp1];
        }
 
         TimerCount =0;
         DisplayFlg &= ~FirstFlg;           
         DisplayFlg &= ~StartShrinkFlg;
      }
    }
  }
  
  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])
                 &&(

⌨️ 快捷键说明

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