首页 理论教育项目工作原理解析-单片机初级入门实战教程

项目工作原理解析-单片机初级入门实战教程

【摘要】:4×4矩阵键盘的行信号分别接P2.0~P2.3,列信号分别接P2.4~P2.7,无按键闭合时,P2.0~P2.3与P2.4~P2.7开路。否则行线不全部为高电平,表示为低电平的这列上有按键闭合。基于矩阵按键操作原理,采用单片机控制矩阵按键实现按键键码值显示的电路结构由五部分构成,包括51单片机最小系统、数码显示电路、数码驱动电路、矩阵键盘电路和电源供电电路,其电路结构框图如图13-5所示。图13-5 单片机控制矩阵键盘电路结构图

行列式键盘具有广泛的应用,可以采用计算的方法来求出按键值,以得到按键特征码。最常见的键盘键码布局如图13-2所示,由16个按键组成,单片机中利用P2口实现4×4矩阵键盘识别功能,单片机与4×4矩阵键盘连接的电路结构如图13-3所示。

4×4矩阵键盘的行信号分别接P2.0~P2.3,列信号分别接P2.4~P2.7,无按键闭合时,P2.0~P2.3与P2.4~P2.7开路。当有键闭合时,与闭合键相连的两条I/O口线之间短路。判断矩阵键盘有按键按下述方法如下:先让P2.0~P2.3输出低电平,监测P2.4~P2.7的状态,如果P2.4~P2.7输出为高电平则没有按键闭合,如果检测到P2.4~P2.7输出为低电平则表示有按键按下发生闭合状态,以上只是说明有按键闭合,具体是哪个按键闭合好需要进一步检测。

一旦确定有按键已经稳定闭合后,接着判断为哪一个按键闭合,采用对按键进行扫描的方式,依次给每一条列线送低电平,其余各列都为高电平,并检测每次扫描的行状态。每当扫描输出某一列为低电平时,相继读入行线状态。若全为高电平,表示为低电平的这列没有按键闭合。否则行线不全部为高电平,表示为低电平的这列上有按键闭合。确定闭合按键的位置后,计算出按键值,产生按键码。

978-7-111-47690-0-Part02-84.jpg

图13-2 矩阵键盘布局图

978-7-111-47690-0-Part02-85.jpg

图13-3 单片机与矩阵键盘接口电路

矩阵按键操作时注意:按键闭合一次只能进行一次按键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。

在矩阵按键处理过程中,一旦检测到有按键闭合与确认按键已经稳定闭合期间,通过调用10~20ms延时子程序避开按键抖动问题。由于按键是机械器件,按下或者松开时有固定的机械抖动,抖动如图13-4所示。

978-7-111-47690-0-Part02-86.jpg(www.chuimin.cn)

图13-4 按键抖动图

从图13-4中可以看出按键按下和松开的瞬间出现机械抖动,这个抖动时间虽然很短,一般10~15ms,不同按键抖动不同,但是对于单片机来讲,由于单片机是μs级别,极其容易检测到按键的抖动问题。所以实际上只是进行一次按键操作,但是有可能执行了多次按键结果即为抖动,目前大多数产品实际应用中都使用了按键去抖功能。

按键去抖分为硬件去抖和软件去抖,硬件去抖最简单的是按键两端并联电容,容值根据实验而定。软件去抖使用方便不增加硬件成本,容易调试,所以现在处理按键抖动问题大部分选择软件去抖。软件去抖操作步骤如下:

①检测到按键按下后进行10~15ms延时,用于跳过这个抖动区域。

②延时后再检测按键状态,如果没有按下,表明是抖动或者干扰造成,如果仍旧按下,可以认为是真正的按下,并进行对应的操作。

③同样按键释放后也要进行去抖动延时,延时后检测按键是否真正松开。

多数时候按键需要在释放时才起作用,就类似计算机鼠标一样,这个时候需要检测按键是否释放,如果没有释放则一直等待。基于矩阵按键操作原理,采用单片机控制矩阵按键实现按键键码值显示的电路结构由五部分构成,包括51单片机最小系统、数码显示电路、数码驱动电路、矩阵键盘电路和电源供电电路,其电路结构框图如图13-5所示。

978-7-111-47690-0-Part02-87.jpg

图13-5 单片机控制矩阵键盘电路结构图