键盘处理技术_第1页
键盘处理技术_第2页
键盘处理技术_第3页
键盘处理技术_第4页
键盘处理技术_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、5. 智能仪器外设处理技术智能仪器外设处理技术 智能仪器通过输入设备接受各种命令和数据。测量结果通过各种输出设备进行显示、打印或记录。在一般智能仪器中,都采用键盘和七段显示器。在示波器、频谱仪、逻辑分析仪等智能仪器中采用CRT或LCD显示器。少数仪器还附有微型打印机、绘图仪及语言输出等。25.0 开关及其接口开关及其接口开关的基本形式开关的基本形式开关在智能仪表中被用来设置工作状态和命开关在智能仪表中被用来设置工作状态和命令,以便选择不同的功能。开关只有令,以便选择不同的功能。开关只有“断开断开”与与“闭合闭合”两种稳定(由机械保证)的两种稳定(由机械保证)的. .下图下图为一些常用开关的例子

2、。为一些常用开关的例子。3开关的接口形式 通过简单的电路可将这两种状态转换为逻辑电平的通过简单的电路可将这两种状态转换为逻辑电平的“0”0”与与“1”1”,从而在接口电路的控制下被,从而在接口电路的控制下被CPUCPU所检测。所检测。 图图1 1是一个简单的开关接口电路,开关的状态直接与是一个简单的开关接口电路,开关的状态直接与I/OI/O端口连接。端口连接。 图图2 2的一些开关的状态则通过三态缓冲器再与微机的的一些开关的状态则通过三态缓冲器再与微机的总线相连接。总线相连接。4互锁式开关 互锁式开关可看作是多个开关的组合,但在任何时刻仅仅互锁式开关可看作是多个开关的组合,但在任何时刻仅仅只有

3、一个开关闭合或全部断开,按动某一开关闭合时,则互锁只有一个开关闭合或全部断开,按动某一开关闭合时,则互锁作用将使原处于闭合的开关断开。互锁式开关的外部结构通常作用将使原处于闭合的开关断开。互锁式开关的外部结构通常为琴键式或波段旋钮式的结构,前者可自由地从一个位置切换为琴键式或波段旋钮式的结构,前者可自由地从一个位置切换到另一个位置到另一个位置; ; 而后者则只能按旋转方向顺序选择,且有暂态而后者则只能按旋转方向顺序选择,且有暂态选择输出,在软件处理上应加以注意。互锁式开关多用于控制选择输出,在软件处理上应加以注意。互锁式开关多用于控制程序流向,完成不同功能的选择。程序流向,完成不同功能的选择。

4、 图图3 3所示的是互锁式开关的一个应用实例。所示的是互锁式开关的一个应用实例。5数字拨码盘 数字拨码盘是一种数据输入器件,其外型如图数字拨码盘是一种数据输入器件,其外型如图4(a)4(a)所示,所示,在圆形轮盘上标有在圆形轮盘上标有0 09 9十个数字十个数字; ; 按动一次按动一次“+”+”按钮,轮盘按钮,轮盘转动,数字加转动,数字加1 1,按动一次,按动一次“-”-”按钮则数字减按钮则数字减1;1;数字拨码盘的数字拨码盘的内部是一个内部是一个8 8、4 4、2 2、1 1码的四位组合开关,其电路可等效为图码的四位组合开关,其电路可等效为图4(b)4(b)所示的四位开关组合,但开关的闭合状

5、态则以所示的四位开关组合,但开关的闭合状态则以BCDBCD码对应码对应于轮盘所显示的数字。于轮盘所显示的数字。 在图在图4(b)4(b)中,若以中,若以1 1表示开关闭合,表示开关闭合,0 0表示断开,则拨出数表示断开,则拨出数字字5 5所对应的开关所对应的开关S3S3、S2S2、S1S1、S0S0输出为输出为0101.0101. 6开关接口的工作方式无条件方式无条件方式:在需要开关状态信息时就读开关状态,其它时间的开:在需要开关状态信息时就读开关状态,其它时间的开 关状态改变,系统不会响应,直到下一次读开关时才会关状态改变,系统不会响应,直到下一次读开关时才会 被检测到。这种方式不需要额外的

