📄 key_check.c
字号:
idata UINT8 kkey;
idata UINT8 kc,kcount;
bit kready; // true when kkey is valid
idata UINT8 key_hold,time_hold;
bit flag_key_hold;
/*void delay( long milisecond)
/* n mS delay
{ UINT8 i;
while(milisecond--)
{ i=50;
while(i--);
}
}*/
void delay( long i)
{
while(i--);
}
void beep(void)
{ BUZZER_POWER = 0;
delay(50);
BUZZER_POWER = 1;
}
void Keyboard_Check(void)
{
static UINT8 key_input, key_input_last;
// if(kcount!=0)
// return; // Wait until 20mS elapses, kcount is decreased in INT0 service routine.
delay(20);
P0=0xff;
KEYBOARD_ENB = 0;
KEYBOARD_ENB = 0;
KEYBOARD_ENB = 0;
key_input_last=key_input;
key_input=P0;
key_input &= 0x3f;
KEYBOARD_ENB = 1;
if(key_input_last==0x3f && key_input!=0x3f) /* 有键按下 */
{ kkey=key_input;
kready=1;
beep();
}
if( key_input_last== key_input && key_input != 0x3f) /* 按键按住 */
{ if(time_hold <100)
time_hold++;
if(time_hold == 100)
{ key_hold = key_input;
flag_key_hold = 1;
time_hold = 0;
}
}
if(key_input==0xff && key_input_last!=0xff) /* 按键释放 */
{ time_hold = 0;
}
// kcount = 3;
}
void Keyboard_Wait_For_Enter(void)
{ kready = 0;
while(1)
{ Keyboard_Check();
if( (kready ==1) && (kkey == KEY_ENTER) )
break;
}
kready=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -