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

📄 keypad.lst

📁 单片机的电机控制
💻 LST
字号:
C51 COMPILER V6.12  KEYPAD                                                                 05/22/2007 15:41:01 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE KEYPAD
OBJECT MODULE PLACED IN .\keypad.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\ex4-9\keypad.c DEBUG OBJECTEXTEND PRINT(.\keypad.lst) OBJECT(.\keypad.ob
                    -j) 

stmt level    source

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

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


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