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

📄 lock.lst

📁 keil c 开发平台 51单片机 电子锁
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.00  LOCK                                                                   03/13/2006 09:30:19 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE LOCK
OBJECT MODULE PLACED IN .\lock.OBJ
COMPILER INVOKED BY: d:\Keil_C\C51\BIN\C51.EXE .\lock.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include <at89x51.h>
   2          unsigned char  number[]={10,10,10,10,10,10,10,11};
   3          unsigned char led[]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6,0x10,0xce,0x9c,
   4                               0xce,0x9e,0xec,0xde,0x01,0x8c,0x00};
   5          unsigned char scan[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};
   6          unsigned long num=0;
   7          unsigned char i=0,m=0;
   8          unsigned char oc=0,set=0;
   9          unsigned char key[]={0,0,0,0,0,0,0};
  10          unsigned char num2[]={10,10,10,10,10,10,10};
  11          bit s=0;
  12          
  13          unsigned long  ten (unsigned char n)
  14          {
  15   1         unsigned long tens=1;
  16   1         for(n;n>0;n--)
  17   1         {
  18   2           tens=tens*10;
  19   2         }
  20   1         return tens;
  21   1      }
  22          
  23          void putnum (unsigned char t)
  24          {
  25   1        unsigned char n=t-1;
  26   1        unsigned long num1=num;
  27   1        number[n]=num1/ten(n);
  28   1        for(n;n>0;n--)
  29   1        {
  30   2          number[n-1]=num1%ten(n)/ten(n-1);
  31   2        }
  32   1      }
  33          
  34          void setnum (unsigned char t)
  35          {
  36   1        if (i!=7)
  37   1        {
  38   2           num=num*10+t;   
  39   2               i++;
  40   2               putnum(i);
  41   2        }
  42   1      }
  43          
  44          void time0 (void) interrupt 1
  45          {
  46   1          TH0=(65536-3000)/256;
  47   1          TL0=(65536-3000)%256;  
  48   1          P0=led[number[m]];
  49   1              P2=scan[m];
  50   1              m++;
  51   1              if(m==8) m=0;
  52   1      }
  53          
  54          void delay (void)
  55          {
C51 COMPILER V7.00  LOCK                                                                   03/13/2006 09:30:19 PAGE 2   

  56   1        unsigned char x,y,z;
  57   1        for(x=10;x>0;x--)
  58   1        for(y=10;y>0;y--)
  59   1        for(z=248;z>0;z--);
  60   1      }
  61          
  62          void error (void)
  63          {
  64   1        P1_3=1;
  65   1        number[0]=17;
  66   1        number[1]=17;
  67   1        number[2]=19;
  68   1        number[3]=18;
  69   1        number[4]=0;
  70   1        number[5]=18;
  71   1        number[6]=18;
  72   1        number[7]=14;
  73   1        delay();
  74   1        delay();
  75   1        number[0]=17;
  76   1        number[1]=19;
  77   1        number[2]=17;
  78   1        delay();
  79   1        delay();
  80   1        number[0]=19;
  81   1        number[1]=17;
  82   1        number[2]=17;
  83   1        delay();
  84   1        delay();
  85   1        P1_3=0;
  86   1      }
  87          
  88          void main (void)
  89          {
  90   1       TMOD=0x01;
  91   1       TH0=(65536-3000)/256;
  92   1       TL0=(65536-3000)%256;
  93   1       ET0=1;
  94   1       EA=1;
  95   1       TR0=1;
  96   1       while(1)
  97   1       {
  98   2         P3=0xef;
  99   2         if(P3!=0xef)
 100   2          {
 101   3            delay();
 102   3                if(P3!=0xef)
 103   3                 {
 104   4                   switch (P3)
 105   4                        {
 106   5                     case 0xee:
 107   5                      if(oc==0)
 108   5                                       {
 109   6                                 setnum(0);
 110   6                                       }
 111   5                                       if(oc==1)
 112   5                                        {
 113   6                                          if(set==1)
 114   6                                              {
 115   7                                                setnum(0);
 116   7                                              }
 117   6                                        }
C51 COMPILER V7.00  LOCK                                                                   03/13/2006 09:30:19 PAGE 3   

 118   5                              break;//col1
 119   5                         case 0xed:
 120   5                              if(oc==1)
 121   5                                      {
 122   6                                        if(set==0)
 123   6                                        {
 124   7                                          P1_4=0;
 125   7                                        }
 126   6                                      }
 127   5                              break;//lock open
 128   5                         case 0xeb:
 129   5                              if(oc==1)
 130   5                                      {
 131   6                                        if(set==0)
 132   6                                        {
 133   7                                          P1_4=1;
 134   7                                        }
 135   6                                      }
 136   5                              break;//lock close
 137   5                         case 0xe7:
 138   5                              if(oc==1)
 139   5                                        {
 140   6                                          set=1;
 141   6                                              number[0]=10;
 142   6                                              number[1]=10;
 143   6                                              number[2]=10;
 144   6                                              number[3]=10;
 145   6                                              number[4]=10;
 146   6                                              number[5]=10;
 147   6                                              number[6]=10;
 148   6                                              number[7]=12;
 149   6                                        }
 150   5                              break;//setting key
 151   5                         }
 152   4                 }
 153   3             while(P3!=0xef);
 154   3           }//P3=0xfe row4
 155   2         P3=0xdf;
 156   2         if(P3!=0xdf)
 157   2          {
 158   3            delay();
 159   3                if(P3!=0xdf)
 160   3                 {
 161   4                   switch (P3)
 162   4                        {
 163   5                     case 0xde:
 164   5                      if(oc==0)
 165   5                                       {
 166   6                                 setnum(7);
 167   6                                       }
 168   5                                       if(oc==1)
 169   5                                        {
 170   6                                          if(set==1)
 171   6                                              {
 172   7                                                setnum(7);
 173   7                                              }
 174   6                                        }                   
 175   5                              break;//col1
 176   5                         case 0xdd:
 177   5                      if(oc==0)
 178   5                                       {
 179   6                                 setnum(8);
C51 COMPILER V7.00  LOCK                                                                   03/13/2006 09:30:19 PAGE 4   

 180   6                                       }
 181   5                                       if(oc==1)
 182   5                                        {
 183   6                                          if(set==1)
 184   6                                              {
 185   7                                                setnum(8);
 186   7                                              }
 187   6                                        }
 188   5                              break;
 189   5                         case 0xdb:
 190   5                      if(oc==0)
 191   5                                       {
 192   6                                 setnum(9);
 193   6                                       }
 194   5                                       if(oc==1)
 195   5                                        {
 196   6                                          if(set==1)
 197   6                                              {
 198   7                                                setnum(9);
 199   7                                              }
 200   6                                        }
 201   5                              break;
 202   5                         case 0xd7:
 203   5                              if(oc==1)
 204   5                                      {
 205   6                                        if(set==0)
 206   6                                        {
 207   7                                          number[0]=10;
 208   7                                              number[1]=10;
 209   7                                              number[2]=10;
 210   7                                              number[3]=10;
 211   7                                              number[4]=10;
 212   7                                              number[5]=10;
 213   7                                              number[6]=10;
 214   7                                              number[7]=11;
 215   7                                              i=0;
 216   7                                              num=0;
 217   7                                              oc=0;
 218   7                                        }
 219   6                                        if(set==1)
 220   6                                        {
 221   7                                  number[0]=17;
 222   7                                              number[1]=16;
 223   7                                              number[2]=15;
 224   7                                              number[3]=1;
 225   7                                              number[4]=15;
 226   7                                              number[5]=14;
 227   7                                              number[6]=13;
 228   7                                              number[7]=0;
 229   7                                              i=0;
 230   7                                              num=0;
 231   7                                              set=0;
 232   7                                        }
 233   6                                      }
 234   5                              break;//cancel
 235   5                         }
 236   4                 }
 237   3             while(P3!=0xdf);
 238   3           }//P3=0xde row3
 239   2         P3=0xbf;
 240   2         if(P3!=0xbf)
 241   2          {
C51 COMPILER V7.00  LOCK                                                                   03/13/2006 09:30:19 PAGE 5   

 242   3            delay();
 243   3                if(P3!=0xbf)
 244   3                 {
 245   4                   switch (P3)
 246   4                        {
 247   5                     case 0xbe:
 248   5                      if(oc==0)
 249   5                                       {
 250   6                                 setnum(4);
 251   6                                       }
 252   5                                       if(oc==1)
 253   5                                        {
 254   6                                          if(set==1)

⌨️ 快捷键说明

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