PCB机打孔机程序(三)

///<-检测STOP/
                       OUT4=1;
                       delay(80);                      //延时
                       OUT1=0;                        //开检测光标下总线  
                       if(!IN5)                          //光标下检测
                       {
                        for(;kcounter<5;)             //按键循环5次
                        {
                         if(!IN5)                       //按键低电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus++;                      //按键状态标志加一
                         delay(10);                      //延时
                         }
                         else if(~!IN5)               //按键高电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus=0;                      //按键状态标志归零
                         delay(10);                      //延时
                         }
                        }
                        if(kstatus>=3)                //光标下处理
                        {
                        YCursor+=1;
                        if(YCursor>3)
                        YCursor=0;
                       }
                       kcounter=0;                      //按键循环标志归零
                       kstatus=0;                      //按键状态标志归零
                       }
///光标下检测STOP/
                       OUT1=1;                          //关检测光标下总线
                       delay(80);                      //延时
                       OUT2=0;                        //开返回前进检测
                       }
                      }
                      kcounter=0;                     //按键循环标志归零
                      kstatus=0;                     //按键状态标志归零
                      }    
                      OUT1=1;                         //关系统检测OUT1
                      delay(80);                     //延时
                      OUT2=0;                        //开检测系统总线       //OUT1 IN7??
                     }                                 //返回while(SystemDataSet_Flag)系统参数 返回检测
                    }
                    kcounter=0;                     //按键循环标志归零
                    kstatus=0;                     //按键状态标志归零
                    }
/系统参数检测STOP
                    OUT2=1;
                    delay(30);                     //延时
                    OUT4=0;
/
                    if(!IN6)                     //IO设置检测
                    {
                     for(;kcounter<5;)           //按键循环5次
                     {
                      if(!IN6)                      //按键低电平
                      {
                      kcounter++;                 //按键计数器加一
                      kstatus++;                 //按键状态标志加一
                      delay(10);                 //延时
                      }
                      else if(~!IN6)             //按键高电平
                      {
                      kcounter++;                 //按键计数器加一
                      kstatus=0;                 //按键状态标志归零
                      delay(10);                 //延时
                      }
                     }
                     if(kstatus>=3)              //进入IO设置界面
                     {                              //IO设置
                      OUT4=1;                     //关IO设置总线
                      delay_nms(50);
                      OUT2=0;                     //开IO设置返回检测总线
                      ClearScreen();
                      DisIOset();                 // IO设置
                      DisIoSet_Value();
                      IOSet_Flag=1;              //IO设置循环检测标志
                      while(IOSet_Flag)
                      {
                       if(!IN6)                     //10程序编辑界面检测
                       {
                        for(;kcounter<5;)        //按键循环5次
                        {
                         if(!IN6)                  //按键低电平
                         {
                         kcounter++;             //按键计数器加一
                         kstatus++;                 //按键状态标志加一
                         delay(10);                 //延时
                         }
                         else if(~!IN6)          //按键高电平
                         {
                         kcounter++;             //按键计数器加一
                         kstatus=0;                 //按键状态标志归零
                         delay(10);                 //延时
                         }
                        }
                       if(kstatus>=3)            //退出IO设置
                       {
                       IOSet_Flag=0;
                       OUT2=1;
                       ClearScreen();             //返回参数设置界面
                       DataSet();                 //显示    系统参数*系统自检*IO*设置
                       delay_nms(150);       ///
                       }
                       kcounter=0;                     //按键循环标志归零
                       kstatus=0;                     //按键状态标志归零
                       }    
                      }
                     }
                     kcounter=0;                     //按键循环标志归零
                     kstatus=0;                     //按键状态标志归零
                    }    
                    OUT4=1;
                    delay_nms(50);       ///
                    OUT1=0;
/系统自检检测START
                    if(!IN7)                          //10系统自检循环界面检测
                    {           //???????????????????????????????????????
                     for(;kcounter<5;)                //按键循环5次
                     {
                      if(!IN7)                           //按键低电平
                      {
                      kcounter++;                      //按键计数器加一
                      kstatus++;                      //按键状态标志加一
                      delay(10);                      //延时
                      }
                      else if(~!IN7)                  //按键高电平
                      {
                      kcounter++;                      //按键计数器加一
                      kstatus=0;                      //按键状态标志归零
                      delay(10);                      //延时
                      }
                     }
                     if(kstatus>=3)                   //显示11进入系统自检功能
                     {          //???????????????????????????????????????
                      OUT1=1;
                      ClearScreen();
                      SystemSeifTest_Flag=1;          //系统自检循环检测标志
                      SysNegate_Intput();              //系统自检中文显示
                      IntPutStatus();                  //输入状态初始化
                      while(SystemSeifTest_Flag)
                      {
                      OUT2=0;
                      if(!IN6)                         //10程序编辑界面检测
                      {
                       kcounter=0;                     //按键循环标志归零
                       kstatus=0;                     //按键状态标志归零
                       for(;kcounter<5;)              //按键循环5次
                       {
                        if(!IN6)                      //按键低电平
                        {
                        kcounter++;                     //按键计数器加一
                        kstatus++;                     //按键状态标志加一
                        delay(10);                     //延时
                        }
                        else if(~!IN6)                 //按键高电平
                        {
                        kcounter++;                     //按键计数器加一
                        kstatus=0;                     //按键状态标志归零
                        delay(10);                     //延时
                        }
                       }
                       if(kstatus>=3)                 //显示10进入程序编辑功能
                       {
                       SystemSeifTest_Flag=0;         //返回参数设置
                       OUT2=0;
                       ClearScreen();
                       display_graphic_16x8(28,1,xsadd[1],tab0);//  显示14
                       display_graphic_16x8(29,1,xsadd[3],tab0);//
                       DataSet();
                       }
                       kcounter=0;                     //按键循环标志归零
                       kstatus=0;                     //按键状态标志归零
                      }    
                      if(SystemSeifTest_Flag==1)
                      {
///输入端口检测//
                       for(;kcounter<5;)             //按键循环5次
                        {
                         if(!INTPUT0)                   //按键低电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus++;                      //按键状态标志加一
                         delay(10);                      //延时
                         }
                         else if(~!INTPUT0)           //按键高电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus=0;                      //按键状态标志归零
                         delay(10);                      //延时
                         }
                        }
                        if(kstatus>=3)                //显示10进入程序编辑功能
                        {
                        Intput1();    //显示实心圆
                        }
                        else
                        {
                        NIntput1();//显示空心圆
                        }
                       kcounter=0;                     //按键循环标志归零
                       kstatus=0;                     //按键状态标志归零
///111
                       for(;kcounter<5;)             //按键循环5次
                        {
                         if(!INTPUT1)                   //按键低电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus++;                      //按键状态标志加一
                         delay(10);                      //延时
                         }
                         else if(~!INTPUT1)           //按键高电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus=0;                      //按键状态标志归零
                         delay(10);                      //延时
                         }
                        }
                        if(kstatus>=3)                //显示10进入程序编辑功能
                        {
                        Intput2();    //显示实心圆
                        }
                        else
                        {
                        NIntput2();//显示空心圆
                        }
                       kcounter=0;                     //按键循环标志归零
                       kstatus=0;                     //按键状态标志归零
///222
                       for(;kcounter<5;)             //按键循环5次
                        {
                         if(!INTPUT2)                   //按键低电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus++;                      //按键状态标志加一
                         delay(10);                      //延时
                         }
                         else if(~!INTPUT2)           //按键高电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus=0;                      //按键状态标志归零
                         delay(10);                      //延时
                         }
                        }
                        if(kstatus>=3)                //显示10进入程序编辑功能
                        {
                        Intput3();    //显示实心圆
                        }
                        else
                        {
                        NIntput3();//显示空心圆
                        }
                       kcounter=0;                     //按键循环标志归零
                       kstatus=0;                     //按键状态标志归零
///333
                       for(;kcounter<5;)             //按键循环5次
                        {
                         if(!INTPUT3)                   //按键低电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus++;                      //按键状态标志加一
                         delay(10);                      //延时
                         }
                         else if(~!INTPUT3)           //按键高电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus=0;                      //按键状态标志归零
                         delay(10);                      //延时
                         }
                        }
                        if(kstatus>=3)                //显示10进入程序编辑功能
                        {
                        Intput4();    //显示实心圆
                        }
                        else
                        {
                        NIntput4();//显示空心圆
                        }
                       kcounter=0;                     //按键循环标志归零
                       kstatus=0;                     //按键状态标志归零
///444
                       for(;kcounter<5;)             //按键循环5次
                        {
                         if(!INTPUT4)                   //按键低电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus++;                      //按键状态标志加一
                         delay(10);                      //延时
                         }
                         else if(~!INTPUT4)           //按键高电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus=0;                      //按键状态标志归零
                         delay(10);                      //延时
                         }
                        }
                        if(kstatus>=3)                //显示10进入程序编辑功能
                        {
                        Intput5();    //显示实心圆
                        }
                        else
                        {
                        NIntput5();//显示空心圆
                        }
                       kcounter=0;                     //按键循环标志归零
                       kstatus=0;                     //按键状态标志归零
///555
                       for(;kcounter<5;)             //按键循环5次
                        {
                         if(!INTPUT5)                   //按键低电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus++;                      //按键状态标志加一
                         delay(10);                      //延时
                         }
                         else if(~!INTPUT5)           //按键高电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus=0;                      //按键状态标志归零
                         delay(10);                      //延时
                         }
                        }
                        if(kstatus>=3)                //显示10进入程序编辑功能
                        {
                        Intput6();    //显示实心圆
                        }
                        else
                        {
                        NIntput6();//显示空心圆
                        }
                       kcounter=0;                     //按键循环标志归零
                       kstatus=0;                     //按键状态标志归零
///666
                       for(;kcounter<5;)             //按键循环5次
                        {
                         if(!INTPUT6)                   //按键低电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus++;                      //按键状态标志加一
                         delay(10);                      //延时
                         }
                         else if(~!INTPUT6)           //按键高电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus=0;                      //按键状态标志归零
                         delay(10);                      //延时
                         }
                        }
                        if(kstatus>=3)                //显示10进入程序编辑功能
                        {
                        Intput7();    //显示实心圆
                        }
                        else
                        {
                        NIntput7();//显示空心圆
                        }
                       kcounter=0;                     //按键循环标志归零
                       kstatus=0;                     //按键状态标志归零
///777
                       for(;kcounter<5;)             //按键循环5次
                        {
                         if(!INTPUT7)                   //按键低电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus++;                      //按键状态标志加一
                         delay(10);                      //延时
                         }
                         else if(~!INTPUT7)           //按键高电平
                         {
                         kcounter++;                  //按键计数器加一
                         kstatus=0;                      //按键状态标志归零
                         delay(10);                      //延时
                         }
                        }
                        if(kstatus>=3)                //显示10进入程序编辑功能
                        {
                        Intput8();    //显示实心圆
                        }
                        else
                        {
                        NIntput8();//显示空心圆
                        }
                       kcounter=0;                     //按键循环标志归零
                       kstatus=0;                     //按键状态标志归零
                      }
///888
                      }         //???????????????????????????????????????
                     }         //???????????????????????????????????????
                     kcounter=0;                     //按键循环标志归零
                     kstatus=0;                         //按键状态标志归零
                     }         //???????????????????????????????????????
/系统自检检测STOP//
                    OUT1=1;
                    delay_nms(50);       ///
                    
                    }                     //系统参数循环结束
                  }
                  kcounter=0;                     //按键循环标志归零
                  kstatus=0;                     //按键状态标志归零
                }    
                OUT3=1;
                delay_nms(50);
                OUT4=0;
                kcounter=0;                         //按键计数器归零
                kstatus=0;                         //状态寄存器归零
                if(!IN6)                         //12程序管理界面检测
                {
                 for(;kcounter<5;)               //按键循环5次
                 {
                  if(!IN6)                          //按键低电平
                  {
                  kcounter++;                     //按键计数器加一
                  kstatus++;                     //按键状态标志加一
                  delay(10);                     //延时
                  }
                  else if(~!IN6)                 //按键高电平
                  {
                  kcounter++;                     //按键计数器加一
                  kstatus=0;                     //按键状态标志归零
                  delay(10);                     //延时
                  }
                 }
                 if(kstatus>=3)                  /***显示12***/
                 {
                 OUT4=1;
                 ClearScreen();
                 display_Prog();                 //显示程序管理界面
                 ProgAdmin_Flag=1;
                 while(ProgAdmin_Flag)
                 {
                  delay(60);                     //延时
                  OUT2=0;                         //使能返回键
                  kcounter=0;                    //按键循环标志归零
                  kstatus=0;                     //按键状态标志归零
                  if(!IN6)                       //程序管理返回检测
                  {
                  for(;kcounter<5;)              //按键循环5次
                  {
                   if(!IN6)                      //按键低电平
                   {
                   kcounter++;                   //按键计数器加一
                   kstatus++;                    //按键状态标志加一
                   delay(10);                    //延时
                   }
                   else if(~!IN6)                //按键高电平
                   {
                   kcounter++;                   //按键计数器加一
                   kstatus=0;                    //按键状态标志归零
                   delay(10);                    //延时
                   }
                  }
                  if(kstatus>=3)                  /***显示14***/
                  {
                  ClearScreen();
                  ProgAdmin_Flag=0;                            //程序管理标志置零
                  display_graphic_16x8(28,1,xsadd[1],tab0);//  显示14
                  display_graphic_16x8(29,1,xsadd[4],tab0);//
                  display_graphic_16x8(30,1,xsadd[15],tab0);//
                  display_a();                              //开机界面显示
                  }
                  kcounter=0;                    //按键循环标志归零
                  kstatus=0;                     //按键状态标志归零
                  }
                  if(!IN7)                       //10程序编辑界面检测
                  {
                  for(;kcounter<5;)              //按键循环5次
                  {
                   if(!IN7)                      //按键低电平
                   {
                   kcounter++;                     //按键计数器加一
                   kstatus++;                     //按键状态标志加一
                   delay(10);                     //延时
                   }
                   else if(~!IN7)                 //按键高电平
                   {
                   kcounter++;                     //按键计数器加一
                   kstatus=0;                     //按键状态标志归零
                   delay(10);                     //延时
                   }
                  }
                  if(kstatus>=3)                  /***显示10*进入程序编辑功能**/
                  {
                  ProgEdit_Flag=1;               //程序编辑循环检测标志
                  ClearScreen();
                  Display_Function();            //程序编辑功能界面显示
                  DisFun_Data();
                  Dis_ProgNum();                 //程序编号
                  Dis_ProgLineNum();             //程序行号
                  while(ProgEdit_Flag)
                  {                              //程序编辑功能界面显示
                  if(!IN6)                       //10程序编辑界面检测
                  {
                  for(;kcounter<5;)              //按键循环5次
                  {
                   if(!IN6)                      //按键低电平
                   {
                   kcounter++;                   //按键计数器加一
                   kstatus++;                    //按键状态标志加一
                   delay(10);                    //延时
                   }
                   else if(~!IN6)                //按键高电平
                   {
                   kcounter++;                   //按键计数器加一
                   kstatus=0;                    //按键状态标志归零
                   delay(10);                    //延时
                   }
                  }
                  if(kstatus>=3)                 /***返回程序管理界面**/
                  {
                   ClearScreen();                //清屏
                   ProgEdit_Flag=0;              //程序编辑功能标志置零
                   display_Prog();               //返回显示程序管理界面
                  }
                  kcounter=0;                     //按键循环标志归零
                  kstatus=0;                     //按键状态标志归零
                  }       
//OUT2=0检测前进 确认 加一键
                  if(!IN5)                       //手动前进检测
                  {
                   for(;kcounter<3;)             //按键循环5次
                   {
                    if(!IN5)                     //按键低电平
                    {
                    kcounter++;                  //按键计数器加一
                    kstatus++;                   //按键状态标志加一
                    }
                    else if(~!IN5)               //按键高电平
                    {
                    kcounter++;                  //按键计数器加一
                    kstatus=0;                   //按键状态标志归零
                    }
                   }
                   if(kstatus>=3)                
                   {
                   DIS_Forward();                 //前进
                   YEditRun_Data();                 //显示Y位置数据
                   }
                   kcounter=0;                   //按键循环标志归零
                   kstatus=0;                    //按键状态标志归零
                   for(;kcounter<=3;)            /*寄存器复位*/
                   {
                    if(~!IN5)                    /*检测前进为高电平?*/
                    {                            /**/
                    kcounter++;
                    }
                    else if(!IN5)                /*检测前进为低电平?*/
                    {
                    kcounter=0;                  /*寄存器复位*/  
                    CP2=0;
                    delay(100);  
                    CP2=1;
                    delay(100);  
                    Y_Data+=1;
                    if(Y_Data>=0)                 //如果Y值大于等于零
                    {
                    YBuff_Data=Y_Data;             //Y缓冲器等于运行值
                    YPosiNegate_Flag=1;             //Y值正负标志置一
                    }
                    else if(Y_Data<0)             //如果Y值小于零
                    {
                    YBuff_Data=Y_Data-Y_Data*2;     //
                    YPosiNegate_Flag=0;             //Y值正负标志置零
                    }
                    YEditRun_Data();             //显示Y位置数据
                    }         
                   }
                   Clear_Forward();                 //清除显示前进
                   kcounter=0;                   //按键循环标志归零
                   kstatus=0;                    //按键状态标志归零
                  }
                  OUT2=1;
                  delay(80);                     //延时
                  OUT3=0;                        //右移总线开

                  if(!IN5)                       //手动右移检测
                  {
                   for(;kcounter<3;)             //按键循环5次
                   {
                    if(!IN5)                     //按键低电平
                    {
                    kcounter++;                  //按键计数器加一
                    kstatus++;                   //按键状态标志加一
                    }
                    else if(~!IN5)               //按键高电平
                    {
                    kcounter++;                  //按键计数器加一
                    kstatus=0;                   //按键状态标志归零
                    }
                   }
                   if(kstatus>=3)                
                   {
                   DIS_MoveRight();                 //右移
                   XEditRun_Data();                 //显示X值位置数据
                   }
                   kcounter=0;                   //按键循环标志归零
                   kstatus=0;                    //按键状态标志归零
                   for(;kcounter<=3;)            /*寄存器复位*/
                   {
                    if(~!IN5)                    /*检测前进为高电平?*/
                    {                            /**/
                    kcounter++;
                    }
                    else if(!IN5)                /*检测右移为低电平?*/
                    {
                    kcounter=0;                  /*寄存器复位*/  
                    CP1=0;
                    delay(100);  
                    CP1=1;
                    delay(100);  
                    X_Data+=1;
                    if(X_Data>=0)                 //如果X值大于等于零
                    {
                    XBuff_Data=X_Data;             //X缓冲器等于运行值
                    XPosiNegate_Flag=1;             //X值正负标志置一
                    }
                    else if(X_Data<0)             //如果X值小于零
                    {
                    XBuff_Data=X_Data-X_Data*2;     //
                    XPosiNegate_Flag=0;             //X值正负标志置零
                    }
                    XEditRun_Data();             //显示X值位置数据
                    }         
                   }
                   Clear_MoveRight();             //清除显示右移
                   kcounter=0;                   //按键循环标志归零
                   kstatus=0;                    //按键状态标志归零
                  }
                  OUT3=1;                         //右移总线关
                  delay(80);                     //延时
                  OUT4=0;                        //左移总线开

                  if(!IN5)                       //手动左移检测
                  {
                   for(;kcounter<3;)             //按键循环5次
                   {
                    if(!IN5)                     //按键低电平
                    {
                    kcounter++;                  //按键计数器加一
                    kstatus++;                   //按键状态标志加一
                    }
                    else if(~!IN5)               //按键高电平
                    {
                    kcounter++;                  //按键计数器加一
                    kstatus=0;                   //按键状态标志归零
                    }
                   }
                   if(kstatus>=3)                
                   {
                   DIS_Moveleft();                 //显示左移
                   XEditRun_Data();                 //显示X值位置数据
                   }
                   kcounter=0;                   //按键循环标志归零
                   kstatus=0;                    //按键状态标志归零
                   for(;kcounter<=3;)            /*寄存器复位*/
                   {
                    if(~!IN5)                    /*检测左移为高电平?*/
                    {                            /**/
                    kcounter++;
                    }
                    else if(!IN5)                /*检测左移为低电平?*/
                    {
                    kcounter=0;                  /*寄存器复位*/  
                    CP1=0;
                    delay(100);  
                    CP1=1;
                    delay(100);  
                    X_Data-=1;
                    if(X_Data>=0)                 //如果X值大于等于零
                    {
                    XBuff_Data=X_Data;             //X缓冲器等于运行值
                    XPosiNegate_Flag=1;             //X值正负标志置一
                    }
                    else if(X_Data<0)             //如果X值小于零
                    {
                    XBuff_Data=X_Data-X_Data*2;     //
                    XPosiNegate_Flag=0;             //正负标志置零
                    }
                    XEditRun_Data();             //显示X值位置数据
                    }         
                   }
                   Clear_Moveleft();             //清除显示左移
                   kcounter=0;                   //按键循环标志归零
                   kstatus=0;                    //按键状态标志归零
                  }
                  OUT4=1;                         //左移总线关
                  delay(80);                     //延时
                  OUT1=0;                        //后退总线开
/
                  if(!IN5)                       //手动后退检测
                  {
                   for(;kcounter<3;)             //按键循环3次
                   {
                    if(!IN5)                     //按键低电平
                    {
                    kcounter++;                  //按键计数器加一
                    kstatus++;                   //按键状态标志加一
                    }
                    else if(~!IN5)               //按键高电平
                    {
                    kcounter++;                  //按键计数器加一
                    kstatus=0;                   //按键状态标志归零
                    }
                   }
                   if(kstatus>=3)                
                   {
                   DIS_Relreal();                 //手动后退
                   YEditRun_Data();                 //显示Y位置数据
                   }
                   kcounter=0;                   //按键循环标志归零
                   kstatus=0;                    //按键状态标志归零
                   for(;kcounter<=3;)            /*寄存器复位*/
                   {
                    if(~!IN5)                    /*检测后退为高电平?*/
                    {                            /**/
                    kcounter++;
                    }
                    else if(!IN5)                /*检测后退为低电平?*/
                    {
                    kcounter=0;                  /*寄存器复位*/  
                    CP2=0;
                    delay(100);  
                    CP2=1;
                    delay(100);  
                    Y_Data-=1;
                    if(Y_Data>=0)                 //如果Y值大于等于零
                    {
                    YBuff_Data=Y_Data;             //Y缓冲器等于运行值
                    YPosiNegate_Flag=1;             //Y值正负标志置一
                    }
                    else if(Y_Data<0)             //如果Y值小于零
                    {
                    YBuff_Data=Y_Data-Y_Data*2;     //
                    YPosiNegate_Flag=0;             //Y值正负标志置零
                    }
                    YEditRun_Data();                 //显示Y位置数据
                    }         
                   }
                   Clear_Relreal();                 //清除显示下行
                   kcounter=0;                   //按键循环标志归零
                   kstatus=0;                    //按键状态标志归零
                  }
/F键检测///
                   if(!IN6)                       //F键检测
                   {
                    for(;kcounter<3;)             //按键循环3次
                    {
                     if(!IN6)                     //按键低电平
                     {
                     kcounter++;                  //按键计数器加一
                     kstatus++;                   //按键状态标志加一
                     }
                     else if(~!IN6)               //按键高电平
                     {
                     kcounter++;                  //按键计数器加一
                     kstatus=0;                   //按键状态标志归零
                     }
                    }
                    if(kstatus>=3)                
                   {
                   Prog_LineNum+=1;                 //计数器加一
                   Dis_ProgLineNum();            //
                   delay(1500);                   //延时
                   }
                   kcounter=0;                   //按键循环标志归零
                   kstatus=0;                    //按键状态标志归零
                  }
                  OUT1=1;                         //后退F总线关
                  delay(80);                     //延时
                  OUT2=0;                        //恢复返回总线

                  }
                  }
                  kcounter=0;                     //按键循环标志归零
                  kstatus=0;                     //按键状态标志归零
                  }       
                  kcounter=0;                     //按键循环标志归零
                  kstatus=0;                     //按键状态标志归零
                  OUT2=1;  //返回 程序检测按键检测结束    OUT2总线释放
                  delay(80);                     //延时
                  OUT3=0;                         //程序另存总线开
                  if(!IN6)                         //10程序编辑界面检测
                  {
                  for(;kcounter<5;)              //按键循环5次
                  {
                   if(!IN6)                      //按键低电平
                   {
                   kcounter++;                     //按键计数器加一
                   kstatus++;                     //按键状态标志加一
                   delay(10);                     //延时
                   }
                   else if(~!IN6)                 //按键高电平
                   {
                   kcounter++;                     //按键计数器加一
                   kstatus=0;                     //按键状态标志归零
                   delay(10);                     //延时
                   }
                  }
                  if(kstatus>=3)                 //显示10进入程序编辑功能
                  {
                   ProgSave_Flag=1;              //程序保存循环检测标志
                   ClearScreen();
                   Dis_FileName();                 //显示文件名
                   while(ProgSave_Flag)
                   {
                    OUT3=1;                         //程序另存总线关
                    delay(50);                     //延时
                    OUT2=0;                         //返回总线开
                    if(!IN6)                         //10程序编辑界面检测
                    {
                     for(;kcounter<5;)              //按键循环5次
                     {
                      if(!IN6)                      //按键低电平
                      {
                      kcounter++;                     //按键计数器加一
                      kstatus++;                     //按键状态标志加一
                      delay(10);                     //延时
                      }
                      else if(~!IN6)                 //按键高电平
                      {
                      kcounter++;                     //按键计数器加一
                      kstatus=0;                     //按键状态标志归零
                      delay(10);                     //延时
                      }
                     }
                     if(kstatus>=3)                  //显示10进入程序编辑功能
                     {
                     ProgSave_Flag=0;                //程序保存循环检测标志归零
                     ClearScreen();
                     display_Prog();                 //显示程序管理界面
                     }
                     kcounter=0;                     //按键循环标志归零
                     kstatus=0;                     //按键状态标志归零
                    }    
                    OUT2=1;//临时关总线
                    delay(50);                     //延时
                    OUT3=0;                         //程序另存总线开
                   }
                  }
                  kcounter=0;                     //按键循环标志归零
                  kstatus=0;                     //按键状态标志归零
                  }    
                  OUT3=1;                         //程序另存总线关 启动返回 程序编辑总线OUT2      ????????????
                  delay_nms(50);            //INTPUT0
                  OUT1=0;
                  if(!IN7)                         //11程序读入界面检测
                  {
                  for(;kcounter<5;)              //按键循环5次
                  {
                   if(!IN7)                      //按键低电平
                   {
                   kcounter++;                     //按键计数器加一
                   kstatus++;                     //按键状态标志加一
                   delay(10);                     //延时
                   }
                   else if(~!IN7)                 //按键高电平
                   {
                   kcounter++;                     //按键计数器加一
                   kstatus=0;                     //按键状态标志归零
                   delay(10);                     //延时
                   }
                  }
                  if(kstatus>=3)                 //显示10进入程序编辑功能
                  {
                   ProgRead_Flag=1;
                   ClearScreen();
                   Draw_Line();
                   OUT1=1;
                   delay(50);                     //延时
                   OUT2=0;
                   while(ProgRead_Flag)
                   {
                    if(!IN6)                         //10程序编辑界面检测
                    {
                     for(;kcounter<5;)              //按键循环5次
                     {
                      if(!IN6)                      //按键低电平
                      {
                      kcounter++;                     //按键计数器加一
                      kstatus++;                     //按键状态标志加一
                      delay(10);                     //延时
                      }
                      else if(~!IN6)                 //按键高电平
                      {
                      kcounter++;                     //按键计数器加一
                      kstatus=0;                     //按键状态标志归零
                      delay(10);                     //延时
                      }
                     }
                     if(kstatus>=3)                 //显示14程序读入退出
                     {
                     ProgRead_Flag=0;
                     ClearScreen();
                     display_Prog();                 //显示程序管理界面
                     }
                     kcounter=0;                     //按键循环标志归零
                     kstatus=0;                     //按键状态标志归零
                     }    
                    }
                  }
                  kcounter=0;                     //按键循环标志归零
                  kstatus=0;                     //按键状态标志归零
                  }   
                  OUT1=1;
                  delay(50);                     //延时
                  OUT4=0;
                  if(!IN6)                         //12程序保存
                  {
                  for(;kcounter<5;)              //按键循环5次
                  {
                   if(!IN6)                      //按键低电平
                   {
                   kcounter++;                     //按键计数器加一
                   kstatus++;                     //按键状态标志加一
                   delay(10);                     //延时
                   }
                   else if(~!IN6)                 //按键高电平
                   {
                   kcounter++;                     //按键计数器加一
                   kstatus=0;                     //按键状态标志归零
                   delay(10);                     //延时
                   }
                  }
                  if(kstatus>=3)                 //    保存
                  {
                   Dis_SaveSuccess();            // 显示保存成功
                  }
                  kcounter=0;                     //按键循环标志归零
                  kstatus=0;                     //按键状态标志归零
                  }    
                  OUT4=1;                         //
                  delay(50);                     //延时
                  OUT2=0;                          //恢复OUT2检测返回键
                 }         //程序管理whileEND
                 OUT4=0;                         //恢复OUT4
                 }         //程序管理>=3
                 kcounter=0;                     //按键循环标志归零
                 kstatus=0;                         //按键状态标志归零
                }
                OUT4=1;
                delay_nms(50);            //INTPUT0
               }
              }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/7273.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5月3日江苏某厂冷却塔清洗工作汇报-智渍洁

5月3日 施工人员&#xff1a;张能超&#xff0c;张伟&#xff0c;刘平&#xff0c;曾巧 施工事项&#xff1a;空冷器脱脂 今日工作进度&#xff0c;清洗6台遇到的问题&#xff0c;就是那个喷雾器不经用&#xff0c;一会儿又坏了 重庆智渍洁环保科技有限公司专注于工业清洗&…

记录创建项目java version 没有8的问题

问题&#xff1a; 解决方案 java版本选择21&#xff08;21可以兼容jdk8&#xff09; SpringBoot选择3.2.5 进入项目后手动在pom.xml中修改版本

C# 事务- TransactionScop 类 如何使用

在C#中&#xff0c;TransactionScope 类位于 System.Transactions 命名空间下&#xff0c;用于简化跨多个资源管理器&#xff08;如数据库连接&#xff09;的事务处理。以下是一个基本的使用示例&#xff0c;展示了如何使用 TransactionScope 来确保一系列操作的原子性&#xf…

安卓手机原生运行 ARM Ubuntu 24.04 桌面版(一)

本篇文章&#xff0c;聊一聊尝试让安卓手机原生运行 Ubuntu&#xff0c;尤其是运行官方未发布过的 ARM 架构的 Ubuntu 24.04 桌面版本。 写在前面 最近的几篇文章&#xff0c;都包含了比较多的实操内容、需要反复的复现验证&#xff0c;以及大量的调试过程&#xff0c;为了不…

Sy9-dhcp/dns服务配置

前言、 课程需要&#xff08;进入服务器综合配置使用阶段了&#xff09;&#xff0c;这里还是沿用桌面版的ubuntu来配置dhcp和dns&#xff0c;这里updated了新的版本。2024.5 server端环境&#xff1a; Win11VMS&#xff1a;192.168.105.1192.168.105.128 &#xff08;ubuntu…

vivado UltraScale 比特流设置

下表所示 UltraScale ™ 器件的器件配置设置可搭配 set_property <Setting> <Value> [current_design] Vivado 工具 Tcl 命令一起使用。

第08章 IP分类编址和无分类编址

8.1 本章目标 了解IP地址的用途和种类了解分类编址和无分类编址区别掌握IP地址、子网掩码、网关概念及使用掌握子网划分及超网划分方法掌握无分类编址的改变和使用 8.2 IP地址的用途和种类 分类编址&#xff1a;造成地址的浪费&#xff0c;以及地址不够用&#xff1b;无分类编…

【QEMU系统分析之实例篇(十八)】

系列文章目录 第十八章 QEMU系统仿真的机器创建分析实例 文章目录 系列文章目录第十八章 QEMU系统仿真的机器创建分析实例 前言一、QEMU是什么&#xff1f;二、QEMU系统仿真的机器创建分析实例1.系统仿真的命令行参数2.创建后期后端驱动qemu_create_late_backends()qtest_serv…

寒武纪及瑞芯微平台调用加速调研

文章目录 1 寒武纪加速平台简介1.1 加速平台简介1.1.1 算力硬件1.1.2 配套软件 1.2 部署流程简介1.3 部署环境搭建1.3.1 安装驱动1.3.2 安装CNToolKit1.3.3 配置模型移植开发环境 1.4 模型部署1.4.1 模型转换旧文件格式1.4.2 量化模型生成1.4.3 验证结果1.4.4 离线模型生成 1 寒…

【自用】了解移动存储卡的基本信息

前言 本文是看B站视频做的一个简单笔记&#xff0c;方便日后自己快速回顾&#xff0c;内容主要介绍了存储卡基本参数&#xff0c;了解卡面上的数字、图标代表的含义。对于日后如何挑选判断一张存储卡的好坏、判别一张存储卡是否合格有一定帮助。 视频参考链接&#xff1a;【硬…

【StarRocks系列】 Trino 方言支持

我们在之前的文章中&#xff0c;介绍了 Doris 官方提供的两种方言转换工具&#xff0c;分别是 sql convertor 和方言 plugin。StarRocks 目前同样也提供了类似的方言转换功能。本文我们就一起来看一下这个功能的实现与 Doris 相比有何不同。 一、Trino 方言验证 我们可以通过…

HTTP、RTSP、RTMP、RTP,RTCP,HLS,MMS的概念、区别、用法

背景知识 先有TCP/IP协议簇 5层模型&#xff0c;后有DoD 4层模型&#xff0c;再有OSI 7层模型。 TCP/IP协议簇&#xff08;TCP/IP Suite&#xff09;除了代表TCP与IP这两种通讯协议外&#xff0c;更包含了与TCP/IP相关的数十种通讯协议&#xff0c;例如&#xff1a;SMTP、DNS、…

使用docker-compose编排Lnmp(dockerfile) 完成Wordpress

目录 一、 Docker-Compose 1.1Docker-Compose介绍 1.2环境准备 1.2.1准备容器目录及相关文件 1.2.2关闭防火墙关闭防护 1.2.3下载centos:7镜像 1.3Docker-Compose 编排nginx 1.3.1切换工作目录 1.3.2编写 Dockerfile 文件 1.3.3修改nginx.conf配置文件 1.4Docker-Co…

Terraform代码的check块

check块是Terraform 1.5开始引入的新功能。 过去可以在resource块里的lifecycle块中验证基础设施的状态&#xff0c;check块填补了在apply后验证基础设施状态这一功能的空白。check块允许定义在每次plan以及apply操作后执行的自定义的验证。check块定义的验证逻辑是作为plan和a…

01嵌入式面经

华为嵌入式 stm32单片机和51单片机的区别 架构&#xff1a; STM32单片机&#xff1a;基于ARM Cortex-M系列处理器&#xff0c;具有先进的32位处理能力和丰富的外设资源。51单片机&#xff1a;基于Intel 8051系列处理器&#xff0c;是一种经典的8位单片机&#xff0c;具有较为简…

SpringBoot+Vue+Element-UI实现学生综合成绩测评系统

前言介绍 学生成绩是高校人才培养计划的重要组成部分&#xff0c;是实现人才培养目标、培养学生科研能力与创新思维、检验学生综合素质与实践能力的重要手段与综合性实践教学环节。而学生所在学院多采用半手工管理学生成绩的方式&#xff0c;所以有必要开发学生综合成绩测评系…

MySql 空间索引

在 MySQL 中&#xff0c;直接对几何数据类型&#xff08;如 POINT, LINESTRING, POLYGON 等&#xff09;使用 "几何索引" 的概念并不完全准确&#xff0c;因为 MySQL 不直接提供名为 "几何索引" 的索引类型。但是&#xff0c;你可以为这些几何数据类型创建…

机器学习——2.损失函数loss

基本概念 损失函数也叫代价函数。损失函数就是计算预测结果和实际结果差距的函数&#xff0c;机器学习的过程就是试图将损失函数的值降到最小。 图左&#xff1a;&#xff5c;t_p - t_c&#xff5c; 图右&#xff1a;&#xff08;t_p - t_c&#xff09;**2 代码实…

图像分割入门-Unet++理论与实践

探索 U-net&#xff1a;改进的图像分割神经网络 引言 图像分割是计算机视觉领域中的重要任务&#xff0c;旨在将图像中的每个像素分配到特定的类别或区域。在许多应用中&#xff0c;如医学影像分析、自动驾驶和地块识别等领域&#xff0c;图像分割都扮演着关键角色。 U-net …

echars设置渐变颜色的方法

在我们日常的开发中&#xff0c;难免会遇到有需求&#xff0c;需要使用echars设置渐变的图表&#xff0c;如果我们需要设置给图表设置渐变颜色的话&#xff0c;我们只需要在 series 配置项中 添加相应的属性配置项即可。 方式一&#xff1a;colorStops type&#xff1a;‘lin…