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

📄 lock.lst

📁 密码锁的设计,单片机初学者必须程序,适用于proteus
💻 LST
字号:
C51 COMPILER V8.02   LOCK                                                                  08/23/2007 14:41:14 PAGE 1   


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

line level    source

   1          #include <AT89X52.H> 
   2            
   3          unsigned char code ps[]={1,2,3,4,5}; 
   4          unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 
   5                                   0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40}; 
   6          unsigned char pslen=9; 
   7          unsigned char templen; 
   8          unsigned char digit; 
   9          unsigned char funcount; 
  10          unsigned char digitcount; 
  11          unsigned char psbuf[9]; 
  12          bit cmpflag; 
  13          bit hibitflag; 
  14          bit errorflag; 
  15          bit rightflag; 
  16          unsigned int second3; 
  17          unsigned int aa; 
  18          unsigned int bb; 
  19          bit alarmflag; 
  20          bit exchangeflag; 
  21          unsigned int cc; 
  22          unsigned int dd; 
  23          bit okflag; 
  24          unsigned char oka; 
  25          unsigned char okb; 
  26            
  27          void main(void) 
  28          { 
  29   1        unsigned char i,j; 
  30   1        
  31   1        P2=dispcode[digitcount]; 
  32   1        TMOD=0x01; 
  33   1        TH0=(65536-500)/256; 
  34   1        TL0=(65536-500)%256; 
  35   1        TR0=1; 
  36   1        ET0=1; 
  37   1        EA=1; 
  38   1        
  39   1        while(1) 
  40   1          { 
  41   2            if(cmpflag==0) 
  42   2              { 
  43   3                if(P3_6==0) //function key 
  44   3                  { 
  45   4                    for(i=10;i>0;i--) 
  46   4                    for(j=248;j>0;j--); 
  47   4                    if(P3_6==0) 
  48   4                      { 
  49   5                        if(hibitflag==0)        
  50   5                          { 
  51   6                            funcount++; 
  52   6                                if(funcount==pslen+2)  
  53   6                               {
  54   7                                funcount=0; 
  55   7                                cmpflag=1; 
C51 COMPILER V8.02   LOCK                                                                  08/23/2007 14:41:14 PAGE 2   

  56   7                               } 
  57   6                             P1=dispcode[funcount];  
  58   6                          } 
  59   5                          else 
  60   5                            { 
  61   6                               second3=0; 
  62   6                            } 
  63   5                        while(P3_6==0); 
  64   5                      } 
  65   4                 } 
  66   3        
  67   3                if(P3_7==0) //digit key 
  68   3                  { 
  69   4                    for(i=10;i>0;i--) 
  70   4                    for(j=248;j>0;j--); 
  71   4                    if(P3_7==0) 
  72   4                      { 
  73   5                        if(hibitflag==0) 
  74   5                          { 
  75   6                            digitcount++;                      
  76   6                            if(digitcount==10) 
  77   6                              { 
  78   7                                digitcount=0; 
  79   7                              } 
  80   6                            P2=dispcode[digitcount]; 
  81   6                            if(funcount==1) 
  82   6                              { 
  83   7                                pslen=digitcount; 
  84   7                                templen=pslen; 
  85   7                              } 
  86   6                              else if(funcount>1) 
  87   6                                { 
  88   7                                  psbuf[funcount-2]=digitcount; 
  89   7                                } 
  90   6                          } 
  91   5                          else 
  92   5                            { 
  93   6                              second3=0; 
  94   6                            } 
  95   5                        while(P3_7==0); 
  96   5                      }               
  97   4                 } 
  98   3            }
  99   2            else 
 100   2                 { 
 101   3                  cmpflag=0; 
 102   3                  for(i=0;i<pslen;i++) 
 103   3                    { 
 104   4                      if(ps[i]!=psbuf[i]) 
 105   4                        { 
 106   5                          hibitflag=1; 
 107   5                          i=pslen; 
 108   5                          errorflag=1; 
 109   5                          rightflag=0; 
 110   5                          cmpflag=0; 
 111   5                          second3=0; 
 112   5                          goto a; 
 113   5                        } 
 114   4                    } 
 115   3                  cc=0; 
 116   3                  errorflag=0; 
 117   3                  rightflag=1; 
C51 COMPILER V8.02   LOCK                                                                  08/23/2007 14:41:14 PAGE 3   

 118   3                  hibitflag=0; 
 119   3      a:          cmpflag=0; 
 120   3                 }
 121   2             
 122   2          }
 123   1      } 
 124            
 125          void t0(void) interrupt 1 using 0 
 126          { 
 127   1        TH0=(65536-500)/256; 
 128   1        TL0=(65536-500)%256; 
 129   1        
 130   1        if((errorflag==1) && (rightflag==0)) 
 131   1          { 
 132   2            bb++; 
 133   2            if(bb==800) 
 134   2              { 
 135   3                bb=0; 
 136   3                alarmflag=~alarmflag; 
 137   3              } 
 138   2            if(alarmflag==1) 
 139   2              { 
 140   3                P0_0=~P0_0; 
 141   3              } 
 142   2        
 143   2            aa++; 
 144   2            if(aa==800) 
 145   2              { 
 146   3                aa=0; 
 147   3                P0_1=~P0_1; 
 148   3              } 
 149   2            second3++; 
 150   2            if(second3==6400) 
 151   2              { 
 152   3                second3=0; 
 153   3                hibitflag=0; 
 154   3                errorflag=0; 
 155   3                rightflag=0; 
 156   3                cmpflag=0; 
 157   3                P0_1=1; 
 158   3                alarmflag=0; 
 159   3                bb=0; 
 160   3                aa=0; 
 161   3              } 
 162   2          } 
 163   1        
 164   1        if((errorflag==0) && (rightflag==1)) 
 165   1          { 
 166   2            P0_1=0; 
 167   2            cc++; 
 168   2            if(cc<1000) 
 169   2              { 
 170   3                okflag=1; 
 171   3              } 
 172   2              else if(cc<2000) 
 173   2                { 
 174   3                  okflag=0; 
 175   3                } 
 176   2                else 
 177   2                  { 
 178   3                    errorflag=0; 
 179   3                    rightflag=0; 
C51 COMPILER V8.02   LOCK                                                                  08/23/2007 14:41:14 PAGE 4   

 180   3                    hibitflag=0; 
 181   3                    cmpflag=0; 
 182   3                    P0_1=1; 
 183   3                    cc=0; 
 184   3                    oka=0; 
 185   3                    okb=0; 
 186   3                    okflag=0; 
 187   3                    P0_0=1; 
 188   3                  } 
 189   2            if(okflag==1) 
 190   2              { 
 191   3                oka++; 
 192   3                if(oka==2) 
 193   3                  { 
 194   4                    oka=0; 
 195   4                    P0_0=~P0_0; 
 196   4                  } 
 197   3              } 
 198   2            else 
 199   2                { 
 200   3                  okb++; 
 201   3                  if(okb==3) 
 202   3                    { 
 203   4                      okb=0; 
 204   4                      P0_0=~P0_0; 
 205   4                    } 
 206   3                } 
 207   2          } 
 208   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    443    ----
   CONSTANT SIZE    =     17    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     26    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      7    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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