收藏 分销(赏)

键盘及其接口技术.pptx

上传人:快乐****生活 文档编号:4220455 上传时间:2024-08-26 格式:PPTX 页数:32 大小:307.24KB
下载 相关 举报
键盘及其接口技术.pptx_第1页
第1页 / 共32页
键盘及其接口技术.pptx_第2页
第2页 / 共32页
键盘及其接口技术.pptx_第3页
第3页 / 共32页
键盘及其接口技术.pptx_第4页
第4页 / 共32页
键盘及其接口技术.pptx_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、第五章第五章 键盘及其接口技术键盘及其接口技术黄福珍黄福珍H本章主要内容本章主要内容键盘设计需解决的问题键盘设计需解决的问题独立式键盘的结构原理及其接口电路独立式键盘的结构原理及其接口电路矩阵式键盘的结构原理及其行扫描法矩阵式键盘的结构原理及其行扫描法编码器及编码键盘接口电路编码器及编码键盘接口电路5.1 键盘输入电路键盘输入电路按键的特点和分类按键的特点和分类按键的确认按键的确认按键防抖动技术按键防抖动技术重键与连击的处理重键与连击的处理5.1.1 按键的特点和分类按键的特点和分类键盘的特点:键盘的特点:键盘实际上是一组按键开关的组合,其中每一个按键就键盘实际上是一组按键开关的组合,其中每一

2、个按键就是一个开关量输入装置。是一个开关量输入装置。键盘的分类:键盘的分类:编码键盘:能自动识别按下的键并产生相应代码,以编码键盘:能自动识别按下的键并产生相应代码,以并行或串行的方式并行或串行的方式发送给发送给CPU。它使用方便,接口简单,。它使用方便,接口简单,响应速度快,但需要专用的硬件电路。响应速度快,但需要专用的硬件电路。非编码键盘:通过软件来确认按键并计算键值,其响非编码键盘:通过软件来确认按键并计算键值,其响应速度没有编码键盘快,但它不需要专用的硬件支持,应速度没有编码键盘快,但它不需要专用的硬件支持,而且可按不同方法定义各键,给系统带来很大灵活性。而且可按不同方法定义各键,给系

3、统带来很大灵活性。5.1.2 按按键的确认键的确认通常按键所用开关为机械弹性开关,键的闭合与否,取通常按键所用开关为机械弹性开关,键的闭合与否,取决于机械弹性开关的通、断状态。一个按键开关通过机决于机械弹性开关的通、断状态。一个按键开关通过机械触电的断开、闭合过程,其波形如下:械触电的断开、闭合过程,其波形如下:因此,键的闭合与否,反映在电压上就是呈现高电平或因此,键的闭合与否,反映在电压上就是呈现高电平或低电平。如果高电平表示断开的话,则低电平就表示闭低电平。如果高电平表示断开的话,则低电平就表示闭合,所以通过对电平高低状态的检测,便可确认按键按合,所以通过对电平高低状态的检测,便可确认按键

4、按下与否。下与否。5.1.3 按键防抖动技术按键防抖动技术按键的抖动干扰:按键的抖动干扰:由于机械触点的弹性振动,按键在按下时不会马上稳定由于机械触点的弹性振动,按键在按下时不会马上稳定地接通,而在弹起时也不能一下子完全地断开,因而在地接通,而在弹起时也不能一下子完全地断开,因而在按键闭合和断开的瞬间均会出现一连串的抖动,这称为按键闭合和断开的瞬间均会出现一连串的抖动,这称为按键的抖动干扰。按键的抖动干扰。5.1.3 按键防抖动技术按键防抖动技术硬件防抖技术:硬件防抖技术:一般采用一般采用RC滤波消抖电路或滤波消抖电路或RS双稳态消抖电路双稳态消抖电路5.1.3 按键防抖动技术按键防抖动技术软

5、件防抖技术:软件防抖技术:指编制一段时间大于指编制一段时间大于100ms的延时程的延时程序,在第一次检测到有键按下时,执行这段序,在第一次检测到有键按下时,执行这段延时子程序延时子程序使键的前沿抖动消失后再检测该键状态,如果该键仍保使键的前沿抖动消失后再检测该键状态,如果该键仍保持闭合状态电平,则确认为该键已稳定按下,否则无键持闭合状态电平,则确认为该键已稳定按下,否则无键按下,从而消除了抖动的影响。同理,在检测到按键释按下,从而消除了抖动的影响。同理,在检测到按键释放后,也同样要延迟一段时间,以消除后沿抖动,然后放后,也同样要延迟一段时间,以消除后沿抖动,然后转入对该按键的处理转入对该按键的

6、处理5.1.4 重键与连击的处理重键与连击的处理重键:重键:重键指多个键同时闭合。系统确认哪个键操作重键指多个键同时闭合。系统确认哪个键操作有效完全由设计者的意愿决定(软件编程决定),有效完全由设计者的意愿决定(软件编程决定),如视按下时间最长者有效,或最先按下有效,或如视按下时间最长者有效,或最先按下有效,或最后释放有效等最后释放有效等 重键的利用:定义一两个引导键,这些键按下重键的利用:定义一两个引导键,这些键按下时执行空操作时执行空操作5.1.4 重键与连击的处理重键与连击的处理连击:连击:连击指一次按键产生多次击键的效果。一般在连击指一次按键产生多次击键的效果。一般在键盘编程时,将键的

7、释放作为按键的结束,即等键盘编程时,将键的释放作为按键的结束,即等键释放电平后再转去执行相应功能程序,以防止键释放电平后再转去执行相应功能程序,以防止一次击键多次执行的错误发生一次击键多次执行的错误发生 连击的利用:利用微机的定时器,可以对按键连击的利用:利用微机的定时器,可以对按键从按下到释放期间进行计时,以确定此次按键产从按下到释放期间进行计时,以确定此次按键产生多少次击键的效果生多少次击键的效果5.2 非编码非编码独立式键盘独立式键盘独立式键盘结构原理独立式键盘结构原理查询法接口电路查询法接口电路中断法接口电路中断法接口电路 5.2.1 独立式键盘结构原理独立式键盘结构原理结构:结构:独

8、立式键盘指直接用输入端口线构成的单个按独立式键盘指直接用输入端口线构成的单个按键电路。由于每个按键单独占用一根输入端口线,各键键电路。由于每个按键单独占用一根输入端口线,各键的状态不会互相影响,因此,通过检测输入线的电平状的状态不会互相影响,因此,通过检测输入线的电平状态就很容易判断哪个按键按下态就很容易判断哪个按键按下与微机的接口:与微机的接口:独立式键盘一般通过并行独立式键盘一般通过并行I/O接接口口(8155或或8255)或三态门缓冲器()或三态门缓冲器(74LS244)与微机与微机接口,通过接口,通过CPU对相关对相关I/O口线状态的检测,即可知道口线状态的检测,即可知道键盘上是否有键

9、按下和哪个键按下键盘上是否有键按下和哪个键按下5.2.2 查询法接口电路查询法接口电路接口电路:接口电路:该接口电路实现的功能该接口电路实现的功能为:查询检测是否有键为:查询检测是否有键按下,如有键闭合,则按下,如有键闭合,则消除抖动,再判断键号,消除抖动,再判断键号,然后转入相应的键处理。然后转入相应的键处理。5.2.2 查询法接口电路查询法接口电路程序流程图:程序流程图:采用查询法时,必采用查询法时,必须保证须保证CPU每隔一定每隔一定时间主动地去扫描按时间主动地去扫描按键一次,该扫描时间键一次,该扫描时间间隔应小于两次按键间隔应小于两次按键的时间间隔,否则会的时间间隔,否则会有按键不响应

10、的情形。有按键不响应的情形。显然这种方式占用显然这种方式占用CPU时间比较多。时间比较多。5.2.3 中断法接口电路中断法接口电路接口电路:接口电路:5.2.3 中断法接口电路中断法接口电路键盘中断服务子程序:键盘中断服务子程序:与查询程序类似,在保护现场后,首先调用延时子程与查询程序类似,在保护现场后,首先调用延时子程序消抖,然后依次查键号,并转入键功能处理程序,最序消抖,然后依次查键号,并转入键功能处理程序,最后恢复现场、中断返回。后恢复现场、中断返回。采用中断法时,采用中断法时,CPU对按键而言是被动方式,在无键对按键而言是被动方式,在无键按下时不占用按下时不占用CPU时间,因而时间,因

11、而CPU有更多的时间执行有更多的时间执行其他程序。其他程序。5.3 非编码非编码矩阵式键盘矩阵式键盘矩阵式键盘的结构及工作原理矩阵式键盘的结构及工作原理矩阵式键盘的程序设计矩阵式键盘的程序设计5.3.1 矩阵式键盘的结构及工作原理矩阵式键盘的结构及工作原理键盘结构:键盘结构:矩阵式键盘又叫行列式键盘,是用矩阵式键盘又叫行列式键盘,是用I/O口线组成的行、口线组成的行、列矩阵结构,在每根行线与列线的交叉处,二线不直接列矩阵结构,在每根行线与列线的交叉处,二线不直接相通而是通过一个按键跨接接通。采用这种矩阵结构只相通而是通过一个按键跨接接通。采用这种矩阵结构只需需M根行输出线和根行输出线和N根列输

12、入线,就可连接根列输入线,就可连接MN个按键。个按键。通过键盘扫描程序的行输出与列输入就可确认按键的状通过键盘扫描程序的行输出与列输入就可确认按键的状态,再通过键盘处理程序便可识别键值。态,再通过键盘处理程序便可识别键值。5.3.1 矩阵式键盘的结构及工作原理矩阵式键盘的结构及工作原理矩阵式键盘与矩阵式键盘与CPU的接口:的接口:可采用并行端口可采用并行端口8255A、锁存器或缓冲器一类、锁存器或缓冲器一类。5.3.1 矩阵式键盘的结构及工作原理矩阵式键盘的结构及工作原理矩阵式键盘接口电路:矩阵式键盘接口电路:当当键盘中无任何键按下时,所有的行线和列线被断开且键盘中无任何键按下时,所有的行线和

13、列线被断开且相互独立,输入线相互独立,输入线Y0Y7列都为高电平;当有任意一键列都为高电平;当有任意一键按下时,则该键所在的行线与列线接通,因此,该列线按下时,则该键所在的行线与列线接通,因此,该列线的电平取决于该键所在的行的电平取决于该键所在的行线。线。由于矩阵式键盘中行、列线为多键共用,各按键均影由于矩阵式键盘中行、列线为多键共用,各按键均影响该键所在行和列的电平,因此各按键彼此将相互发生响该键所在行和列的电平,因此各按键彼此将相互发生影响,所以必须将行、列信号配合起来并做适当处理,影响,所以必须将行、列信号配合起来并做适当处理,才能正确确定闭合键的位置。才能正确确定闭合键的位置。5.3.

14、1 矩阵式键盘的结构及工作原理矩阵式键盘的结构及工作原理按键的识别:按键的识别:行扫描法:行扫描法:*又称逐行零扫描查询法,即逐行输出行扫描信号又称逐行零扫描查询法,即逐行输出行扫描信号“0”,使各,使各行依次为低电平,然后分别读入列数据,检查此(低电平)行中行依次为低电平,然后分别读入列数据,检查此(低电平)行中是否有键按下。如果读得某列线为低电平,则表示此(低电平)是否有键按下。如果读得某列线为低电平,则表示此(低电平)行线与此列线的交叉处有键按下,再对该键进行译码计算出键值,行线与此列线的交叉处有键按下,再对该键进行译码计算出键值,然后转入该键的功能子程序入口地址;如果没有任何一根列线为

15、然后转入该键的功能子程序入口地址;如果没有任何一根列线为低电平,则说明此低电平,则说明此(低电平低电平)行没有键按下。接着进行下一行的行没有键按下。接着进行下一行的“0”行扫描与列读入,直到行扫描与列读入,直到8行全部查完为止,若无键按下则返行全部查完为止,若无键按下则返回。回。5.3.1 矩阵式键盘的结构及工作原理矩阵式键盘的结构及工作原理按键的识别:按键的识别:行扫描法:行扫描法:*有时为了快速判断键盘中是否有键按下,也可先将有时为了快速判断键盘中是否有键按下,也可先将全部行线同时置为低电平,然后检测列线的电平状态,全部行线同时置为低电平,然后检测列线的电平状态,若所有列线均为高电平,则说

16、明键盘中无键按下,立即若所有列线均为高电平,则说明键盘中无键按下,立即返回;若要有一列的电平为低,则表示键盘中有键被按返回;若要有一列的电平为低,则表示键盘中有键被按下,然后再如上那样进行逐行扫描。下,然后再如上那样进行逐行扫描。5.3.2 矩阵式键盘的程序设计矩阵式键盘的程序设计程序设计:程序设计:在设计键盘扫描程序时,必须要保证键盘操作的实在设计键盘扫描程序时,必须要保证键盘操作的实时性,又不能占有时性,又不能占有CPU太多的时间,还要充分考虑到太多的时间,还要充分考虑到抖动干扰的消除。一般可根据情况选用编程扫描、定时抖动干扰的消除。一般可根据情况选用编程扫描、定时扫描或中断扫描中的一种方

17、式。扫描或中断扫描中的一种方式。5.3.2 矩阵式键盘的程序设计矩阵式键盘的程序设计程控扫描法程序设计:程控扫描法程序设计:判断是否有键按下:判断是否有键按下:逐行输出行扫描信号逐行输出行扫描信号“0”,即,即是是CPU依次使行线依次使行线X0X7为低电平,其输出数据代码为低电平,其输出数据代码分别为分别为01H(X0线)、线)、02H(X1线)、线)、04H(X2线)、线)、08H(X3线)、线)、10H(X4线)、线)、20H(X5线)、线)、40H(X6线)线)、80H(X7线)。然后读入列值,若不为线)。然后读入列值,若不为FFH则有键按则有键按下下 消除按键的抖动干扰:消除按键的抖动

18、干扰:调用延调用延时时100ms的子程序的子程序,以便以便认定确有键按下认定确有键按下5.3.2 矩阵式键盘的程序设计矩阵式键盘的程序设计程控扫描法程序设计:程控扫描法程序设计:有键按下时求闭合键值:有键按下时求闭合键值:*分别设一个行值寄存器分别设一个行值寄存器CL和列值寄存器和列值寄存器DL。接口电路中跨接在行。接口电路中跨接在行列线上的列线上的64个键,由于同一列相邻行之间相隔数个键,由于同一列相邻行之间相隔数8,所以每进行一次,所以每进行一次“0”行扫描后,如果此行无键按下,则行寄存器行扫描后,如果此行无键按下,则行寄存器CL应加应加08再进行下一再进行下一行的行的“0”行扫描;行扫描

19、;*若有键按下则不加若有键按下则不加08而转求列值,由于列值比键值小而转求列值,由于列值比键值小1,如第一行,如第一行第一列的键按下时列值第一列的键按下时列值Y0(即数据位即数据位D0)0比比01键值小键值小1,所以列值寄存,所以列值寄存器器DL应先加应先加1,然后将读入的列值循环右移,判断进位位,然后将读入的列值循环右移,判断进位位CF是否等零是否等零即有否键按下,若无键按下,再继续加即有否键按下,若无键按下,再继续加1、右移、判断,重复上述过程、右移、判断,重复上述过程直到有键按下。直到有键按下。*把行值和列值相加并进行把行值和列值相加并进行DAA修正,即可得到所求的十进制键值。修正,即可

20、得到所求的十进制键值。5.3.2 矩阵式键盘的程序设计矩阵式键盘的程序设计 求闭合键值的例子:求闭合键值的例子:设跨接在设跨接在X2行与行与Y1列的列的18键按下,其键值计算方法为:键按下,其键值计算方法为:第一次第一次“0”行扫描行扫描X0行,无键按下,行,无键按下,CL=00+08=08,接下来扫接下来扫X1行,仍无键按下,加行,仍无键按下,加08并进行并进行DAA修正,修正,CL=08+08=16,再扫,再扫X2行,此时读入的列值不等于行,此时读入的列值不等于FFH即表明有键按下,则即表明有键按下,则CL=16不变。然后转求列值,列值不变。然后转求列值,列值寄存器先加寄存器先加1再把读入

21、的列值循环移位,由于按下的键在再把读入的列值循环移位,由于按下的键在Y1列,所以需移位两次才能移出列,所以需移位两次才能移出0值,因此值,因此DL=02,然,然后将行值寄存器与列值寄存器之值相加,并进行后将行值寄存器与列值寄存器之值相加,并进行DAA修修正,得到正,得到AL=CL+DL=16+02=18,即键值为,即键值为18。5.3.2 矩阵式键盘的程序设计矩阵式键盘的程序设计程序清单:程序清单:KEY:MOV AL,0 MOV CL,AL MOV DL,AL MOV AL,0FFH OUT PORT1,AL IN AL,PORT1 CMP AL,0FFH JZ DONE CALL DELA

22、Y MOV AL,0FFH OUT PORT1,AL IN AL,PORT1 CMP AL,0FFH JZ DONE MOV AH,08 MOV BL,01H KEY1:MOV AL,BL OUT PORT1,AL IN AL,PORT1 CMP AL,0FFH JNZ KEY2 MOV AL,CL ADD AL,08 DAA MOV CL,AL RCL BL,1 DEC AH JNZ KEY1 DONE:IRET KEY2:INC DL RCR AL,1 JC KEY2 MOV AL,CL ADD AL,DL DAA MOV BUFF,AL JMP KEYADR END KEY5.4 编码键

23、盘接口电路编码键盘接口电路具有优先级的二进制具有优先级的二进制8位编码器位编码器CD4532B:状状 态态 输输 入入编编 码码 输输 出出EiI7I6I5I4I3I2I1I0GSO2O1 O0 Eo000000100000000000011110000110100101100101001100010110110000110001100000110101100000011100110000000111105.4 编码键盘接口电路编码键盘接口电路编码键盘接口电路编码键盘接口电路:5.4 编码键盘接口电路编码键盘接口电路编码键盘接口电路编码键盘接口电路:采用两片采用两片CD4532B构成的构成的1

24、6个按键的二进制编码接口个按键的二进制编码接口电路:其中由于电路:其中由于U1的的Eo作为作为U2的的Ei,所以按键,所以按键S0的优的优先级最高,先级最高,S15的优先级最低。的优先级最低。U1和和U2的输出的输出O2 O0经经或门或门A3 A1输出,以形成低输出,以形成低3位编码位编码D2 D0。而最高位。而最高位D3则由则由U2的的GS产生。当按键产生。当按键S8 S15中有一个闭合时,中有一个闭合时,其输出为其输出为“1”。从而。从而S0 S15中任意一个键被按下,由中任意一个键被按下,由编码位编码位D3 D0均可输出相应的均可输出相应的4位二进制码。位二进制码。5.4 编码键盘接口电路编码键盘接口电路编码键盘接口电路编码键盘接口电路:为了消除键盘按下时产生的抖动干扰,该接口电路还设置了由与为了消除键盘按下时产生的抖动干扰,该接口电路还设置了由与非门非门B1、B2、电阻、电阻R2、电容、电容C2组成的单稳电路和由或门组成的单稳电路和由或门A4、电阻、电阻R1、电容电容C1组成的延时电路,电路中组成的延时电路,电路中E、F、G、H和和I这五点的波形如下这五点的波形如下图所示。图所示。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服