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.mfbz.cn/a/597543.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在模方中已经选好水岸线了,但是点处理瓦块的时候还是提示水岸线没选

答&#xff1a;能部分位置不闭合&#xff0c;双击右键闭合一下&#xff0c;可以强行闭合缺口。 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.1新增自动单体化建模功能&#xff0c;支持…

高情商回复(不是)

背景介绍 在抖音上有这样的视频&#xff0c;视频就是一张图&#xff0c;图上问了一个问题&#xff1a;饭局上&#xff0c;你去帮领导盛饭&#xff0c;领导接过后说&#xff1a;‘盛这么多&#xff0c;喂猪呢&#xff1f;’咋回&#xff1f; 底下有一个搞笑评论&#xff1a;猪可…

迅雷永久破解

链接&#xff1a;https://pan.baidu.com/s/1ZGb1ljTPPG3NFsI8ghhWbA?pwdok7s 下载后解压 以管理员身份运行绿化.bat&#xff0c;会自动生成快捷方式&#xff0c;如果没有可以在program中运行Thunder.exe

UDP如何端口映射?

UDP端口映射是一种网络技术&#xff0c;通过它可以实现在异地组网的情况下&#xff0c;不暴露在公网上&#xff0c;通过私有通道传输数据&#xff0c;并对数据进行安全加密&#xff0c;以保障数据的安全性。这项技术在如今日益复杂和危险的网络环境中显得尤为重要。 UDP&#x…

Rust 适合哪些场景?

目录 二、Rust 适合哪些场景&#xff1f; 三、Rust 社区的发展趋势如何&#xff1f; 四、Rust 快速搭建一个WebServer服务器 一、Rust是什么&#xff1f; Rust是一门赋予每个人构建可靠且高效软件能力的语言。 Rust 程序设计语言 一门帮助每个人构建可靠且高效软件的语言。…

tomcat-以服务的方式重启tomcat

背景 双击tomcat的bin目录下面的startup.bat&#xff0c;会留下一个cmd的窗口&#xff0c;很不优雅 使用service服务的方式启动&#xff0c;并且设置为自动启动 找到tomcat的bin目录输入cmd&#xff0c;按Enter&#xff0c;进入命令行界面。执行“service.bat install” 。&…

详解嵌入式MCU运行时分配的stack和heap

目录 概述 1 认识stack和heap 1.1 栈区&#xff08;stack&#xff09; 1.2 堆区&#xff08;heap&#xff09; 2 stack和heap的区别 2.1 管理方式的不同 2.2 空间大小不同 2.3 产生碎片不同 2.4 增长方式不同 2.5 分配方式不同 2.6 分配效率不同 3 确定stack和heap…

架构师:搭建Spring Security、OAuth2和JWT 的安全认证框架

1、简述 Spring Security 是 Spring 生态系统中的一个强大的安全框架,用于实现身份验证和授权。结合 OAuth2 和 JWT 技术,可以构建一个安全可靠的认证体系,本文将介绍如何在 Spring Boot 中配置并使用这三种技术实现安全认证,并分析它们的优点。 2、Spring Security Spri…

Linux基础04-Linux中目录和文件都能操作的命令

前面两节我们分别学习了目录操作命令和文件操作命令&#xff0c;那么有没有一些既可以操作目录&#xff0c;又可以操作文件的命令呢&#xff1f; 这样我们就不需要记住两套命令了。 其实还真有&#xff0c;今天这一章就带大家学习Linux中目录和文件都能操作的命令 最近无意间获…

深度学习之DCGAN

目录 须知 转置卷积 DCGAN 什么是DCGAN 生成器代码 判别器代码 补充知识 LeakyReLU&#xff08;x&#xff09; torch.nn.Dropout torch.nn.Dropout2d DCGAN完整代码 运行结果 图形显示 须知 在讲解DCGAN之前我们首先要了解转置卷积和GAN 关于GAN在这片博客中已经很…

GraphGPT——图结构数据的新语言模型

