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

📄 flas.lst

📁 我的一个工程
💻 LST
字号:
C51 COMPILER V7.06   FLAS                                                                  07/20/2008 02:40:34 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE FLAS
OBJECT MODULE PLACED IN E:\温度表\FLAS.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE E:\温度表\FLAS.C DB SB OE

stmt level    source

   1          #include <reg52.h>
   2          #include <stdio.h>
   3          #include <absacc.h>
   4          
   5          #define a     0x01
   6          #define b     0x02
   7          #define c     0x04
   8          #define d     0x08
   9          #define e     0x10
  10          #define f     0x20
  11          #define g     0x40
  12          #define dot   0x80
  13          #define H   10
  14          #define L   11
  15          #define P   12
  16          sbit sd=P2^7;
  17          sbit sp=P3^5;
  18          extern unsigned char AT24C02_Read_Byte(unsigned char Device,unsigned char Addr);
  19          extern void AT24C02_Write_Byte(unsigned char Device,unsigned char Addr, unsigned char Data);
  20          unsigned char set;
  21          unsigned char   KEY_Variable[3];
  22          unsigned int tmep;
  23          unsigned char code disp_code[] = {
  24                   a+b+c+d+e+f,     // 0
  25                   b+c,             // 1
  26                   a+b+d+e+g,       // 2
  27                   a+b+c+d+g,       // 3
  28                   b+c+f+g,         // 4
  29                   a+c+d+f+g,       // 5
  30                   a+c+d+e+f+g,     // 6
  31                   a+b+c,           // 7
  32                   a+b+c+d+e+f+g,   // 8
  33                   a+b+c+d+f+g,     // 9
  34                   b+c+e+f+g,       //H
  35                   d+e+f,           //L
  36                   a+b+e+f+g,       //P
  37                   b+c+g,            //+
  38                    g,               //-
  39                   };
  40          
  41           time1ms()    /* 1 ms delay with XTAL 11.0592MHz */
  42          {
  43   1          int i;
  44   1          for (i = 0; i<50; i++) // the value shown in this line, 50 was calibrated for 1ms
  45   1          ;                                           // you may change it!
  46   1      }
  47          
  48           void sendbyte(unsigned char yte)
  49          {  P2=0;
  50   1              sd=1;
  51   1              P0=disp_code[yte];
  52   1              //sd=0;
  53   1      
  54   1      }
  55          
C51 COMPILER V7.06   FLAS                                                                  07/20/2008 02:40:34 PAGE 2   

  56          
  57          
  58          void display(unsigned int i)
  59          { unsigned int k;
  60   1         unsigned char j,m,q;
  61   1              unsigned int s[6];
  62   1              s[0] = i/1000;
  63   1          k = i%1000;
  64   1              s[1] = k/100;
  65   1              k = k%100;
  66   1              s[2] = k/10;
  67   1              k = k%10;
  68   1              s[3] = k;
  69   1              //k = k%10;
  70   1              //s[4] = k;
  71   1              j=0x80;
  72   1              for(k = 0; s[k] == 0 && k<4; k++);
  73   1              if (k==4) k--; // if all bytes are '0', get back one position
  74   1      
  75   1              do
  76   1              {
  77   2      
  78   2      
  79   2               P2=j;
  80   2      
  81   2              P0=(disp_code[s[k++]]);
  82   2              j>>=1;
  83   2         }
  84   1              while (k<5);
  85   1      
  86   1      }
*** WARNING C280 IN LINE 60 OF E:\温度表\FLAS.C: 'm': unreferenced local variable
*** WARNING C280 IN LINE 60 OF E:\温度表\FLAS.C: 'q': unreferenced local variable
  87          #define KEY_SET   0x07//设置键
  88          #define KEY_UP    0x0b//向上键
  89          #define KEY_DOEN  0x0d//向下键
  90          #define KEY_RUN  0x0e//运行键
  91          #define KEY_P1  P1
  92          
  93          /***************************************************************************************************
  94          函数名称:KEY_JIEXI(unsigned int Variable)
  95          函数入口:
  96                            unsigned int Variable :采集到的键盘值,就是P2、P3口的数值。
  97          函数出口:
  98          功能描述:键盘解析,通过采样的数值分析出当前按下的是那个键。(包括复合键)并针对键进行相应的操作
  99          关键点描述:无
 100          ****************************************************************************************************/
 101          KEY_JIEXI(unsigned int Variable)
 102          {
 103   1              sp=0;
 104   1              switch(Variable)
 105   1              {
 106   2                      //单键。。。。
 107   2                      case KEY_RUN:   //0x01运行键
 108   2                   set=0;
 109   2                   tmep=0;
 110   2                      break;
 111   2                      case KEY_DOEN:  //0x02向下键
 112   2                              if(set)
 113   2                                      set--;
 114   2                        else
 115   2                                       set=14;
C51 COMPILER V7.06   FLAS                                                                  07/20/2008 02:40:34 PAGE 3   

 116   2                break;
 117   2                      case KEY_UP:    //0x04向上键
 118   2                           if(set<14)
 119   2                                    { set++;
 120   3      
 121   3                                    }
 122   2                          else
 123   2                                           set=0;
 124   2                break;
 125   2                case KEY_SET:   //0x07设置键
 126   2                      tmep=tmep+8;
 127   2                break;
 128   2                      default:
 129   2                      break;
 130   2              }
 131   1              sp=1;
 132   1      }
 133          /***************************************************************************************************/
 134          /***************************************************************************************************
 135          函数名称:KEY()
 136          函数入口:空
 137          函数出口:空
 138          功能描述:键盘消抖
 139          设计思想:
 140                                  建立一个键盘值保存缓冲区KEY_Variable[3],能够连续保存最近的三次采样到的键盘值。当最后两次采
 141                          样到的值相等并且和倒数第三次的值不相等时,说明有按键按下。进行确认。当三次的采样值都相等时,说
 142                          明此按键已经确认过了,不进行确认。
 143          ****************************************************************************************************/
 144          KEY()
 145          {
 146   1      unsigned char key_buf;
 147   1              KEY_Variable[2]=KEY_Variable[1];
 148   1              KEY_Variable[1]=KEY_Variable[0];
 149   1              EA = 0;
 150   1              key_buf=KEY_P1;
 151   1       KEY_Variable[0] =key_buf&0xc0;
 152   1              KEY_Variable[0] >>=4;
 153   1       KEY_Variable[0]|=(key_buf&0x03);
 154   1      
 155   1              if(KEY_Variable[0] == KEY_Variable[1])
 156   1              {
 157   2                      if(KEY_Variable[1] == KEY_Variable[2])
 158   2                      {
 159   3                              return;
 160   3                      }
 161   2                      else
 162   2                      {
 163   3      
 164   3                              KEY_JIEXI(KEY_Variable[0]);   //分析按下的是什么键,并做相应的处理。
 165   3                      }
 166   2              }
 167   1              return;
 168   1      }
 169              sbit gh=P3^4;
 170          sbit low=P3^3;
 171          
 172          unsigned int Read_Temperature(void)
 173          {       unsigned int vioud,tmp[4];
 174   1      unsigned char m,n;
 175   1      
 176   1                gh=0;
 177   1                P0=0XFF;
C51 COMPILER V7.06   FLAS                                                                  07/20/2008 02:40:34 PAGE 4   

 178   1              m=P0;
 179   1              m=~m;
 180   1              n=(m&0x0f);
 181   1              m>>=4;
 182   1              tmp[0]=m*100;
 183   1              tmp[1]=n*1000;
 184   1              gh=1;
 185   1      
 186   1              low=0;
 187   1                P0=0XFF;
 188   1              m=P0;
 189   1              m=~m;
 190   1              n=(m&0x0f);
 191   1              m>>=4;
 192   1              tmp[3]=m;
 193   1              tmp[2]=n*10;
 194   1              low=1;
 195   1              vioud=tmp[0];
 196   1              vioud+=tmp[1];
 197   1              vioud+=tmp[2];
 198   1              vioud+=tmp[3];
 199   1              return vioud;
 200   1      }
 201          sbit relay_dpst=P3^2;
 202          sbit SPEAKER=P3^5;
 203           void main(void)
 204          {
 205   1        SCON = 0x52; // 8-bit UART mode
 206   1        TMOD = 0x20; // timer 1 mode 2 auto reload
 207   1        TH1= 0xfd; // 9600 8n1
 208   1        TR1 = 1; // run timer1*/
 209   1       // void AT24C02_Init();
 210   1      
 211   1        P1=0xff;
 212   1        P0=0x00;
 213   1        P2=0xf0;
 214   1      
 215   1         //AT24C02_Write_Byte(0xA0, 0x02, 219);
 216   1        //AT24C02_Write_Byte(0xA1);
 217   1      
 218   1         //tmep=Read_Temperature(void)
 219   1        // AT24C02_Read_Byte(0xA0,0x02);
 220   1        while(1)
 221   1        {   //unsigned char TEMP;
 222   2      
 223   2                SPEAKER=0;
 224   2               tmep=Read_Temperature();
 225   2               relay_dpst=~relay_dpst;
 226   2               
 227   2               SPEAKER=0;
 228   2              //KEY();
 229   2         //   sendbyte(set);
 230   2               display(tmep);
 231   2      }
 232   1        }
 233          
C51 COMPILER V7.06   FLAS                                                                  07/20/2008 02:40:34 PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
SPEAKER. . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
_KEY_JIEXI . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  Variable . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
disp_code. . . . . . . . . . . . . . .  PUBLIC   CODE   ARRAY    0000H  15
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TMOD . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0089H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
tmep . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0000H  2
relay_dpst . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
_sendbyte. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  yte. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
time1ms. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   INT      0006H  2
set. . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0002H  1
TH1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008DH  1
gh . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
low. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
sd . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A7H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
_display . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0002H  2
  k. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0002H  2
  j. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  m. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  q. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  s. . . . . . . . . . . . . . . . . .  AUTO     DATA   ARRAY    0002H  12
sp . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
KEY. . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  key_buf. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
Read_Temperature . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  vioud. . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
  tmp. . . . . . . . . . . . . . . . .  AUTO     DATA   ARRAY    0000H  8
  m. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  n. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
KEY_Variable . . . . . . . . . . . . .  PUBLIC   DATA   ARRAY    0003H  3
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    467    ----
   CONSTANT SIZE    =     15    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6      22
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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