?? keyscan.c
字號(hào):
void KeyScan(void) /* 鍵盤掃描 */
{
unsigned char i,j,kv0,kv1,kv2,kv3,kv4;
i = 0;
j = 0;
P1 = 0xEF;
kv0=P1; /* 讀入鍵值 */
P1 = 0xDF;
kv1=P1;
P1 = 0xBF;
kv2=P1;
P1 = 0x7F;
kv3=P1;
P1 = 0xFF;
kv4=P1;
kvn = 0;
for(i=0; i<4; i++) { /* 鍵值分析 */
if((kv0&0x01)==0) {
kvn = i*4 + 1;
j++;
}
if((kv1&0x01)==0) {
kvn = i*4 + 2;
j++;
}
if((kv2&0x01)==0) {
kvn = i*4 + 3;
j++;
}
if((kv3&0x01)==0) {
kvn = i*4 + 4;
j++;
}
if((kv4&0x01)==0) {
kvn = 17 + i;
j++;
}
kv0 /= 2;
kv1 /= 2;
kv2 /= 2;
kv3 /= 2;
kv4 /= 2;
}
if(j>1) {
kvn = 0; /* 同時(shí)按下多鍵則鍵值無(wú)效 */
}
if(kvn==0) {
kvc = 0;
kvo = 0;
}
else { /* 若鍵值有效 */
if(kvn==kvo) { /* 若鍵值與上次鍵值相同 */
if(kvc<253)
kvc++; /* 同鍵值計(jì)數(shù)延時(shí) */
if(kvc>2)
kvn=0; /* 以前鍵值已有效,則本次無(wú)效 */
if(kvo == CLEAR) {
if(kvc==20)
kvn = 0x55; /* 連按清零鍵達(dá) 120*10ms 則置全清*/
}
}
else { /* 若鍵值與上次鍵值不同 */
kvo = kvn; /* 記下鍵值 */
kvc = 1;
kvn = 0; /* 本次鍵值無(wú)效 */
}
}
if(kvc==0) {
kvn=0;
}
return;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -