📄 keyboard.c
字号:
/*键盘扫描*/
unsigned char KeyScan(void){
unsigned char key,key0;
unsigned char key_sign1;
unsigned char keypress;
keyped_sign=0;
key_sign1=0;
while(key_sign1!=1){
PTT=0x0F;
keypress=PTT;
if(keypress!=0x0F){
Delay(500);
PTT=K_ROW1;
keypress=PTT;
key=keypad(keypress,K_ROW1);
if(key!=0xFF){
key_sign1=1;key0=key;
}
PTT=K_ROW2;
keypress=PTT;
key=keypad(keypress,K_ROW2);
if(key!=0xFF){
key_sign1=1;key0=key;
}
PTT=K_ROW3;
keypress=PTT;
key=keypad(keypress,K_ROW3);
if(key!=0xFF){
key_sign1=1;key0=key;
}
PTT=K_ROW4;
keypress=PTT;
key=keypad(keypress,K_ROW4);
if(key!=0xFF){
key_sign1=1;key0=key;
}
}
}
keyped_sign=1;
return(key0);
}
unsigned char keypad(unsigned char keypress,unsigned char k_row){
unsigned char key1;
if(keypress!=k_row){
key1=which_key(keypress);
}
else{
key1=0xFF;
}
return(key1);
}
unsigned char which_key(unsigned char keypress){
unsigned char keynum;
switch(keypress){
case 0xE7: keynum=1;break;
case 0xEB: keynum=2;break;
case 0xED: keynum=3;break;
case 0xEE: keynum=4;break;
case 0x77: keynum=5;break;
case 0x7B: keynum=6;break;
case 0x7D: keynum=7;break;
case 0x7E: keynum=8;break;
case 0xB7: keynum=9;break;
case 0xBB: keynum=0;break;
case 0xBD: keynum=LEFT;break;
case 0xBE: keynum=RIGHT;break;
case 0xD7: keynum=UP;break;
case 0xDB: keynum=DOWN;break;
case 0xDD: keynum=CONFIRM;break;
case 0xDE: keynum=CANCLE;break;
default : keynum=0xFF;
}
return (keynum);
}
/*键盘释放*/
void KeyRelease(void){
unsigned char release,keypress;
release=0;
while(release!=1){
PTT=0x0F;
keypress=PTT;
if(keypress==0x0F){
Delay(1000);
PTT=0x0F;
keypress=PTT;
if(keypress==0x0F){
release=1;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -