📄 key.h
字号:
#ifdef KEY
#define KEY
#else
#define KEY extern
#endif
#define KEY_BUF_SIZE 10 //键盘缓冲区长度
#define KEY_MAX_ROWS 5 //键盘最大行
#define KEY_MAX_COLS 6 //键盘最大列
#define KEY_RPT_DLY 2 //键自动重复的延时
#define KEY_RPT_START_DLY 10 //键自动重复启动时间
#define KEY_SCAN_TASK_DLY 50 //键盘任务的执行周期
#define KEY_SHIFT1_MSK 0x80 //第7列为SHIFT1键
#define KEY_SHIFT1_OFFSET 00 //SHIFT1键的键值移位值
#define KEY_SHIFT2_MSK 0x40 //第6列为SHIFT2键
#define KEY_SHIFT2_OFFSET 00 //SHIFT2键的键值移位值
#define KEY_SHIFT3_MSK 0x20 //第5列为SHIFT2键
#define KEY_SHIFT3_OFFSET 0 //SHIFT2键的键值移位值
#define KEY_ALL_ROWS 0xFF //选择所有行
#define KEY_STATE_UP 1 //键状态,未按下
#define KEY_STATE_DEBOUNCE 2 //键状态,未回弹
#define KEY_STATE_RPT_START_DLY 3 //键状态,等待启动自动重复
#define KEY_STATE_RPT_DLY 4 //键状态,等待下一次重复
KEY xdata unsigned char KeyBuf[KEY_BUF_SIZE]; //键值缓冲区
KEY xdata unsigned char KeyBufInIx; //键值写入的指针
KEY xdata unsigned char KeyBufOutIx; //键值读出的指针
KEY xdata unsigned int KeyDownTmr; //键按下的时间
KEY xdata unsigned char KeyNRead; //缓冲区内键值的个数
KEY xdata unsigned char KeyRptStartDlyCtr; //自动重复启动计时
KEY xdata unsigned char KeyRptDlyCtr; //下一次重复计时
KEY xdata unsigned char KeyScanState; //键状态
void KeyFlush(void); //清空键盘缓冲区
unsigned char KeyGetKey(void); //从缓冲区中读取出一个键值
unsigned int KeyGetKeyDownTime(void); //读取上一次按键的时间
unsigned char KeyHit(void); //判断缓冲区中是否有键值
void KeyInit(void); //键盘模块初始化
unsigned char KeyGetCol(void); //读取列 */
void KeySelRow(unsigned char); //设置行 */
void KeyBufIn(unsigned char); //把一个键值写入缓冲区
unsigned char KeyDecode(void); //键值译码
unsigned char KeyIsKeyDown(void); //判断是否有键按下
void KeyScanTask(void); //键盘扫描任务
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -