📄 key.h
字号:
#ifndef _KEY_H_
#define _KEY_H_
#include "SPCE061A.H"
/****************************************************************
*按键的IO端口定义,代码移植时需要根据实际的电路更改设置
****************************************************************/
#define KEY_IO_DATA *((volatile unsigned int*)(Port_IOA_Data))
#define KEY_IO_DIR *((volatile unsigned int*)(Port_IOA_Dir))
#define KEY_IO_ATTRIB *((volatile unsigned int*)(Port_IOA_Attrib))
#define KEY_IO_BUFFER *((volatile unsigned int*)(Port_IOA_Buffer))
/****************************************************************
* 按键IO初始化数据,通过宏映射 ,代码移植时根据实际情况改变相应的位
*****************************************************************/
#define KEY_IO_DIR_INITIAL_VALUE 0x3f /*IO使用了的位状态改变,没有用的置0*/
#define KEY_IO_ATTRIB_INITIAL_VALUE 0x3f /*IO使用了的位状态改变,没有用的置0*/
#define KEY_IO_DATA_INITIAL_VALUE 0x00/*IO使用了的位状态改变,没有用的置0*/
#define KEY_IO_REG_MASK 0x3f /*对应IO使用了的位置1,没有用的置0*/
#define KEY_ARRAY_W 0x04 /*键盘阵列的宽度*/
#define KEY_ARRAY_H 0x03 /*键盘阵列的高度*/
#define KEY_VALUE_INVALIDATE 0xff /*非法案件值,不能与合法按键值重叠*/
#define KEY_STATE_VALIDATE 0x01 /*合法按键状态*/
#define KEY_STATE_INVALIDATE 0x00 /*非法按键状态*/
#define KEY_VALUE_SET 0x0a /*设置键*/
#define KEY_VALUE_CLEAR 0x0b /*清除键*/
/*****************************************************
*扫描按键值,并把该值保存在按键值记录区,把按键值记录
*区状态设置为KEY_STATE_VALIDATE。 该函数可以用在中断里面,
*用一全局变量保存按键值,构成定时按键扫描;也可以用在循环
*中,进行循环扫描,但这样的方式对按键的扫描存在不确定性,
*扫描的及时程度完全取决于系统的繁忙程度。建议用中断。
******************************************************/
void vKeyScan(void);
/***************************************************************
* 获取按键值,合法时返回按键值,非法时返回KEY_VALUE_INVALIDATE
***************************************************************/
unsigned char ucGetKey(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -