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

📄 calculator.lst

📁 keil开发51加减乘计算器 都说单片机做乘法很吃力 自己做了一个乘法计算器 感觉还可以 至少我没感觉有多慢
💻 LST
字号:
C51 COMPILER V8.02   CALCULATOR                                                            11/18/2008 10:19:33 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE CALCULATOR
OBJECT MODULE PLACED IN calculator.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE calculator.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /***********计算器************/
   2          #include<reg52.h>
   3          #include<intrins.h>
   4          #define uchar unsigned char
   5          #define uint unsigned int
   6          
   7          
   8          /*****???????*****/
   9          uchar code wordcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  10          0x07,0x7f,0x6f,0x71};
  11          
  12          uchar abs[3][6];
  13          uchar art[6];
  14          uchar brt[6];
  15          
  16          uchar fullflag,afullflag,bfullflag;     //存入数组数的个数
  17          uchar abs;                              //当前操作数标志(0被加数1加数2和)
*** ERROR C231 IN LINE 17 OF CALCULATOR.C: 'abs': redefinition
  18          uchar opreat;                   //加减标志 1加 2减
  19          uchar key;
  20          uchar point;                    //小数点的位置
  21          uchar 
  22          float af,bf,cf;                 //单片机进行数组操作的浮点数
*** ERROR C141 IN LINE 22 OF CALCULATOR.C: syntax error near 'float'
  23           
  24          /******延时函数传入参数要延时毫秒数******/
  25          void delay(uchar xms)
  26          {
  27   1              uint i,j;
  28   1              for(i=xms*10;i>0;i--)
  29   1                      for(j=20;j>0;j--);
  30   1      }
  31          /********键盘扫描返回键值(0-15)*******/
  32          /********若没键按下返回-5通过判断返回****/
  33          /********是否大于0判断是否有键按下*******/
  34          char keyscan()
  35          {
  36   1              uchar line,row,P2temp;
  37   1              P2=0xf0;
  38   1              P2temp=P2;
  39   1              if(P2temp!=0xf0)
  40   1              {
  41   2                      delay(10);
  42   2                      if(P2temp!=0xf0)
  43   2                      {
  44   3                              switch(P2temp)
  45   3                              {
  46   4                                      case 0x70:row=1;break;
  47   4                                      case 0xb0:row=2;break;
  48   4                                      case 0xd0:row=3;break;
  49   4                                      case 0xe0:row=4;break;
  50   4                              }
  51   3                      }
  52   2                      P2=0x0f;
  53   2                      P2temp=P2;
C51 COMPILER V8.02   CALCULATOR                                                            11/18/2008 10:19:33 PAGE 2   

  54   2                      switch(P2temp)
  55   2                      {
  56   3                              case 0x07:line=1;break;
  57   3                              case 0x0b:line=2;break;
  58   3                              case 0x0d:line=3;break;
  59   3                              case 0x0e:line=4;break;
  60   3                      }
  61   2              }
  62   1              return((row-1)*4+line-1);
  63   1      }
  64          /***转换函数将输入的数字整合成一个浮点数用单片机运算****/ ÷
*** ERROR C100 IN LINE 64 OF CALCULATOR.C: unprintable character 0xA1 skipped
*** ERROR C100 IN LINE 64 OF CALCULATOR.C: unprintable character 0xC2 skipped
  65          void conv()
  66          {
  67   1              uchar i;
  68   1              for(i=0;i<6;i++)
  69   1              {
  70   2                      art[i]=abs[6-i];
  71   2                      brt[i]=abs[6-i];        
  72   2              }
  73   1      }
  74          
  75          void opreat()
  76          {
*** ERROR C231 IN LINE 76 OF CALCULATOR.C: 'opreat': redefinition
  77   1              conv();
  78   1                      
  79   1      }
*** ERROR C231 IN LINE 79 OF CALCULATOR.C: 'opreat': redefinition
  80          
  81          /**********显示函数************/
  82          /*******传如要显示的数组*******/
  83          void display(uchar *disarry,uchar disflag)
  84          {
  85   1              uchar i,disbit=0xfe; //段选
  86   1              for(i=0;i<6;i++)
  87   1              {
  88   2                      P1=(disbit<<1)+1;
  89   2                      P0=wordcode[*(disarry+6*disflag+i)];
  90   2                      delay(10);
  91   2              }
  92   1      }
  93          
  94          
  95          void main()
  96          {
  97   1              char key,P2temp;
  98   1              while(1)
  99   1              {
 100   2                      key=keyscan();
 101   2                      do
 102   2                      {
 103   3                              P2=0xf0;
 104   3                              P2temp=P2;
 105   3                      }
 106   2                      while((P2temp&0xf0)!=0xf0);
 107   2                      P0=wordcode[key];
 108   2                              
 109   2                      if(key<9&&depth<6)
*** ERROR C202 IN LINE 109 OF CALCULATOR.C: 'depth': undefined identifier
 110   2                      {
C51 COMPILER V8.02   CALCULATOR                                                            11/18/2008 10:19:33 PAGE 3   

 111   3                              abs[abs][depth]=key;
*** ERROR C202 IN LINE 111 OF CALCULATOR.C: 'depth': undefined identifier
 112   3                              depth++;
*** ERROR C202 IN LINE 112 OF CALCULATOR.C: 'depth': undefined identifier
 113   3                      }
 114   2                      else if(key==10)                  //小数点
 115   2                      {
 116   3                              apoint=depth;     //记录小数点的位置
*** ERROR C202 IN LINE 116 OF CALCULATOR.C: 'apoint': undefined identifier
 117   3                      }
 118   2                      else if(key==11&&abs<2)           //加号
 119   2                      {
 120   3                              abs++;
*** ERROR C187 IN LINE 120 OF CALCULATOR.C: not an lvalue
 121   3                              adepth=depth;
*** ERROR C202 IN LINE 121 OF CALCULATOR.C: 'adepth': undefined identifier
 122   3                              operat=1;
*** ERROR C202 IN LINE 122 OF CALCULATOR.C: 'operat': undefined identifier
 123   3                      } 
 124   2                      else if(key==15)
 125   2                      {
 126   3                              operat();
 127   3                      }
 128   2                                      
 129   2              }  
 130   1      }
 131          
 132          
 133          

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

⌨️ 快捷键说明

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