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

📄 key.lst

📁 矩阵键盘的控制
💻 LST
字号:
C51 COMPILER V8.02   KEY                                                                   11/11/2007 21:06:36 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<AT89X52.H>
   2          #include"led.h"                          //该头文件包含数码管驱动动
   3          /******************************************************
   4                          按键扫描函数
   5                                          若有按键按下:返回 键值(1-16);
   6                                          若没按键按下:返回  255               
   7          ********************************************************/
   8          unsigned char getch (  )
   9          {   
  10   1              unsigned char X=0,                     
  11   1              Y=0,
  12   1              Z=0,
  13   1              k=255;
  14   1              P2=0xff;
  15   1              P2=0x0f;       //先对P2置数  行扫描
  16   1              if(P2!=0x0f)     //判断是否有键按下
  17   1              {  
  18   2                      //延时,软件去干扰
  19   2                      if(P2!=0x0f)   //确认按键按下X = P2;
  20   2                      {
  21   3                              X=P2;          //保存行扫描时有键按下时状态
  22   3                              P2=0xf0;       //列扫描
  23   3                              Y=P2;          //保存列扫描时有键按下时状态
  24   3                              Z=X|Y;         //取出键值
  25   3                              switch ( Z )   //判断键值(那一个键按下)
  26   3                              {
  27   4                                      case 0xee: k=0; break; //对键值赋值
  28   4                                      case 0xde: k=1; break; 
  29   4                                      case 0xbe: k=2; break; 
  30   4                                      case 0x7e: k=3; break; 
  31   4                                      case 0xed: k=4; break; 
  32   4                                      case 0xdd: k=6; break; 
  33   4                                      case 0xbd: k=7; break; 
  34   4                                      case 0x7d: k=8; break; 
  35   4                                      case 0xeb: k=9; break; 
  36   4                                      case 0xdb: k=7; break;  
  37   4                                      case 0xbb: k=10;break; 
  38   4                                      case 0x7b: k=11;break; 
  39   4                                      case 0xe7: k=12;break; 
  40   4                                      case 0xd7: k=13;break; 
  41   4                                      case 0xb7: k=14;break; 
  42   4                                      case 0x77: k=15;break; 
  43   4                              }
  44   3                              while(P2!=0xf0);
  45   3                      }                  
  46   2              }   
  47   1              return k;
  48   1      }
  49          void main()
  50          { 
  51   1              unsigned char temp=0,key=255;
  52   1              while(1)
  53   1              {
  54   2                      key=getch();           //扫描
  55   2                      if(key!=255)temp=key;  //有按键按下              
C51 COMPILER V8.02   KEY                                                                   11/11/2007 21:06:36 PAGE 2   

  56   2                      led_display(temp);     //显示按键值
  57   2              }
  58   1      }


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