关于51单片机数的乘除法问题

2019-07-15 07:44发布

如下,这是我写的一段C51代码,tep_L与tep_H是unsigned char 变量,他们的值可以显示出来,现在的问题是假设使得tep_H=49,Dis_linenum=1,AsciiSetWhite.Line_num1=2的话,按我设想的话经过此函数后tep_H的值应该是59,但实际却是48(实际是每按下一次个位减1,到0之后变为十位4,后又再变回5,个位又从0开始递减),请问下个位这是为什么,或者我如果想让他等于49,应该怎么办?
  1. void Key_Handler11()
  2. {
  3.         u8 a=5;
  4.         if(Dis_linenum==1)
  5.         {
  6.                 switch(AsciiSetWhite.Line_num1)
  7.                 {
  8.                         case 1:tep_H=(char)(tep_H/10)*10+a;
  9.                         case 2:tep_H=(char)(tep_H/100)+a*10+(char)(tep_H%10);
  10.                         case 3:tep_H=tep_H%100+(char)(a*100);
  11.                         default:break;
  12.                 }
  13.         }
  14.         else if(Dis_linenum==0)
  15.         {
  16.                 switch(AsciiSetWhite.Line_num2)
  17.                 {
  18.                         case 1:tep_L=(tep_L/10)*10+a;
  19.                         case 2:tep_L=tep_L/100+a*10+tep_L%10;
  20.                         case 3:tep_L=tep_L%100+a*100;
  21.                         default:break;
  22.                 }
  23.         }
  24. }
复制代码

0条回答

一周热门 更多>