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

📄 calculator.lst

📁 LCD1602.rar
💻 LST
字号:
C51 COMPILER V8.05a   CALCULATOR                                                           07/30/2007 13:24:31 PAGE 1   


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

line level    source

   1          //*************************************************************************************************
   2          //*************************************************************************************************
   3          //**<程序名>:计算器处理主程序,根据计算器的输入状态分派不同的函数对按键进行处理。                               **
   4          //**<功能>:当b_WorkMode=0是,若有键按下则调用此函数对键码进行处理。                                                     **
   5          //*************************************************************************************************
   6          //*************************************************************************************************
   7          
   8          
   9          //*************************************************************************************************
  10          //*                                                                                                                                                                                               *
  11          //*                      ******************************头文件及宏定义**************************                           *
  12          //*                                                                                                                                                                                               *
  13          //*************************************************************************************************
  14          #include "CalReady.h"
  15          
  16          
  17          //*************************************************************************************************
  18          //*                                                                                                                                                                                               *
  19          //*                       ********************************全局变量******************************                          *
  20          //*                                                                                                                                                                                               *
  21          //*************************************************************************************************
  22          extern unsigned long ul_Number;                  //LCE显示数据,LCD实时显示该数字。
  23          
  24          //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<工作模式(默认为计算器模式)>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  25          extern bit b_WorkMode;                                   //0--计算器模式;
  26                                                                                           //1--计时模式。
  27                                                                                           //定义在KeyProcess.c中。
  28          unsigned char uc_ModeChange=0;
  29          
  30          extern bit b_LCDClean;
  31          
  32          extern unsigned char uc_ReportSymbol;
  33          
  34          
  35          unsigned long ul_NumberOne=0;                    //第一个数
  36          unsigned long ul_NumberTwo=0;                    //第二个数
  37          unsigned char uc_Operator=0;                     //运算符
  38          unsigned long ul_Result=0;                               //运算结果
  39          unsigned char uc_NumPointer=1;                   //计算状态
  40          
  41          //*************************************************************************************************
  42          //*                                                                                                                                                                                               *
  43          //*               *******************************计算器处理主函数******************************                   *
  44          //*                                                                                                                                                                                               *
  45          //*************************************************************************************************
  46          
  47          
  48          
  49          
  50          void vCalculator(unsigned char ucKeyCode)
  51          {
  52   1              if(ucKeyCode==41)                                                               //判断按键是不是'NO/C'。
  53   1                      {
  54   2                              if(uc_NumPointer==1)                                    //如果是‘NO/C’键则判断手机否是状态一。
C51 COMPILER V8.05a   CALCULATOR                                                           07/30/2007 13:24:31 PAGE 2   

  55   2                                      {
  56   3                                              if(uc_ModeChange==2)                    //如果是状态一则看uc_ModeChange是不是2。
  57   3                                                      {
  58   4                                                              uc_ModeChange=0;                //如果是2则计时器模式。
  59   4                                                              b_WorkMode=1;
  60   4      
  61   4                                                              uc_ReportSymbol=3;              //闪烁显示:-CHAG-1。表明正在切换状态。
  62   4                                                              b_LCDClean=1;
  63   4                                                      }
  64   3                                              else
  65   3                                                      {
  66   4                                                              uc_ModeChange++;                //如果uc_ModeChange不是2则加一。
  67   4                                                              ul_NumberOne=0;                 //清除所有数据,将所有数据恢复到状态一。
  68   4                                                              ul_NumberTwo=0;
  69   4                                                              ul_Number=0;                    
  70   4                                                              uc_NumPointer=1;
  71   4                                                      }
  72   3                                      }
  73   2                              else
  74   2                                      {
  75   3                                      ul_NumberOne=0;                                         //清除所有数据,将所有数据恢复到状态一。
  76   3                                      ul_NumberTwo=0;
  77   3                                      ul_Number=0;                    
  78   3                                      uc_NumPointer=1;
  79   3                              }
  80   2                      }
  81   1              else
  82   1                      {                                                                                       //如果不是“NO/C”键,首先将uc_ModeChange清零。
  83   2                      uc_ModeChange=0;
  84   2      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<根据不同状态分派不同的键处理函数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  85   2                      switch(uc_NumPointer)
  86   2                              {
  87   3                              case 1: 
  88   3                                              vCalReadyOne(ucKeyCode);                           //进入状态一。
  89   3                                              break;
  90   3                              case 2:
  91   3                                              vCalReadyTwo(ucKeyCode);                           //进入状态二。
  92   3                                              break;
  93   3                              case 3:
  94   3                                              vCalReadyThree(ucKeyCode);                         //进入状态三。
  95   3                                              break;
  96   3      
  97   3                              default:break;
  98   3                              }
  99   2                      }
 100   1      
 101   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     94    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     15       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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