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

📄 mm.lst

📁 KEIL开发的密码锁 源程序,已经通过PROTEUS软件的仿真测试
💻 LST
字号:
C51 COMPILER V7.09   MM                                                                    04/19/2007 10:31:59 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE MM
OBJECT MODULE PLACED IN mm.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE mm.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*********************************************************************/
   2          //            
   3          //                       自动报警控制
   4          //                    ancleyan 2007.04.17      
   5          /*********************************************************************/
   6          //使用AT89C51单片机,12MHZ晶振,P1口输入,P2口作列扫描,p3数据输出,用共阳LED数码管
   7          
   8          #include"reg51.h"
   9          #define char unsigned char
  10          //
  11          
  12          
  13          char code dis_7[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};
  14          /* 共阳LED段码表     "0"  "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9" "不亮"     */  
  15          //char code dis_7[10]={0xC0,0xF9,0xA4,0x99,0xB0,0x82,0xF8,0x80,0x99,0xff};
  16          /* 共阳LED段码表     "0"  "1"  "2"  "8"  "3"  "5"  "6"  "7"  "4"  "9" "不亮"     */ 
  17                        
  18          
  19          
  20          
  21          //char code  scan_con[9]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};   // 列扫描控制字
  22          char code  scan_con[9]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};   // 列扫描控制字
  23          
  24          char data  keytmp[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//显示单元数据初值,共8个
  25          //char data  keytmp[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//显示单元数据初值,共8个
  26          char data key[8]={0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  27          char m,t;
  28          //*******初始化程序*******//
  29          void clear()
  30          {
  31   1        char t;
  32   1        for(t=0;t<8;t++)
  33   1          {keytmp[t]=0x00;}
  34   1      }
  35          
  36          /****************/
  37          //1毫秒延时程序//
  38          /***************/
  39          delay1ms(int t)
  40          {
  41   1         int i,j;
  42   1         for(i=0;i<t;i++)
  43   1         for(j=0;j<120;j++)
  44   1         ;
  45   1      }
  46          /**********键功能函数************/
  47          scankey()
  48          { P3=0xf0;
  49   1        if(P3!=0xf0)
  50   1          { delay1ms(20);
  51   2            if(P3!=0xf0)
  52   2                 {switch(P3)
  53   3                   {case 0xb0:    //如果是第3列有键按下
  54   4                  
  55   4                                P3=0x0f; 
C51 COMPILER V7.09   MM                                                                    04/19/2007 10:31:59 PAGE 2   

  56   4                                switch(P3)
  57   4                                {case 0x0e:keytmp[t]=9;t++;break;
  58   5                                 case 0x0d:keytmp[t]=6;t++;break;
  59   5                                 case 0x0b:keytmp[t]=3;t++;break;
  60   5                                 default: break;
  61   5                                 };
  62   4                                break;
  63   4                              
  64   4                       case 0xd0:  //如果是第2列有键按下
  65   4                         
  66   4                                P3=0x0f; 
  67   4                                switch(P3)
  68   4                                {case 0x0e:keytmp[t]=8;t++;break;
  69   5                                 case 0x0d:keytmp[t]=5;t++;break;
  70   5                                 case 0x0b:keytmp[t]=2;t++;break;
  71   5                                 default: break;
  72   5                                      };
  73   4                                break;
  74   4                         
  75   4                       case 0xe0:  //如果是第1行有键按下
  76   4                  
  77   4                                P3=0x0f; 
  78   4                                switch(P3)
  79   4                                {case 0x0e:keytmp[t]=7;t++;break;
  80   5                                 case 0x0d:keytmp[t]=4;t++;break;
  81   5                                 case 0x0b:keytmp[t]=1;t++;break;
  82   5                                 default: break;
  83   5                      };
  84   4                                break;
  85   4                              
  86   4                        default: break;
  87   4                       }
  88   3                       }
  89   2           }
  90   1               
  91   1      }               
  92          //*****数码管扫描函数*********//
  93          void scan_7(void)
  94          {
  95   1        char j;
  96   1        for(j=0;j<=8;j++)
  97   1          {
  98   2           P2=scan_con[keytmp[j]];
  99   2           P0=dis_7[keytmp[j]];
 100   2           //delay1ms(100);
 101   2          }
 102   1      }
 103          //*****密码验证程序*********//
 104          void password(void)
 105          {
 106   1        char t;
 107   1        for(t=0;t<=8;t++)
 108   1          {
 109   2                if(keytmp[t]!=key[t])
 110   2              {P1=0;}
 111   2            else
 112   2              {P1=0;}
 113   2          }
 114   1      }    
 115          //*******主程序*******//
 116          void main()
 117          { 
C51 COMPILER V7.09   MM                                                                    04/19/2007 10:31:59 PAGE 3   

 118   1        while(1)
 119   1        {
 120   2        //if(P1^0==1)    {clear();}
 121   2        
 122   2        scankey();
 123   2        scan_7();
 124   2        delay1ms(1);
 125   2        //password();
 126   2        }
 127   1      }
 128          
 129          
 130          
 131          
 132          
 133          
 134          
 135          
 136          
 137          
 138          
 139          
 140          
 141          
 142          
 143          
 144            
 145          
 146          
 147          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    298    ----
   CONSTANT SIZE    =     20    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     18    ----
   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 + -