首页 理论教育简易矩阵键盘程序设计指南

简易矩阵键盘程序设计指南

【摘要】:只要有一列的电平为低,即P3.4~P3.7中有一个“1”,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。去除键抖动 为了保证键每闭合一次CPU仅作一次处理,必须去除键释放时的抖动。图20-15 键盘处理程序流程图键盘扫描关键代码如下:

根据键盘的工作原理,本系统的键盘扫描方法采用行扫描方法。行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,介绍过程如下:

(1)判断键盘中有无键按下 将全部行线置低电平,即P3.0~P3.3输出全“0”,然后检测列线的状态,即读取P3.4~P3.7的状态。只要有一列的电平为低,即P3.4~P3.7中有一个“1”,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,即P3.4~P3.7为全“1”,则键盘中无键按下。

(2)去除键抖动 为了保证键每闭合一次CPU仅作一次处理,必须去除键释放时的抖动。本文采用软件延时法,即当检测到有键按下后,延时一段时间,重新扫描键盘有无键按下,确认有键按下后再做下一步的检测判断。

(3)判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是依次将行线置为低电平,即在置某根行线为低电平时,其他线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值。

(4)等待按键释放 为了保证按键每闭合一次CPU仅作一次处理,必须等待按键释放后再作下一次按键的判断和处理。键盘处理子程序流程图如图20-15所示。(www.chuimin.cn)

978-7-111-47690-0-Part03-118.jpg

图20-15 键盘处理程序流程图

键盘扫描关键代码如下:

978-7-111-47690-0-Part03-119.jpg