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

📄 function.c

📁 基于Cortex-M3的全自动焊接机
💻 C
📖 第 1 页 / 共 5 页
字号:
          //下面这个读取寄存器可一定要放在这个中断中来弄,放在主函数中不行的
          ZLG7290_ReadReg(ZLG7290_Key,KeyValue);
          ZLG7290_ReadReg(ZLG7290_RepeatCnt,RepeatCnt);
          ZLG7290_ReadReg(ZLG7290_FunctionKey,FnKeyValue);
          
          if((KeyValue[0]==0)&&(RepeatCnt[0]==0)&&(FnKeyValue[0]==0xff))
          {
            FnKeyDoubleIntFlag=1;
          }
    }
    //  如果有GPIOD端口其它管脚的中断要处理,请并列多个if语句     
}

/***************************************************
函数名:Led_Display()
功能: LED显示函数
参数: 
说明:seg为段选值  data数据
****************************************************/
void Led_Display(unsigned char seg, unsigned char data)
{
   // ClearAll_LED(0,3);      //清除所以LED
    Light_Led[0] = data;    //对焊枪位置键的 LED 缓存数组赋值
    ZLG7290_WriteReg(ZLG7290_DpRam+seg,Light_Led);  //将焊枪位置键的 LED 点亮
}

/***************************************************
函数名:Display_Show()
功能:  整个系统显示和设定函数
参数: 
说明:
****************************************************/
void Display_Show(void)
{
      if(Key_Mode_hengwen && Mode_hengwen) //横纹按键按下
      {
          Function_Num = 0;
          //Function_temp = 0;
          
          MOde_flag = 1;
          //Mode_temp = 0;
          
          KeyValue[0]=0;
          
          Seg_Flag = 0;
          Look_flag = 0;//参数不可参看
          
          Led_Display(1,0X80 | Fuchuan_data);
          Led_Display(2,Songsi_data);
          LED_Data = 0X80;
      }//end if 横纹模式
      else if(Key_Mode_dandao && Mode_dandao) //单道按键按下
      {
          Function_Num = 0;
          //Function_temp = 0;           
          MOde_flag = 0;
          //Mode_temp = 1;
          KeyValue[0]=0;
          Seg_Flag = 0;
          Look_flag = 0;//参数不可参看
          Led_Display(1,0X80 | Fuchuan_data);
          Led_Display(2,Songsi_data);
          LED_Data = 0X80;
      }//end if 单道模式
      else if(Key_Mode_baidong && Mode_baidong) //摆动按键按下
      {
          Function_Num = 0;
          //Function_temp = 0;           
          MOde_flag = 2;
          //Mode_temp =2;
          KeyValue[0]=0;
          Seg_Flag = 0;
          Look_flag = 0;//参数不可参看
          Led_Display(1,0X80 | Fuchuan_data);
          Led_Display(2,Songsi_data);
          LED_Data = 0X80;
      }//end if 摆动模式
      else if(Key_Mode_other && Mode_other) //其他模式按键按下
      {
          Function_Num = 0;
          //Function_temp = 0;            
          MOde_flag = 3;
          //Mode_temp = 3;
          KeyValue[0]=0;
          Seg_Flag = 0;
          Look_flag = 0;//参数不可参看
          Led_Display(1,0X80 | Fuchuan_data);
          Led_Display(2,Songsi_data);
          LED_Data = 0X80;
      }//end if其他模式按
      
      else if(Key_hangqiang_place)//焊枪位置按键按下
      {
          Function_Num = 0;//和大数组的编号对应
          //Function_temp = 0;
          KeyValue[0]=0;
          Seg_Flag = 0;
          Look_flag = 0;//参数不可参看
          ClearAll_LED(0,0);
          Led_Display(1,0X80 | Fuchuan_data);
          ClearAll_LED(3,3);
          LED_Data = 0X80;
      }//end if 焊枪位置
      
      else if(Key_songsi_speed) //送丝速度按键按下
      {
          Function_Num = 1;
          //Function_temp = 1;
          KeyValue[0]=0;
          Seg_Flag = 0;
          Look_flag = 0;//参数不可参看
          ClearAll_LED(0,0);
          Led_Display(1,0X40 | Fuchuan_data);
          ClearAll_LED(3,3);
          LED_Data = 0X40; 
      }//end if 送丝速度
      
      else if(Key_hengyi_speed)//横移速度按下
      {
          Function_Num = 3;
          //Function_temp = 3;
          KeyValue[0]=0;
          Seg_Flag = 0;
          Look_flag = 0;//参数不可参看
          ClearAll_LED(0,0);
          ClearAll_LED(3,3);
          Led_Display(1,0X20 | Fuchuan_data);
          
          LED_Data = 0X20;
      }//end if 横移速度
      else if(Key_hanjie_wide)//焊接宽度按下
      {
           Function_Num = 5;
           //Function_temp = 5; 
           KeyValue[0]=0;
           Seg_Flag = 0; 
           Look_flag = 0;//参数不可参看
           ClearAll_LED(3,3);
           ClearAll_LED(0,0);
           Led_Display(1,0X10 | Fuchuan_data);
           LED_Data = 0X10;
      }//end if 焊接宽度
      else if(Key_fuchuan_speed)//辅传速度按下
      {
           Function_Num = 2;
           //Function_temp = 2; 
           KeyValue[0]=0;
           Seg_Flag = 0;  
           Look_flag = 0;//参数不可参看
           ClearAll_LED(0,0);
           ClearAll_LED(3,3);
           Led_Display(1,0X08 | Fuchuan_data);
           LED_Data = 0X08;
      }//end if 辅传速度
      else if(Key_Parameter_show)//参数显示
      {
           Look_flag = 1;//可以查看参数 
           Seg_Flag = 0;//不闪烁
           
           Mode_sequence = 0;//确保每次按参数显示都从A0开始显示
           Mode_Code = 0; 
           
           Function_Num = 0; //得到不同模式 列标号
           Mode_Code = MOde_flag;//得到参看的 不同模式标号
           KeyValue[0] = 0;
           ClearAll_LED(0,0);
           ClearAll_LED(3,3);
           Led_Display(1,0X04 | Fuchuan_data);
           LED_Data = 0X04;
      }//end if  参数显示
      else if(Key_songsi_ATorMA_Up)//送丝 AT  MA按键按下
      {
          Songsi_Num++;
          Songsi_flag = Songsi_Num%2;     
          if(!Songsi_flag)       
          { 
            ClearAll_LED(0,0);
            Led_Display(1,LED_Data | Fuchuan_data);
            ClearAll_LED(3,3);
            Led_Display(2,0X80);  
            Songsi_data = 0x80;
          } //点亮送丝的AT
          else if(Songsi_flag) { 
            ClearAll_LED(0,0);
            Led_Display(1,LED_Data | Fuchuan_data);
            ClearAll_LED(3,3);           
            Led_Display(2,0X40);
            Songsi_data = 0x40;
          }   //MA   
      }
      else if(Key_fuchuan_Up) //辅传按键
      {
          Fuchuan_Num++;
          Fuchuan_flag = Fuchuan_Num%2;
          if(!Fuchuan_flag)       { 
            ClearAll_LED(0,0); 
            ClearAll_LED(3,3); 
            Led_Display(1,LED_Data | 0x02); 
            Fuchuan_data = 0x02;
          } //点亮辅传的AT
          else if(Fuchuan_flag) {
            ClearAll_LED(0,0); 
            ClearAll_LED(3,3); 
            Led_Display(1,LED_Data | 0X01); 
            Fuchuan_data = 0x01;
          } // MA
      }
      else if(Key_qihu_Up)//起弧按键按下
      {   
          Qihu_LED_Flag = 1; 
      }

      else if(Key_tinghu_Up)//停弧按键
      {
          Tinghu_LED_Flag = 1;
      }

      else if(Key_handao_Up)//焊道按键
      {
          ClearAll_LED(0,0);
          Led_Display(1,LED_Data | Fuchuan_data);
          ClearAll_LED(3,3);           
          Led_Display(3,0X80);
          //发送数据语句
      }
      else if(Key_zhengzhuan_Up)//正传上升沿
      {
          ClearAll_LED(0,0);
          Led_Display(1,LED_Data | Fuchuan_data);
          ClearAll_LED(3,3);           
          Led_Display(2,0X10| Songsi_data);
          //发送数据语句
      }
      else if(Key_zhengzhuan_Down)//正传下降沿
      {
          ClearAll_LED(0,0);
          Led_Display(1,LED_Data | Fuchuan_data);
          Led_Display(2,Songsi_data);
          ClearAll_LED(3,3);          
          
          //发送数据语句
      }
      else if(Key_fanzhuang_Up)  //反转上升沿
      {
          ClearAll_LED(0,0);
          Led_Display(1,LED_Data | Fuchuan_data);
          ClearAll_LED(3,3);         
          Led_Display(2,0X02 | Songsi_data);
          //发送数据语句 
      }
      else if(Key_fanzhuang_Down)//反转下降沿
      {
          ClearAll_LED(0,0);
          Led_Display(1,LED_Data | Fuchuan_data);
          Led_Display(2,Songsi_data);
          ClearAll_LED(3,3);           
          //发送数据语句
      }
      else if(Key_songsi_Up)  //送丝上升沿
      {
          ClearAll_LED(0,0);
          Led_Display(1,LED_Data | Fuchuan_data);
          ClearAll_LED(3,3);          
          Led_Display(2,0X08 | Songsi_data);
          //发送数据语句
      }
      else if(Key_songsi_Down)//送丝下降沿
      {
          ClearAll_LED(0,0);
          Led_Display(1,LED_Data | Fuchuan_data);
          Led_Display(2,Songsi_data);
          ClearAll_LED(3,3);           
          //发送数据语句 
      }     
      else if(Key_tuisi_Up)//退丝上升沿
      {
          ClearAll_LED(0,0);
          Led_Display(1,LED_Data| Fuchuan_data);
          ClearAll_LED(3,3);         
          Led_Display(2,0X01 | Songsi_data);
          //发送数据语句
      }
      else if(Key_tuisi_Down)//退丝下降沿
      {
          ClearAll_LED(0,0);
          Led_Display(1,LED_Data | Fuchuan_data);
          Le

⌨️ 快捷键说明

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