?? main.c
字號:
{
makecode=_4_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xfd://9
if(pointer<BUFFNUM)
{
makecode=_9_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xfb://du
if(pointer<BUFFNUM)
{
makecode=_d_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xf7://ad----f1
if(pointer<BUFFNUM)
{
makecode=_f1_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xef://fd-----f6
if(pointer<BUFFNUM)
{
makecode=_f6_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xdf://iu
if(pointer<BUFFNUM)
{
makecode=_i_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xbf://f3-----backspace
if(pointer<BUFFNUM)
{
makecode=_bsp_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0x7f://f8----:-
if(pointer<BUFFNUM)
{
makecode=_jian_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
}
}
else if(DatTemp2==0xfb)//d
{
SomeKeyKeepFlag=1;
}
break;
case 0x2f://P1.4=0
if(!SomeKeyEnableFlag)
{
SomeKeyEnableFlag=1;
switch(DatTemp2)
{
case 0xfe://5
if(pointer<BUFFNUM)
{
makecode=_5_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xfd://0
if(pointer<BUFFNUM)
{
makecode=_0_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xfb://eu
if(pointer<BUFFNUM)
{
makecode=_e_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xf7://bd-----f2
if(pointer<BUFFNUM)
{
makecode=_f2_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xef://gd-------f7
if(pointer<BUFFNUM)
{
makecode=_f7_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xdf://id------f9
if(pointer<BUFFNUM)
{
makecode=_f9_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xbf://f4-----o
if(pointer<BUFFNUM)
{
makecode=_o_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0x7f://#1------y
if(pointer<BUFFNUM)
{
LED2=!LED2;
makecode=_y_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
}
}
else if(DatTemp2==0xfb)//e
{
SomeKeyKeepFlag=1;
}
break;
case 0x1f://P1.5=0
if(!SomeKeyEnableFlag)
{
SomeKeyEnableFlag=1;
switch(DatTemp2)
{
case 0xfe://tab
if(pointer<BUFFNUM)
{
makecode=_tab_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xfd://a/b
if(pointer<BUFFNUM)
{
makecode=_ab_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xfb://main
if(pointer<BUFFNUM)
{
makecode=_esc_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xf7://down
if(pointer<BUFFNUM)
{
MS[pointer]=0xe0;
pointer++;
makecode=_down_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=1;
}
break;
case 0xef://up
if(pointer<BUFFNUM)
{
MS[pointer]=0xe0;
pointer++;
makecode=_up_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=1;
}
break;
case 0xdf://hand
if(pointer<BUFFNUM)
{
LED4=!LED4;
makecode=_hand_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0xbf://fappy
if(pointer<BUFFNUM)
{
LED1=!LED1;
makecode=_fap_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
case 0x7f://#2-----n
if(pointer<BUFFNUM)
{
LED3=!LED3;
makecode=_n_PS2;
MS[pointer]=makecode;
pointer++;
TwoMcodeFlag=0;
}
break;
}
}
break;
case 0x3f://鍵盤松開
SomeKeyEnableFlag=0;
if(makecode!=0)
{
if(TwoMcodeFlag)
{//雙鍵碼
MS[pointer++]=0xe0;
MS[pointer++]=0xf0;
MS[pointer++]=makecode;
}
else
{//單鍵碼
MS[pointer++]=0xf0;
MS[pointer++]=makecode;
}
}
break;
default://多個鍵盤按下
if(SomeKeyEnableFlag)//
{
SomeKeyKeepFlag=0;
SomeKeyKeepTime=0;
SomeKeyEnableFlag=0;
}
break;
}
ReadKeyOnceFlag=0;
}
//===============長時間按鍵處理
/*
if(SomeKeyKeepTime>=KEYKEEPTIME)
{
if(pointer<BUFFNUM)
{
SomeKeyKeepTime=0;
MS[pointer]=makecode;
pointer++;
}
}
*/
//===============鍵盤值發送,緩沖區重整理
if(MS[0]!=0)
{
if(!SendByte(MS[0]))
{
for(i=0;i<BUFFNUM;i++)
MS[i]=MS[i+1];
MS[BUFFNUM]=0;
}
}
//==============指針指向第一個空緩沖區
pointer=0;
while((MS[pointer]!=0)&&(pointer<BUFFNUM))
pointer++;
//===============
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}//for end
}//main end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -