使用键盘模式

K端口是专门的键盘端口,有8个IO,因此可以有两种模式:

模式一:8Key模式

每个IO口接一个按钮,有电阻上拉,8key模式的特点是支持组合键,即按下K1同时,还可以按下K2 K3

获取按键状态:
void e1.recvExtend(int mode,int bs,int len)
{
    if(mode == 4){    // 8key
        int key;
        key = getbin(bs,0);
        //key的8bit分辨对应8个key是否按下 每bit 1-按下 0-未按下
        //比如K1被按下,则key=0x01  松开K1后 key=0x00
        //比如K2被按下,则key=0x02  松开K2后 key=0x00
        //比如K1、K2同时被按下,则key=0x03  松开后 key=0x00
    }

}

模式二:4X4 16key 模式

设置:
 e1.setkey(2);  //设置4X4 16key模式
获取按键状态:
void e1.recvExtend(int mode,int bs,int len)
{
    if(mode == 5){    // 16key
        int k;
        int d;
        k = getbin(bs,0);
        d = getbin(bs,1);
        //此时k为按键编码 为00~0F,分别对应16个按键
        //此时d为按键状态,=1表示按键按下  =2表示按键抬起;=3表示长按
    }

}

设置key模式的语句

void e1.setkey(int mode);
//mode: 0-关闭键盘模式  1-8key模式  2-4X4模式