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

📄 calready.lst

📁 LCD1602.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.05a   CALREADY                                                             07/30/2007 16:59:25 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE CALREADY
OBJECT MODULE PLACED IN CalReady.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\CalReady.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\CalR
                    -eady.lst) OBJECT(CalReady.obj)

line level    source

   1          //*************************************************************************************************
   2          //*************************************************************************************************
   3          //**<程序名>:计算器案件初始处理及运算。                                                                                                                 **
   4          //**<功能>:在计算器模式下,对按键进行响应,如清零,计算结果等。                                                                 **
   5          //**<错误代码>:-EOR-1:被除数等于0;                                                                                                                     **
   6          //**                    -EOR-2:被减数小于减数;                                                                                                                  **
   7          //**                    -EOR-9:超出可显示的最大值。                                                                                                              **
   8          //*************************************************************************************************
   9          //*************************************************************************************************
  10          
  11          
  12          //*************************************************************************************************
  13          //*                                                                                                                                                                                               *
  14          //*                      ******************************头文件及宏定义**************************                           *
  15          //*                                                                                                                                                                                               *
  16          //*************************************************************************************************
  17          
  18          
  19          //*************************************************************************************************
  20          //*                                                                                                                                                                                               *
  21          //*                       ********************************全局变量******************************                          *
  22          //*                                                                                                                                                                                               *
  23          //*************************************************************************************************
  24          extern unsigned long ul_Number;
  25          extern unsigned long ul_NumberOne;
  26          extern unsigned long ul_NumberTwo;
  27          extern unsigned char uc_Operator;
  28          extern unsigned long ul_Result;
  29          extern unsigned char uc_NumPointer;
  30          extern bit b_LCDClean;
  31          extern unsigned char uc_ReportSymbol;
  32          
  33          bit b_Zero=0;           //状态一0输入检测,若有0输入则置一。
  34          
  35          
  36          //*************************************************************************************************
  37          //*                                                                                                                                                                                               *
  38          //*                             *******************************计算结果******************************                     *
  39          //*                                                                                                                                                                                               *
  40          //*************************************************************************************************
  41          void vGetResult()
  42          {
  43   1              switch(uc_Operator)
  44   1                      {
  45   2      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<除法运算 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  46   2                      case 14:
  47   2                                      if(ul_NumberTwo!=0)
  48   2                                              ul_Result=ul_NumberOne/ul_NumberTwo;
  49   2                                      else
  50   2                                              {
  51   3                                                      ul_Result=0;
  52   3                                                      uc_ReportSymbol=1;                                       //当被除数等于0时显示错误代码EOR-1
  53   3                                                      b_LCDClean=1;
  54   3                                              }
C51 COMPILER V8.05a   CALREADY                                                             07/30/2007 16:59:25 PAGE 2   

  55   2                                      break;
  56   2      
  57   2      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<乘法运算>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  58   2                      case 24:
  59   2                                      if((ul_NumberOne*ul_NumberTwo)>999999)
  60   2                                              {
  61   3                                                      ul_Result=0;
  62   3                                                      uc_ReportSymbol=9;
  63   3                                                      b_LCDClean=1;                                             //当结果超出显示范围时显示错误代码EOR-9
  64   3                                              }
  65   2                                      else
  66   2                                              ul_Result=ul_NumberOne*ul_NumberTwo;
  67   2                                      break;
  68   2      
  69   2      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<减法运算>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>                                          
  70   2                      case 34:
  71   2                                      if(ul_NumberOne>ul_NumberTwo)
  72   2                                              ul_Result=ul_NumberOne-ul_NumberTwo;
  73   2                                      else 
  74   2                                              {
  75   3                                                      ul_Result=0;
  76   3                                                      uc_ReportSymbol=2;                                      //当被减数小于减数时显示错误代码EOR-2
  77   3                                                      b_LCDClean=1;
  78   3                                              }
  79   2                                      break;
  80   2      
  81   2      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<加法运算>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>                          
  82   2                      case 44:
  83   2                                      if((ul_NumberOne+ul_NumberTwo)>999999)
  84   2                                              {
  85   3                                                      ul_Result=0;
  86   3                                                      uc_ReportSymbol=9;
  87   3                                                      b_LCDClean=1;                                   //当结果超出显示范围时显示错误代码EOR-9
  88   3                                              }
  89   2                                      else ul_Result=ul_NumberOne+ul_NumberTwo;
  90   2                                      break;
  91   2      
  92   2                      default:break;
  93   2              }
  94   1              ul_Number=ul_Result;
  95   1              ul_NumberOne=0;                                                                         //恢复计算前初始状态。
  96   1              ul_NumberTwo=0;
  97   1              uc_NumPointer=1;
  98   1              b_Zero=0;       
  99   1      }
 100          
 101          
 102          //*************************************************************************************************
 103          //*                                                                                                                                                                                               *
 104          //*                      *******************************状态一预处理******************************                        *
 105          //*                                                                                                                                                                                               *
 106          //*************************************************************************************************
 107          
 108          //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<将1位数字压入第一个数字中>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 109          void vPushOne(unsigned char ucPushNum)
 110          {
 111   1              if(ul_NumberOne<100000)                                                         //如果数字小于6位则压入数字,否则不执行。
 112   1                      {
 113   2                      ul_NumberOne=ul_NumberOne*10+ucPushNum;
 114   2                      ul_Number=ul_NumberOne;
 115   2                      }
 116   1      }
C51 COMPILER V8.05a   CALREADY                                                             07/30/2007 16:59:25 PAGE 3   

 117          
 118          //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<状态一按键处理函数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 119          void vCalReadyOne(unsigned char ucKeyCode)
 120          {
 121   1              switch(ucKeyCode)
 122   1                      {                                                                                               //如果由数字输入,则压入数字一。
 123   2                              case 11: vPushOne(7);break;                                     //'7'
 124   2                              case 12: vPushOne(8);break;                                     //'8'
 125   2                              case 13: vPushOne(9);break;                                     //'9'

⌨️ 快捷键说明

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