【新手求助】矩阵键盘检测问题

2019-07-16 02:29发布

    最近在编程序时,发现书本上写的矩阵键盘检测步骤是:先将某一行置0,其他行与列全部置1,然后扫描键盘端口值并与0xf0按位相与,当检测到按位与后的值与0xf0不同后,说明改行有键被按下,延时后再次检测,如果与之前一样,则读取与键盘相连的端口的值,用switch case语句对比,得出哪个键被按下了。用同样的方法再检测其他行。

    这个方法可行,但是我觉得太麻烦,直接扫描键盘,将读取后的值与switch case语句中的值比较就行了,为什么还要一行行检测呢?我试了我的方法,不行。但是我想不通为什么,请高手帮忙解释,谢谢了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
Anennzxq
2019-07-16 22:08
我不知道这样说对不对,矩阵键盘没按下时相当悬空,如果你想使用矩阵键盘,那么你应该先置某一I/O为低电平,当你按下键盘时该按键才会被拉低,这样才能读出有效值来。而现在你没先置某I/O为低电平,你即使按下某一按键那该按键还是高低平,即你读出P3口的值都是高电平...

一周热门 更多>