📄 keyboard.c
字号:
#include <Keyboard.h>
void key_delay(void)
{
unsigned char i,j;
for(i=50;i>0;i--)
for(j=200;j>0;j--);
}
//键盘扫描,没有键按下返回0
unsigned char KBScan(void)
{
unsigned char key;
unsigned char ScanCode;
unsigned char temp;
P2 = 0x0f;
col1 = 1;
if((P2&0x0f) != 0x0f && col1 != 1); //判断是否有键按下,如有,则逐一判断是哪个键按下了
{
ScanCode = 0xef;
while(ScanCode != 0xff) // 循环4次结束标志
{
P2 = ScanCode;
col1 = 1;
temp = P2;
temp = (temp << 1) | col1;
temp = temp & 0x1f; //取低5位
if(temp != 0x1f)
{
key_delay(); //防抖
temp = P2;
temp = (temp << 1) | col1;
temp = temp & 0x1f;
if(temp != 0x1f)
{
temp = P2;
temp = (temp << 1) | col1;
temp = temp & 0x1f;
switch(temp)
{
case 0x1e:
key = ~ScanCode | 0x01;
while(col1 == 0); //松开按键
return key;
case 0x1d:
key = ~ScanCode | 0x02;
while(col2 == 0);
return key;
case 0x1b:
key = ~ScanCode | 0x03;
while(col3 == 0);
return key;
case 0x17:
key = ~ScanCode | 0x04;
while(col4 == 0);
return key;
case 0x0f:
key = ~ScanCode | 0x05;
while(col5 == 0);
return key;
default: break;
}
}
}
ScanCode = (ScanCode << 1) | 0x01; //扫描下一行
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -