首页 理论教育 矩阵键盘扩展-单片机应用技术

矩阵键盘扩展-单片机应用技术

时间:2023-11-06 理论教育 版权反馈
【摘要】:行扫描方式矩阵键盘如图7.4所示。图7.4矩阵键盘扫描方式首先分析一下键盘键值的规律,每行最左边的键值与行号存在的关系是:行首值=行号×4,每行键值与行首值存在的关系是:键值=行首值+列号=行号×4+列号。若没有键闭合则返回,重复进行判键闭合的过程。以4×4扩展矩阵为例,用单片机的P1口作键盘I/O口,行线连接P1口的低4位,列线连接P1口的高4位,如图7.5所示。图7.5矩阵键盘反转法

矩阵键盘扩展-单片机应用技术

(1)行扫描方式

矩阵键盘如图7.4所示。

图7.4 矩阵键盘扫描方式

首先分析一下键盘键值的规律,每行最左边的键值(称为行首值)与行号存在的关系是:行首值=行号×4,每行键值与行首值存在的关系是:键值=行首值+列号=行号×4+列号。由此可见,只要确定按键在哪一行和哪一列就可计算出键值。

要获取按键的位置,需通过程序进行判键闭合和识别键两个过程。判键闭合是确定键盘中是否有键闭合,其过程是先使行线输出口输出全0,再读取列线状态,若列线状态为全1,则表明无键被按下;若不为全1,则表明有键被按下。只有键被按下时,行线与列线在闭合交点处才接通,穿过闭合键的那条列线变为低电平。发现闭合键后就转入识别键的过程。若没有键闭合则返回,重复进行判键闭合的过程。(www.xing528.com)

识别键就是键盘扫描过程,其过程是依次使每一条行线中输出低电平,接着读取列线状态进行有无闭合键的判定。发现哪一根列线为低电平,说明该列有键按下,结合此时输出低电平的行线,就可以确定按键的具体行号和列号了。

(2)反转法

在反转法中,连接行线和列线的并行端口都应是双向端口,既可以输入,也可以输出。通过程序向行线上全部送0,然后读得所有列线的值。再将刚才读得的列线数据从列线所接并行口输出,后读入此时所有行线的值。将获得的行线值与列线值组合成按键的键码。以4×4扩展矩阵为例,用单片机的P1口作键盘I/O口,行线连接P1口的低4位,列线连接P1口的高4位,如图7.5所示。假如2号键按下,程序从行线输出全0后,读取列线值为1101 B;反之,从列线输出1101 B后,读取行线值为1110 B。行线值和列线值合起来得到一个数值11011110 B,即DEH,这是对应第0行第1列的键1的唯一键码,可以通过计算或查表获得最终的键值。

图7.5 矩阵键盘反转法

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