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

📄 key.lst

📁 USB鼠标,单片机的,可以
💻 LST
字号:
C51 COMPILER V6.23a  KEY                                                                   08/17/2006 16:45:35 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN .\Obj\Key.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE ..\..\Driver\Io\Key.c LARGE OPTIMIZE(2,SPEED) MODP2 PRINT(.\Obj\Key.lst) OB
                    -JECT(.\Obj\Key.obj) 

stmt level    source

   1          /*------------------------------------------------------------------
   2          * CopyRight (C) 2005,江苏盛唐电子产品有限公司
   3          * All Rights Reserved.
   4          *
   5          * 文件名称:Key.c
   6          * 文件标识:
   7          * 摘    要:板载按键功能函数
   8          * 
   9          * 当前版本:1.0
  10          * 作    者:熊刚
  11          * 完成日期:2005年10月7日
  12          *
  13          * 取代版本: 
  14          * 原作者  :
  15          * 完成日期:
  16          --------------------------------------------------------------------*/
  17          
  18          //实现键盘按键的读取.
  19          
  20          
  21          /*文件名:Key.c
  22             作者: 熊刚
  23             时间: 2006-08-02
  24          */
  25          
  26          #include "..\inc\includes.h"
  27          
  28          #ifdef IBMPC_SYSTEM
              
              #else
  31                  sbit KEY1Pin = P3^4;
  32                  sbit KEY2Pin = P3^5;
  33          #endif
  34          
  35          #define c_LowLevel   0
  36          #define c_HighLevel  1
  37          /**************************************************
  38          功能介绍:实现检查是否有键按下.
  39          入口参数: 无
  40          出口参数:  1表示有键按下,0表示无键按下。
  41          备注:     
  42          ***************************************************/
  43          bool KbHit(void)
  44          {
  45   1              bool bK1Press;
  46   1              bool bK2Press;
  47   1              
  48   1              
  49   1              KEY1Pin = 1;
  50   1              KEY2Pin = 1;
  51   1              bK1Press = false;
  52   1              bK2Press = false;
  53   1              
  54   1              if(KEY1Pin == 0)
C51 COMPILER V6.23a  KEY                                                                   08/17/2006 16:45:35 PAGE 2   

  55   1              {
  56   2                      bK1Press = true;
  57   2              }
  58   1              if(KEY2Pin == 0)
  59   1              {
  60   2                      bK2Press = true;
  61   2              }
  62   1              
  63   1              return (bK1Press  || bK2Press);
  64   1              
  65   1      }
  66          
  67          static uchar GetKeyScanCode(void)
  68          {
  69   1              uchar ucScanCode;
  70   1              
  71   1              KEY1Pin = 1;
  72   1              KEY2Pin = 1;
  73   1              
  74   1              ucScanCode = 0;
  75   1              
  76   1              if(KEY1Pin == 0)
  77   1              {
  78   2                      ucScanCode |= K1_SCANCODE;
  79   2              }
  80   1              
  81   1              if(KEY2Pin == 0)
  82   1              {
  83   2                      ucScanCode  |= K2_SCANCODE;
  84   2              }
  85   1              return ucScanCode;
  86   1      }
  87                  
  88          /**************************************************
  89          功能介绍:读取按键扫描码.
  90          入口参数: 无
  91          出口参数: 键盘按键的扫描码。
  92          备注:     
  93          ***************************************************/
  94          uchar KbGet(void)
  95          {
  96   1              uchar ucKeyTemp; 
  97   1         
  98   1          if(KbHit()==0)                   //无键按下时,
  99   1              {
 100   2              return( c_KeyScan_ErrCode);                  //直接返回
 101   2              }
 102   1          else
 103   1              {
 104   2                      ucKeyTemp = GetKeyScanCode();
 105   2                      Delay_10MS(1);
 106   2         //   BeepShort();                   //响应按键
 107   2      //      delay(10);                     //延时10ms去抖动。
 108   2          }
 109   1      
 110   1          if (ucKeyTemp != GetKeyScanCode())           //再次检测按键情况
 111   1              {
 112   2             return( c_KeyScan_ErrCode);                  //与前次检测值不相符时,是抖动时,返回。 
 113   2              }
 114   1                 
 115   1        //  while(KbHit()) ;               //等待按键释放。
 116   1      
C51 COMPILER V6.23a  KEY                                                                   08/17/2006 16:45:35 PAGE 3   

 117   1          return (ucKeyTemp);            //返回键码。  
 118   1      }
 119          


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