在人工智能的浪潮中&#xff0c;图神经网络&#xff08;GNNs&#xff09;已经成为理解和分析图结构数据的强大工具。然而&#xff0c;GNNs在面对未标记数据时&#xff0c;其泛化能力往往受限。为了突破这一局限&#xff0c;研究者们提出了GraphGPT&#xff0c;这是一种为大语言…

ASP.NET MVC(二) HtmlHelper

强类型 》》》 Form Html.Action() 执行一个Action&#xff0c;并返回html字符串。 Html.ActionLink() 生成一个超链接。 》》》 htmlhelper 扩展方法 /// 扩展方法 三要素 静态类静态方法this 》》》》上面需要引入命名空间&#xff0c; 》》》 不需要引入命名空间 pu…

每日OJ题_DFS解决FloodFill⑥_力扣529. 扫雷游戏

目录 力扣529. 扫雷游戏 解析代码 力扣529. 扫雷游戏 529. 扫雷游戏 难度 中等 让我们一起来玩扫雷游戏&#xff01; 给你一个大小为 m x n 二维字符矩阵 board &#xff0c;表示扫雷游戏的盘面&#xff0c;其中&#xff1a; M 代表一个 未挖出的 地雷&#xff0c;E 代表…

计算机系列之数据库技术

13、数据库技术&#xff08;重点、考点&#xff09; 1、三级模式-两级映像&#xff08;考点&#xff09; 内模式&#xff1a;管理如何存储物理的数据&#xff0c;对应具体物理存储文件。 **模式&#xff1a;**又称为概念模式&#xff0c;就是我们通常使用的基本表&#xff0c…

AquiSense实现UV-C发光二极管里程碑

国际空间站饮水机上使用的UV-C LED技术 紫外线LED水消毒系统制造商AquiSense Technologies宣布&#xff0c;该公司的UV-C LED技术已成功集成到美国国家航空航天局&#xff08;NASA&#xff09;国际空间站&#xff08;ISS&#xff09;上的饮用水分配器中&#xff0c;并自2023年8…

【Git】回滚旧提交版本且不影响最新提交版本

【Git】回滚旧提交版本且不影响最新提交版本 一、场景假设 远程仓库origin中有一个分支main&#xff0c;有4次提交记录&#xff1a;v1、v2、v3、v4。 二、需求 需要回滚旧提交版本&#xff0c;但不影响已有的所有提交版本&#xff08;即不影响最新提交版本&#xff09;&…

树和二叉树:二叉树的基本运算算法的实现

一.前言 当前版本仅供笔者复盘 二.二叉树 2.1题目 编写一个程序&#xff0c;实现二叉树的基本运算&#xff0c;具体要求如下&#xff1a;&#xff08;指定示范实例1&#xff1a;图1。指定示范实例2&#xff1a;图2 &#xff09; 1&#xff0c;先序遍历输出该树&#xff08…

PWM 开发舵机SG90-硬件舵机实战

1.PWM&#xff0c;英文名Pulse Width Modulation&#xff0c;是脉冲宽度调制缩写&#xff0c;它是通过对一系列脉冲的宽度进行调制&#xff0c;等效出所需要的波形&#xff08;包含形状以及幅值&#xff09;&#xff0c;对模拟信号电平进行数字编码&#xff0c;也就是说通过调节…

hadoop学习---基于Hive的数仓搭建增量信息拉链表的实现

拉链表就是SCD2&#xff0c;它的优点是即满足了反应数据的历史状态&#xff0c;又能在最大程度上节省存储。 拉链表的实现需要在原始字段基础上增加两个新字段&#xff1a; start_time(表示该条记录的生命周期开始时间——周期快照时的状态)end_time(该条记录的生命周期结束时…

JSP合同信息管理系统参考论文(论文 + 源码)

【免费】JSP合同信息管理系统.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89273651JSP合同信息管理系统 摘要 随着信息科学技术的飞速发展&#xff0c;人们逐渐意识到对信息管理软件的运用可以使日常工作更加方便、快捷和高效。论文详细论述了公司合同管理系…
最新文章