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

📄 lock.lst

📁 电子密码锁毕业设计
💻 LST
字号:
C51 COMPILER V9.01   LOCK                                                                  06/09/2012 21:36:37 PAGE 1   


C51 COMPILER V9.01, 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 "reg51.h"
   2          
   3          #include "lcd1602.c"
   4          
   5          #include "keydriver.c"
   6          sbit P3_0=P3^0;
   7          sbit P3_3=P3^3;
   8          //sbit P3_0=P3^0;
   9          unsigned char count,i;
  10          unsigned char a[10];
  11          
  12          
  13          unsigned char password[4][10]={1,2,3,4,5,6,7,8,9,0,
  14                                                                                  2,4,5,6,7,8,2,3,4,7,
  15                                                                                  4,5,6,3,2,1,1,7,8,9,
  16                                                                                  0,9,8,7,6,5,4,3,2,1};
  17          
  18          //报告结果
  19          void  report(unsigned char flag)
  20          {
  21   1              a[10]=0;
  22   1              if(flag==0)
  23   1              {       
  24   2                      printf_char(1,10,"right%d") ;
  25   2                      P3_0=0;
  26   2                  delay(60000);delay(60000);
  27   2                                      
  28   2                      P3_0=1;
  29   2                      LCD_CLR();
  30   2              }
  31   1              else
  32   1              {
  33   2                      printf_char(1,10,"error%d") ;
  34   2                      if(count>=3)
  35   2                              P3_3=1;
  36   2                                      
  37   2                      delay(60000);delay(60000);      
  38   2                      P3_3=0; 
  39   2                      LCD_CLR();      
  40   2              }
  41   1      }
  42          //回删键
  43          void del(void)
  44          {
  45   1              if(i==0)
  46   1                      return;
  47   1              else 
  48   1              {  
  49   2                      a[i]='\0';
  50   2                      printf_char(2,i," %d"); 
  51   2                      i--;                            
  52   2              }       
  53   1      }
  54          //改密码
  55          void ch_word(void)
C51 COMPILER V9.01   LOCK                                                                  06/09/2012 21:36:37 PAGE 2   

  56          {
  57   1              unsigned char recieve=0xff,b[10],j=0;
  58   1              LCD_CLR();
  59   1              printf_char(1,1,"new_password%d");
  60   1              while(recieve!=11)
  61   1              {       
  62   2                      recieve=keypad();
  63   2                      delay(10000);
  64   2                      if(recieve<=9&&recieve>=0)
  65   2                      {
  66   3                              b[j]=recieve;                   
  67   3                              printf_data(2,j+1,1,recieve);
  68   3                              j++;
  69   3                      }
  70   2                      else if(recieve==12)
  71   2                      {
  72   3                              if(j!=0)                        
  73   3                              {  
  74   4                                      a[j]='\0';
  75   4                                      printf_char(2,j," %d"); 
  76   4                                      j--;                            
  77   4                              }
  78   3                      }                                       
  79   2              }
  80   1              LCD_CLR();
  81   1              if(j==6)
  82   1              {
  83   2                      for(j=0;j<6;j++)
  84   2                              password[0][j]=b[j];
  85   2                      printf_char(1,1,"success%d");
  86   2              }
  87   1              else 
  88   1                      printf_char(1,1,"fail%d");
  89   1      
  90   1                      delay(60000); delay(60000);
  91   1              LCD_CLR();      
  92   1      }
  93          //功能
  94          void menu(void)
  95          {
  96   1              //unsigned char recieve;
  97   1              unsigned char number=0;
  98   1              unsigned char key_value=100;
  99   1              unsigned char ERROR=3;
 100   1              unsigned char j=0;
 101   1              for(;;)
 102   1              {
 103   2                      
 104   2                  number=keypad();                      
 105   2                      key_value=number;
 106   2                      while(number!=0XFF)
 107   2                              number=keypad();
 108   2                              
 109   2                      printf_char(1,1,"welcome%d");
 110   2                                                
 111   2                      if(key_value<=9&&key_value>=0&&i<6)
 112   2                      {               
 113   3                              a[i]=key_value;                         
 114   3                              printf_char(2,i+1,"*%d");         
 115   3                              i++;         
 116   3                  } 
 117   2                      else if(key_value==11)
C51 COMPILER V9.01   LOCK                                                                  06/09/2012 21:36:37 PAGE 3   

 118   2                      {
 119   3                              for(i=0;i<6;i++)
 120   3                              {                                                  
 121   4                                      if(a[i]!=password[0][i]&&a[i]!=password[1][i]&&a[i]!=password[2][i]&&a[i]!=password[3][i])
 122   4                                      {
 123   5                                              ERROR=1;
 124   5                                              count++;
 125   5                                              break;
 126   5                                       }
 127   4                                       else 
 128   4                                       {
 129   5                                              ERROR=0;
 130   5                                              count=0;
 131   5                                       }
 132   4                              }
 133   3                      i=0;
 134   3                      report(ERROR);
 135   3                      }       
 136   2                      else if(key_value==13)
 137   2                      {
 138   3                              LCD_CLR();
 139   3                              a[10]=0;                        
 140   3                      }
 141   2                      else if(key_value==12)
 142   2                                del();
 143   2                      else if(key_value==14)
 144   2                      {
 145   3                                ch_word();
 146   3                      }               
 147   2      
 148   2                        
 149   2              }  
 150   1      }
 151          
 152          void main(void)
 153          {
 154   1               LCD_CLR();
 155   1               LCD_init();
 156   1               while(1)
 157   1                      menu();
 158   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1079    ----
   CONSTANT SIZE    =     82    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     52      34
   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 + -