矩阵键盘每个按键扫描怎么检测按键弹起(高四位是行线,低四位是列线)?


键盘扫描方法是:行线P10~P13为输出线列线P14~P17为输入线。一开始单片机将行线(P10~P13)全部输出低电平此时读入列线数据,若列线全为高电平则没有键按下当列线有出现低电平時调用延时程序以此来去除按键抖动。延时完成后再判断是否有低电平如果此时读入列线数据还是有低电平,则说明确实有键按下最後一步确定键值。现在我们以第二行的S5键为例若按下S5后我们应该怎么得到这个键值呢?当判断确实有键按下之后行线轮流输出低电平,根据读入列线的数据可以确定键值首先,单片机将P10输出为低电平其它P11~P13输出高电平,此时读取列线的数据全为高电平说明没有在第┅行有键按下;其次,单片机将P11输出低电平其它P10、P12、P13仍为高电平,此时再来读取列线数据发现列线读到的数据有低电平,数值为1011(0x0B)如果我们的键盘布局已经确定,那么0x0B就代表S5的值了转到S5键功能处理子程序就可以达到目的。

我要回帖

更多关于 矩阵键盘每个按键 的文章

 

随机推荐