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

📄 key_query.lst

📁 EasyStudy51-II单片机开发系统的库函数源代码.包含了EasyStudy51-II硬件的全部驱动.
💻 LST
字号:
C51 COMPILER V7.06   KEY_QUERY                                                             11/06/2008 01:10:15 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE KEY_QUERY
OBJECT MODULE PLACED IN key_query.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE c51\key_query.c INCDIR(.\Target\INC\) DEBUG OBJECTEXTEND PRINT(.\key_query.
                    -lst) OBJECT(key_query.obj)

stmt level    source

   1          
   2          
   3          
   4          
   5          #include "AT89X52.h"
   6          #include "ES51_II.h"
   7          #include "ES51_II_LIB.h"
   8          
   9          
  10          
  11          //      
  12          static unsigned char ReadKey(void)
  13          {
  14   1              unsigned char keyval;
  15   1              unsigned char tmp = 0;
  16   1              KEYPORT |= 0x0f;
  17   1              if( ((KEYPORT&0x0f) != 0x0f) || ( KEY_INT0 != 1 )  || ( KEY_COUNT != 1 ))
  18   1                      {
  19   2                      KEY_COUNT = 1;
  20   2                      KEY_INT0 = 1;
  21   2                      KEYPORT |= 0x0f;                                                                //      对于读端口操作,需要对端口先写1
  22   2                                                                                                                      //      与数码管片选引脚共用P0端口,需要保持数码管片选信号
  23   2                      keyval = KEYPORT&0x0f;                                                  //      读取键值,并屏蔽高四位,高四位用于片选数码管
  24   2                      tmp |= KEY_INT0;
  25   2                      tmp <<= 1;
  26   2                      tmp |= KEY_COUNT;
  27   2                      //tmp = ( (tmp|KEY_INT0)<<1) | KEY_COUNT;                       //      读取键INT0,COUNT
  28   2                      tmp <<= 4;
  29   2                      keyval |= tmp;                                                                  //      合并键值
  30   2                      return keyval;
  31   2                      }
  32   1              else 
  33   1                      return 0x3f;
  34   1      }
  35          
  36          //      
  37          unsigned char GetKeyVal(void)
  38          {
  39   1              unsigned char i = 200;
  40   1              unsigned char keyval;
  41   1      
  42   1              keyval = ReadKey();
  43   1              while(i--);                                                                                     //      延时,消抖
  44   1              if( (keyval != 0x3f) && (keyval == ReadKey() ) )        //      判断是否有键按下;判断两次所读键值相等
  45   1                      {
  46   2                      while( keyval == ReadKey() );                                   //      等待键的释放
  47   2                      return  keyval;                                                                 //      返回键值
  48   2                      }
  49   1              else 
  50   1                      return  0x3f;                                                                   //      无键按下,返回0xff
  51   1      }
  52          
  53          /*
  54          
C51 COMPILER V7.06   KEY_QUERY                                                             11/06/2008 01:10:15 PAGE 2   

  55          unsigned char ReadKey(void)
  56          {
  57                  unsigned char i = 200;
  58                  unsigned char keyval;
  59          
  60                  keyval = KEYPORT;                                                               //      与数码管片选引脚共用P0端口,需要保持数码管片选信号
  61                  KEYPORT = keyval | 0x0f;                                                //      对于读端口操作,需要对端口先写1
  62                  keyval = KEYPORT&0x0f;                                                  //      读取键值,保存
  63                  while(i--);                                                                             //      延时,消抖
  64                  if( (keyval != 0x0f) && (keyval == (KEYPORT&0x0f)) )//  判断是否有键按下;再次读取键值,判断是否与前次所读值
             -相等
  65                          {
  66                          while( keyval == (KEYPORT&0x0f) );                      //      等待键的释放
  67                          return  keyval;                                                         //      返回键值
  68                          }
  69                  else 
  70                          return  0xff;                                                           //      无键按下,返回0xff
  71          }
  72          
  73          
  74          //      获得键值        KEY1:1; KEY2:2; KEY3:3; KEY4:4;
  75          unsigned char GetKeyVal(void)
  76          {
  77                  unsigned char tmp;
  78                  //tmp = ReadKey();
  79                  switch( ReadKey() )
  80                          {
  81                          case KEY1VAL:
  82                                          tmp = 1;
  83                                          break;
  84                          case KEY2VAL:
  85                                          tmp = 2;
  86                                          break;
  87                          case KEY3VAL:
  88                                          tmp = 3;
  89                                          break;
  90                          case KEY4VAL:
  91                                          tmp = 4;
  92                                          break;
  93                          default:
  94                                          tmp = 0;
  95                                          break;
  96                          }
  97                  return  tmp;
  98          }
  99          */


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