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

📄 function.c

📁 基于Cortex-M3的全自动焊接机
💻 C
📖 第 1 页 / 共 5 页
字号:
  0,2,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//横纹焊  30
  0,2,0,0,2,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//摆动焊  30
  0,0,0,0,0,0,0,0,0,0,2,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//设备参数  40
  0,0,0,0,0,0,0,0,0,0  
};

unsigned char Set_Right[170] = //设置权限  为0不能设置  为1设置  不能设置的参数改这个表就可以
{
  0,0,0,2,1,1,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,//单道焊  30
  0,0,0,0,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,//横纹焊  30
  0,0,0,2,1,1,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,//摆动焊  30
  1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,//设备参数  40
  0,0,0,0,0,0,0,0,0,0
};

signed int DispFloor_Data[170] =//设定参数下限
{
  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//单道焊  30
  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//横纹焊  30
  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//摆动焊  30
  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0//设备参数  40
};

signed int DispTop_Data[170] =//设定参数上限
{
  0,0,0,0,9000,9000,0,9000,9000,9000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//单道焊  30
  0,0,0,0,9000,9000,9000,9000,1,9000,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//横纹焊  30
  0,0,0,0,9000,9000,0,9000,9000,9000,1,9000,100,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//摆动焊  30
  0,0,0,0,9000,9000,1,1,9000,9000,9000,9000,9000,9000,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0//设备参数  40
};

unsigned char Function_Num_skip[170]=//偏移量
{
  0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//单道焊  30
  0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//横纹焊  30
  0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//摆动焊  30
  5,8,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//摆动焊  30
  0,0,0,0,0,0,0,0,0,0
};




/***************************************************
函数名:Display_Parameter()
功能:参数查看 显示函数
参数: 
说明:
****************************************************/
void Display_Parameter(unsigned char GetKey)
{ 
  
  switch(GetKey)
  {
      case Left_Move  : {                                                       //在同种工作模式下切换工作模式的序列号
                                                                                //Mode_sequence -- ;   //进行序列号的减
                            Error_Num --;
                            if(Error_Num < 0)
                            { 
                                Error_Num = 9;
                            }
                            switch(Mode_Code)
                            {
                                  case 0: Mode_sequence--;
                                          if(Mode_sequence<0)
                                            Mode_sequence = 12;
                                          if(Mode_sequence==6)
                                            Mode_sequence = 5;
                                          if(Mode_sequence==3)
                                            Mode_sequence = 2;
                                          break;
                                  case 1: Mode_sequence--;
                                          if(Mode_sequence<0)
                                            Mode_sequence = 23;
                                          if(Mode_sequence==18)
                                            Mode_sequence = 10;
                                          break;
                                  case 2: Mode_sequence--;
                                          if(Mode_sequence<0)
                                            Mode_sequence = 13;
                                          if(Mode_sequence==6)
                                            Mode_sequence = 5;
                                          if(Mode_sequence==3)
                                            Mode_sequence = 2;
                                          break;
                                  case 3: Mode_sequence--;
                                          if(Mode_sequence<0)
                                            Mode_sequence = 29;
                                          //此处待其他模式参数出来以后再作处理
                                          break;
                                  case 4: Mode_sequence--;
                                          if(Mode_sequence<0)
                                            Mode_sequence = 18;
                                          if(Mode_sequence==3)
                                            Mode_sequence = 2;
                                          break;
                                  case 5:
                                  case 6: Mode_sequence--;
                                          if(Mode_sequence<0)
                                            Mode_sequence = 29;
                                          break;
                                  default:break;          
                            }
                            break;
                        } 
                        
      case Right_Move : {                                                       //在同种工作模式下切换工作模式的序列号
                                                                                //Mode_sequence ++ ;   //进行序列号的加
                            Error_Num ++;
                            if(Error_Num==10)
                            {
                              Error_Num = 0;
                            }
                            
                            switch(Mode_Code)
                            {
                                  case 0: Mode_sequence++;
                                          if(Mode_sequence==3)
                                            Mode_sequence = 4;
                                          if(Mode_sequence==6)
                                            Mode_sequence = 7;
                                          if(Mode_sequence>12)
                                            Mode_sequence = 0;
                                          break;
                                  case 1: Mode_sequence++;
                                          if(Mode_sequence==11)
                                            Mode_sequence = 19;
                                          if(Mode_sequence>23)
                                            Mode_sequence = 0;
                                          break;
                                  case 2: Mode_sequence++;
                                          if(Mode_sequence==3)
                                            Mode_sequence = 4;
                                          if(Mode_sequence==6)
                                            Mode_sequence = 7;
                                          if(Mode_sequence>13)
                                            Mode_sequence = 0;
                                          break;
                                  case 3: Mode_sequence++;
                                          if(Mode_sequence>29)
                                            Mode_sequence = 0;
                                          //此处待其他模式参数出来以后再作处理
                                          break;
                                  case 4: Mode_sequence++;
                                          if(Mode_sequence==3)
                                            Mode_sequence = 4;
                                          if(Mode_sequence>18)
                                            Mode_sequence = 0;
                                          break;
                                  case 5:
                                  case 6: Mode_sequence++;
                                          if(Mode_sequence>29)
                                            Mode_sequence = 0;
                                          break;
                                  default:break;          
                            }                            
                            break;
                        } 
                        
      case Up_Move    : {             //在不同的工作模式之间切换
                            Mode_Code ++ ; 
                            Mode_sequence = 0;
                            Error_Num =0;
                            if(Mode_Code==5)
                            {
                                Mode_Code = 6;
                            }  
                            if(Mode_Code==7)
                            {
                                Mode_Code = 0;
                            }                            
                            break;
                        }
                        
      case Down_Move  : {             //在不同的工作模式之间切换
                            Mode_Code -- ; 
                            Mode_sequence = 0;
                            Error_Num = 0;
                            if(Mode_Code<0)
                            {
                                Mode_Code = 6;
                            }
                            if(Mode_Code==5)
                            {
                                Mode_Code = 4;
                            }
                            break;
                        } 
      default : break;
  }
}

/***************************************************
函数名:Init_Display()
功能:数码管显示的数据   函数
参数: 
      Accuracy   显示参数时的数据精度
      Data       需显示的数据    当Plus_minus为1时 Data必须为负数  当Plus_minus为0时Aata必须为一个正数
说明:
****************************************************/
void Init_Display(unsigned char Accuracy , signed int Data)
{
      unsigned char m[2];        //调用ZLG7290_WriteReg(ZLG7290_DpRam+n,m)时必须将第二个变量定义为数组
      m[0] = 0x02;      //调用ZLG7290_WriteReg(ZLG7290_DpRam+n,m)显示 负号 时的第二个参数代码 
      //unsigned char i = 0;
      
      unsigned char Plus_minus = 0;
      unsigned char Dis_Buf[4]; 
      unsigned int Data_Buff = 0;       //数据Data缓存
           
      if(Data<0)  
      {
          Plus_minus = 1;
          Data_Buff = 0-Data;
      }
      else   
      {
          Plus_minus = 0;
          Data_Buff = Data;
      }
        
        
      Dis_Buf[3] = Data_Buff/1000;
      Dis_Buf[2] = Data_Buff%1000/100;
      Dis_Buf[1] = Data_Buff%100/10;
      Dis_Buf[0] = Data_Buff%10;
     
      if((Dis_Buf[3]==0)&&(Dis_Buf[2]==0)&&(Dis_Buf[1]==0)&&(Dis_Buf[1]==0))//显示数据0
      {
        lowseg_num = 5;
        ClearAll(2,5);        
        ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,0);
      }
      if((Dis_Buf[3]==0)&&(Dis_Buf[2]!=0))//数码管显示3位
      {
        ClearAll(2,5);  
        switch(Accuracy)
          {
              case 0 : {//0位精度,数码管显示全部为整数
                          if(Plus_minus)  
                          {
                              ZLG7290_WriteReg_One(ZLG7290_DpRam+2,m);Delay(200);//显示负数  
                              lowseg_num = 3;
                          }
                          else
                          {
                              lowseg_num = 2;
                              if((Seg_Flag!=0)&&(Seg_Flag==lowseg_num))//Seg_Flag不为0说明在设置状态下  Seg_Flag==lowseg_num说明已经移动到最显示0的位
                              {
                                  ZLG7290_Download_Display(ZLG7290_DpRam+2,0,0,0);
                              }
                              
                          }
                          ZLG7290_Download_Display(ZLG7290_DpRam+3,0,0,Dis_Buf[2]);
                          ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,Dis_Buf[1]);
                          ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
                          break;
                        }
              case 1 : {//1位精度,数码管显示1位小数
                          if(Plus_minus)  //显示负数
                          {
                              ZLG7290_WriteReg_One(ZLG7290_DpRam+2,m);Delay(200);
                              lowseg_num = 3;
                          } 
                          else
                          {
                              lowseg_num = 2;
                              if((Seg_Flag!=0)&&(Seg_Flag==lowseg_num))//Seg_Flag不为0说明在设置状态下  Seg_Flag==lowseg_num说明已经移动到最显示0的位
                              {
                                  ZLG7290_Download_Display(ZLG7290_DpRam+Seg_Flag,0,0,0);
                              }  
                          }
                          ZLG7290_Download_Display(ZLG7290_DpRam+3,0,0,Dis_Buf[2]);
                          ZLG7290_Download_Display(ZLG7290_DpRam+4,1,0,Dis_Buf[1]);
                          ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
                          break;
                       }
              case 2 : {//2位精度,数码管显示2位小数
                          if(Plus_minus)  //显示负数
                          {
                              ZLG7290_WriteReg_One(ZLG7290_DpRam+2,m);Delay(200);
                              lowseg_num = 3;
                          }
                          else
                          {
                              lowseg_num = 2;
                              if((Seg_Flag!=0)&&(Seg_Flag==lowseg_num))//Seg_Flag不为0说明在设置状态下  Seg_Flag==lowseg_num说明已经移动到最显示0的位
                              {
                                  ZLG7290_Download_Display(ZLG7290_DpRam+2,0,0,0);
                              }          
                              

⌨️ 快捷键说明

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