📄 键盘接口技术.txt
字号:
键盘接口技术
一、键盘分类
键盘分为外壳、按键和电路板3大类。
根据按键开关结构对键盘分类,有触点式和无触点式两大类。有触点式按键开关有机械式开关、薄膜开关、导电橡胶式开关和磁簧式开关等;无触点式按键开关有电容式开关、电磁感应式开关和磁场效应式开关。有触点式键盘手感差、易磨损、故障率高;无触点式键盘手感好、寿命长。无论采用什么形式的按键,作用都是一个使电路接通或断开的开关。
根据键盘的按键码识别方式分类,有编码键盘和非编码键盘。编码键盘主要依靠硬件电路完成扫描、编码和传送,直接提供与按键相对应的编码信息,其特点是响应速度快,但硬件结构复杂。非编码键盘的扫描、编码和传送则是由硬件和软件来共同完成,其响应速度不如编码键盘快,但是因为可以通过对软件的修改重新定义按键,在需要扩充键盘功能的时候很方便。
二、键盘的工作原理
常用的非编码键盘有线性键盘和矩阵键盘。线性键盘主要适用于小的专用键盘,上面按键不多,每个按键都有一条数据线送到计算机接口。每个按键对应一根数据线,当按键断开时,数据线上为高电平,当按键按下时,数据线上为低电平。显然,当按键数增多时,输入到计算机接口的数据线也增多,这样就受到输入线宽度的限制了。
矩阵键盘就克服了线性键盘的上述缺点。在矩阵键盘上,其按键按行列排放。例如一个4*4的矩阵键盘,共有按键16个,但数据输入线只有8条。这样可以适合按键较多的场合,因此等到了广泛的应用。
键码识别是指矩阵结构的键盘识别被按键的方法。一般有行扫描法、行列反转法和行列扫描法。
1、行扫描法
行扫描法的工作原理是这样的:CPU首先向所有行输出低电平,如果没有按键按下,则所有列线输出为高电平。如果有某一键按下,则该键所在的列因为与行线低电平短路,该列线变为低电平。CPU在此时通过读取列线的值即可判断有无键按下。
在有键按下的情况下,CPU再来确定是哪一个键按下,采用的方法是行扫描法。先向第0行输出低电平,其余行输出高电平,然后读取所有列线的电平值。如果有某一列为低电平,则说明0行和该列跨接位置的那个键被按下了。确定了键的位置就可以退出扫描了。如果列线全为高电平,说明本行没有键按下,则继续将下一行输出低电平,其余行输出高电平,然后读取所有列线的电平值。依此类推,直到找到按下键的位置,则退出扫描。
找到按下键的位置,即该键的行号和列号,就可以获得该键的键码。这种通过行列位置表示的键码称为行列码或扫描码,也称为键盘扫描码。
2、行列反转法
行列反转法也是常用的识别闭合键的方法。其工作原理是:首先对所有行线输出低电平,列线输出高电平,同时读入列线。如果有键按下,则该键盘所在的列线为低电平,而其它列线为高电平。由此获得列号。然后向所有列线输出低电平,行线输出高电平,读行线,确定按键的行号。通过行号和列号确定按键的位置和编码。
3、行列扫描法
行列扫描法也是键盘使用的主要键码识别方法。其工作原理如下:首先向每一行依次输出低电平,其余各行为高电平,每扫描一行,读取一次列线。如果列线全为高电平,说明没有键按下,如果有一列为低电平,则说明有键按下,此时可以确定行号和列号。行扫描完成。接下来依次向每一列输出低电平,读行线,再次确定按键的行号和列号。两次获得的行号和列号相同,则键码正确,即获得按下键的行列扫描码。
4、注意事项
在键盘设计过程中,除了识别有无键按下,按下键的行列扫描码以外,还要解决抖动和重键问题。一个键按下和释放的时候,按键开关会在闭合和断开位置间跳动几次后达到稳定状态,这就是抖动问题。抖动的存在会使得脉冲的开头和尾部出现一些毛刺波,持续时间一般小于10ms。如果不处理抖动问题,就可能被误作多次按键。抖动的消除可以通过硬件方法,采用RC滤波电路消除抖动的波形。也可以采用软件方法,在读取键码的时候延时一段时间,等信号稳定后再去识别键码。重键问题是指由于误操作,两个或以上的键被同时按下,此时行列扫描码中就会产生错误的行列值。重键处理的方法有连锁法和顺序法。连锁法是不停地扫描键盘,仅承认最后一个闭合键。顺序法是识别到一个闭合键后,直到该键被释放后再去识别其他按键。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -