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

📄 keyboord.lst

📁 电子设计训练课题
💻 LST
字号:
C51 COMPILER V8.02   KEYBOORD                                                              07/16/2008 00:27:29 PAGE 1   


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

line level    source

   1          #include"common.h"
   2          #include"delay.h"
   3          
   4          unsigned char a[4]={0xef,0xdf,0xbf,0x7f};               //从P5_4到P5_7依次发送低电平,对列写键值
   5          //unsigned char keyvalue=0;     
   6          
   7          unsigned char coding(unsigned char n)               //译码
   8          {
   9   1              switch(n)
  10   1              {
  11   2                      case 0xfe: return 0;break;                      //输入为 11111110 即为行号0 
  12   2                      case 0xfd: return 1;break;                      //输入为 11111101 即为行号1 
  13   2                      case 0xfb: return 2;break;                      //输入为 11111011 即为行号2 
  14   2                      case 0xf7: return 3;break;                      //输入为 11110111 即为行号3 
  15   2              }
  16   1      }
  17          
  18          unsigned char keyscan()
  19          {
  20   1                  
  21   1              unsigned char b;                
  22   1              unsigned char c;   
  23   1              unsigned char i;
  24   1              unsigned char keyvalue=0xff;
  25   1              SFRPAGE = 0x0F;
  26   1              P5=0x00;
  27   1               SFRPAGE = 0x0F;
  28   1              P5=0xfb;
  29   1               SFRPAGE = 0x0F;
  30   1              P5=0xfe;
  31   1               SFRPAGE = 0x0F;
  32   1              P5=0xff;
  33   1      
  34   1              for(i=0;i<4;i++)                                    //列扫描,从P5_4开始到P5_7;i=0对应P5_4即第0列.
  35   1              {
  36   2                      SFRPAGE = 0x0F;
  37   2                      P5=a[i];        
  38   2                      SFRPAGE = 0x0F;                             //写键值,低电平有效
  39   2                      b=P5;                                               //读健值,低电平有效
  40   2                      b=b|0xf0;                                           //取低四位(P5_0--P5_3)的低电平;屏蔽高四位(P5_4--P5_7)的低电平
  41   2                      if(b!=0xff)
  42   2                      { 
  43   3                      delay_nms(10);                          //去抖动
  44   3                              SFRPAGE = 0x0F;
  45   3                              c=P5;
  46   3                              c=c|0xf0;
  47   3                              if(b==c)
  48   3                              keyvalue=i*4+coding(c);             //键值=列号*4+行号
  49   3                       }
  50   2                 
  51   2                }
  52   1               return keyvalue;
  53   1       }


C51 COMPILER V8.02   KEYBOORD                                                              07/16/2008 00:27:29 PAGE 2   

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