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

📄 cacu.lst

📁 基于单片机的电子计算器的硬件原理图和程序
💻 LST
字号:
C51 COMPILER V7.50   CACU                                                                  06/10/2008 20:20:35 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE CACU
OBJECT MODULE PLACED IN Cacu.OBJ
COMPILER INVOKED BY: D:\edu\Software\keil\C51\BIN\C51.EXE Cacu.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2          ****************************************************
   3          
   4                          计算
   5          
   6          ****************************************************
   7          */
   8          #include "Typedef.H"
   9          #include "UserDef.H"
  10          
  11          /*  全局变量 */
  12          static float OpVal[2] = {0,0};  //操作数
  13          static INT8U OpAct = VK_NULL;   //操作符
  14          
  15          
  16          
  17          /***************************************
  18          
  19                  四则运算
  20                  入口参数:运算结果存储变量的指针
  21                  返回值:运算是否成功
  22          
  23          ****************************************/
  24          static BOOLEAN cacu(float *rv)
  25                  {
  26   1              BOOLEAN valid;
  27   1      
  28   1              valid = TRUE;
  29   1              switch (OpAct)
  30   1                      {
  31   2                      case VK_ADD:
  32   2                              (*rv) = OpVal[0] + OpVal[1];
  33   2                              break;
  34   2                      case VK_SUB:
  35   2                              (*rv) = OpVal[0] - OpVal[1];                            
  36   2                              break;
  37   2                      case VK_MUL:
  38   2                              (*rv) = OpVal[0] * OpVal[1];
  39   2                              break;
  40   2                      case VK_DIV:
  41   2                              (*rv) = OpVal[0] / OpVal[1];
  42   2                              break;
  43   2                      default:
  44   2                              valid = FALSE;
  45   2                              break;
  46   2                      }
  47   1              return valid;
  48   1              }
  49          
  50          
  51          /***************************************
  52          
  53                  运算相关按键输入及处理
  54                  入口参数:按键值,运算结果存储变量的指针
  55                  返回值:操作是否错误
C51 COMPILER V7.50   CACU                                                                  06/10/2008 20:20:35 PAGE 2   

  56          
  57          ****************************************/
  58          BOOLEAN CacuInput(INT8U kv,float * rv)
  59                  {
  60   1              static INT8U CurI = 0;           //当前输入对应的操作数
  61   1              BOOLEAN valid;
  62   1              
  63   1              switch (kv)
  64   1                      {
  65   2                      case VK_0:
  66   2                      case VK_1:
  67   2                      case VK_2:
  68   2                      case VK_3:
  69   2                      case VK_4:
  70   2                      case VK_5:
  71   2                      case VK_6:
  72   2                      case VK_7:
  73   2                      case VK_8:
  74   2                      case VK_9:
  75   2                              OpVal[CurI] *= 10;
  76   2                              OpVal[CurI] += (kv - VK_0);
  77   2                              (*rv) = OpVal[CurI];
  78   2                              valid = TRUE;
  79   2                              break;
  80   2      
  81   2                      case VK_ADD:
  82   2                      case VK_SUB:
  83   2                      case VK_MUL:
  84   2                      case VK_DIV:
  85   2                              OpAct = kv;
  86   2                              CurI = 1;
  87   2                              OpVal[1] = 0;
  88   2                              valid = TRUE;
  89   2                              (*rv) = 0;
  90   2                              break;
  91   2      
  92   2                      case VK_EQU:
  93   2                              valid = cacu(rv);
  94   2                              OpVal[0] = *rv;
  95   2                              CurI  = 1;
  96   2                              break;
  97   2      
  98   2                      case VK_CLR:
  99   2                              OpAct = VK_NULL;
 100   2                              CurI = 0;
 101   2                              OpVal[0] = OpVal[1] = 0;
 102   2                              (*rv) = 0;
 103   2                              valid = TRUE;
 104   2                              break;
 105   2      
 106   2                      default:
 107   2                              valid = FALSE;
 108   2                              break;
 109   2                      }
 110   1              
 111   1              return valid;
 112   1              }
 113           


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    374    ----
C51 COMPILER V7.50   CACU                                                                  06/10/2008 20:20:35 PAGE 3   

   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     10       7
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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