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

📄 key.lst

📁 此程序是GPS导航程序
💻 LST
字号:
C51 COMPILER V8.02   KEY                                                                   05/21/2008 10:52:26 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 LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*****************************************************************/
   2          /*函数名称: keyscan.c                                           */
   3          /*函数功能: 键盘启动                                            */ 
   4          /*入口参数: P5--------------------------------------------数据传输      
   5          /*有无返回: 无                                                  */
   6          /*修改记录: 无修改记录                                          */
   7          /*编写作者: t483-4-19chenyong                                   */
   8          /*编写日期: 2007-4-06                                           */
   9          /*****************************************************************/
  10          
  11          #include "common.h"
  12          #include "key.h"
  13          #include "delay.h"
  14          
  15          unsigned char a[4]={0xef,0xdf,0xbf,0x7f};               //从P5_4到P5_7依次发送低电平,对列写键值
  16          unsigned char coding(unsigned char n)               //译码
  17          {
  18   1              switch(n)
  19   1              {
  20   2                      case 0xfe: return 0;break;                      //输入为 11111110 即为行号0 
  21   2                      case 0xfd: return 1;break;                      //输入为 11111101 即为行号1 
  22   2                      case 0xfb: return 2;break;                      //输入为 11111011 即为行号2 
  23   2                      case 0xf7: return 3;break;                      //输入为 11110111 即为行号3 
  24   2              }
  25   1      }
  26          
  27          unsigned char keyscan()
  28          {
  29   1                  
  30   1              unsigned char b;                
  31   1              unsigned char c;   
  32   1              unsigned char i;
  33   1              unsigned char keyvalue=0xff;
  34   1              SFRPAGE = 0x0F;
  35   1              P5=0x00;
  36   1               SFRPAGE = 0x0F;
  37   1              P5=0xfb;
  38   1               SFRPAGE = 0x0F;
  39   1              P5=0xfe;
  40   1               SFRPAGE = 0x0F;
  41   1              P5=0xff;
  42   1      
  43   1              for(i=0;i<4;i++)                                    //列扫描,从P5_4开始到P5_7;i=0对应P5_4即第0列.
  44   1              {
  45   2                      SFRPAGE = 0x0F;
  46   2                      P5=a[i];        
  47   2                      SFRPAGE = 0x0F;                             //写键值,低电平有效
  48   2                      b=P5;                                               //读健值,低电平有效
  49   2                      b=b|0xf0;                                           //取低四位(P5_0--P5_3)的低电平;屏蔽高四位(P5_4--P5_7)的低电平
  50   2                      if(b!=0xff)
  51   2                      { 
  52   3                      delay_nms(100);                         //去抖动
  53   3                              SFRPAGE = 0x0F;
  54   3                              c=P5;
  55   3                              c=c|0xf0;
C51 COMPILER V8.02   KEY                                                                   05/21/2008 10:52:26 PAGE 2   

  56   3                              if(b==c)
  57   3                              keyvalue=i*4+coding(c);             //键值=列号*4+行号
  58   3                       }
  59   2                 
  60   2                }
  61   1               return keyvalue;
  62   1       }
  63          


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