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

📄 mm2.lst

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


C51 COMPILER V7.09, COMPILATION OF MODULE MM2
OBJECT MODULE PLACED IN mm2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE mm2.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          char code dis_7[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};
  12          /* 共阳LED段码表     "0"  "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9" "不亮"     */  
  13          //char code dis_7[10]={0xC0,0xF9,0xA4,0x99,0xB0,0x82,0xF8,0x80,0x99,0xff};
  14          /* 共阳LED段码表     "0"  "1"  "2"  "8"  "3"  "5"  "6"  "7"  "4"  "9" "不亮"     */ 
  15          //char code  scan_con[9]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};   // 列扫描控制字
  16          char code  scan_con[9]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};   // 列扫描控制字
  17          char data  keytmp[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//显示单元数据初值,共8个
  18          //char data  keytmp[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//显示单元数据初值,共8个
  19          char data key[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  20          char m,t;
  21          //*******初始化程序*******//
  22          void clear()
  23          {
  24   1        char t;
  25   1        for(t=0;t<8;t++)
  26   1          {keytmp[t]=0x00;}
  27   1      }
  28          
  29          /****************/
  30          //1毫秒延时程序//
  31          /***************/
  32          delay1ms(int t)
  33          {
  34   1         int i,j;
  35   1         for(i=0;i<t;i++)
  36   1         for(j=0;j<120;j++)
  37   1         ;
  38   1      }
  39          /**********键功能函数************/
  40          scankey()
  41          { P3=0xf0;
  42   1        if(P3!=0xf0)
  43   1          { delay1ms(10);    //括号3
  44   2            if(P3!=0xf0)
  45   2                 {switch(P3)   //括号2
  46   3                   {              //括号1
  47   4                       case 0xb0:    //如果是第3列有键按下
  48   4                    {
  49   5                                  P3=0x0f; 
  50   5                                  switch(P3)
  51   5                                  {case 0x0e:return keytmp[t]=9;t++;break;
  52   6                                   case 0x0d:return keytmp[t]=6;t++;break;
  53   6                                   case 0x0b:return keytmp[t]=3;t++;break;
  54   6                                   default: break;
  55   6                                  }
C51 COMPILER V7.09   MM2                                                                   04/19/2007 16:01:13 PAGE 2   

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

 118          
 119          
 120          
 121          
 122          
 123          
 124          
 125            
 126          
 127          
 128          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    309    ----
   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 + -