程序不懂

2019-07-15 22:07发布

这是设置数控恒流源的部分程序,谁可以帮忙解释一下吗?
//数字键处理程序//
void num_key(unsigned char shuma)
{
if(shezhi==1)
  {if(++bit_shuma>=4)
          bit_shuma=1;
  switch(bit_shuma)
          {
          case 1:if(shuma<2)
                                  num1=shuma;
                          else
                                  bit_shuma--;break;
          case 2:if(num1==0|(num1==1&&shuma<3))
                                  num2=shuma;
                          else
                                  bit_shuma--;break;
          case 3:if(!(num1==1&&num2==2)|shuma==0)
                                  num3=shuma;
                          else
                                  bit_shuma--;break;
        }
  }
}
//步进加1子程序//
void add1(void)
{
  if(num1==0)
          {
          if(num2<9)
                  num2++;
          else if(num2==9)
                  {
                  num1++;
                  num2=0;
                }
     }
  else if(num1==1)
          {
          if(num2<1)
                  num2++;
          else if(num2==1&num3==0)
                          num2++;
        }
}
//步进减1子程序//
void dec1(void)
{
  if(num2>0)
          num2--;
  else if(num2==0&&num1==1)
          {
          num2=9;
          num1=0;
        }
}
//步进加0.1子程序//
void add01(void)
{
  if(num3<9&&!(num1==1&&num2==2))
          num3++;
  else if(num3==9)
          {
          if((num1==1&&num2<2)|        (num1==0&&num2<9))
                  {
                  num2++;
                  num3=0;
                }
          else if(num1==0&&num2==9)
                  {
                  num1++;
                  num2=0;
                  num3=0;
                }
        }
                 
}
//步进减0.1子程序//
void dec01(void)
{
  if(num3>0)
          num3--;
  else if(num3==0&&num2>0)
          {
          num2--;
          num3=9;
        }
  else if(num3==0&&num2==0&&num1>0)
          {
          num1--;
          num2=9;
          num3=9;
        }
}
//设置键程序//
void select(void)
{
  shezhi=1;
  bit_shuma=0;

}
//确认输出子程序//
void shuchu(void)
{
  unsigned char temp,dianya;
  temp=num1*100+num2*10+num3;
  dianya=temp;
  DA=dianya;
  shezhi=0;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。