本文向大家推荐一个精简IO接口的4×4键盘电路,该键盘电路仅仅使用4条IO接口引线,即可完成一般需要8位接口才能完成的功能。
在51单片机系统中,经常使用4×4键盘,一般情况下,都是使用一个8位的接口,外接16个按键。 下图就是一个常规的4×4键盘电路图。
这种常规的矩阵键盘电路,相信大家都司空见惯了,好多人都会编写它的驱动程序。 图中使用了P0口的8个引脚(P0.0~P0.7),分别驱动键盘的行和列。按键的编号,在图中分别标注了0~F。
检测按键的一般的思路是在四个列线,分别输出一个低电平,然后输入行线,逐行检测是否存在低电平。 如果在某行有低电平出现,就说明该行、列的交叉点上的按键,被按下了。
其实,这些行、列引线,是“分时”工作的,当在某一列输出低电平的时候,其它的列,输出的就是高电平。如果利用这些输出高电平的列,进行输入,那么就可以极大的节省IO接口的引线数量。基于这个道理,在上图中,下面的四个列驱动引线(P0.4~P0.7),就完全可以省去,只是使用行驱动的引脚(P0.0~P0.3)来分时输出低电平即可。电路见下图。
为了对引脚之间进行