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

📄 keboard.lst

📁 压缩包中包括多个常用的汇编
💻 LST
字号:
C51 COMPILER V6.12  KEBOARD                                                                09/11/2005 13:18:07 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE KEBOARD
OBJECT MODULE PLACED IN E:\C51PRJ\KEYBOARD\KEBOARD.OBJ
COMPILER INVOKED BY: d:\keil\c51\BIN\C51.EXE E:\C51PRJ\KEYBOARD\KEBOARD.C DB SB OE

stmt level    source

   1          /****************************************************************************/
   2          /*                                                                          */
   3          /*               Copyright (c) 2005, 老树工作室                             */
   4          /*                   All rights reserved.                                   */
   5          /*                                                                          */
   6          /*      http://www.saintone.net      Email:hxm0902@163.com                  */
   7          /*      QQ:112431149                 Tel:010-62966630                       */
   8          /*                                                                          */
   9          /****************************************************************************/
  10          /****************************************************************************/
  11          /* 文件名:keyboard.c                                                       */
  12          /* 版  本:Version 1.0                                                      */
  13          /* 描  述:按键检测代码                                                     */
  14          /* 作  者:spot                                                             */
  15          /* 函  数:                                                                 */
  16          /*         delay_key                                                        */
  17          /*         system_init                                                      */
  18          /*                                                                          */
  19          /* 历史记录:                                                               */
  20          /*  spot          2005-06-20     Creat Inital version. (Version 1.0)        */
  21          /****************************************************************************/
  22          
  23          #include <reg52.h>
  24          #include <absacc.h>
  25          
  26          typedef unsigned char u_char;
  27          typedef unsigned int  u_int;
  28          
  29          /* 键码定义 */
  30          #define BUTTON_1  0xEE
  31          #define BUTTON_2  0xDE
  32          #define BUTTON_3  0xBE
  33          #define BUTTON_4  0x7E
  34          #define BUTTON_5  0xED
  35          #define BUTTON_6  0xDD
  36          #define BUTTON_7  0xBD
  37          #define BUTTON_8  0x7D
  38          #define BUTTON_9  0xEB
  39          #define BUTTON_10 0xDB
  40          #define BUTTON_11 0xBB
  41          #define BUTTON_12 0x7B
  42          #define BUTTON_13 0xE7
  43          #define BUTTON_14 0xD7
  44          #define BUTTON_15 0xB7
  45          #define BUTTON_16 0x77
  46          /* 定义结束 */
  47          
  48          void delay_key(void);	  /* 按键检测延时子程序 */
  49          void system_init(void);   /* 系统上电初始化 */
  50          
  51          /* 按键检测延时子程序 */
  52          void delay_key(void)
  53          {
  54   1          u_char i;
  55   1          for(i=200; i>0; i--);
C51 COMPILER V6.12  KEBOARD                                                                09/11/2005 13:18:07 PAGE 2   

  56   1      }
  57          
  58          /* 反转法检测按键,行1:P2.0,列1:P2.4*/
  59          u_char scan_key(void)
  60          {
  61   1          u_char key_code = 0xFF;
  62   1          P2 = 0xF0;
  63   1          if ((P2&0xF0) != 0xF0) /* 有键按下 */
  64   1          {
  65   2      
  66   2              delay_key();
  67   2              key_code = P2;     /* 读入列值 */
  68   2      
  69   2              P2 = 0x0F;
  70   2              key_code |= P2;    /* 读入行值,与列值相或得到键码 */           
  71   2          }
  72   1          return(key_code);
  73   1      }
  74          
  75          
  76          /* 系统上电初始化 */
  77          void system_init(void)
  78          {
  79   1          EA = 0;
  80   1          P0 = 0xFF;
  81   1      }
  82          
  83          void main(void)
  84          {
  85   1          u_char key_code = 0xFF;
  86   1      
  87   1          system_init();
  88   1      
  89   1          while(1)
  90   1          {
  91   2              key_code = scan_key();
  92   2              switch(key_code)
  93   2              {
  94   3                  case BUTTON_1:
  95   3                       P1 = 0x00;
  96   3                       key_code = 0xFF;
  97   3                       break;
  98   3      
  99   3                  case BUTTON_2:
 100   3                       P1 = 0xFF;
 101   3                       key_code = 0xFF;
 102   3                       break;
 103   3      
 104   3                  case BUTTON_3:
 105   3                       P1 = 0xFE;
 106   3                       key_code = 0xFF;
 107   3                       break;
 108   3      
 109   3                  case BUTTON_4:
 110   3                       P1 = 0xFD;
 111   3                       key_code = 0xFF;
 112   3                       break;
 113   3      
 114   3                  case BUTTON_5:
 115   3                       P1 = 0xFB;
 116   3                       key_code = 0xFF;
 117   3                       break;
C51 COMPILER V6.12  KEBOARD                                                                09/11/2005 13:18:07 PAGE 3   

 118   3      
 119   3                  case BUTTON_6:
 120   3                       P1 = 0xF7;
 121   3                       key_code = 0xFF;
 122   3                       break;
 123   3      
 124   3                  case BUTTON_7:
 125   3                       P1 = 0xEF;
 126   3                       key_code = 0xFF;
 127   3                       break;
 128   3      
 129   3                  case BUTTON_8:
 130   3                       P1 = 0xDF;
 131   3                       key_code = 0xFF;
 132   3                       break;
 133   3      
 134   3                  case BUTTON_9:
 135   3                       P1 = 0xBF;
 136   3                       key_code = 0xFF;
 137   3                       break;
 138   3      
 139   3                  case BUTTON_10:
 140   3                       P1 = 0x7F;
 141   3                       key_code = 0xFF;
 142   3                       break;
 143   3      
 144   3                  case BUTTON_11:
 145   3                       P1 = 0xAA;
 146   3                       key_code = 0xFF;
 147   3                       break;
 148   3      
 149   3                  case BUTTON_12:
 150   3                       P1 = 0x55;
 151   3                       key_code = 0xFF;
 152   3                       break;
 153   3      
 154   3                  case BUTTON_13:
 155   3                       P1 = 0x5A;
 156   3                       key_code = 0xFF;
 157   3                       break;
 158   3      
 159   3                  case BUTTON_14:
 160   3                       P1 = 0xA5;
 161   3                       key_code = 0xFF;
 162   3                       break;
 163   3      
 164   3                  case BUTTON_15:
 165   3                       P1 = 0xF0;
 166   3                       key_code = 0xFF;
 167   3                       break;
 168   3      
 169   3                  case BUTTON_16:
 170   3      
 171   3                       P1 = 0x0F;
 172   3                       key_code = 0xFF;
 173   3                       break;
 174   3      
 175   3                  default:
 176   3                       break;
 177   3              }
 178   2          }
 179   1      }
C51 COMPILER V6.12  KEBOARD                                                                09/11/2005 13:18:07 PAGE 4   

 180          
 181          
C51 COMPILER V6.12  KEBOARD                                                                09/11/2005 13:18:07 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
T2 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
EXF2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CEH  1
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  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
u_int. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
T2EX . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  key_code . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
C_T2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C9H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
RCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CDH  1
TCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CCH  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
delay_key. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
system_init. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
CP_RL2 . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C8H  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
ET2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ADH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
TF2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CFH  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
scan_key . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  key_code . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
C51 COMPILER V6.12  KEBOARD                                                                09/11/2005 13:18:07 PAGE 6   

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


RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
PT2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BDH  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
TR2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CAH  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
EXEN2. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CBH  1
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
u_char . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_CHAR   -----  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


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