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

📄 main.lst

📁 这里是电子密码锁的全部设计过程
💻 LST
字号:
C51 COMPILER V8.01   MAIN                                                                  03/08/2008 20:16:56 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: G:\keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //作者QQ:497259320
   2          //南阳理工学院
   3          //学习是遗忘的最好的方式
   4          //只花了很少时间写的,有很多不足的算法与编程序方式,见谅!
   5          #include"at89x51.h"
   6          #include"key.h"
   7          #include"lcd.h"
   8          uchar code show_0[]="Please input the password:";
   9          uchar code show_1[]="The cipher is:" ;
  10          uchar code show_2[]="********";
  11          uchar code show_3[]="The password is wrong!";
  12          uchar code show_4[]="This is the last time,";
  13          uchar code show_5[]="Please try it tomorrow!";
  14          uchar code show_6[]="you are right!";
  15          uchar code show_7[]="Please input the new cipher:";
  16          uchar code show_8[]="Input it again!";
  17          uchar code show_9[]="Establishes successful! ";
  18          uchar code show_10[]="(^_^)";
  19          uchar  init_pswd[]={8,8,8,8,8,8,8,8};
  20          uchar  pswd[8]={0};
  21          uchar  pswd_1[8]={0};
  22          void play(uchar *j,uchar k)       //K是显示的个数,j是地址
  23          {
  24   1         uchar  i;
  25   1         for(i=0;i<k;i++)
  26   1         {
  27   2          dat_w(*(j+i));
  28   2              delay(20);
  29   2         }
  30   1      }
  31          main()
  32          {
  33   1        uchar j=0,i=0,sum_1=0;
  34   1        loop:init();
  35   1        clear();
  36   1        gotoxy(1,0);
  37   1        play(show_0,16);
  38   1        gotoxy(2,0);
  39   1        play(show_0+17,10);
  40   1        /****密码输入****/
  41   1        do
  42   1        {
  43   2          key();
  44   2        }
  45   1        while(ki!=15);
  46   1        clear();
  47   1        gotoxy(1,0);
  48   1        play(show_1,15);
  49   1        do
  50   1        {
  51   2          flag=0;
  52   2          key();
  53   2              gotoxy(2,0);
  54   2              if(flag==1&&ki<=9)
  55   2               {
C51 COMPILER V8.01   MAIN                                                                  03/08/2008 20:16:56 PAGE 2   

  56   3                pswd[i]=ki;
  57   3                play(show_2,i);
  58   3                i++;
  59   3               }
  60   2              if(ki==14)      //14则退出.
  61   2                break;
  62   2         }    
  63   1         while(i<=8);
  64   1         for(i=0;i<=7;i++)
  65   1         {
  66   2           sum_1=init_pswd[i]-pswd[i]+sum_1;
  67   2           if(sum_1!=0)
  68   2               {
  69   3                 clear();
  70   3                 j++;
  71   3                 if(j==3)
  72   3                 {
  73   4                  clear();
  74   4                  gotoxy(1,0);
  75   4                  play(show_4,16);
  76   4                      gotoxy(2,0);
  77   4                      play(show_4+16,14);
  78   4                      delay(500);
  79   4                      delay(500);
  80   4                      clear();
  81   4                      gotoxy(1,0);
  82   4                      play(show_5+7,16);
  83   4                      gotoxy(2,5);
  84   4                      play(show_10,5);
  85   4                  while(1);   //三次输入密码失败,自锁
  86   4                 }
  87   3                 gotoxy(1,0);
  88   3                 play(show_3,16);
  89   3                 gotoxy(2,5);
  90   3                 play(show_3+15,7);
  91   3                 delay(500);
  92   3                 clear();
  93   3                 gotoxy(1,0);
  94   3                 play(show_8,15);
  95   3                 goto loop;
  96   3                }
  97   2                if(sum_1==0) 
  98   2                {
  99   3                 
 100   3                 clear();
 101   3                 gotoxy(1,0);
 102   3                 play(show_6,15);
 103   3                 do
 104   3                 {
 105   4                 key();
 106   4                 }
 107   3                 while(ki!=13);
 108   3                 loop1:clear();
 109   3                 gotoxy(1,0);
 110   3                 play(show_7,13);
 111   3                 gotoxy(2,0);
 112   3                 play(show_7+13,15);
 113   3                 /****第一次输密码***/
 114   3                 i=0;
 115   3                  do
 116   3                  {
 117   4                        flag=0;
C51 COMPILER V8.01   MAIN                                                                  03/08/2008 20:16:56 PAGE 3   

 118   4                key();
 119   4                        if(flag==1&&ki<=9)
 120   4                    {
 121   5                     pswd[i]=ki;
 122   5                         i++;
 123   5                         clear();
 124   5                         gotoxy(1,0);
 125   5                         play(show_2,i);
 126   5                         }
 127   4                       }while(i<=7);
 128   3                       clear();
 129   3                       gotoxy(1,0);
 130   3                   play(show_8,15);
 131   3                 /***第二次输密码****/
 132   3                       i=0;
 133   3                       sum_1=0;
 134   3                  do
 135   3                  {
 136   4                        flag=0;
 137   4                key();
 138   4                        if(flag==1&&ki<=9)
 139   4                    {
 140   5                     pswd_1[i]=ki;
 141   5                         i++;
 142   5                         clear();
 143   5                         gotoxy(1,0);
 144   5                         play(show_2,i);
 145   5                         }
 146   4                       }
 147   3                       while(i<=7);
 148   3                       for(i=0;i<=7;i++)
 149   3                        {
 150   4                         sum_1=sum_1+ pswd_1[i]-pswd[i];
 151   4                         }
 152   3                       if(sum_1==0)
 153   3                         {
 154   4                          clear();
 155   4                              gotoxy(1,2);
 156   4                              play(show_9,12);
 157   4                              gotoxy(2,2);
 158   4                              play(show_9+13,11);
 159   4                              for(i=0;i<=7;i++)
 160   4                              {
 161   5                              init_pswd[i]=pswd[1];
 162   5                               }
 163   4                              while(1);
 164   4                         }
 165   3                       if(sum_1!=0)
 166   3                         {
 167   4                           clear();
 168   4                           goto loop1;
 169   4                         }
 170   3                }       
 171   2          } 
 172   1                 
 173   1               
 174   1       }  
 175            
 176            
 177            


C51 COMPILER V8.01   MAIN                                                                  03/08/2008 20:16:56 PAGE 4   

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