文档详情

键盘接口技术应用ppt课件

痛***
实名认证
店铺
PPT
362.50KB
约23页
文档ID:176567575
键盘接口技术应用ppt课件_第1页
1/23

按键的特点及工作原理独立式按键矩阵式按键键键盘盘接接口口技技术术应应用用 本章内容本章内容PC机除了主机以外还需要哪些部分呢?单片机电路有时候也需要键盘、显示等外设单片机组成的控制系统通常需要配置键盘,用单片机组成的控制系统通常需要配置键盘,用户可以通过键盘向单片机输入数据或命令,以便实户可以通过键盘向单片机输入数据或命令,以便实现控制系统的人机对话键盘可以直接利用口线连现控制系统的人机对话键盘可以直接利用口线连接按键开关、开关型传感器或电子线路来实现,内接按键开关、开关型传感器或电子线路来实现,内部程序仅通过判断口线的电平就能够确定输入的键部程序仅通过判断口线的电平就能够确定输入的键值采用这种识别方式的键盘称为非编码键盘采用这种识别方式的键盘称为非编码键盘非编码键盘设计简单,使用方便,且因为具有共用端,编码键盘设计简单,使用方便,且因为具有共用端,容易直接同开关电路或开关型传感器连接但是这容易直接同开关电路或开关型传感器连接但是这种方式的口线利用率较低,受单片机口线数量的限种方式的口线利用率较低,受单片机口线数量的限制,其键盘规模无法做大制,其键盘规模无法做大按键的特点及工作原理独立式按键矩阵式按键 键盘接口技术键盘接口技术按键的特点及工作原理v按键的分类:按键的分类:触点式:机械;无触点式:电气触点式:机械;无触点式:电气v键输入原理:键输入原理:通过按键的接通与断开,产生两种相反的逻辑通过按键的接通与断开,产生两种相反的逻辑状态状态 低电平低电平“0”0”与与高电平高电平“1”1”。

v键功能的实现:键功能的实现:对于一组键或一个键盘,需通过接口电路与单对于一组键或一个键盘,需通过接口电路与单片机相连可采用查询或中断方式测试有无键按下,片机相连可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,将该键号送入累加器再确定是哪一个键按下,将该键号送入累加器ACCACC,然后判断是数字键还是功能键,若是数字键,则将然后判断是数字键还是功能键,若是数字键,则将键号对应的数字送入相关输入缓冲区;若是功能键,键号对应的数字送入相关输入缓冲区;若是功能键,则通过跳转指令转入执行该键的功能程序,执行完则通过跳转指令转入执行该键的功能程序,执行完后再返回主程序后再返回主程序键盘接口需要解决的问题是否有键按下(通过编程来判断是否有键按下)是否有键按下(通过编程来判断是否有键按下)按键识别:按键识别:键抖动及消除:主要指机械按键键抖动及消除:主要指机械按键抖动就是键处于似接非接的状态抖动就是键处于似接非接的状态机械按键抖动时间在机械按键抖动时间在5 5msms10ms10ms之之间间&Q4.7K4.7KKabcc(+5V)硬件方案硬件方案双稳态去抖电路双稳态去抖电路 软件方案软件方案延时延时10ms10ms20ms20ms后再次判断,按下去了说后再次判断,按下去了说明键确实按下了,没有按下说明前一次是抖动产生的。

明键确实按下了,没有按下说明前一次是抖动产生的消除方法消除方法:求键号(确定有键按下了,还要确定是哪个键按下了)求键号(确定有键按下了,还要确定是哪个键按下了)键盘在使用中还应考虑到人员操作或机械特性在接键盘在使用中还应考虑到人员操作或机械特性在接触时产生的抖动问题,即按键开关在接通或断开瞬间并触时产生的抖动问题,即按键开关在接通或断开瞬间并非完全可靠接触,而是存在一个抖动期,在此期间的电非完全可靠接触,而是存在一个抖动期,在此期间的电平变化波形如图所示图中平变化波形如图所示图中t tH H为开关断开时口线上高电为开关断开时口线上高电平存在的时间,平存在的时间,t tL L为开关闭合时口线上低电平稳定存在为开关闭合时口线上低电平稳定存在的时间,的时间,t tW1W1、t tW2W2为键按下和松开时的抖动期存在时间为键按下和松开时的抖动期存在时间抖动期一般不超过抖动期一般不超过10 ms10 ms在口线电平抖动期间,单片在口线电平抖动期间,单片机无法准确检测出口线电平的正确值,必须采取一定的机无法准确检测出口线电平的正确值,必须采取一定的措施进行鉴别措施进行鉴别独立式按键独立式按键8 0 3 1P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7Vc c接口电路:例例1 1:用:用P1P1口检测三个按键的状态并完成相应的功能口检测三个按键的状态并完成相应的功能解:资源分配:用P1口的低3位检测3个按键的输入,为1则表示按键没有按下,为0则表示相应按键被按下。

流程图:抖抖动动来来的的判断完是否有键按下后有两种执行方式:判断完是否有键按下后有两种执行方式:1.1.判断键按下去后就执行该按键的功能判断键按下去后就执行该按键的功能2.2.判断键释放后才执行该按键的功能判断键释放后才执行该按键的功能 ORG 0000H 如果不送高电平如果不送高电平,原来是低电平,原来是低电平KB:MOV P1,#0FFH;状态的管脚读进来会出错状态的管脚读进来会出错 MOV A,P1;有键按下为;有键按下为0,无键按下为,无键按下为1 CPL A ANL A,#07H;屏蔽其它位状态;屏蔽其它位状态 JZ KB LCALL D10MS;去抖动;去抖动 MOV A,P1 CPL A ANL A,#07H JZ KB 编程:按三个按键中的任一键都对应一个特定功能判断按键是否按下?CJNE A,#01H,KB01 LCALL PGM1 SJMP KBKB01:CJNE A,#02H,KB02 LCALL PGM2 SJMP KBKB02:CJNE A,#04H,KB LCALL PGM3 SJMP KBPGM1:RET判断具体哪个键按下并转去执行相应功能矩矩阵阵式式按按键键关键:如何关键:如何判断键号?判断键号?3210476511109815141312+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.1接口电路:行行首首号号列首号列首号键号键号=行首号行首号+列首号列首号 键值产生的原理键值产生的原理 1)1)扫描法产生键值扫描法产生键值具体方法是,以行线作为扫描输出,以列线作为接收输具体方法是,以行线作为扫描输出,以列线作为接收输入,依次将行线置为低电平,并在列线上逐次接收数据。

扫入,依次将行线置为低电平,并在列线上逐次接收数据扫描完成后,如果发现接收到的某一列线有低电平,则表示该描完成后,如果发现接收到的某一列线有低电平,则表示该列线与行线连接的按键已经闭合在接收到低电平的那次扫列线与行线连接的按键已经闭合在接收到低电平的那次扫描中,行线数据与列线数据的组合便是所期望的键值,由该描中,行线数据与列线数据的组合便是所期望的键值,由该键值可确定闭合键在矩阵连接中的连接位置键值可确定闭合键在矩阵连接中的连接位置2)2)线反转识别法产生键值线反转识别法产生键值具体方法是,先将行线全部置为低电平,列线全部置为具体方法是,先将行线全部置为低电平,列线全部置为高电平,从列线对应的高电平,从列线对应的I/OI/O口线接收数据,如果发现有口线口线接收数据,如果发现有口线变低,则证明该列线与闭合的按键连接反之,将列线全部变低,则证明该列线与闭合的按键连接反之,将列线全部置为低电平,行线全部置为高电平,从行线对应的置为低电平,行线全部置为高电平,从行线对应的I/OI/O口线口线接收数据,如果发现有口线变低,则证明该行线与闭合的按接收数据,如果发现有口线变低,则证明该行线与闭合的按键连接。

对上述两次操作的结果所获得的两个键连接对上述两次操作的结果所获得的两个8 8位数据进行位数据进行综合分析,便可确定闭合的按键所在位置综合分析,便可确定闭合的按键所在位置键盘扫描子程序一般包括以下内容:1.判别有无键按下;2.扫描获取闭合键的行、列值;3.用计算法或查表法得到键值;4.判断闭合键释放否,如没释放则继续等待;5.保存闭合键号散转指令散转指令 JMP A+DPTRJMP A+DPTR键按下键按下/释放判断释放判断 KS:MOV A,#00H MOV P1,A ;全扫描字#00H送P1口 MOV P1,#0FH ;从P1口的低4位取数,必须使低4位为高电平 MOV A,P1 ;读入P1口状态 CPL A ;变正逻辑,高电平表示有键按下 ANL A,#0FH ;取低4位 RET ;返回,A0表示有键按下MAIN:LCALL KS JZ M ;等于0说明没有键按下,转移到M .按键识别扫描法 流程:当第当第0 0列处于低电平时,列处于低电平时,逐行逐行查找是否有行线变低,查找是否有行线变低,若有,则若有,则第第0 0列与该行的交叉点列与该行的交叉点按键按下;若无,则表示按键按下;若无,则表示第第0 0列无键按下,再让下一列处在低电平,依此循环,这列无键按下,再让下一列处在低电平,依此循环,这种方式称为种方式称为键盘扫描键盘扫描。

键号键号=行首键号(行首键号(0 0、4 4、8 8、1212)+列号(列号(0 0、1 1、2 2、3 3)原理:在某一时刻只让在某一时刻只让一条列线一条列线处于处于低低电平,其余列线均电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行电平将会由高电平变为低电平,可判定该列相应的行有键按下有键按下例2:键盘扫描程序SERCH:MOV R2,#0EFH;让某一列为0,11101111 MOV R3,#00H;R3作为列号的寄存器 LINE0:MOV A,R2 MOV P1,A;对应的列为低电平了 MOV A,P1 JB ACC.3,LINE1;为1,没有键按下,查下一行 MOV A,#00H ;为0,有键按下,存行首号 AJMP TRYKLINE1:JB ACC.2,LINE2 MOV A,#04H AJMP TRYK LINE2:JB ACC.1,LINE3 MOV A,#08H此时假设键已经按下了,此时假设键已经按下了,我们现在只需判断键号我们现在只需判断键号 AJMP TRYKLINE3:JB ACC.0,LINE4 MOV A,#0CH AJMP TRYKLINE4:INC R3 ;4行都没有查到,列号加1 MOV A,R2 ;初值左移1位,变为11011111 RL A JNB ACC.0,BACK;11111110时,子程序返回,重来 MOV R2,A;列号左移为 11011111,则在从第一行开始查 AJMP LINE0 TRYK:ADD A,R3;行首号和列号相加 BACK:RET定时扫描方式 定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10 ms)的定时,当定时时间到就产生定时器溢出中断。

CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序利用定时器,利用定时器,定时的去扫描定时的去扫描按键查询法按键查询法;对定时器工作方式进行设定;对定时器工作方式进行设定;对定时器设定初值;对定时器设定初值;启动定时器;启动定时器;定时时间到,转移到查键号;定时时间到,转移到查键号;判断到;判断到100次了吗?次了吗?;调用键测试程序,判断有键按下吗?;调用键测试程序,判断有键按下吗?;A为为0,没有键按下,继续定时,没有键按下,继续定时;有键按下,有可能因为抖动,延时有键按下,有可能因为抖动,延时调用键测试程序,判断有键按下吗?;调用键测试程序,判断有键按下吗?;调用确定键号程序;调用确定键号程序中断的方法中断的方法;定时器;定时器T1的中断入口地址的中断入口地址;中断允许;中断允许主程序主程序中断子程序中断子程序;对定时器工作方式进行设定;对定时器工作方式进行设定;对定时器设定初值;对定时器设定初值;启动定时器;启动定时器;等待定时时间到,到了就产生中断;等待定时时间到,到了就产生中断;关中断;关中断;调用键测试程序,判断有键按下吗?;调用键测试程序,判断有键按下吗?;A为为0,没有键按下,继续定时,没有键按下,继续定时;有键按下,有可能因为抖动,延时。

有键按下,有可能因为抖动,延时调用键测试程序,判断有键按下吗?;调用键测试程序,判断有键按下吗?;调用确定键号程序;调用确定键号程序;确定键号后,执行键的功能;确定键号后,执行键的功能;中断允许;中断允许中断扫描方式 为提高CPU工作效率,可采用中断扫描工作方式其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号P1.0P1.1P1.3P1.2P1.4P1.5P1.6P1.7INT08031&随机性的随机性的与门与门+5+5伏伏0 00 00 00 0;INT0的中断入口地址的中断入口地址;低;低4位为位为0,高,高4位为位为1;中断允许;中断允许;等待有键按下;等待有键按下;调用键测试程序,判断有键按下吗?;调用键测试程序,判断有键按下吗?;A为为0,没有键按下,继续等待,没有键按下,继续等待;调用键测试程序,判断有键按下吗?;调用键测试程序,判断有键按下吗?;有键按下,有可能因为抖动,延时有键按下,有可能因为抖动,延时调用确定键号程序;调用确定键号程序;A为为0,没有键按下,继续等待,没有键按下,继续等待;中断允许;中断允许。

下载提示
相关文档
正为您匹配相似的精品文档