📄 getkey.h
字号:
void delay(void)
{
uchar i;
for(i=300;i>0;i--);//20ms
}
//键扫描函数
uchar keyscan(void)
{
//uchar scancode,tmpcode;
unsigned int Delay=0;
P2=0xff; //P2.0-X P2.1-L2 P2.2-L3 P2.3-C3 P2.4-C2 P2.5-C1 P2.6-X P2.7-L1
//P2_6=1;
//P0=0xdf;//P0.5=0;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_();
Delay=0;
if(P0==0x05) //00000101 -1行1列 S1 选择键 KEYSWITCH
{
while(P0==0x05)
{
if(++Delay>0x2000) return(1);
}
}
Delay=0;
if(P0==0x09) //00001001 -1行2列 S4 取消键 keycanle
{
while(P0==0x09)
{
if(++Delay>0x2000) return(2);
}
}
Delay=0;
if(P0==0x11) //00010001 -1行3列 S7 下键 KEYDOWN
{
while(P0==0x11)
{
if(++Delay>0x2000) return(3);
}
}
Delay=0;
if(P0==0x44) //01000100 -2行1列 S2 更改键 KEYCHANGE
{
while(P0==0x44)
{
if(++Delay>0x2000) return(4);
}
}
Delay=0;
if(P0==0x48) //01001000 -2行2列 S5 录放键 KEYVOICE
{
while(P0==0x48)
{
if(++Delay>0x2000) return(5);
}
}
Delay=0;
if(P0==0x50) //01010000 -2行3列 S8 左键 keyleft
{
while(P0==0x50)
{
if(++Delay>0x2000) return(6);
}
}
Delay=0;
if(P0==0x24) //00100100 -3行1列 S3 确认键 KEYOK
{
while(P0==0x24)
{
if(++Delay>0x2000) return(7);
}
}
Delay=0;
if(P0==0x28) //00101000 -3行2列 S6 上键 KEYUP
{
while(P0==0x28)
{
if(++Delay>0x2000) return(8);
}
}
Delay=0;
if(P0==0x30) //00100100 -3行1列 S18 右键 KEYRIGHT
{
while(P0==0x30)
{
if(++Delay>0x2000) return(9);
}
}
else return(0); //无下压键
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -