?? keyscan.c
字號:
unsigned char code table[]=
{
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
0x76,0x79,0x38,0x3f
}; //共陰數碼管碼表(0-F)
void delayms(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delaycnt(unsigned int cnt)
{
while(--cnt);
}
void ioinit(void)
{
;
}
unsigned char keyscan(void)
{
unsigned char keycode;
unsigned char temp;
P1=0xfe;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
delayms(5);
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xee:keycode=1;
break;
case 0xde:keycode=2;
break;
case 0xbe:keycode=3;
break;
case 0x7e:keycode=4;
break;
}
while(temp!=0xf0) //松手檢測
{
temp=P1;
temp=temp&0xf0;
}
}
}
P1=0xfd;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
delayms(5);
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xed:keycode=5;
break;
case 0xdd:keycode=6;
break;
case 0xbd:keycode=7;
break;
case 0x7d:keycode=8;
break;
}
while(temp!=0xf0) //松手檢測
{
temp=P1;
temp=temp&0xf0;
}
}
}
P1=0xfb;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
delayms(5);
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xeb:keycode=9;
break;
case 0xdb:keycode=10;
break;
case 0xbb:keycode=11;
break;
case 0x7b:keycode=12;
break;
}
while(temp!=0xf0) //松手檢測
{
temp=P1;
temp=temp&0xf0;
}
}
}
P1=0xf7;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
delayms(5);
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xe7:keycode=13;
break;
case 0xd7:keycode=14;
break;
case 0xb7:keycode=15;
break;
case 0x77:keycode=16;
break;
}
while(temp!=0xf0) //松手檢測
{
temp=P1;
temp=temp&0xf0;
}
}
}
return keycode;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -