📄 atkeyboard.h
字号:
#ifndef __ATKEYBOARD_H__
#define __ATKEYBOARD_H__
#define KEYBOARD_OK 0
#define KEYBOARD_HOST_BUSY 1
#define KEYBOARD_HOST_DISABLE 2 //主机抑制发送
#define KEYBOARD_HOST_WITHDRAW 3 //主机取消发送
#define KEYBOARD_REC_PARITY 4 //接收校验错
#define KEYBOARD_RESENT 0xFE //主机要求重发
#define ACTUAL_KEYBOARD 1 //实际键盘
#define VIRTUAL_KEYBOARD 0 //虚拟键盘
//键盘缓冲区大小,暂定20个
//只存不重复的键通码和断码,重复的只存一个
//如:按键A按下到释放得键盘码1C 1C 1C F0 1C,实际只存1C F0 1C
//若超过,则最后输入的按键自动丢失
#define KEYBOARD_BUFFER_SIZE 20
typedef struct _KEYBOARD_DATA
{
unsigned char Length; //缓冲区长度
unsigned char cKeyBuffer[KEYBOARD_BUFFER_SIZE]; //键盘缓冲区
}sttKeyboardData;
//键码定义
#define KEYUP 0xF0 //键释放时送出的断码信号,后跟实际键码
#define KEY_BACKSPACE 0x66 //退格键
#define KEY_TAB 0x0D //TAB键
#define KEY_LEFT_SHIFT 0x12 //左Shift键
#define KEY_LEFT_CTRL 0x14 //左Ctrl键
#define KEY_LEFT_ALT 0x11 //左Alt键
#define KEY_ENTER 0x5A //回车键
#define KEY_ESC 0x76 //ESC键
//功能键
extern code unsigned char KeyCode_FunctionKey[12];
//大键盘数字键码
extern code unsigned char KeyCode_MainNumberKey[10];
//小键盘数字键码
extern code unsigned char KeyCode_SubNumberKey[10];
//26个字母键码
extern code unsigned char KeyCode_Char[26];
extern sttKeyboardData stKeyboardData; //键盘数据
//开始监控键盘
#define StartMonitorKeyboard() EX0 = 1 // 开外部中断0
//停止监控键盘
#define StopMonitorKeyboard() EX0 = 0 // 关外部中断0
//控制实际键盘通讯IO通断
//bit KeyboardType:键盘选择,ACTUAL_KEYBOARD-实际键盘,VIRTUAL_KEYBOARD-虚拟键盘
void SelectKeyboard(bit KeyboardType);
//复位键盘监控
void ResetKeyboardMonitor();
extern void Delay(unsigned char _2NOP);
//从模拟键盘口发送1字节数据
extern unsigned char ATKeyboard_SendByte(unsigned char KeyData);
//接收PC机的应答
//PC机接收键码后,若正确,则无应答,若错误,则有应答0xFE要求重发
extern unsigned char ReceiveEcho();
extern unsigned char ReceiveData();
//模拟键盘发送一按键
//KeyCode:为具体键码
void SendKey(unsigned char KeyCode);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -