本帖最后由 mdevi 于 2014-6-28 11:58 编辑
请问,任意的双键按钮是怎样来判断的?单键按钮判断可以,但是双键按钮按下出现1 和 8 ,4 和 5判断是一样的,请问如何区别这角对线出现的按钮。
我使用的是行扫描法:PA2-PA5 PC3-PC5为所用的引脚。
xPORT_A=xPORT_A&(~0x3C); //0x3C(111100)
Wait_ms(10);
tmp=xPORT_C;
tmp=tmp&0x38; //00111000
if(0x38 != tmp)
{
Wait_ms(10); // Elimina
ting shiver
if(0x38 != (tmp & 0x38))
{
sccode = ~0x04; //从PA2开始扫描
while(0xFF != sccode)
{
xPORT_A = sccode;
tmp = xPORT_C;
tmp = tmp & 0x38 ;
if(0x38 != tmp )
{
recode = ((sccode & 0x3C) >> 2) & 0x0f | 0xf0; //PA: xxxx 00 >>2 = xxxx 11111101
tmpi = (~((tmp << 1) & 0xf0 | 0x0f)) & 0x7f | (~recode); //Mode:xxx(pc) xxxx(pa)
KeyCode[tmpj++] = tmpi;
}
sccode = (sccode << 1)|0x01;
Wait_ms(10);
}
}
j = tmpj;
i = fnKeycode(tmpj);
ComplexFlag = ComplexFlag + 1;
}
一周热门 更多>