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

📄 keyboard.lst

📁 用keil51编写的可编程通用并行接口8255键盘按键识别程序,键盘3*8格式,采用行扫描方式,c语言编写
💻 LST
字号:
C51 COMPILER V7.50   KEYBOARD                                                              09/08/2007 21:53:12 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE KEYBOARD
OBJECT MODULE PLACED IN KEYBOARD.OBJ
COMPILER INVOKED BY: F:\LC\software\Keil\UV2\C51\BIN\C51.EXE KEYBOARD.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <at89x51.h>
   2          #include <absacc.h>
   3          
   4          #define PA  XBYTE[0XE000] // 8255 port A
   5          #define PB  XBYTE[0XE001] // 8255 port B
   6          #define PC  XBYTE[0XE002] // 8255 port C
   7          #define CMD XBYTE[0XE003] // 8255 configuration word
   8          
   9          #define byte unsigned char
  10          #define word unsigned int
  11          
  12          byte key_row;
  13          byte key_column;
  14          
  15          void delay20ms(void);
  16          void display(void);
  17          void calc_key(void);
  18          
  19          void display(void)
  20          {
  21   1          // display
  22   1      }
  23          
  24          void delay20ms(void)
  25          {
  26   1              byte i,j,k;
  27   1          for(i=10; i>0; i--)
  28   1                  for(j=4; j>0; j--)
  29   1                      for(k=248; k>0; k--);
  30   1      }
  31          
  32          void calc_key(void)
  33          {
  34   1          byte tdata,i,j;
  35   1      
  36   1          PA = 0x8F;
  37   1          tdata = PB;
  38   1          if (0xFF != tdata){
  39   2              delay20ms();
  40   2              tdata = PB;
  41   2              if (0xFF != tdata){
  42   3                  for (i=0; i<8; i++){
  43   4                      if (tdata == ~(1<<i)){
  44   5                          key_column = i+1;
  45   5                          for (j=4; j<7; j++){
  46   6                              PA = 0x8F | (1<<j);
  47   6                              tdata = PB;
  48   6                              if (0xFF != tdata){
  49   7                                  key_row = j-3;
  50   7                                  display();
  51   7                                  return;
  52   7                              }
  53   6                          }
  54   5                          key_column = 0;
  55   5                          return;
C51 COMPILER V7.50   KEYBOARD                                                              09/08/2007 21:53:12 PAGE 2   

  56   5                      }
  57   4                  }
  58   3              }
  59   2          }
  60   1      }
  61          
  62          void main(void)
  63          {
  64   1          CMD = 0x82;
  65   1          for (;;){
  66   2              calc_key();
  67   2          }
  68   1      }


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