键盘接口设计.pdf

上传人:白大夫 文档编号:5445843 上传时间:2020-05-12 格式:PDF 页数:7 大小:1.62MB
返回 下载 相关 举报
键盘接口设计.pdf_第1页
第1页 / 共7页
键盘接口设计.pdf_第2页
第2页 / 共7页
键盘接口设计.pdf_第3页
第3页 / 共7页
键盘接口设计.pdf_第4页
第4页 / 共7页
键盘接口设计.pdf_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《键盘接口设计.pdf》由会员分享,可在线阅读,更多相关《键盘接口设计.pdf(7页珍藏版)》请在三一文库上搜索。

1、键盘接口设计 键盘接口设计 摘要:本文主要介绍了键盘的工作原理和六种键盘接口电路的结构及其按键 的识别方法,可以满足各种应用场合对于键盘的要求。 关键词 :独立式行列式阶梯式ADC Pin I/O Pin 和 ADC Pin 二极管 一、引言 键盘是基本的输入设备,在单片机应用系统中能实现向单片机输入数据、传 送命令等功能, 是人工干预单片机的主要手段。下面介绍键盘的工作原理, 键盘 接口类型及其按键识别方法。 二、键盘的工作原理 1、键盘输入的特点 键盘实质上是一组按键开关的集合。通常,键盘开关利用了机械触点的合、 断作用。一个电压信号通过键盘开关机械触点的断开、闭合,其行线电压输出波 形如

2、图 1 所示。 图 1 键盘开关及其波形 图 1 中 T1 和 T3 分别是按键的闭合和断开过程中的抖动期(呈现一串负脉 冲),抖动时间长短和开关的机械特性有关,一般为510ms,T2 为稳定的闭合 期,其时间由按键动作所确定,一般为十分之几秒到几秒,T0、T4 为断开期。 2、按键的确认 按键的闭合与否, 反映在行线输出电压上就是呈现高电平或低电平,如果高 电平表示按键断开, 低电平表示按键闭合, 通过对行线电平高低状态的检测,便 可确认按键按下与否。为了确保MCU 对一次按键动作只确认一次按键有效,必 须消除抖动期 T1 和 T3 的影响。 3、软件消除按键抖动 通常采用软件来消除按键抖动

3、,基本思想是:在第一次检测到有键按下时, 假设该键所对应的行线为低电平,执行一段延时10ms的子程序后,确认该行线 电平是否仍为低电平, 如果仍为低电平, 则确认该行确实有按键按下。 当按键松 开时,行线的低电平变为高电平,执行一段延时10ms的子程序后,检测该行线 为高电平,说明按键确实已经松开。 三、键盘接口类型及原理 1、独立式键盘接口 独立式键盘就是各键相互独立, 每个按键各接一个Input Pin, 通过检测 Input Pin 的电平状态可以很容易的判断哪个按键被按下。 在按键数目较多时,独立式键盘电路需要较多的Input Pin, 且电路结构繁杂, 故此种键盘适用于按键较少或操作

4、速度较高的场合。具体电路结构如图2 所示。 图 2 独立式键盘接口 当 Input Pin 内部有上拉电阻,则外部电路的上拉电阻可以省去,如图2 右 半图所示。 2、行列式键盘接口 行列式(也称矩阵式) 键盘适用于按键数目较多的场合,它由行线和列线组 成,按键位于行、列的交叉点上。很明显,在按键数目较多的场合,行列式键盘 与独立式键盘相比,要节省很多的I/O 口线。图 3、4 所示为 55 行列式键盘接 口电路,如果 Input Pin 内部有上拉电阻,则外部电路的上拉电阻可以省去。 图 3 55 行列式键盘接口(扫描法) 图 4 55 行列式键盘接口(线反转法) 行列式键盘按键的识别方法主要

5、有两种:扫描法和线反转法。 扫描法:第一步,识别键盘有无按键被按下。 首先把所有的列线均置为低 电平,检查各行线电平是否有变化,如果有变化,则说明有键被按下;如果没有 变化,则说明没有键被按下。第二步,如有键被按下,识别具体的按键。首先把 某一列置为低电平, 其余各列置高电平, 检查各行线电平的变化, 如果某行线电 平为低电平,则可确认此行交叉点处的按键被按下。 线反转法:第一步,设置行线为Input Pin 模式,列线为 Output Pin 模式, 并使全部 Output Pin 输出低电平,则行线中由高电平变低电平的所在行为按键所 在行。第二步,把行线设置为Output Pin 模式,把

6、列线设置为Input Pin 模式,并 使全部 Output Pin 输出低电平, 则列线中电平由高到低所在列为按键所在列。综 合上述 2 步的结果,可以确定按键所在行和列,从而识别出所按的键。 3、阶梯式键盘接口 图 5 所示为阶梯式键盘接口电路(5 个 I/O),由图可以看出,键盘分布呈 现阶梯状,故称为阶梯式键盘接口。如果I/O Pin 内部有上拉电阻,则外部电路 的上拉电阻可以省去。 阶梯式键盘接口按键的识别方法是:首先令 IO1 输出低电平, 检测 IO2IO5 口电平是否有变化, 如果有变化, 则表示有按键被按下, 若此时 IO3 检测到低电 平,则表示 K13 被按下,退出键盘扫

7、描;否则,表示没有按键被按下,继续键 盘扫描。如果第一行没有按键被按下,则令IO2 输出低电平,检测IO3IO5 口 电平是否有变化,以此类推。 由图 5 很容易得到阶梯式键盘接口的I/O 口资源与扫描按键数目的关系,如 下式所示: 由关系式可以看出, 该方法不适合按键数目较少的应用场合,而对于按键数目较 多的应用场合,该方法可以很好的发挥其优点,如使用8 个 I/O 口可以扫描 28 个按键。 图 5 阶梯式键盘接口 4、ADC Pin 键盘接口 目前市场上集成有ADC 功能的单片机已经非常普遍了,对于I/O 资源非常 紧张的应用场合, 就可以利用一个 ADC 口来实现键盘功能。 ADC 的

8、作用是把模 拟量转换成数字量,以便于MCU 进行处理,所以只要能够通过按键来控制输入 ADC 的模拟量的大小,就可以实现按键的检测。具体电路结构如图6 所示。 图 6 ADC Pin 键盘接口 该键盘接口可以为MCU 节省很多的 I/O 资源, 尤其是按键数目较多的情况, 但它是以牺牲硬件成本(电阻)为代价,而且抗干扰能力相对会差一些。另外, 对于按键较多的情况,需要注意电阻的分配,即合理分配按键控制的ADC 值, 以避免相邻 ADC 值按键的误判。 5、I/O Pin与 ADC Pin 相结合键盘接口 对于较多按键,如25 个按键的应用场合,行列式键盘接口需要10 个 I/O, 或者 9 个

9、 I/O 加一根地线,还是占用了比较多的I/O 资源,尽管有的时候可以将 按键 I/O 与其它 I/O 共用。而 ADC Pin 键盘接口, 相对于行列式键盘接口最多可 以节省 9 个 I/O 口,但相应的需要26 个电阻,电路结构也相应变得复杂,成本 增加,稳定性下降。该节介绍的键盘接口是将行列式键盘接口和ADC Pin 键盘 接口相结合,既节省了I/O 口线,又没有增加太多的成本,稳定性也可以保证, 具体电路结构如图7 所示。 图 7 I/O Pin 与 ADC Pin 相结合键盘接口 该键盘按键的识别方法是: 第一步, 识别键盘有无按键被按下, 检测各 I/O Pin 的电平状态, 如果

10、有低电平, 则表示该列有按键被按下, 否则,没有按键被按下。 第二步,如果有按键被按下,则令检测到低电平的I/O Pin 输出高电平,然后检 测 ADC 电压,来确定是哪一行有按键按下。综合上述2 步的结果,就可以确定 是哪一个按键被按下。 利用该电路结构, 可以根据不同的应用场合来调整I/O 口数目和电阻 R 的数 目,例如 24 个按键,可以是 3 个 I/O、1 个 ADC、9 个 R,或者 4 个 I/O、1 个 ADC、7个 R,或者 6 个 I/O、1 个 ADC、5 个 R,或者 8 个 I/O、1 个 ADC、3 个 R。 6、二极管键盘接口 对于没有集成 ADC 功能的 MC

11、U,如果遇到按键数目较多的应用场合,如 25,而 I/O 资源又相对紧张,则可以通过该节介绍的二极管键盘接口电路来实现 键盘功能。具体电路结构如图8 所示。 图 8 二极管键盘接口 该键盘按键的识别方法是:第一步,扫描Gnd 行是否有按键被按下,如果 检测到 I/O 口电平有低电平, 则表示有按键被按下; 否则,表示没有按键被按下, 扫描程序进入第二步。第二步,首先设置所有I/O 口工作在 Output Pin 模式,且 令某一行输出低电平,其余行输出高电平。然后设置输出高电平行的I/O 口为 Input Pin,并检测电平是否有变化,如果检测到低电平,则表示该行与输出低电 平的那一行的交叉点处有按键被按下,否则,没有按键被按下。 需要注意,当键盘扫描进入第二步时,如果Gnd 行有按键被按下,则会发 生误判按键。例如,当扫描 L1 行时,K11 和 K62 按下都会令 IO1 检测到低电平。 这可以通过软件来加以识别, 当检测到 IO1 为低电平时, 则下一步立即判断Gnd 行是否有按键被按下,如果有,则表示按键位于Gnd 行;否则,表示按键位于 L1L5 行。 四、总结 在实际应用过程中, 应该综合考虑各方面的因素, 如按键数目, MCU 的 I/O 口资源,MCU 是否集成有 ADC 功能模块,对于硬件成本的考虑, 工作环境(稳 定性)等,来选取合适的键盘接口电路。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1