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

📄 counter.lst

📁 8951系列单片机仿真。包括流水灯、数码管、定时器、点阵、液晶等
💻 LST
字号:
C51 COMPILER V8.02   COUNTER                                                               08/21/2007 14:59:13 PAGE 1   


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

line level    source

   1          #include <AT89X51.H> 
   2            
   3          unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 
   4          0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; 
   5          unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; 
   6          unsigned char dispbuf[8]={0,16,16,16,16,16,16,16}; 
   7          unsigned char dispbitcount; 
   8          unsigned char temp; 
   9          unsigned char i,j; 
  10          unsigned char key; 
  11          unsigned char keypos; 
  12          bit alarmflag; 
  13            
  14          void change(unsigned char *p,unsigned char count) 
  15          { 
  16   1        while(count>0) 
  17   1          { 
  18   2            *(p+count)=*(p+count-1); 
  19   2            count--; 
  20   2          } 
  21   1      } 
  22            
  23          void main(void) 
  24          { 
  25   1        TMOD=0x01; 
  26   1        TH0=(65536-500) / 256; 
  27   1        TL0=(65536-500) % 256; 
  28   1        TR0=1; 
  29   1        ET0=1; 
  30   1        EA=1; 
  31   1        
  32   1        while(1) 
  33   1          { 
  34   2            P3=0xff; 
  35   2            P3_4=0; 
  36   2            temp=P3; 
  37   2            temp=temp & 0x0f; 
  38   2            if (temp!=0x0f) 
  39   2              { 
  40   3                for(i=50;i>0;i--) 
  41   3                for(j=200;j>0;j--); 
  42   3                temp=P3; 
  43   3                temp=temp & 0x0f; 
  44   3                if (temp!=0x0f) 
  45   3                  { 
  46   4                    temp=P3; 
  47   4                    temp=temp & 0x0f;              
  48   4                    switch(temp) 
  49   4                      { 
  50   5                        case 0x0e: 
  51   5                          key=3; 
  52   5                          break; 
  53   5                        case 0x0d: 
  54   5                          key=2; 
  55   5                          break; 
C51 COMPILER V8.02   COUNTER                                                               08/21/2007 14:59:13 PAGE 2   

  56   5                        case 0x0b: 
  57   5                          key=1; 
  58   5                          break; 
  59   5                        case 0x07: 
  60   5                          key=0; 
  61   5                          break; 
  62   5                      } 
  63   4                    if ((key>=0) && (key<10)) 
  64   4                    { 
  65   5                     
  66   5                      if(keypos<8) 
  67   5                        { 
  68   6                          change(dispbuf,keypos); 
  69   6                          dispbuf[0]=key; 
  70   6                        } 
  71   5                        else 
  72   5                          { 
  73   6                            keypos=8; 
  74   6                            alarmflag=1; 
  75   6                          } 
  76   5                       keypos++; 
  77   5                    } 
  78   4                    temp=P3; 
  79   4                    P1_0=~P1_0; 
  80   4                    temp=temp & 0x0f;              
  81   4                    while(temp!=0x0f) 
  82   4                      { 
  83   5                        temp=P3; 
  84   5                        temp=temp & 0x0f;              
  85   5                      } 
  86   4                    alarmflag=0; 
  87   4                  } 
  88   3              } 
  89   2        
  90   2            P3=0xff; 
  91   2            P3_5=0; 
  92   2            temp=P3; 
  93   2            temp=temp & 0x0f; 
  94   2            if (temp!=0x0f) 
  95   2              { 
  96   3                for(i=50;i>0;i--) 
  97   3                for(j=200;j>0;j--); 
  98   3                temp=P3; 
  99   3                temp=temp & 0x0f; 
 100   3                if (temp!=0x0f) 
 101   3                  { 
 102   4                    temp=P3; 
 103   4                    temp=temp & 0x0f;              
 104   4                    switch(temp) 
 105   4                      { 
 106   5                        case 0x0e: 
 107   5                          key=7; 
 108   5                          break; 
 109   5                        case 0x0d: 
 110   5                          key=6; 
 111   5                          break; 
 112   5                        case 0x0b: 
 113   5                          key=5; 
 114   5                          break; 
 115   5                        case 0x07: 
 116   5                          key=4; 
 117   5                          break; 
C51 COMPILER V8.02   COUNTER                                                               08/21/2007 14:59:13 PAGE 3   

 118   5                      } 
 119   4                    if ((key>=0) && (key<10)) 
 120   4                    { 
 121   5                      
 122   5                      if(keypos<8) 
 123   5                        { 
 124   6                          change(dispbuf,keypos); 
 125   6                          dispbuf[0]=key; 
 126   6                        } 
 127   5                        else 
 128   5                          { 
 129   6                            keypos=8; 
 130   6                            alarmflag=1; 
 131   6                          } 
 132   5                                      keypos++; 
 133   5                    } 
 134   4                    temp=P3; 
 135   4                    P1_0=~P1_0; 
 136   4                    temp=temp & 0x0f;              
 137   4                    while(temp!=0x0f) 
 138   4                      { 
 139   5                        temp=P3; 
 140   5                        temp=temp & 0x0f;              
 141   5                      } 
 142   4                    alarmflag=0; 
 143   4                  } 
 144   3              } 
 145   2        
 146   2            P3=0xff; 
 147   2            P3_6=0; 
 148   2            temp=P3; 
 149   2            temp=temp & 0x0f; 
 150   2            if (temp!=0x0f) 
 151   2              { 
 152   3                for(i=50;i>0;i--) 
 153   3                for(j=200;j>0;j--); 
 154   3                temp=P3; 
 155   3                temp=temp & 0x0f; 
 156   3                if (temp!=0x0f) 
 157   3                  { 
 158   4                    temp=P3; 
 159   4                    temp=temp & 0x0f;              
 160   4                    switch(temp) 
 161   4                      { 
 162   5                        case 0x0e: 
 163   5                          key=11; 
 164   5                          break; 
 165   5                        case 0x0d: 
 166   5                          key=10; 
 167   5                          break; 
 168   5                        case 0x0b: 
 169   5                          key=9; 
 170   5                          break; 
 171   5                        case 0x07: 
 172   5                          key=8; 
 173   5                          break; 
 174   5                      } 
 175   4                    if ((key>=0) && (key<10)) 
 176   4                    { 
 177   5                      
 178   5                      if(keypos<8) 
 179   5                        { 
C51 COMPILER V8.02   COUNTER                                                               08/21/2007 14:59:13 PAGE 4   

 180   6                          change(dispbuf,keypos); 
 181   6                          dispbuf[0]=key; 
 182   6                        } 
 183   5                        else 
 184   5                          { 
 185   6                            keypos=8; 
 186   6                            alarmflag=1; 
 187   6                          } 
 188   5                                       keypos++; 
 189   5                    } 
 190   4                    temp=P3; 
 191   4                    P1_0=~P1_0; 
 192   4                    temp=temp & 0x0f;              
 193   4                    while(temp!=0x0f) 
 194   4                      { 
 195   5                        temp=P3; 
 196   5                        temp=temp & 0x0f;               
 197   5                      } 
 198   4                    alarmflag=0; 
 199   4                  } 
 200   3              } 
 201   2        
 202   2            P3=0xff; 
 203   2            P3_7=0; 
 204   2            temp=P3; 
 205   2            temp=temp & 0x0f; 
 206   2            if (temp!=0x0f) 
 207   2              { 
 208   3                for(i=50;i>0;i--) 
 209   3                for(j=200;j>0;j--); 
 210   3                temp=P3; 
 211   3                temp=temp & 0x0f; 
 212   3                if (temp!=0x0f) 
 213   3                  { 
 214   4                    temp=P3; 
 215   4                    temp=temp & 0x0f;              
 216   4                    switch(temp) 
 217   4                      { 
 218   5                        case 0x0e: 
 219   5                          key=15; 
 220   5                          break; 
 221   5                        case 0x0d: 
 222   5                          key=14; 
 223   5                          break; 
 224   5                        case 0x0b: 
 225   5                          key=13; 
 226   5                          break; 
 227   5                        case 0x07: 
 228   5                          key=12; 
 229   5                          break; 
 230   5                      } 
 231   4                    if ((key>=0) && (key<10)) 
 232   4                    { 
 233   5                     
 234   5                      if(keypos<8) 
 235   5                        { 
 236   6                          change(dispbuf,keypos); 
 237   6                          dispbuf[0]=key; 
 238   6                        } 
 239   5                        else 
 240   5                          { 
 241   6                            keypos=8; 
C51 COMPILER V8.02   COUNTER                                                               08/21/2007 14:59:13 PAGE 5   

 242   6                            alarmflag=1; 
 243   6                          } 
 244   5                                               keypos++; 
 245   5                    } 
 246   4                    temp=P3; 
 247   4                    P1_0=~P1_0; 
 248   4                    temp=temp & 0x0f;              
 249   4                    while(temp!=0x0f) 
 250   4                      { 
 251   5                        temp=P3; 
 252   5                        temp=temp & 0x0f;              
 253   5                      } 
 254   4                    alarmflag=0; 
 255   4                  } 
 256   3              } 
 257   2        
 258   2          } 
 259   1      } 
 260            
 261          void t0(void) interrupt 1 using 0 
 262          { 
 263   1        TH0=(65536-1000) / 256; 
 264   1        TL0=(65536-1000) % 256; 
 265   1        P0=0xff;
 266   1        P2=dispcode[dispbuf[dispbitcount]]; 
 267   1        P0=dispbitcode[dispbitcount]; 
 268   1        dispbitcount++; 
 269   1        if (dispbitcount==8) 
 270   1          { 
 271   2            dispbitcount=0; 
 272   2          } 
 273   1        if (alarmflag==1) 
 274   1          { 
 275   2            P1_0=~P1_0; 
 276   2          } 
 277   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    702    ----
   CONSTANT SIZE    =     25    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     14       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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