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

📄 keymatrix.lst

📁 我自己整理的单片机4*4键盘最简扫描算法
💻 LST
字号:
C51 COMPILER V7.00  KEYMATRIX                                                              05/16/2007 10:42:12 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE KEYMATRIX
OBJECT MODULE PLACED IN keymatrix.OBJ
COMPILER INVOKED BY: D:\Program Files\keil中文版\Keil\C51\BIN\C51.EXE keymatrix.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /* ***********************************************
   2                          键盘扫描程序
   3                          完成日期:
   4                          修改日期:
   5                                          修改人员:
   6                          修改日期:
   7                                          修改人员:
   8             ***********************************************
   9           */
  10          #include <reg52.h>
  11          #include "type.h"
  12          
  13          // ===============================================
  14          //  键盘延迟程序
  15          //      输入参数:d数据范围[0,255],该参数决定延迟时间
  16          //      输出参数:无
  17          void KeyDelay(UCHAR d)
  18          {
  19   1              UCHAR i;
  20   1              while(d--)
  21   1              {
  22   2                      for ( i = 0; i < 220 ;i ++);
  23   2              }
  24   1      }
  25          // ===============================================
  26          // 键盘扫描码获取程序
  27          //      功能简述:当按键按下后以第一次按下的键为有效键
  28          //      输入参数:无
  29          //      输出参数:扫描码
  30          UCHAR getKey(void)
  31          {
  32   1              UCHAR idx=0,rt;
  33   1              while(TRUE)
  34   1              {
  35   2                      idx ++;
  36   2                      idx &= 3;
  37   2                      P1 = ~(1<<idx);
  38   2                      if ( (P1 & 0XF0) != 0XF0)
  39   2                      {
  40   3                              //some key pressed
  41   3                              KeyDelay(20);
  42   3                              if ( (P1 & 0XF0) != 0XF0)
  43   3                              {                               
  44   4                                      rt = (P1&0xf0)+idx;
  45   4                                      while(TRUE)
  46   4                                      {
  47   5                                              if ((P1 & 0XF0) == 0XF0)
  48   5                                              {
  49   6                                                      KeyDelay(20);
  50   6                                                      if((P1 & 0XF0) == 0XF0)
  51   6                                                      {
  52   7                                                              break;
  53   7                                                      }
  54   6                                              }
  55   5                                      }
C51 COMPILER V7.00  KEYMATRIX                                                              05/16/2007 10:42:12 PAGE 2   

  56   4                                      return rt;
  57   4                              }
  58   3                      }
  59   2              }
  60   1      }


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