
手机键盘的基本工作原理.pdf
3页内部公开▲ 键盘的基本工作原理 的按键数量较多,为了减少I/O口的占用,通常将按键排成矩阵形式如图1是5*4的矩阵,最多可构成了5*4=20个按键(图1只使用了19个键)每条行线和列线在交叉处不直接连通,而是通过一个按键加以连接矩阵式按键工作基本原理是, CPU通过对行线和列线上的电平高低进行识别,来判断是否有键按下以及是哪个键被按下 图1 那么矩阵键盘的是如何正确识别按键的? 一般采取的是“行扫描法”行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法它的工作主要有下述几个过程: 1. 检查当前是否有键被按下检查的方法是,把行线 V1~V5定义为输入端 , 列线H1~H4定义为输出端. 列线 内部公开▲ H1~H4通过上拉电阻接到VREG_MSMP,被预置为1.判断是否有键被按下时,V1~V5先全部预置为0,CPU对H1~H4的状态进行扫描如果H1~H4全为1,则无键闭合如果检测到H1~H4有任一条线为0,则判断有键闭合,启动后续的判断程序. 2. 判断是否为键抖动当检测到有键按下后,延时一段时 间再做下一步的检测判断 3. 判断哪一个键闭合方法是对键盘的行列线进行扫描。
CPU对行线V1~V5每一条行线进行置数按这样的规律,将一条行线置为0,其它行线置为1,再对列线H1~H4进行扫描判断.这样依次对行线置0,同时对列线扫描.当检测到出现行线和列线都为0的状态,则交叉点就是闭合键的位置,由此就得到了此键的行值和列值,也就是键值的位置码 就以5键被按下为例CPU对各行线依次进行扫描行值如下: V1: 0 1 1 1 1 (将V1行置0,其它置1,因键不在此行,所以CPU对H1~H4的扫描结果为 1 1 1 1,所以判断此行无键闭合) V2:1 0 1 1 1 (将V2行置0,其它置1) V3:1 1 0 1 1 V4:1 1 1 0 1 (将V4行置0,因5键在V4行,所以5键闭合 内部公开▲ 导致对应的列线H2的值被拉低为0,所以CPU对H1~H4的扫描结果为 1 0 1 1,只要列线有0,则CPU判断已经得到位置信息,记录下此时的行值和列值,所以此刻得到了键值的位置码,位置码为:11101 1011) 4. 将键值的位置码转变为键值CPU通过查找内置的计算表(每一个行值列值对应一个键值,在编程时已经将各键的键值位置码编成了表格,CPU只要得到行值和列值组成的键值位置码,根据表格就能查到相对应的键值),查找到该位置码对应的是5键。
这个过程叫键值译码 这里只是简单的介绍矩阵键盘的基本工作过程但实际上,键盘的处理程序是很复杂的,往往占了一个应用程序的大部分代码,在编码时需要考虑到包括用户习惯等方面的东西,可见其重要性 马巧明 。
