键盘接口设计_第1页
键盘接口设计_第2页
键盘接口设计_第3页
键盘接口设计_第4页
键盘接口设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、。3、软件消除按键抖动通常采用软件来消除按键抖动,基本思想是:在第一次检测到有键按下时, 假设该键所对应的行线为低电平,执行一段延时 10ms 的子程序后,确认该行线 电平是否仍为低电平, 如果仍为低电平, 则确认该行确实有按键按下。 当按键松 开时,行线的低电平变为高电平,执行一段延时 10ms 的子程序后,检测该行线 为高电平,说明按键确实已经松开。三、键盘接口类型及原理1、独立式键盘接口独立式键盘就是各键相互独立,每个按键各接一个In put Pin,通过检测In putPin 的电平状态可以很容易的判断哪个按键被按下。在按键数目较多时,独立式键盘电路需要较多的In put Pin,且电

4、路结构繁杂, 故此种键盘适用于按键较少或操作速度较高的场合。具体电路结构如图 2 所示。vcc|<R2 <R3 <R4 <R5Ri<104OKiKI图2独立式键盘接口当In put Pin内部有上拉电阻,则外部电路的上拉电阻可以省去,如图2右半图所示。2、行列式键盘接口行列式(也称矩阵式)键盘适用于按键数目较多的场合,它由行线和列线组成,按键位于行、列的交叉点上。很明显,在按键数目较多的场合,行列式键盘 与独立式键盘相比,要节省很多的I/O 口线。图3、4所示为5X 5行列式键盘接 口电路,如果In put Pin内部有上拉电阻,则外部电路的上拉电阻可以省去。图3

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

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

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

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

9、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 个Ro6、二极管键盘接口对于没有集成ADC功能的MCU,如果遇到按键数目较多的应用场合,如 25,而I/O资源又相对紧张,则可以通过该节介绍的二极管键盘接口电路来实现键盘功能。具体电路结构如图8所示图8二

11、极管键盘接口该键盘按键的识别方法是:第一步,扫描 Gnd行是否有按键被按下,如果 检测到I/O 口电平有低电平,则表示有按键被按下;否则,表示没有按键被按下, 扫描程序进入第二步。第二步,首先设置所有 I/O 口工作在Output Pin模式,且 令某一行输出低电平,其余行输出高电平。然后设置输出高电平行的I/O 口为In put Pin,并检测电平是否有变化,如果检测到低电平,则表示该行与输出低电 平的那一行的交叉点处有按键被按下,否则,没有按键被按下。需要注意,当键盘扫描进入第二步时,如果 Gnd行有按键被按下,则会发 生误判按键。例如,当扫描L1行时,K11和K62按下都会令IO1检测到低电平。 这可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论