07-键盘接口技术应用 (2)教学案例

上传人:yuzo****123 文档编号:143468046 上传时间:2020-08-30 格式:PPT 页数:23 大小:578KB
返回 下载 相关 举报
07-键盘接口技术应用 (2)教学案例_第1页
第1页 / 共23页
07-键盘接口技术应用 (2)教学案例_第2页
第2页 / 共23页
07-键盘接口技术应用 (2)教学案例_第3页
第3页 / 共23页
07-键盘接口技术应用 (2)教学案例_第4页
第4页 / 共23页
07-键盘接口技术应用 (2)教学案例_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《07-键盘接口技术应用 (2)教学案例》由会员分享,可在线阅读,更多相关《07-键盘接口技术应用 (2)教学案例(23页珍藏版)》请在金锄头文库上搜索。

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

2、的分类: 触点式:机械;无触点式:电气 键输入原理: 通过按键的接通与断开,产生两种相反的逻辑状态 低电平“0”与高电平“1”。 键功能的实现: 对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,将该键号送入累加器ACC,然后判断是数字键还是功能键,若是数字键,则将键号对应的数字送入相关输入缓冲区;若是功能键,则通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。,键盘接口需要解决的问题,是否有键按下(通过编程来判断是否有键按下),按键识别:,键抖动及消除:主要指机械按键,抖动就是键处于似接非接的状态。机械按键抖动时间在5ms10

3、ms之间,硬件方案双稳态去抖电路,软件方案延时10ms20ms后再次判断,按下去了说明键确实按下了,没有按下说明前一次是抖动产生的。,消除方法:,求键号(确定有键按下了,还要确定是哪个键按下了),键盘在使用中还应考虑到人员操作或机械特性在接触时产生的抖动问题,即按键开关在接通或断开瞬间并非完全可靠接触,而是存在一个抖动期,在此期间的电平变化波形如图所示。图中tH为开关断开时口线上高电平存在的时间,tL为开关闭合时口线上低电平稳定存在的时间,tW1、tW2为键按下和松开时的抖动期存在时间。抖动期一般不超过10 ms。在口线电平抖动期间,单片机无法准确检测出口线电平的正确值,必须采取一定的措施进行

4、鉴别。,独立式按键,接口电路:,特点:一线一键,按键识别(编程)简单;但占用较多口线,适合8键以下使用。,例1:用P1口检测三个按键的状态并完成相应的功能,解:,资源分配: 用P1口的低3位检测3个按键的输入,为1则表示按键没有按下,为0则表示相应按键被按下。,流程图:,抖动来的,判断完是否有键按下后有两种执行方式: 1.判断键按下去后就执行该按键的功能 2.判断键释放后才执行该按键的功能,ORG 0000H 如果不送高电平 ,原来是低电平 KB: MOV P1,#0FFH; 状态的管脚读进来会出错 MOV A,P1;有键按下为0,无键按下为1 CPL A ANL A,#07H;屏蔽其它位状态

5、 JZ KB LCALL D10MS;去抖动 MOV A,P1 CPL A ANL A,#07H JZ KB,编程:按三个按键中的任一键都对应一个特定功能。,判断按键是否按下?,CJNE A,#01H,KB01 LCALL PGM1 SJMP KB KB01:CJNE A,#02H,KB02 LCALL PGM2 SJMP KB KB02:CJNE A,#04H,KB LCALL PGM3 SJMP KB PGM1: RET,判断具体哪个键按下并转去执行相应功能,矩阵式按键,关键:如何判断键号?,接口电路:,特点:按键识别应采用扫描法或线路反转法 编程较为复杂,节省口资源,8键以上使用,行首号

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

7、接收数据,如果发现有口线变低,则证明该行线与闭合的按键连接。对上述两次操作的结果所获得的两个8位数据进行综合分析,便可确定闭合的按键所在位置。,键盘扫描子程序一般包括以下内容: 1.判别有无键按下; 2.扫描获取闭合键的行、列值; 3.用计算法或查表法得到键值; 4.判断闭合键释放否,如没释放则继续等待; 5.保存闭合键号。,散转指令 JMP A+DPTR,键按下/释放判断,KS: MOV A,#00H MOV P1,A ;全扫描字#00H送P1口 MOV P1,#0FH ;从P1口的低4位取数,必须使低4位为高电平 MOV A,P1 ;读入P1口状态 CPL A ;变正逻辑,高电平表示有键按

8、下 ANL A,#0FH ;取低4位 RET ;返回,A0表示有键按下 MAIN: LCALL KS JZ M ;等于0说明没有键按下,转移到M .,按键识别扫描法,流程: 当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的交叉点按键按下;若无,则表示第0列无键按下,再让下一列处在低电平,依此循环,这种方式称为键盘扫描。 键号=行首键号(0、4、8、12)+列号(0、1、2、3),原理: 在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。,例2:键盘扫描程序,SERCH: MOV

9、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 TRYK LINE1: 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

10、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响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序

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

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

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

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

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