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

📄 键盘检测.lst

📁 很实用的单片机例程
💻 LST
字号:
C51 COMPILER V6.12  _黖__觳_                                                               12/02/2006 20:21:57 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE _黖__觳_
OBJECT MODULE PLACED IN C:\DOCUME~1\LD9149~1.XC-\桌面\51\手册程序\四AEA3~1.矩\键盘检测.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\DOCUME~1\LD9149~1.XC-\桌面\51\手册程序\四AEA3~1.矩\键盘检测.C DB SB OE

stmt level    source

   1          //4*4键盘检测程序,按下键后相应的代码显示在数码管上
   2          #include<reg51.h>
   3          sbit beep=P2^3;
   4          sbit dula=P2^6;
   5          sbit wela=P2^7;
   6                   unsigned char i=100;
   7          unsigned char j,k,temp,key;
   8          void delay(unsigned char i)
   9          {
  10   1        for(j=i;j>0;j--)
  11   1          for(k=125;k>0;k--);
  12   1      }
  13          unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  14                                  0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  15          display(unsigned char num)
  16          {
  17   1               P0=table[num];
  18   1         //    P0=0xff;
  19   1               dula=1;
  20   1               dula=0;
  21   1               P0=0xc0;
  22   1               wela=1;
  23   1               wela=0;
  24   1      }
  25          void main()
  26          {
  27   1        dula=0;
  28   1        wela=0;
  29   1        while(1)
  30   1        {
  31   2          P3=0xfe;
  32   2          temp=P3;
  33   2          temp=temp&0xf0;
  34   2          if(temp!=0xf0)
  35   2          {
  36   3            delay(10);
  37   3            if(temp!=0xf0)
  38   3            {
  39   4              temp=P3;
  40   4              switch(temp)
  41   4              {
  42   5                case 0xee:
  43   5                     key=0;
  44   5                     break;
  45   5      
  46   5                case 0xde:
  47   5                     key=1;
  48   5                     break;
  49   5      
  50   5                case 0xbe:
  51   5                     key=2;
  52   5                     break;
  53   5      
  54   5                case 0x7e:
  55   5                     key=3;
C51 COMPILER V6.12  _黖__觳_                                                               12/02/2006 20:21:57 PAGE 2   

  56   5                     break;
  57   5               }
  58   4               while(temp!=0xf0)
  59   4               {
  60   5                 temp=P3;
  61   5                 temp=temp&0xf0;
  62   5                 beep=0;
  63   5               }
  64   4               beep=1;
  65   4              display(key);
  66   4              // P0=table[key];
  67   4       /*        P0=0xff;
  68   4               dula=1;
  69   4      
  70   4               while(i--);
  71   4               dula=0;
  72   4               P0=0xc0;
  73   4               wela=1;
  74   4               wela=0;
  75   4        dula=0;
  76   4        wela=0;
  77   4        P0=0xff;
  78   4        dula=1;
  79   4        dula=0;
  80   4        P0=0xc5;
  81   4        wela=1;
  82   4        wela=0; */
  83   4               P1=0xfe;
  84   4            }
  85   3          }
  86   2          P3=0xfd;
  87   2          temp=P3;
  88   2          temp=temp&0xf0;
  89   2          if(temp!=0xf0)
  90   2          {
  91   3            delay(10);
  92   3            if(temp!=0xf0)
  93   3            {
  94   4              temp=P3;
  95   4              switch(temp)
  96   4              {
  97   5                case 0xed:
  98   5                     key=4;
  99   5                     break;
 100   5      
 101   5                case 0xdd:
 102   5                     key=5;
 103   5                     break;
 104   5      
 105   5                case 0xbd:
 106   5                     key=6;
 107   5                     break;
 108   5      
 109   5                case 0x7d:
 110   5                     key=7;
 111   5                     break;
 112   5               }
 113   4               while(temp!=0xf0)
 114   4               {
 115   5                 temp=P3;
 116   5                 temp=temp&0xf0;
 117   5                 beep=0;
C51 COMPILER V6.12  _黖__觳_                                                               12/02/2006 20:21:57 PAGE 3   

 118   5               }
 119   4               beep=1;
 120   4               display(key);
 121   4      /*         P0=table[key];
 122   4               dula=1;
 123   4            //   while(100--);
 124   4               dula=0;
 125   4               P0=0xc0;
 126   4               wela=1;
 127   4               wela=0;
 128   4        */       P1=0xfc;
 129   4            }
 130   3            }
 131   2          P3=0xfb;
 132   2          temp=P3;
 133   2          temp=temp&0xf0;
 134   2          if(temp!=0xf0)
 135   2          {
 136   3            delay(10);
 137   3            if(temp!=0xf0)
 138   3            {
 139   4              temp=P3;
 140   4              switch(temp)
 141   4              {
 142   5                case 0xeb:
 143   5                     key=8;
 144   5                     break;
 145   5      
 146   5                case 0xdb:
 147   5                     key=9;
 148   5                     break;
 149   5      
 150   5                case 0xbb:
 151   5                     key=10;
 152   5                     break;
 153   5      
 154   5                case 0x7b:
 155   5                     key=11;
 156   5                     break;
 157   5               }
 158   4               while(temp!=0xf0)
 159   4               {
 160   5                 temp=P3;
 161   5                 temp=temp&0xf0;
 162   5                 beep=0;
 163   5               }
 164   4               beep=1;
 165   4              display(key);
 166   4           /*    P0=table[key];
 167   4               dula=1;
 168   4            //   while(100--);
 169   4               dula=0;
 170   4               P0=0xc0;
 171   4               wela=1;
 172   4               wela=0;
 173   4          */     P1=0xf8;
 174   4            }
 175   3            }
 176   2          P3=0xf7;
 177   2          temp=P3;
 178   2          temp=temp&0xf0;
 179   2          if(temp!=0xf0)
C51 COMPILER V6.12  _黖__觳_                                                               12/02/2006 20:21:57 PAGE 4   

 180   2          {
 181   3            delay(10);
 182   3            if(temp!=0xf0)
 183   3            {
 184   4              temp=P3;
 185   4              switch(temp)
 186   4              {
 187   5                case 0xe7:
 188   5                     key=12;
 189   5                     break;
 190   5      
 191   5                case 0xd7:
 192   5                     key=13;
 193   5                     break;
 194   5      
 195   5                case 0xb7:
 196   5                     key=14;
 197   5                     break;
 198   5      
 199   5                case 0x77:
 200   5                     key=15;
 201   5                     break;
 202   5               }
 203   4               while(temp!=0xf0)
 204   4               {
 205   5                 temp=P3;
 206   5                 temp=temp&0xf0;
 207   5                 beep=0;
 208   5               }
 209   4               beep=1;
 210   4              display(key);
 211   4        /*       P0=table[key];
 212   4               dula=1;
 213   4         //      while(100--);
 214   4               dula=0;
 215   4               P0=0xc0;
 216   4               wela=1;
 217   4               wela=0;
 218   4          */     P1=0xf0;
 219   4            }
 220   3          }
 221   2        }
 222   1      }
C51 COMPILER V6.12  _黖__觳_                                                               12/02/2006 20:21:57 PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
table. . . . . . . . . . . . . . . . .  PUBLIC   CODE   ARRAY    0000H  16
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
beep . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A3H  1
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
dula . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A6H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
wela . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A7H  1
temp . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0000H  1
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
key. . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0001H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
_display . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0004H  -----
  num. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
i. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0002H  1
j. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0003H  1
k. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0004H  1
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
C51 COMPILER V6.12  _黖__觳_                                                               12/02/2006 20:21:57 PAGE 6   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


_delay . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    404    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5    ----
   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 + -