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

📄 main.lst

📁 我的一个工程
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  07/20/2008 16:54:32 PAGE 1   


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

stmt level    source

   1          #include <reg52.h>
   2          #include <absacc.h>
   3          #include <intrins.h>
   4          #include  "main.h"
   5          
   6          /*
   7          time1ms()    /* 1 ms delay with XTAL 11.0592MHz
   8          {
   9              int i;
  10              for (i = 0; i<50; i++); // the value shown in this line, 50 was calibrated for 1ms
  11                                                          // you may change it!
  12          }
  13          
  14          delay(int n)      /* do nothing n*1ms
  15          {
  16              int i;
  17              for (i=0; i< n ; i++)
  18              time1ms();
  19          }
  20          
  21          delay10us()
  22          {
  23              int i;
  24              for (i=0;i<1;i++);
  25          
  26          }
  27          char getchar(void)
  28          {
  29                  char c;
  30                  while(!RI);
  31                  RI =0;
  32                  c = SBUF;
  33                  return SBUF;
  34          }
  35          
  36          char getchr(void)
  37          {
  38                  while(!RI);
  39                  RI =0;
  40                  return SBUF;    // no echo for command write
  41          }
  42          
  43          // external function for sending character through serial port
  44          void putchar(char c)
  45          {
  46                  while(!TI);
  47                  TI=0;
  48                  SBUF = c;
  49          }
  50          
  51          // send ASCII string to screen, the string must be stored in code memory
  52          putstr(char *s)
  53          {
  54                  char i=0;
  55                  char c;
C51 COMPILER V7.06   MAIN                                                                  07/20/2008 16:54:32 PAGE 2   

  56                  while((c=*(s+(i++)))!= 0) putchar(c); // while byte is not terminator, keep sending
  57          }
  58          
  59          
  60          
  61          
  62          
  63          send_hex(unsigned char n)
  64          {
  65                  if(n<=9) putchar(n+'0'); // send 0-9
  66                  else putchar(n+55); // send A-F
  67          }
  68          
  69          puthex(unsigned char n)
  70          {
  71                  unsigned char temp;
  72                  temp = n&0xf0;
  73                  temp >>=4;
  74                  send_hex(temp);
  75                  temp = n&0xf;
  76                  send_hex(temp);
  77          }
  78          
  79          puthex16(unsigned int n)
  80          {
  81                  puthex(n>>8);
  82                  puthex(n);
  83          }
  84          
  85          putnum(unsigned int n)
  86          {
  87                  unsigned int k;
  88                  char s[6];
  89                  s[0] = n/10000+'0';
  90              k = n%10000;
  91                  s[1] = k/1000+'0';
  92                  k = k%1000;
  93                  s[2] = k/100+'0';
  94                  k = k%100;
  95                  s[3] = k/10+'0';
  96                  k = k%10;
  97                  s[4] = k%10+'0';
  98          
  99                  for(k = 0; s[k] == '0' && k<5; k++);
 100                  if (k==5) k--; // if all bytes are '0', get back one position
 101                  do putchar(s[k++]);
 102                  while (k<5);
 103          }*/
 104          /*void time1_over_int(void) interrupt 1 using 1
 105          {
 106            TH0=0x0;
 107            TL0=0x0;
 108                  if (ad_over==0)
 109                          {
 110                  value[counter]=AD_Conver(2);
 111                  counter++;
 112                  if (counter>64)
 113                           {
 114                                  ad_over=1;
 115                                   }
 116          
 117               }
C51 COMPILER V7.06   MAIN                                                                  07/20/2008 16:54:32 PAGE 3   

 118          }*/
 119          void initTimer(void)
 120          {
 121   1       TMOD=0x1;
 122   1       TH0=0x0;
 123   1       TL0=0x0;
 124   1      }
 125          
 126          void initUart(void)
 127          {
 128   1       TMOD|=0x20;
 129   1       SCON=0x50;
 130   1       TH1=0xfd;
 131   1       TL1=0xfd;
 132   1       TR1=1;
 133   1      }
 134          sbit relay_dpst=P3^2;
 135          sbit SPEAKER=P3^5;
 136          void main(void)
 137          {
 138   1      initTimer();
 139   1      initUart();
 140   1      TR0=0;
 141   1      ET0=0;
 142   1      EA=0;
 143   1      
 144   1      upper_limit.c[0]=AT24C02_Read_Byte(0xA0,0x01);
 145   1      upper_limit.c[1]=AT24C02_Read_Byte(0xA0, 0x02);
 146   1      lower_limit.c[0]=AT24C02_Read_Byte(0xA0, 0x03 );
 147   1      lower_limit.c[1]=AT24C02_Read_Byte(0xA0, 0x04);
 148   1      difference.c[0]=AT24C02_Read_Byte(0xA0, 0x05);
 149   1      difference.c[1]=AT24C02_Read_Byte(0xA0, 0x06);
 150   1        P1=0xff;
 151   1        while(1)
 152   1        { if(ADC)
 153   2        {
 154   3        AdValue=AD590( );
 155   3        }
 156   2         else
 157   2         {
 158   3         AdValue=process_t();
 159   3         if(AdValue>6400)AdValue+=128;
 160   3          }
 161   2           KEY();
 162   2            display_humidity();
 163   2            temperature=AdValue+difference.X ;
 164   2      
 165   2       if(temperature>upper_limit.X)
 166   2              {
 167   3                  relay_dpst=1;
 168   3                  SPEAKER=1;
 169   3               }
 170   2        else
 171   2              {
 172   3                      relay_dpst=0;
 173   3                      SPEAKER=0;
 174   3                       }
 175   2        if(temperature<lower_limit.X)
 176   2              {
 177   3                      relay_dpst=1;
 178   3                      SPEAKER=1;
 179   3               }
C51 COMPILER V7.06   MAIN                                                                  07/20/2008 16:54:32 PAGE 4   

 180   2              else
 181   2              {
 182   3                        relay_dpst=0;
 183   3                        SPEAKER=0;
 184   3                       }
 185   2       }
 186   1      }
C51 COMPILER V7.06   MAIN                                                                  07/20/2008 16:54:32 PAGE 5   

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


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
p_temp . . . . . . . . . . . . . . . .  * TAG *  -----  UNION    -----  2
  c. . . . . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0000H  2
  X. . . . . . . . . . . . . . . . . .  MEMBER   -----  U_INT    0000H  2
SPEAKER. . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
temper . . . . . . . . . . . . . . . .  PUBLIC   CODE   ARRAY    0000H  200
difference . . . . . . . . . . . . . .  EXTERN   DATA   UNION    -----  2
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
AD590. . . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
AdValue. . . . . . . . . . . . . . . .  PUBLIC   DATA   FLOAT    0000H  4
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
lower_limit. . . . . . . . . . . . . .  EXTERN   DATA   UNION    -----  2
upper_limit. . . . . . . . . . . . . .  EXTERN   DATA   UNION    -----  2
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TMOD . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0089H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
temperature. . . . . . . . . . . . . .  PUBLIC   DATA   FLOAT    0004H  4
initTimer. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
relay_dpst . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
ADC. . . . . . . . . . . . . . . . . .  EXTERN   DATA   BIT      -----  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
TH0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008CH  1
TH1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008DH  1
display_humidity . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
TL0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008AH  1
TL1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008BH  1
initUart . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
_AT24C02_Read_Byte . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
process_t. . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
KEY. . . . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


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