2019年键盘 ppt课件

上传人:我*** 文档编号:149111228 上传时间:2020-10-24 格式:PPT 页数:36 大小:1.16MB
返回 下载 相关 举报
2019年键盘 ppt课件_第1页
第1页 / 共36页
2019年键盘 ppt课件_第2页
第2页 / 共36页
2019年键盘 ppt课件_第3页
第3页 / 共36页
2019年键盘 ppt课件_第4页
第4页 / 共36页
2019年键盘 ppt课件_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《2019年键盘 ppt课件》由会员分享,可在线阅读,更多相关《2019年键盘 ppt课件(36页珍藏版)》请在金锄头文库上搜索。

1、,2)键盘工作原理与接口电路 3)键值分析程序,第4章 智能仪器人机交互接口 (一)键盘与接口,智能仪器与系统,2122学时,主要讲解内容:,1)键盘概述及设计要点,一.键盘概述及设计要点,在智能仪器中,常需要配置一些开关,实现向内 输入数据,传送命令等功能,是人工干预仪器的主要手 段. 开关具有“断开”和“闭合”二种稳定状态,通过简单 电路可将这二种状态转换为逻辑电平的“1”和“0”,从而 在接口电路的控制下被CPU所检测,常见的按键开关, 按钮开关和触摸开关等,都是智能仪器的常用输入电 路。 键盘的接口必须解决以下几个问题:,(1)识键:确定是否有键按下; (2)译键:如有键按下,识别是哪

2、一个键被按下,并 确定相应键值;,(3)键值分析:根据键值找出相应处理程序的入口并 执行. (4)按键抖动的消除。 (5)串键的处理,既同时有一个以上的按键。,1.按键的抖动,因为按键从开始接上至接触稳定要经过510ms的弹跳时间,按键松开时,也有同样的问题。一般按键按下到闭合后再产生一个负的矩形脉冲,但由于在按动按键时,总有一些抖动,因为在负脉冲开始和末尾部位总要出现一些抖动,即毛齿波这种毛齿波将影响微机对按键的识别。除了抖动外,还可能出现有重键,这些都是需要采取一定的措施加以消除。,目前消除抖动的方法有两种:用软件延时去抖动;用硬件电路实现防抖动,即在开关状态改变时,CPU执行一个延时程序

3、,待电平稳定后再读开关状态信息。 软件去抖动不需额外硬件支持,软件也不复杂,因此在智能仪器中被广泛应用. 例如下例中将开关K的闭合次数,存入寄存器R0中,用软件延时去抖动的程序如下:,(1)用软件延时去抖动:,START:MOV R0,#00H ;清寄存器R0 SETB P1.0 ; P1.0为输入方式 WAITL: MOV A, P1 ;读入开关状态 JB ACC .0 WAITL ;开关闭合否? ACALL D10MS ;是去抖动 INC R0 ;闭合次数加1。WAITH: SETB P1.0 ; P1.0为输入方式 MOV A, P1 ;读入开关状态 JNB ACC .0 WAITH ;

4、开关断开否? ACALL D10MS ;是去抖动 SJMP WAITL ; 循环 程序中, D10MS 为延时10ms的子程序。,硬件去抖动的方法可采用RS触发器或单稳电路,下图为一个双向开关通过防抖动电路后与单片机接口. 图中用二个与非门构成一个RS触发器. 这种方法可直接通过P1.7口读开关位置,程序中不需延时(当下图中开关接通时,P1.7口读0状态,断开时,P1.7 口读1状态。)利用RS触发器的互锁功能去抖动,可得到理想的按键波形,一般用于按键数目较少且需要双向触点接构按键的场合.,(2)用硬件电路实现防抖动,由于计算机运行速度很快,所以操作者完成单次键入动作时, CPU可能响应多次,

5、引起误动作。通常仍然采用软件的方法来解决按键单次键入的问题,即当CPU测到按键按下的信息时,不立即转入处理程序,而是反复检测按键状态,直到按键被松开才认为是进行了一次按键操作。 在某些场合如果把按键的连击加以合理利用,有时会给智能仪器的操作者带来便利。例如,在某些智能仪器中,因设计的按键很少,没有09数码键,通常设置INC(加1)键和DEC(减1)键来调整参数,但当调整量较大时,就需多次按这二个键,操作起来十分不便,这时可以利用连击方式,操作者只要按住某个调整键较长时间不放,参数就会不停的加1或减1,给操作者带来很大方便。,2.按键的单次键入与连击,当键盘的按键密度较高时,本来希望只有一个键被

6、按下,但因操作不当,可能使双键或多键同时动作,这就是串键, 对此程序应考虑对串键的处理.对串键简单的处理是做无效输入而不予理睬,也可采用双键锁定的原则,即串键时不判断键值,只到按着仅剩下一个才判断键值.,3.串键的处理,4.键盘的种类: 键盘可以分为独立式键盘,非编码键盘,编码键盘. 独立式键盘的结构特点是一键占用一条接口线,每个按键的电路是独立的. 编码键盘的特点是键盘上闭合键的识别是由专用硬件实现的,称为编码键盘. 键盘上闭合键的识别靠软件实现的称为非编码键盘。,一.独立式键盘,例如右图所示接口形式,每一个按键直接和单片机I/O口线相连,也可和单片机扩展口相连,图中上拉电阻保证按键断开时检

7、测线上有稳定的高电平.当某一按键按下时,对应的检测线就变成了低电平.,独立式键盘结构简单,编程容易,计算机一旦检测到某一根接口线为低电平,便可直接转到相应的键值功能程序进行处理.缺点是占用大量I/O口线.例如下编程:,KEY: MOV R0,#0FH ;屏蔽高4位 KEY1: MOV P1, R0 ; MOV A ,P1 ;输入键信息 ANL A,R0 ;屏蔽无用位,SUBB A,R0 ;低四位全为1,则无键按下, 否则一定有键按下。 JZ KEY1 ;重复,达到判断键断开. ACALL D10MS ;有去抖动 MOV A,P1 ;读入键信息 JNB ACC.0,K0 ;为0键按下转K0 程序

8、 JNB ACC.1,K1 ;为1键按下转K1 程序 JNB ACC.2,K2 ;为2键按下转K2程序 JNB ACC.3,K3 ;为3键按下转K3 程序 SJMP KEY 循环,二.非编码矩阵键盘,当仪器使用按键数量较多时,可用非编码矩阵键盘.,例如图所示为4X4矩阵.键盘由行线和列线组成.各占4个I/O口线. 键值识别程序有二种:,识别按键的方法,行扫描法 线反转法,1)行扫描法:判断有无键按下的方法是首先将行输出0,读列信息,看是否全为1.若不全为1,表示有键按下.在确认有键闭合后,再判断何键按下,方法是逐行置低电平(输出0),并读入列状态,如果出现非全1状态,那么0状态的行列交叉点就是

9、被按下的键. 每个键对应一个行号,列号和键值,键值为行号与列号之和.,得到键值后,判断该键是否释放,并消除抖动之后,就可以从键值表中查到相应键处理程序首地址,转到相应键处理程序.,以扫描方式编程为例介绍 判别有无键按下: 首先从P1.0-P1.3行输出“0”,然后从P1.4-P1.7输入列信息,如无键按下,则读入的列信息全为“1”,如有键按下,则读入的列信息不全为“1”,为P1.i(I =4,5,6,7),判别何键按下: 采用逐行扫描的方法.逐行输出“0”(即每次有一行接地)再读入列信息,在按下键的那一行接地时,列信息不全为“1”,这样就可以找到按下键的行位置,然后再确定按下键在行中的位置。(

10、将行码和列码合并) 键分析程序如下:,DECKY:MOV R0,#0F0H ;屏蔽码及P1口控制字 MOV P1, R0 ;各行接地,P1.0- P1.3 为0 MOV A, P1 ;输入列信息 ANL A,R0 ;屏蔽无用位 CRL C ; SUBB A,R0 ;判有无键按下? JZ DECKY ;无键下,转继续测试 MOV R1,#04H ;列数等于4 MOV R2,#0FFH ;初始扫描码 MOV R3,#00H ;初始键号。 DEGIN: MOV A, R2 ; MOV P1, A ;扫描一行。 MOV A, P1 ;输入列信息 ANL A,R0 ;屏蔽无用位 CRL C ; SUBB

11、 A,R0 ;判有何键按下?,JNZ FCOL ;有键按下,转找列值 MOV A, R2 ;无键按下,调整扫描码 RL A ;扫描码左移一位 MOV R2,A ; JNB ACC.4 ,NON ;扫描最后一行吗?是, 结束 MOV A, R1 ; ADD A,R3 ;键号加列数 MOV R3 , A ; SJMP BEGIN ;继续扫描 FCOL : MOV A, P1 ; 取列信息 JNB ACC.4 ,DONE ; INC R3 ; JNB ACC.5 ,DONE ; INC R3 ; JNB ACC.6 ,DONE ; INC R3 ; JNB ACC.7,DONE ;,NON:MOV

12、A,#0FFH ;未找到键,送FFH搜索 MOV R3 , A ;找到的键保存到R3中 DONE:RET 此程序的结果:键号保存在R3中,另外,此程序不包括去抖动,这些功能应在程序中加以考虑。,2)线反转法:上述扫描法要逐行扫描查询,当按下键在最后一行时要进行多次扫描才能获得键值,若采用线反转法则只需经过二个步骤即可完成.原理如下图:,将列线设为输入线,用于输入列信息.将行线设为输出线,并输出全0,若无键按下,则输入口线为1111,若有键闭合,则输入口线不全为1,将数据转入专用单元N中.,将I/O的输入/输出口线反过来,再将专用单元N中的内容送到列线,由输入口读入行状态,并存入N+1单元,最后

13、将N与N+1单元内容合并,就得到按下的键的特征码.,例2:键盘还可通过扩展口接入计算机,例3:可通过串行口接键盘,从图中可看出,由单片机的串行口扩展8位并行口来和(3X8) 24键矩阵组成。其中0-F为16个数字键,10H-17H为8个功能键,其功能可由用户定义。 74LS164是一个14引脚的移位寄存器集成电路芯片,由8051串行接口的RXD端输出扫描列信号到74LS164的1,2引脚,由QA-QH输出至键盘列信号,键闭合的行信号则由端口P3.3- P3.5输入到8051单片机,由单片机的TXD引脚输出移位时钟脉冲到74LS164的时钟输入端(CLK),三. 键值分析程序,键值分析程序的任务

14、是对键盘的操作做出识别,并调用相应的功能模块完成预定的任务. 智能仪器键盘中的按键可分为单义键和多义键. 单义键:一键一义,CPU只需根据键码执行相应的程序,主要适用于功能比较简单的仪器系统.对于功能比较复杂的智能仪器,如果采用单义键,不仅增加费用,而且板面很难布置. 多义键:一键具有二个或二个以上的含义,需进行键语分析,按规定的键语语法,把由键序组合成的输入序列的含义译出后再执行相应的键盘处理程序.,1.单义键的键义分析程序,单义键就是根据当前按键的值,把控制程序转到相应的处理程序的入口,无需知道在此之前按键的情况. 单义键的键盘分析程序框图如图所示:CPU周而复始的扫描键盘,当有键按下时,

15、首先判断是命令键还是数字键,若是数字键,则把按键的读数存入缓冲区备用,若为命令键,则根据键值查找键值入口地址表,以获得按键处理子程序的入口地址,子程序执行完后继续扫描键盘.,具体键分析程序如下:其中A中为键值,当键值小于0AH时为数字键,大于或等于0AH时为命令键.,2.多义键的键义分析程序 (1)双义键键值分析程序 先可设置一个模式键,当模式键的键值为”0”或为”1”时,按键具有不同的二种功能,流程框图如下:,图中用模式键来控制方向引向不同的键处理入口地址表以区别按键的二种含义.,(2)多义键键值分析程序 在一键多义情况下,一个完整的命令通常不是由一次按键操作完成,而且需按二次以上键才能完成,而且这几个键的操作需遵守一定的顺序,称为按键序列.在组成一个命令的按键序列中,除了取决于以前按了什么键,还取决于当前按了什么键.因此多义键的键盘管理程序首先得判断一个按键序列是否以构成一个合法命令,若已构成一个

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号