使用键盘模式
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模式