6、软、硬件开销,可看被检测到。这种方式不需要额外的软、硬件开销,可看 作是实时处理。作是实时处理。 查询方式查询方式:在在CPUCPU读开关状态前,给出提示信息,要求操作者检查开读开关状态前,给出提示信息,要求操作者检查开 关设置是否正确或重新设置开关状态,操作者在完成开关操关设置是否正确或重新设置开关状态,操作者在完成开关操 作后,反馈给作后,反馈给CPUCPU一个开关设定完毕的信息,一个开关设定完毕的信息,CPUCPU再读开关状再读开关状 态。需要显示输出设备和软件的配合。态。需要显示输出设备和软件的配合。 中断方式中断方式:若操作者希望系统立即响应对开关的操作,则需要采用中:若操作者希望系

7、统立即响应对开关的操作,则需要采用中 断方式。在硬件处理上通常要增加一个按键以产生中断信号。断方式。在硬件处理上通常要增加一个按键以产生中断信号。 75.1 键盘接口技术键盘接口技术 与开关一样,按键也具有与开关一样,按键也具有“断开断开”和和“闭合闭合”两两种状态,通过接口电路对应于种状态,通过接口电路对应于0 0和和1 1两个逻辑电平两个逻辑电平; ; 不不同之处在于,按键的同之处在于,按键的“闭合闭合”是暂态,当操作者停止是暂态,当操作者停止按压时,按键即恢复到按压时,按键即恢复到“断开断开”状态,因此,按键适状态,因此,按键适用于连续快速的输入操作。但按键不像开关对输入的用于连续快速的

8、输入操作。但按键不像开关对输入的状态具有保持作用,按键通常与输出显示配合使用,状态具有保持作用,按键通常与输出显示配合使用,利用显示输出对按键操作给予反馈。利用显示输出对按键操作给予反馈。 另外,开关是各状态设置好后再输入的,而按键另外,开关是各状态设置好后再输入的,而按键则是在操作中输入的(动态),因此,按键需解决抖则是在操作中输入的(动态),因此,按键需解决抖动和单次键入的问题,以协调操作的机械过程慢与动和单次键入的问题,以协调操作的机械过程慢与 CPUCPU读入判断过程快之间的矛盾。读入判断过程快之间的矛盾。89键盘接口要解决的问题键盘接口要解决的问题按键识别决定是否有键被按下,如有则应

9、识别键盘矩阵中被按键对应的编码。反弹跳/抗抖动干扰当按键开关的触点闭合或断开到其稳定,会产生短暂的抖动和弹跳。这是机械式开关的一个共同性问题。消除由于键抖动和弹跳产生的干扰可采用硬件或软件延迟的方法。通常在键数较少时采用硬件方法;当键数较多时(16个以上),常用软件延时的方法。10按键的抖动干扰由于机械触点的弹性振动,按键在按下时不会马上稳定地接通而在弹起时也不能一下子完全地断开,因而在按键闭合和断开的瞬间均会出现一连串的抖动,这称为按键的抖按键的抖动干扰动干扰,波形如下图所示。当按键按下时会产生前沿抖动前沿抖动,当按键弹起时会产生后沿后沿抖动抖动。这是所有机械触点式按键的共性问题。抖动的时间

10、长短取决于按键的机械特性与操作状态,一般一般为为10100ms,此为键处理设计时要考虑的一个重要参数。前沿抖动后沿抖动图 6-2 按键的抖动干扰闭合稳定释放稳定键按下键释放11软件抗抖动的方法软件方法是指编制一段时间大于100ms的延时程延时程序序,在第一次检测到有键按下时,执行这段延时子程序使键的前沿抖动消失后再检测该键状态,如果该键仍保持闭合状态电平,则确认为该键已稳定按下,否则无键按下,从而消除了抖动的影响。同理,在检测到按键释放后,也同样要延迟一段时间,以消除后沿抖动,然后转入对该按键的处理。12延时滤波抗抖动法左图是由R2和C组成的滤波延时消滤波延时消抖电路抖电路,设置在按键S与CP

11、U数据线Di之间。按键S未按下时,电容两端电压为0,即与非门输入Vi为0,输出Vo为1。当S按下时,由于C两端电压不能突变,充电电压Vi在充电时间内未达到与非门的开启电压,门的输出Vo将不会改变,直到充电电压Vi大于门的开启电压时,与非门的输出Vo才变为0, 这段充电延迟时间取决于R1、R2和C值的大小,电路设计时只要使之大于或等于100ms即可避开按键抖动的影响。按键S断开时,即使出现抖动,由于C的放电延迟过程,也会消除按键抖动的影响。2RV5+1R1V2V图 5-3 滤波延时消抖电路SiVoV(Di)(Di)13由基本R-S触发器构成的反弹跳电路按键未按下时,a=0,b=1,输出Q=1。按

12、键按下时,因按键的机械弹性作用的影响,使按键产生抖动。当开关没有稳定到达b端时,因与非门2输出为0反馈到与非门1的输入端,封锁了与非门1,双稳态电路的状态不会改变,输出保持为1,输出Q不会产生抖动的波形。当开关稳定到达b端时,因a=1,b=0,使Q=0,双稳态电路状态发生翻转。当释放按键时,在开关未稳定到达a端时,因Q=0,封锁了与非门2,双稳态电路的状态不变,输出Q保持不变,消除了后沿的抖动波形。当开关稳定到达a端时,因a=0,b=1,使Q=1,双稳态电路状态发生翻转,输出Q重新返回原状态。由此可见,键盘输出经双稳态电路之后,输出已变为规范的矩形方波。&VCC(5 V)Qab4.7 k4.7

13、 k1214单次键入与连击15串键保护由于操作不慎,可能会造成同时有几个键被按下,这种情况称为串键串键。“两键同时按下两键同时按下”技术是在两个键同时按下时产生保护作用。最简单的办法是当只有一个键按下时才读取键盘的输出,最后仍被按下的键是有效的正确按键。当用软件扫描键盘软件扫描键盘时常采用这种方法。另一方法是当第一个按键未松开时,按第二个键不产生选通信号。这种方法常借助硬件来实现。16 “N键同时按下键同时按下”技术不理会所有被按下的键,直至只剩下一键按下时为止,或者将按键的信息存入内部缓冲器中,这种方法成本较高。 “N键锁定键锁定”技术只处理一个键,任何其它按下又松开的键不产生任何码。通常第

14、一个按下或最后一个松开的键产生码。这种方法最简单最常用。键盘接口的任务可用硬件或软件来完成,相应地出现了两大类键盘:编码键盘和非编码键盘。17编码键盘与非编码键盘编码键盘与非编码键盘键盘接口电路可分为编码键盘和非编码键盘两种类型。编码键盘编码键盘采用硬件编码电路来实现键的编码,每按下一个键,键盘便能自动产生按键代码。编码键盘主要有BCD码键盘、ASCII码键盘等类型。非编码键盘非编码键盘仅提供按键的通或断状态, 按键代码的产生与识别由软件完成。18 编码键盘的特点是使用方便,键盘码产生速度快,占用CPU时间少,但对按键的检测与消除抖动干扰是靠硬件电路来完成的,因而硬件电路复杂、成本高。非编码键

15、盘硬件电路简单,成本低,但占用CPU的时间较长。19非编码独立式键盘非编码独立式键盘查询法接口电路按键S0、S1、S2分别通过上拉电阻与CPU的数据线D0、D1、D2相连,当按键Si闭合时,数据线直接接地,因而CPU读入Di=0;当按键Si断开时,数据线通过上拉电阻接到正电源,因而CPU读入Di=1。图 5-4 独立式键盘结构原理D0V5+D1D2S0S1S220该接口电路实现的功能为:查询检测是否有键按下,如有键闭合,则消除抖动,再判断键号,然后转入相应的键处理。其程序流程如右图所示。采用查询法必须保证CPU每隔一定时间主动地去扫描按键一次,该扫描时间间隔应小于两次按键的时间间隔,否则会有按

16、键不响应的情形。显然这种方式占用CPU时间比较多。开始有键闭合否?NY延时100 ms消除键抖动有键闭合否?NYNYNYNYD0=0?D1=0?D2=0?S0键功能程序S2键S1键序程能功序程能功图 5-5 独立式键盘查询法程序流程图 21中断法接口电路0S1S2SV5+图 5-6 独立式键盘中断法接口电路PA0PA1PC3PA2PC4PA3PA7RDPA5PA4PA6RDCPU80888255AINTRa8259ASTBaIR3INTRINTD7D0D7D02223当CPU对8255A初始化(8255A的A口工作于方式1 输入)后,CPU即执行主程序。当按下S0键时,与之相连的I/O口线呈现

17、为低电平,此时与非门输出为高电平,经反相器变为低电平,使8255A端口A的选通输入信号PC4有效,则PA0PA2引脚接收并存入3个按键的“0”或“1”状态;8255A的PC3发出INTRa中断请求信号,经中断控制器8259A向CPU申请中断,CPU响应中断后,即转到中断服务程序中。中断服务程序依次查询按键的通断状态,当查询到是S0=0时,则转到相应子程序的入口地址执行程序。如果没有键按下,则相应的I/O口线均为高电平,也不会产生中断信号,CPU继续运行主程序。24键盘中断服务子程序,与查询方式相似,在保护现场后,首先调用100mS延时子程序去除抖动,然后依次查键号,并转入键功能处理程序,最后恢

18、复现场、中断返回。显然,查询顺序代表了按键的排队优先级。 采用中断法时,CPU对按键而言是被动方式,在无键按下时不占用CPU时间,因而CPU有更多的时间执行其他程序。独立式键盘接口电路简单灵活,软件结构简单,但每个按键必须占用一根I/O口线,在按键数量较多时,需要占用较多的I/O口线。比如64个按键,需要有64根线,不仅连线复杂,查询按键的时间也较长。故这种键盘电路只适合于按键数量比较少的小型控制系统或智能控制仪表中。25非编码矩阵式键盘非编码矩阵式键盘矩阵式键盘矩阵式键盘又叫行列式键盘行列式键盘,是用I/O口线组成的行、列矩阵结构,在每根行线与列线的交叉处,二线不直接相通而是通过一个按键跨接

19、接通。采用这种矩阵结构只需M根行输出线和N根列输入线,就可连接MN个按键。通过键盘扫描程序的行输出与列输入就可确认按键的状态,再通过键盘处理程序便可识别键值。26右图所示为16键键盘的矩阵式结构。它只用了8根连线,而非矩阵结构则需要17根连线(其中一根为公共线)。此电路中,输出锁存器的4根输出线分别与键盘的行线相连,当输出锁存器的某一位为低电平时,位于该行的按键中若有一键被控下,则按下键的相应列线为低电平,否则为高电平。列线电平信号经输入缓冲器送入单片机以进行按键识别。矩阵键盘接口的设计思想是把键盘既作输入又作输出设备对待的。27非编码键盘的按键识别非编码键盘的按键识别-行行/列扫描法列扫描法

20、以3x3非编码键盘为例,讨论行/列扫描法寻找有无键按下 用输出指令输出数据,当D3=D4=D5=0时,它使所有的列接地,然后用输入指令读入行的信息,检查输入各行(D0、D1、D2)是否为0,若全都不为0,表示没有键按下。若有一行的输入信息为0,说明有键按下,需进一步处理。28找出按下键的列位置用输出指令使D3=0,D4=D5=1,使第一列为低电平,其余两列为高电平,然后检查输入信息D0、D1、D2三个之中是否有一个为0,若不为0,则第二次输出D4=0,D3=D5=1,使第二列为低电平,再次检查输入信息D0、D1、D2三个之中是否有一个为0,依此类推,一直到有一行的输入信息为0为止。例如K5键按

21、下,当查到第2列为低电平,1,3列为高电平(D4=0,D3=D5=1)时,输入D0、D1、D2中有一个为0,表示按键在第2列。29找出按下的键属于哪一行对按下键的那列,读入各行的对应信息,然后带进位位做循环右移,使D2、D1、D0依次移入到进位位,检查进位位是否为0,这样就可以找到对应的按键在哪一行。例如,K5键按下,两次右移后进位位为0,表示D1=0,所以K5在第2行。此时,从查得的键所在的行号与列号,按照预先编制好的键编码表(见下页表),就可知道是哪一个键按下,例如K5键的编码D0D5为101101(二进制),位于矩阵的第二行第二列。3031CPU根据查到的按键特征编码,执行其专用服务子程序,以完成该键的操作功能。32非编码键盘的按键识别线反转法非编码键盘的按键识别线反转法 线反转法通过单片机本身并行口或扩展的并行口均可实现。前述行扫描法要逐行查询,若按下键在最后一行,要经过多次行扫描才能得到键值。而线反转法只经过两步即可得到键值,它比行扫描法速度快。

温馨提示

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

评论

0/150

提交评论