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

📄 disp.lst

📁 我的一个工程
💻 LST
字号:
C51 COMPILER V7.06   DISP                                                                  07/21/2008 12:45:44 PAGE 1   


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

stmt level    source

   1          #include <reg52.h>
   2          #include "disp.h"
   3          #define a     0x01
   4          #define b     0x02
   5          #define c     0x04
   6          #define d     0x08
   7          #define e     0x10
   8          #define f     0x20
   9          #define g     0x40
  10          #define dot   0x80
  11          #define H   10
  12          #define L   11
  13          #define P   12
  14          sbit sd=P2^     4;
  15          unsigned char code disp_code[] = {
  16                   a+b+c+d+e+f,     // 0
  17                   b+c,             // 1
  18                   a+b+d+e+g,       // 2
  19                   a+b+c+d+g,       // 3
  20                   b+c+f+g,         // 4
  21                   a+c+d+f+g,       // 5
  22                   a+c+d+e+f+g,     // 6
  23                   a+b+c,           // 7
  24                   a+b+c+d+e+f+g,   // 8
  25                   a+b+c+d+f+g,     // 9
  26                   b+c+e+f+g,       //H
  27                   d+e+f,           //L
  28                   a+b+e+f+g,       //P
  29                   a+e+f+g,          //F
  30                    g,               //-
  31                    a+b+c+e+f+g,    //A
  32                    a+d+e+f+g      //E
  33                   };
  34          
  35           void sendbyte(unsigned char byte)
  36          {          P2=0;
  37   1                       sd=1;
  38   1                       P0=disp_code[byte];
  39   1                       sd=0;
  40   1      
  41   1      }
  42          
  43          
  44          
  45          void display(unsigned int i)
  46          { unsigned int k;
  47   1         unsigned char j,m,q;
  48   1              unsigned int s[6];
  49   1              s[0] = i/10000;
  50   1          k = i%10000;
  51   1              s[1] = k/1000;
  52   1              k = k%1000;
  53   1              s[2] = k/100;
  54   1              k = k%100;
  55   1              s[3] = k/10;
C51 COMPILER V7.06   DISP                                                                  07/21/2008 12:45:44 PAGE 2   

  56   1              k = k%10;
  57   1              s[4] = k;
  58   1              j=0x10;
  59   1              q=2;
  60   1      
  61   1              for(k = 0; s[k] == 0 && k<3; k++);
  62   1              if (k==3) k--; // if all bytes are '0', get back one position
  63   1              if(s[4]==0)
  64   1                      {
  65   2                              q--;
  66   2              if(s[3]==0)q--;
  67   2                      }
  68   1              do
  69   1              {
  70   2                      if(k==2)
  71   2                      {
  72   3                               m=j>>4;
  73   3                      }
  74   2              P2=(m|j);
  75   2      
  76   2              P0=(disp_code[s[k++]]);
  77   2              j<<=1;
  78   2         }
  79   1              while (k<3);
  80   1              while(q&&(j<0x80))
  81   1              {
  82   2                      P2=(m|j);
  83   2              P0=(disp_code[s[k++]]);
  84   2              j<<=1;
  85   2              q--;
  86   2              }
  87   1      }
  88           /*
  89          void display(unsigned int i)
  90          { unsigned int k;
  91             unsigned char j,m,q;
  92                  unsigned int s[6];
  93                  s[0] = i/1000;
  94              k = i%1000;
  95                  s[1] = k/100;
  96                  k = k%100;
  97                  s[2] = k/10;
  98                  k = k%10;
  99                  s[3] = k;
 100                  //k = k%10;
 101                  //s[4] = k;
 102                  j=0x80;
 103                  for(k = 0; s[k] == 0 && k<4; k++);
 104                  if (k==4) k--; // if all bytes are '0', get back one position
 105          
 106                  do
 107                  {
 108          
 109          
 110                   P2=j;
 111          
 112                  P0=(disp_code[s[k++]]);
 113                  j>>=1;
 114             }
 115                  while (k<4);
 116          
 117          }  */
C51 COMPILER V7.06   DISP                                                                  07/21/2008 12:45:44 PAGE 3   

 118          void display_humidity(void)
 119           {
 120   1              P0=0x00;
 121   1        P2=0xff;
 122   1         switch(set)
 123   1              {
 124   2      
 125   2                      case 0: //运行状态
 126   2                       if(AdValue>0)
 127   2                              {
 128   3                                      sendbyte(13);
 129   3                              }
 130   2                       else
 131   2                              {
 132   3                              
 133   3                              sendbyte(14);
 134   3                              }
 135   2                         
 136   2                       display((int)temperature);
 137   2                      break;
 138   2                      case 1: //显示上限值状态
 139   2                             sendbyte(10);
 140   2                             display(upper_limit.X);
 141   2                      break;
 142   2                      case 2://显示上限值状态
 143   2                                   sendbyte(11);
 144   2                             display(lower_limit.X);
 145   2                         break;
 146   2                case 3://显示偏差值状态
 147   2                                   sendbyte(12);
 148   2                             display(difference.X);
 149   2                         break;
 150   2                         case 4://显示AD590采集到的值
 151   2                          
 152   2                              ADC=1;
 153   2                              
 154   2                              sendbyte(15);
 155   2                             
 156   2                             
 157   2                       display((int)AdValue);
 158   2                         break;
 159   2                         case 5://显示Pt100采集到的值
 160   2                           ADC=0;
 161   2                              
 162   2                              
 163   2                              
 164   2                                  sendbyte(16);
 165   2                              
 166   2                           
 167   2                        
 168   2                       display((int)AdValue);
 169   2                         break;
 170   2                default:
 171   2      
 172   2                         break;
 173   2                 }
 174   1      
 175   1      
 176   1      }
C51 COMPILER V7.06   DISP                                                                  07/21/2008 12:45:44 PAGE 4   

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
p_temp . . . . . . . . . . . . . . . .  * TAG *  -----  UNION    -----  2
  c. . . . . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0000H  2
  X. . . . . . . . . . . . . . . . . .  MEMBER   -----  U_INT    0000H  2
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
difference . . . . . . . . . . . . . .  EXTERN   DATA   UNION    -----  2
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
AdValue. . . . . . . . . . . . . . . .  EXTERN   DATA   FLOAT    -----  4
lower_limit. . . . . . . . . . . . . .  EXTERN   DATA   UNION    -----  2
disp_code. . . . . . . . . . . . . . .  PUBLIC   CODE   ARRAY    0000H  17
upper_limit. . . . . . . . . . . . . .  EXTERN   DATA   UNION    -----  2
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
temperature. . . . . . . . . . . . . .  EXTERN   DATA   FLOAT    -----  4
_sendbyte. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  byte . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
ADC. . . . . . . . . . . . . . . . . .  EXTERN   DATA   BIT      -----  1
set. . . . . . . . . . . . . . . . . .  EXTERN   DATA   U_CHAR   -----  1
display_humidity . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
sd . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A4H  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. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  s. . . . . . . . . . . . . . . . . .  AUTO     DATA   ARRAY    0001H  12
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    431    ----
   CONSTANT SIZE    =     17    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      13
   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 + -