📄 key.h
字号:
/*
********************************************************************************
*
* LCD控制程序
*
* 这是按键处理模块的头文件
*
* 文件名 : KEY.H
* 设计者 : Terry
********************************************************************************
* 功 能 描 述
*
* 要使用按键模块必须包含此头文件
*
* 这里包含了按键模块的配置,按键扫描码的宏定义,公共变量和接口函数
*
********************************************************************************
*/
#ifndef __KEY_H__
#define __KEY_H__
/*
********************************************************************************
* 键盘模块的配置
********************************************************************************
*/
#define KEY_BUF_SIZE 10 // 键盘缓冲区大小,根据需要改变,代表字节数
#define KEY_RPT_START_DLY 10 // 启动按键重复的启示时间,单位是按键扫描的时间间隔
#define KEY_RPT_DLY 2 // 按键重复的时间间隔,单位是按键扫描的时间间隔
/*
********************************************************************************
* 按键扫描码的宏定义,根据不同的应用程序需要更改,这个按键模块处理的是6个简单
* 的I/O按键输入,多过6个键的需要更改KEY.C中的按键输入处理程序
********************************************************************************
*/
typedef enum {
KEYCODE_NOPRESS = 0,
KEYCODE_DECREASE,
KEYCODE_MENU,
KEYCODE_INCREASE,
KEYCODE_SELECT,
KEYCODE_AUTO,
KEYCODE_EXIT,
KEYCODE_POWER,
KEYCODE_POWERMENU,
KEYCODE_INCDEC ,
}INPUTCODE;
/*
********************************************************************************
* 公共变量的声明
********************************************************************************
*/
extern bit Flg_KeyOnePress; // 在没有按键按下(硬件)时,该标志被清零
/*
********************************************************************************
* 对外的接口函数声明
* 1. KeyInit
* 按键处理模块的初始化,包括硬件端口,键盘缓冲区和公共变量等
*
* 2. KeyGetKey
* 从按键缓冲区获取按键的扫描码
*
* 3. KeyGetKeyDownTime
* 获取按键按下的时间,单位是按键扫描的时间间隔。这可以用在有长按键处理需求
* 以及不需要连续按键输入的场合中
*
* 4. KeyHit
* 检查键盘缓冲区中有没有按键,有才进行相应的处理
*
* 5. KeyScan
* 这是整个按键处理模块的核心,采用了一个状态机来对按键进行处理,这个接口
* 函数需要被周期性地调用,因此一般我们会启用一个定时器,周期性地执行这个函数
* 定时的时间间隔约50mS左右,这样能避开按键的抖动期
********************************************************************************
*/
void KeyInit(void);
uint8 KeyGetKey(void);
uint8 KeyGetKeyCode(void);
uint16 KeyGetKeyDownTime(void);
bit KeyHit(void);
void KeyScan(void);
#endif
/*
********************************************************************************
* 文 件 结 束 *
********************************************************************************
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -