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

📄 keypad.lst

📁 嵌入式-C语言程序设计C语言程序设计C语言程序设计
💻 LST
字号:
C51 COMPILER V8.06   KEYPAD                                                                07/18/2007 17:16:42 PAGE 1   


C51 COMPILER V8.06, COMPILATION OF MODULE KEYPAD
OBJECT MODULE PLACED IN keypad.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE keypad.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2          标题:小键盘的输入函数
   3          版本:1.0
   4          Target:89S51
   5          函数描述:   char gotkey(void)
   6                       从4ⅹ4小键盘输入数据,返回0 15
   7          小键盘的连接方式:
   8          
   9             
  10            1 P20 -----0----1----2----3
  11                       |    |    |    |
  12            2 P21 -----4----5----6----7
  13                       |    |    |    | 
  14            3 P22 -----8----9----10---11
  15                       |    |    |    |  
  16            4 P23 -----12---13---14---15
  17                       |    |    |    |
  18            5 P24 ---- |    |    |    |
  19                       |    |    |    |
  20            6 P25 ----------     |    |
  21                                 |    |
  22            7 P26 ---------------     |   
  23                                      |
  24            8 P27 --------------------    
  25          */
  26          #include <REGX51.H>
  27          code char key_code[]={0x7E,0XBE,0XBD,0XBB,0XDE,0XDD,0XDB,0XEE,
  28                                0XED,0XEB,0X7D,0X7B,0XE7,0XD7,0XB7,0X77};
  29          code ksp[4]={0x7F,0xBF,0xDF,0xEF};
  30          void delay (void)  {                   /* 时间延迟函数 */
  31   1        unsigned char i,j;                  
  32   1           for (i=0;i<5;i++)
  33   1                for(j=0;j<255;j++)
  34   1                ;
  35   1      }
  36          char keypad_scan()
  37          {
  38   1          char key,i;
  39   1          P2=0xF0;
  40   1          while (P2!=0xF0);
  41   1            do{
  42   2             for(i=0;i<=3;i++)
  43   2             {         
  44   3                 P2=ksp[i];
  45   3                 if(P2!=ksp[i])
  46   3                 {
  47   4                    delay();
  48   4                    key=P2;
  49   4                    if(key!=ksp[i])
  50   4                    {
  51   5                        return(key);
  52   5                    }
  53   4                 }
  54   3             }
  55   2          } while(1);
C51 COMPILER V8.06   KEYPAD                                                                07/18/2007 17:16:42 PAGE 2   

  56   1      }
  57          // 检查是否有按键按下
  58          char gotkey()
  59          {
  60   1           char temp,i;
  61   1           temp=keypad_scan();
  62   1           for (i=0;i<=15;i++) {
  63   2                if(temp==key_code[i]) return(i);
  64   2           }
  65   1           return(16);
  66   1      }
  67          


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