工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

单片机矩阵按键电路

作者:dolphin时间:2014-04-22

有时8个按键不一定能满足我们的需要,可能需要更多的按键,但是单片机的硬件资源有限,这时就需要使用矩阵按键。图1 所示为矩阵键盘接线图,从电路上可以看出,虽然同样使用了8个端口,但是我们却组成了4.4也就是16个按键。电路图中,为了和原来板子的键盘接口兼容,我们还是使用了9脚插座,但是实际上使用了8个脚,最后一个接地的脚被悬空不用。
在使用中,我们将8255的PC口分成两个部分:PC0~PC3为输出,对应的键盘插座的1~4脚为输出;8255的PC4~PC7为输入,对应的键盘插座的5~8脚为输入。编制程序的时候首先使键盘接口插座的1脚置于低电平,2、3、4为高电平。也就是将8255的PC口的PC0输出0,PC1、 PC2、PC3输出为1,这时我们读PC4的值,如果全部为高,则说明按键AN1没有按下,因为如果按键AN1按下,就必然使PC0的低电平传到PC4脚上。
同样,我们继续保持PC0为低电平,再测试PC5脚,如果为低电平,则说明按键AN5按下,依次类推,我们通过对PC6、PC7的检测就可以知道AN9、AN13是不是被按下。
如果我们将PC0置于高电平,PC1口置于高电平,重复上面的检测,就可以查出AN2、AN6、AN10、AN14是不是按下了,用同样的方法可以检测出所有的按键的状态来。


图1 矩阵键盘接线图
虽然我们说的很唆,但是由于单片机的运行速度很快,因此这个过程实际上进行得很快,几乎是瞬间完成的,以至于我们在按键的时候感觉就是在同时检测。
这种方法被称为巡检。在单片机中,巡检是一种极为常见的方法。



评论

技术专区