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

📄 function.c

📁 基于Cortex-M3的全自动焊接机
💻 C
📖 第 1 页 / 共 5 页
字号:
                          }
                          ZLG7290_Download_Display(ZLG7290_DpRam+3,1,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 3 : {//3位精度,数码管显示3位小数
                          lowseg_num = 3;
                          ZLG7290_Download_Display(ZLG7290_DpRam+2,1,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]);
                        }
              default : break;
          }
      }
      if((Dis_Buf[3]==0)&&(Dis_Buf[2]==0)&&(Dis_Buf[1]!=0))//数码管显示2位
      {
          ClearAll(2,5);
          switch(Accuracy)
          {
              case 0 : {//0位精度,数码管显示全部为整数
                          if(Plus_minus)  //显示负数
                          {
                              ZLG7290_WriteReg_One(ZLG7290_DpRam+3,m);Delay(200);
                              lowseg_num = 4;
                          }
                          else
                          {
                              lowseg_num = 3;
                              if((Seg_Flag!=0)&&(Seg_Flag==lowseg_num))//Seg_Flag不为0说明在设置状态下  Seg_Flag==lowseg_num说明已经移动到最显示0的位
                              {
                                  ZLG7290_Download_Display(ZLG7290_DpRam+3,0,0,0);
                              }      
                              
                          }
                          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+3,m);Delay(200);
                              lowseg_num = 4;
                          }
                          else
                          {
                              lowseg_num = 3;
                              if((Seg_Flag!=0)&&(Seg_Flag==lowseg_num))//Seg_Flag不为0说明在设置状态下  Seg_Flag==lowseg_num说明已经移动到最显示0的位
                              {
                                  ZLG7290_Download_Display(ZLG7290_DpRam+3,0,0,0);
                              }           
                              
                          }
                          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 = 4;
                          }
                          lowseg_num = 3;
                          ZLG7290_Download_Display(ZLG7290_DpRam+3,1,0,0);
                          ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,Dis_Buf[1]);
                          ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
                          break;
                        }
              case 3 : {//3位精度,数码管显示3位小数
                          if(Plus_minus)  //显示负数
                          {
                              break;
                          }
                          lowseg_num = 2;
                          ZLG7290_Download_Display(ZLG7290_DpRam+2,1,0,0);
                          ZLG7290_Download_Display(ZLG7290_DpRam+3,0,0,0);
                          ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,Dis_Buf[1]);
                          ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
                          break;
                        }
                      
              default : break;
          }
      } 
      if((Dis_Buf[3]==0)&&(Dis_Buf[2]==0)&&(Dis_Buf[1]==0)&&(Dis_Buf[0]!=0))//数码管显示1位
      {
          ClearAll(2,5);
          switch(Accuracy)
          {
              case 0 : {//0位精度,数码管显示全部为整数
                          if(Plus_minus)  //显示负数
                          {
                              ZLG7290_WriteReg_One(ZLG7290_DpRam+4,m);Delay(200);
                              lowseg_num = 5;
                          }
                          else
                          {
                              lowseg_num = 4;
                              if((Seg_Flag!=0)&&(Seg_Flag==lowseg_num))//Seg_Flag不为0说明在设置状态下  Seg_Flag==lowseg_num说明已经移动到最显示0的位
                              {
                                  ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,0);
                              } 
                          }
                          ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
                          break;
                        }
              case 1 : {//1位精度,数码管显示1位小数
                          if(Plus_minus)  //显示负数
                          {
                              ZLG7290_WriteReg_One(ZLG7290_DpRam+3,m);Delay(200);
                              lowseg_num = 5;
                          }  
                          lowseg_num = 3;
                          ZLG7290_Download_Display(ZLG7290_DpRam+4,1,0,0);
                          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 = 5;
                          }
                          lowseg_num = 3;
                          ZLG7290_Download_Display(ZLG7290_DpRam+3,1,0,0);
                          ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,0);
                          ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
                          break;
                        }   
              case 3 : {//3位精度,数码管显示3位小数
                          if(Plus_minus)  //显示负数
                          {
                              break;
                          }
                          lowseg_num = 2;
                          ZLG7290_Download_Display(ZLG7290_DpRam+2,1,0,0);
                          ZLG7290_Download_Display(ZLG7290_DpRam+3,0,0,0);
                          ZLG7290_Download_Display(ZLG7290_DpRam+4,0,0,0);
                          ZLG7290_Download_Display(ZLG7290_DpRam+5,0,0,Dis_Buf[0]);
                          break;
                        }                              
                        
              default : break;
          }
      } 
      if((Dis_Buf[3]!=0))//数码管显示4位
      {
          lowseg_num = 2;
          ClearAll(2,5);
          switch(Accuracy)
          {
              case 0 : {//0位精度,数码管显示全部为整数
                          ZLG7290_Download_Display(ZLG7290_DpRam+2,0,0,Dis_Buf[3]);   
                          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位小数
                          ZLG7290_Download_Display(ZLG7290_DpRam+2,0,0,Dis_Buf[3]);
                          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位小数
                          ZLG7290_Download_Display(ZLG7290_DpRam+2,0,0,Dis_Buf[3]);
                          ZLG7290_Download_Display(ZLG7290_DpRam+3,1,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 3 : {//3位精度,数码管显示3位小数
                          ZLG7290_Download_Display(ZLG7290_DpRam+2,1,0,Dis_Buf[3]);
                          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;
                        }
             default : break;
          }
      }
}

/***************************************************
函数名:KeySet_Deal()
功能:按键值处理函数
参数: 返回为显示的值 比如 A1对应的值
说明:DisMode_Num 为设置参数需要显示的标示值 ,GetKey为键值
****************************************************/
void  KeySet_Deal(unsigned char DisMode_Num_aa , unsigned char GetKey)
{
     unsigned char flag = 10;
     signed char Dis_Buf[4];
     
     if(DispPresent_Data[DisMode_Num_aa]>0)//为正数
     {
        flag = 1;
     }
     else if (DispPresent_Data[DisMode_Num_aa]<0)//为负数
     {
        flag = 0;
        
        DispPresent_Data[DisMode_Num_aa] = 0-DispPresent_Data[DisMode_Num_aa];
     }
     else if(DispPresent_Data[DisMode_Num_aa]==0)
     {
       if(GetKey==Up_Move)         DispPresent_Data[DisMode_Num_aa] = 1;
       else if(GetKey==Down_Move)  DispPresent_Data[DisMode_Num_aa] = -1;
       flag = 2;
         
     }
  

  
     if(flag==1)
     {
       Dis_Buf[3] = DispPresent_Data[DisMode_Num_aa]/1000;        //获取GetKey的千位
       Dis_Buf[2] = DispPresent_Data[DisMode_Num_aa]%1000/100;    //获取GetKey的百位
       Dis_Buf[1] = DispPresent_Data[DisMode_Num_aa]%100/10;      //获取GetKey的十位
       Dis_Buf[0] = DispPresent_Data[DisMode_Num_aa]%10;          //获取GetKey的个位    
       switch(GetKey)       //判断在按下设置键后按下的是:加(2)还是减(18 )
        {
            
            case Left_Move  : //左移
              {
                  Seg_Flag = Seg_Flag - 1;        
                  if(Seg_Flag<lowseg_num)
                  {  
                    Seg_Flag = 5;
                  }
                  break;
              }             
            case Right_Move : //右移
              { 
                  Seg_Flag = Seg_Flag + 1;       
                  if(Seg_Flag>5)
                  {
                    Seg_Flag = lowseg_num; 
                  }break;
              }
            case Up_Move  : //上键 
              {
                     if(Seg_Flag==2)       //对数码管第三位(4为数据的千位)进行加计数操作
                      {
                          Dis_Buf[3]++;
                          if(Dis_Buf[3]==10)  Dis_Buf[3] = 0;
                      }
                      if(Seg_Flag==3)       //对数码管第四位(4为数据的百位)进行加计数操作
                      {
                          Dis_Buf[2]++;
                          if(Dis_Buf[2]==10)//百位加到十对千位进位
                          {
                              Dis_Buf[2] = 0;
                              Dis_Buf[3] ++;
                              if(Dis_Buf[3]==10)  Dis_Buf[3] = 0;
                          }
                      }
                      if(Seg_Flag==4)       //对数码管第五位(4为数据的十位)进行加计数操作
                      {
                          Dis_Buf[1]++;
                          if(Dis_Buf[1]==10)//十位加到十对百位进位
                          {
                              Dis_Buf[1] = 0;
                              Dis_Buf[2] ++;
                              if(Dis_Buf[2]==10)//百位加到十对千位进位
                              {
                                  Dis_Buf[2] = 0;
                                  Dis_Buf[3] ++;
                                  if(Dis_Buf[3]==10)  Dis_Buf[3] = 0;
                              }
                          }
                      }
                      if(Seg_Flag==5)       //对数码管第六位(4为数据的个位)进行加计数操作
                      {
                          Dis_Buf[0]++;
                          if(Dis_Buf[0]==10)//个位加到十对十位进位
                          {
                             Dis_Buf[0] = 0; 
                             Dis_Buf[1] ++;
                             if(Dis_Buf[1]==10)//十位加到十对百位进位
                             {
                                Dis_Buf[1] = 0;
                                Dis_Buf[2] ++;
                                if(Dis_Buf[2]==10)//百位加到十对千位进位
                                {
                                    Dis_Buf[2] = 0;
                                    Dis_Buf[3] ++;

⌨️ 快捷键说明

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