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

📄 a.lst

📁 这是自己用一个单片机做的计算器
💻 LST
字号:
C51 COMPILER V8.08   A                                                                     03/18/2009 02:33:59 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE A
OBJECT MODULE PLACED IN a.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE a.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //******************************头文件***************************************
   2            #include <reg52.h>
   3            #include <stdio.h>
   4            #include <string.h>
   5            #include <intrins.h>
   6            #include <absacc.h>
   7            #include <main.h>
   8          //*********************************初始变量**********************************
   9           xdata  uchar opention_i[8];     //键盘输入整数存储区
  10           xdata  uchar opention_f[8];     //键盘输入小数存储区
  11           xdata  uchar mkey; 
  12           float float_a1=0;
  13           float float_a2=0;
  14           xdata  uchar float_count=0,int_count=0;
  15          
  16          main()
  17          {       uchar add,dec,all,del;
  18   1          uchar opention_do=0;
  19   1              uchar float_c;
  20   1              uchar recive1=1;
  21   1              uchar tmr,i;
  22   1              uchar opention_ti[8];                  //为实现输出暂设此缓存
  23   1      
  24   1         for(tmr=0;tmr<0xffff;tmr++);            // 等待 BC728x 完成复位
  25   1                 wr_7281(0x12);                    //设置7281工作方式
  26   1             wr_7281(0x80);
  27   1      
  28   1         while (1)
  29   1              {  
  30   2                  if(!key)                            //有键值
  31   2                        { wr_7281(0x93);
  32   3                          mkey= receive();                    //键值
  33   3                    } 
  34   2                              if(mkey==14)           //小数点输入
  35   2                    { float_c=1;
  36   3                                  mkey=16;
  37   3                                 }
  38   2                          if(mkey==15)           //求结果
  39   2                    {
  40   3                                  opention_do=1;
  41   3                                  mkey=16;
  42   3                                 }
  43   2                              //***********************************接接收键值**************************
  44   2                  if(recive1==1 && float_c==0 && mkey<10)    //输入整数部分
  45   2                    {
  46   3                      opention_i[int_count]=mkey;
  47   3                      int_count++;
  48   3                                      for(i=0;i<int_count;i++)   //交换输入顺序
  49   3                         {
  50   4                            opention_ti[int_count-i]=opention_i[i];
  51   4                          }    
  52   3                                      setdisplay(opention_ti,int_count );
  53   3                                      mkey=16;
  54   3                     }
  55   2                  if(recive1==1 && float_c==1 && mkey!=14 && mkey<10 ) //输入整数部分
C51 COMPILER V8.08   A                                                                     03/18/2009 02:33:59 PAGE 2   

  56   2                     {
  57   3                       opention_f[float_count]=mkey;
  58   3                       float_count++;
  59   3                                       opention_i[int_count]=mkey;
  60   3                       int_count++;
  61   3                                       for(i=0;i<int_count;i++)   //交换输入顺序
  62   3                          {
  63   4                            opention_ti[int_count-i]=opention_i[i];
  64   4                           }
  65   3                                        wr_7281(0x18);                       //设置成显示小数
  66   3                        wr_7281(p_float[float_count-1]);     //显示小数点      
  67   3                                        setdisplay(opention_ti,int_count);
  68   3                                        mkey=16;
  69   3                      }
  70   2                              //*************************************键盘输入何种算法**************************
  71   2                  if(mkey==10)  //加法
  72   2                    { mkey=16;
  73   3                      float_a1=add_all(opention_i,opention_f,int_count);
  74   3                      out_data[0]=0;
  75   3                      setdisplay(out_data,1 );
  76   3                      add=1;
  77   3                      float_c=0;
  78   3                     }
  79   2                  if(mkey==11)  //减法
  80   2                     { mkey=16;
  81   3                       float_a1=add_all(opention_i,opention_f,int_count);
  82   3                       out_data[0]=0;
  83   3                       setdisplay(out_data,1 );
  84   3                       dec=1;
  85   3                       float_c=0;
  86   3                      }
  87   2                   if(mkey==12)  //乘法
  88   2                     { mkey=16;
  89   3                      float_a1=add_all(opention_i,opention_f,int_count);
  90   3                      out_data[0]=0;
  91   3                      setdisplay(out_data,1 );
  92   3                      all=1;
  93   3                      float_c=0;
  94   3                      }
  95   2                    if(mkey==13)  //除法
  96   2                       { mkey=16;
  97   3                         float_a1=add_all(opention_i,opention_f,int_count);
  98   3                         out_data[0]=0;
  99   3                         setdisplay(out_data,1 );
 100   3                         del=1;
 101   3                         float_c=0;
 102   3                       }
 103   2                                //****************************************进入运算******************************
 104   2                    if(opention_do==1 && add==1)
 105   2                       { opention_do=0;
 106   3                                         float_c=0;
 107   3                                         add=0;
 108   3                         float_a1=add_all(opention_i,opention_f,int_count);
 109   3                         f_data=float_a1+float_a2;
 110   3                         LED_OUT() ;
 111   3                        }
 112   2                     if(opention_do==1 && dec==1)
 113   2                        { opention_do=0;
 114   3                                              float_c=0;
 115   3                                          dec=0;
 116   3                          float_a1=add_all(opention_i,opention_f,int_count);
 117   3                          f_data=float_a1-float_a2;
C51 COMPILER V8.08   A                                                                     03/18/2009 02:33:59 PAGE 3   

 118   3                          LED_OUT() ;
 119   3                         }
 120   2                     if(opention_do==1 && all==1)
 121   2                        { opention_do=0;
 122   3                                              float_c=0;
 123   3                                          all=0;
 124   3                          float_a1=add_all(opention_i,opention_f,int_count);
 125   3                          f_data=float_a1*float_a2;
 126   3                          LED_OUT() ;
 127   3                         }
 128   2                      if(opention_do==1 && del==1)
 129   2                         {  opention_do=0;
 130   3                                            float_c=0;
 131   3                                            del=0;
 132   3                            float_a1=add_all(opention_i,opention_f,int_count);
 133   3                            f_data=float_a1/float_a2;
 134   3                            LED_OUT() ;
 135   3                          }
 136   2      
 137   2                  }
 138   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    900    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     19    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8      16
   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 + -