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

📄 main.lst

📁 《Proteus在MCS-51&ARM7系统中的应用百例》逆向之 Chapter 8 《Proteus在MCS-51&ARM7系统中的应用百例》MCS-51例子的C语言版本。 最
💻 LST
字号:
C51 COMPILER V8.08   MAIN                                                                  05/22/2007 11:48:59 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil 8.08\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          typedef unsigned char BYTE;
   3          
   4          sbit P10=P1^0;
   5          sbit P17=P1^7;
   6          
   7          sbit P20=P2^0;
   8          sbit P21=P2^1;
   9          sbit P22=P2^2;
  10          sbit P23=P2^3;
  11          sbit P24=P2^4;
  12          sbit P25=P2^5;
  13          sbit P26=P2^6;
  14          sbit P27=P2^7;
  15          
  16          sbit P30=P3^0;
  17          sbit P31=P3^1;
  18          sbit P32=P3^2;
  19          sbit P33=P3^3;
  20          sbit P34=P3^4;
  21          sbit P35=P3^5;
  22          sbit P36=P3^6;
  23          sbit P37=P3^7;
  24          
  25          
  26          BYTE LED_BIT_1;
  27          BYTE LED_BIT_2;
  28          BYTE LED_BIT_3;
  29          BYTE LED_BIT_4;
  30          BYTE LED_BIT_5;
  31          BYTE LED_BIT_6;
  32          BYTE LED_BIT_7;
  33          BYTE LED_BIT_8;
  34          
  35          BYTE WORD_1;
  36          BYTE WORD_2;
  37          BYTE WORD_3;
  38          BYTE WORD_4;
  39          BYTE WORD_5;
  40          BYTE WORD_6;
  41          
  42          BYTE KEY_1;
  43          BYTE KEY_2;
  44          BYTE KEY_3;
  45          BYTE KEY_4;
  46          BYTE KEY_5;
  47          BYTE KEY_6;
  48          
  49          BYTE CNT_A;
  50          BYTE CNT_B;
  51          BYTE KEY_CNT;
  52          BYTE LINE;
  53          BYTE ROW;
  54          BYTE VAL;
  55          
C51 COMPILER V8.08   MAIN                                                                  05/22/2007 11:48:59 PAGE 2   

  56          void INT_T0();
  57          void SHIFTL();
  58          void SHIFTR();
  59          void DISP();
  60          void DLY_S();
  61          void DLY_L();
  62          void ALARM_1();
  63          void ALARM_2();
  64          
  65          
  66          
  67          main()
  68          {
  69   1      START:
  70   1              CNT_A=0x00;
  71   1              CNT_B=0x00;
  72   1              KEY_CNT=0x00;
  73   1              LINE=0x00;
  74   1              ROW=0x00;
  75   1              VAL=0x00;
  76   1              P10=1;
  77   1              
  78   1              LED_BIT_1=0x00;
  79   1              LED_BIT_2=0x00;
  80   1              LED_BIT_3=0x00;
  81   1              LED_BIT_4=0x00;
  82   1              LED_BIT_5=0x00;
  83   1              LED_BIT_6=0x00;
  84   1              LED_BIT_7=0x79;
  85   1              LED_BIT_8=0x73;
  86   1      
  87   1              KEY_1=0x00;
  88   1              KEY_2=0x00;
  89   1              KEY_3=0x00;
  90   1              KEY_4=0x00;
  91   1              KEY_5=0x00;
  92   1              KEY_6=0x00;
  93   1      
  94   1              WORD_1=6;
  95   1              WORD_2=5;
  96   1              WORD_3=4;
  97   1              WORD_4=3;
  98   1              WORD_5=2;
  99   1              WORD_6=1;
 100   1      
 101   1              TMOD=1;
 102   1              TH0=(65536-700)/256;
 103   1              TL0=(65536-700)%256;
 104   1              IE=0x82;
 105   1      A0:
 106   1              while(1)
 107   1              {
 108   2                      DISP();
 109   2                      P3=0xF0;
 110   2      
 111   2                      if(P30)
 112   2                      {
 113   3                              DLY_S();
 114   3                              if(P30)
 115   3                              {
 116   4                                      LINE=0x00;      break;
 117   4                              }
C51 COMPILER V8.08   MAIN                                                                  05/22/2007 11:48:59 PAGE 3   

 118   3                      }
 119   2                      else if(P31)
 120   2                      {
 121   3                              DLY_S();
 122   3                              if(P31)
 123   3                              {
 124   4                                      LINE=0x01;      break;
 125   4                              }
 126   3                      }
 127   2                      else if(P32)
 128   2                      {
 129   3                              DLY_S();
 130   3                              if(P32)
 131   3                              {
 132   4                                      LINE=0x02;      break;
 133   4                              }
 134   3                      }
 135   2                      else if(P33)
 136   2                      {
 137   3                              DLY_S();
 138   3                              if(P33)
 139   3                              {
 140   4                                      LINE=0x03;      break;
 141   4                              }
 142   3                      }
 143   2              }//end while
 144   1      
 145   1              while(1)
 146   1              {
 147   2                      P3=0x0F;
 148   2                      if(P34)
 149   2                      {
 150   3                              ROW=0x00;       break;          
 151   3                      }
 152   2                      else if(P35)
 153   2                      {
 154   3                              ROW=0x01;       break;  
 155   3                      }
 156   2                      else if(P36)
 157   2                      {
 158   3                              ROW=0x02;       break;
 159   3                      }
 160   2              }
 161   1      
 162   1              VAL=LINE*3+ROW;
 163   1      
 164   1              if(VAL==0x0A)
 165   1              {
 166   2                      if(KEY_CNT==0x00)
 167   2                      {
 168   3                              ALARM_1();
 169   3                              goto START;
 170   3                      }
 171   2                      else 
 172   2                      {
 173   3                              SHIFTR();
 174   3                              KEY_CNT--;
 175   3                              
 176   3                              while(1)
 177   3                              {
 178   4                                      DISP();
 179   4                                      if(P3==0x0F||P3==0xF0)
C51 COMPILER V8.08   MAIN                                                                  05/22/2007 11:48:59 PAGE 4   

 180   4                                              goto A0;
 181   4                              }       
 182   3                      }
 183   2              }
 184   1              else 
 185   1              {
 186   2                      if(VAL==0x0B)
 187   2                      {
 188   3                              if(KEY_CNT==0x06)
 189   3                              {
 190   4                                      if(WORD_1==KEY_1&&WORD_2==KEY_2&&
 191   4                                         WORD_3==KEY_3&&WORD_4==KEY_4&&
 192   4                                         WORD_5==KEY_5&&WORD_6==KEY_6)
 193   4                                      {
 194   5                                              P10=~P10;
 195   5                                              DLY_L();
 196   5                                       //     LJMP    FINI
 197   5                                      }
 198   4                                      else
 199   4                                      {
 200   5                                              ALARM_2();
 201   5                                              goto START;     
 202   5                                      }       
 203   4                              }
 204   3                              else
 205   3                              {
 206   4                                      ALARM_1();
 207   4                                      goto START;
 208   4                              }
 209   3                      }
 210   2                      else 
 211   2                      {
 212   3                              KEY_CNT++;
 213   3                              if(KEY_CNT==0x07)
 214   3                              {
 215   4                                      ALARM_1();
 216   4      
 217   4                                      while(1)
 218   4                                      {
 219   5                                              DISP();
 220   5                                              if(P3==0x0F||P3==0xF0)
 221   5                                                      goto START;     
 222   5                                      }
 223   4                              }
 224   3                              else
 225   3                              {
 226   4                                      SHIFTL();
 227   4      
 228   4                                      while(1)
 229   4                                      {
 230   5                                              DISP();
 231   5                                              if(P3==0x0F||P3==0xF0)
 232   5                                                      goto A0;        
 233   5                                      }
 234   4                              }       
 235   3                      }       
 236   2              }
 237   1              
 238   1      }
 239          
 240          
 241          void INT_T0() interrupt 1
C51 COMPILER V8.08   MAIN                                                                  05/22/2007 11:48:59 PAGE 5   

 242          {
 243   1              P17=~P17;
 244   1              TH0=(65536-700)/256;
 245   1              TL0=(65536-700)%256;
 246   1              CNT_A++;
 247   1      
 248   1              if(CNT_A==30)
 249   1              {
 250   2                      CNT_A=0;
 251   2      
 252   2                      CNT_B++;
 253   2                      if(CNT_B==20)
 254   2                      {
 255   3                              CNT_A=0;
 256   3                              CNT_B=0;
 257   3                              TR0=0;  
 258   3                      }
 259   2              }
 260   1      } 
 261          
 262          void SHIFTL()
 263          {
 264   1              LED_BIT_6=LED_BIT_5;
 265   1              LED_BIT_5=LED_BIT_4;
 266   1              LED_BIT_4=LED_BIT_3;
 267   1              LED_BIT_3=LED_BIT_2;
 268   1              LED_BIT_2=LED_BIT_1;
 269   1              LED_BIT_1=0x40;
 270   1              KEY_6=KEY_5;
 271   1              KEY_5=KEY_4;
 272   1              KEY_4=KEY_3;
 273   1              KEY_3=KEY_2;
 274   1              KEY_2=KEY_1;
 275   1              KEY_1=VAL;
 276   1      }
 277          
 278          void SHIFTR()
 279          {
 280   1              LED_BIT_1=LED_BIT_2;
 281   1              LED_BIT_2=LED_BIT_3;
 282   1              LED_BIT_3=LED_BIT_4;
 283   1              LED_BIT_4=LED_BIT_5;
 284   1              LED_BIT_5=LED_BIT_6;
 285   1              LED_BIT_6=0x00;
 286   1              KEY_1=KEY_2;
 287   1              KEY_2=KEY_3;
 288   1              KEY_3=KEY_4;
 289   1              KEY_4=KEY_5;
 290   1              KEY_5=KEY_6;
 291   1              KEY_6=0x00;
 292   1      }
 293          
 294          void DISP()
 295          {
 296   1              P27=0;
 297   1              P0=LED_BIT_8;
 298   1              DLY_S();
 299   1              P27=1;
 300   1              
 301   1              P26=0;
 302   1              P0=LED_BIT_7;
 303   1              DLY_S();
C51 COMPILER V8.08   MAIN                                                                  05/22/2007 11:48:59 PAGE 6   

 304   1              P26=1;
 305   1              
 306   1              P25=0;
 307   1              P0=LED_BIT_6;
 308   1              DLY_S();
 309   1              P25=1;
 310   1              
 311   1              P24=0;
 312   1              P0=LED_BIT_5;
 313   1              DLY_S();
 314   1              P24=1;
 315   1              
 316   1              P23=0;
 317   1              P0=LED_BIT_4;
 318   1              DLY_S();
 319   1              P23=1;
 320   1              
 321   1              P22=0;
 322   1              P0=LED_BIT_3;
 323   1              DLY_S();
 324   1              P22=1;
 325   1              
 326   1              P21=0;
 327   1              P0=LED_BIT_2;
 328   1              DLY_S();
 329   1              P21=1;  
 330   1      
 331   1              P20=0;
 332   1              P0=LED_BIT_1;
 333   1              DLY_S();
 334   1              P20=1;
 335   1      }
 336          
 337          void DLY_S()
 338          {
 339   1              BYTE i=10;
 340   1              do
 341   1              {
 342   2                      BYTE j=250;
 343   2                      do
 344   2                      {}while(--j);
 345   2              }while(--i);
 346   1      }
 347          
 348          void DLY_L()
 349          {
 350   1              BYTE i=100;
 351   1              
 352   1              do
 353   1              {
 354   2                      BYTE j=100;
 355   2                      do
 356   2                      {
 357   3                              BYTE k=248;
 358   3                              do
 359   3                              {}while(--k);
 360   3                      }while(--j);
 361   2              }while(--i);
 362   1      }
 363          
 364          void ALARM_1()
 365          {
C51 COMPILER V8.08   MAIN                                                                  05/22/2007 11:48:59 PAGE 7   

 366   1              TR0=1;
 367   1              while(TR0);     
 368   1      }
 369          
 370          void ALARM_2()
 371          {
 372   1              TR0=1;
 373   1              while(TR0);
 374   1              DLY_L();        
 375   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    551    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     26       3
   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 + -