?? key.h
字號:
#include<reg52.h>
#include<stdio.h>
#define uchar unsigned char
#define KEYPORT P2
unsigned char keyscan(void)
{
uchar scancode,tmpcode;
KEYPORT=0xf0; //發全1行掃描碼
if((KEYPORT&0xf0)!=0xf0) //若有鍵按下
{
uchar i;
for(i=10000;i>0;i++); //延時去抖動
if((KEYPORT&0xf0)!=0xf0) //延時后再判斷一次,去除抖動影響
{
scancode=0xfe;
while((scancode&0x10)!=0) //逐行掃描
{
KEYPORT=scancode; //輸出行掃描碼
if((KEYPORT&0xf0)!=0xf0) //本行有鍵按下
{
tmpcode =(KEYPORT&0xf0)|0x0f; /* 返回特征字節碼,為1的位即對應于行和列*/
return((~scancode)+(~tmpcode));
}
else scancode =(scancode<<1)|0x01; //行掃描碼左移一位
}
}
}
else return(0);
}
void convert(void)
{
uchar key;
key=keyscan();
switch(key)
{
case 0x11: keycode=1; break;
case 0x21: keycode=2; break;
case 0x41: keycode=3; break;
case 0x81: INC_1K=1; break;
case 0x12: keycode=4; break;
case 0x22: keycode=5; break;
case 0x42: keycode=6; break;
case 0x82: INC_100HZ=1; break;
case 0x14: keycode=7; break;
case 0x24: keycode=8; break;
case 0x44: keycode=9; break;
case 0x84: F_P=~F_P; break;
case 0x18: CANCEL=1; break;
case 0x28: keycode=0; break;
case 0x48: CONFIRM=1; break;
case 0x88: INC_1M=1; break;
default: break;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -