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

📄 at89c2051单片机密码锁.lst

📁 密码:135790 K1:功能键
💻 LST
字号:
C51 COMPILER V8.02   AT89C2051单芲籣密码薩                                                 08/07/2007 14:49:08 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE AT89C2051单芲籣密码薩
OBJECT MODULE PLACED IN AT89C2051单片机密码锁.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE AT89C2051单片机密码锁.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <at89x51.h>
   2          unsigned char led[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; 
   3          unsigned char password[7]={0,1,3,5,7,9,0};
   4          unsigned char getword[7];
   5          unsigned char count,bitcount;
   6          unsigned char k,wrongcount;
   7          unsigned long ul;
   8          unsigned int n;
   9          bit flag;
  10          void delay10ms(void) 
  11          { 
  12   1              unsigned char i,j; 
  13   1              for(i=20;i>0;i--) 
  14   1              for(j=248;j>0;j--); 
  15   1      } 
  16          void alarmring(void) //输出报警声音
  17          {
  18   1              for(k=0;k<2;k++)
  19   1              {
  20   2                      for(ul=0;ul<1000;ul++)
  21   2                      {
  22   3                              for(n=0;n<80;n++);
  23   3                              P3_7=~P3_7;
  24   3                      }
  25   2                      for(ul=0;ul<800;ul++)
  26   2                      {
  27   3                              for(n=0;n<100;n++); 
  28   3                              P3_7=~P3_7;
  29   3                      }
  30   2              }       
  31   1      }       
  32          void delay3s(void)       //延时程序
  33          {
  34   1              unsigned char i;
  35   1              for(i=3;i>0;i--)
  36   1              {
  37   2                      for(ul=0;ul<1000;ul++)
  38   2                      {
  39   3                              for(n=0;n<80;n++);
  40   3                              P3_4=~P3_4;
  41   3                              if((P3_0==0)||(P3_1)==0)
  42   3                              {
  43   4                                      delay10ms();
  44   4                                      if((P3_0==0)||(P3_1)==0)
  45   4                                      {                               
  46   5                                              i=3;
  47   5                                              alarmring();
  48   5                                      }
  49   4                              }
  50   3                      }
  51   2                      for(ul=0;ul<800;ul++)
  52   2                      {
  53   3                              for(n=0;n<100;n++); 
  54   3                              P3_4=~P3_4;
  55   3                              if((P3_0==0)||(P3_1)==0)
C51 COMPILER V8.02   AT89C2051单芲籣密码薩                                                 08/07/2007 14:49:08 PAGE 2   

  56   3                              {
  57   4                                      delay10ms();
  58   4                                      if((P3_0==0)||(P3_1)==0)
  59   4                                      {                               
  60   5                                              i=3;
  61   5                                              alarmring();
  62   5                                      }
  63   4                              }
  64   3                      }       
  65   2              }
  66   1      }
  67          void rightring(void) //输出叮咚声音
  68          {
  69   1              for(ul=0;ul<800;ul++) 
  70   1              {
  71   2                      for(n=0;n<40;n++); 
  72   2                      P3_7=~P3_7; 
  73   2              }
  74   1              for(ul=0;ul<1000;ul++)
  75   1              {
  76   2                      for(n=0;n<60;n++);
  77   2                      P3_7=~P3_7; 
  78   2              }
  79   1      }
  80          comp(void)                       //密码比较程序
  81          {
  82   1              
  83   1              unsigned char m;
  84   1              for (m=1;m<6;m++)
  85   1              {
  86   2                      if (getword[m]==password[m])
  87   2                              flag = 1;
  88   2                      else
  89   2                      {
  90   3                              flag = 0;
  91   3                              m = 6;
  92   3                              wrongcount++;
  93   3                      }
  94   2              }
  95   1              return(flag);
  96   1      }
  97          void pressring(void) //输出按键声音
  98          {
  99   1              unsigned long c;
 100   1              unsigned int n;
 101   1              for(c=0;c<50;c++)
 102   1              {
 103   2                      for(n=0;n<50;n++); //延时
 104   2                      P3_7=~P3_7; //取反输出到喇叭的信号
 105   2              }
 106   1      }       
 107          void main(void) 
 108          { 
 109   1              bitcount=0;
 110   1              count=0;
 111   1              P3_2=1;
 112   1              P3_3=0;
 113   1              P3_4=0;
 114   1              P3_5=0;
 115   1              P3_7=0;
 116   1              k=0;
 117   1        while(1) 
C51 COMPILER V8.02   AT89C2051单芲籣密码薩                                                 08/07/2007 14:49:08 PAGE 3   

 118   1          {   
 119   2                      if(P3_1==0) 
 120   2                      { 
 121   3                            pressring();
 122   3                                delay10ms(); 
 123   3                            if(P3_1==0) 
 124   3                            { 
 125   4                                 count++; 
 126   4                                 if(count>9) 
 127   4                                 { 
 128   5                                     count=0; 
 129   5                                  } 
 130   4                                  P1=led[count];
 131   4                                  while(P3_1==0);
 132   4                                }
 133   3                       }              
 134   2               if(P3_0==0)
 135   2                       {
 136   3                              pressring();
 137   3                              delay10ms();
 138   3                              if(P3_0==0)
 139   3                              {
 140   4                                      bitcount++;
 141   4                                      if(bitcount<7)
 142   4                                      P1=led[bitcount];                               
 143   4                                      getword[--bitcount]=count;
 144   4                                      bitcount++;
 145   4                                      count=0;                                
 146   4                                      if(bitcount>6)
 147   4                                      {
 148   5                                              
 149   5                                                                              
 150   5                                              bitcount=0;     
 151   5                                              P1=led[bitcount];
 152   5                                              comp();
 153   5                                              if(flag==1)     
 154   5                                              {       
 155   6                                                      k=0;                                            
 156   6                                                      P3_3=~P3_3;
 157   6                                                      P3_2=~P3_2;                     
 158   6                                                      rightring();                                            
 159   6                                              }
 160   5                                              if(flag==0)
 161   5                                              {       
 162   6                                                      alarmring();
 163   6                                                      //k++;
 164   6                                                      if(wrongcount>2)
 165   6                                                      {
 166   7                                                              delay3s();
 167   7                                                      }                                               
 168   6                                              }       
 169   5      
 170   5                                      } 
 171   4                                while(P3_0==0);
 172   4                               } 
 173   3                       }
 174   2                   
 175   2        }
 176   1      }       


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V8.02   AT89C2051单芲籣密码薩                                                 08/07/2007 14:49:08 PAGE 4   

   CODE SIZE        =    789    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     34       5
   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 + -