输入输出设备及接口技术(键盘).

上传人:我** 文档编号:117875170 上传时间:2019-12-11 格式:PPT 页数:31 大小:248KB
返回 下载 相关 举报
输入输出设备及接口技术(键盘)._第1页
第1页 / 共31页
输入输出设备及接口技术(键盘)._第2页
第2页 / 共31页
输入输出设备及接口技术(键盘)._第3页
第3页 / 共31页
输入输出设备及接口技术(键盘)._第4页
第4页 / 共31页
输入输出设备及接口技术(键盘)._第5页
第5页 / 共31页
点击查看更多>>
资源描述

《输入输出设备及接口技术(键盘).》由会员分享,可在线阅读,更多相关《输入输出设备及接口技术(键盘).(31页珍藏版)》请在金锄头文库上搜索。

1、第十章 输入/输出设备及接口技术 10.2 键盘接口技术 常用的按键,都存在两种状态:断开和闭合 当某一键被按下,则为闭合状态 键释放,则为断开状态 键盘电路的功能就是将键的闭合和断开状态用 “0”和“1”来表示,然后通过数据线送到CPU内进 行键的识别 一 键盘工作原理 1. 键盘的可靠性 按键的机械抖动:在实际按键操作中,由于 按键动作是一个机械动作,键在闭合或断开的过 程会发生抖动 键抖动时间的长短与开关的机械特性和人 的操作有关,一般为5ms10ms左右,然后达到 稳定状态。 键盘接口:为了保证CPU对键的一次操作仅 作一次处理,必须去除抖动,使CPU在键的稳定 闭合或断开状态时读取键

2、值。 抖动时间 10ms 开关动作时间 100ms “ 1 ” “ 0 ” 10ms I/O 接 口 +5v +5v 消除抖动电路 按键 单片机 消除抖动的方法 硬件去抖: 软件:在键盘接口中,另一种普遍使用的是采用软 件延时来完成消抖的方法。 基本思想是:在检测到按键按下或释放时,记 录按键的状态,延时大约10ms,再次检测按键的状 态,若与前一次的状态相同,说明按键的状态已稳 定,可进行处理;否则,表示键的状态不稳定,可 能是误动作,不应被处理。 二 、独立式按键 1、接口设计 P1.0 P1.1 P1.7 +5v (1) 接口与数据 每个按键单独占有一根 I/O接口引线。 输入每根I/O

3、接口引线的 信号对应某个按键状态。 2、独立式按键接口程序设计 键盘处理程序任务 1)键输入 检查键盘是否有键被按下,消除按 键抖动。确定被按键的键号。 硬件电路消除抖动或软件消除抖动。 2)键译码 确定键值 3)键处理 根据键值转移到不同程序段。若键 值属于数字、字符键,则调用显示数字 和字符的子程序。若键值属于功能键, 则进行多分支转移,执行各个功能程序 段。 延时等待10ms 仍有按键信号? Y 有按键信号? N Y N 键盘处理 按键释放? N Y 3、独立式按键接口程序 KEY:SETB P1.0 JB P1.0, KEY ;有键按下P1.0=0 KEY1: ACALL DELAY

4、;延时,防止抖动 SETB P1.0 JB P1.0, KEY ;键是否仍按下? KEY2:JNB P1.0, KEY2 ;消除了连击功能 ACALL PROGRAM ; RET 三、矩阵式键盘 1、结构 由多条I/O接口引线组成矩阵式键盘 由行线和列 线组成,按 键位于行、 列线的交叉 点上 行: 输入 列: 输出 矩阵式键盘中,行、列线分别连接到按键开关的两端 当无键按下时,行线处于高电平状态; 当有键按下时,行、列线将导通,此时,行线电平将 由与此行线相连的列线电平决定。这是识别按键是否按下 的关键。 矩阵键盘中的行线、列线和多个键相连,各按键按下 与否均影响该键所在行线的电平,各按键间

5、将相互影响, 因此,必须将行线、列线信号配合起来作适当处理,才能 确定闭合键的位置。 2. 矩阵式键盘按键的识别 识别按键的方法很多,其中,最常见的方法是扫描法。 (1) 判断有无键按下。 方法为:输出口全为“0”,读输入口状态,若全为“1”, 则说明无键按下;若不全为“1”,则说明有键按下 (2) 消除按键抖动的影响。 方法为:在判断有键按下后,用软件延时的方法延时10ms后 ,再判断键盘状态,如果仍为有键按下状态,则认为有一个 按键按下,否则当作按键抖动来处理。 (3)键的识别。 方法为:列线逐列输出“0”,某行有键按下,则对应行线输 入为“0”,若该行无键按下,对应行线输入为“1”。 四

6、. 键盘的工作方式 对键盘的响应取决于键盘的工作方式,键盘的工作 方式应根据实际应用系统中CPU的工作状况而定,其选取 的原则是既要保证CPU能及时响应按键操作,又不要过多 占用CPU的工作时间。通常,键盘的工作方式有三种,即 编程扫描、定时扫描和中断扫描。 1: 编程扫描方式 编程扫描方式是利用CPU完成其它工作的空余时间, 调用键盘扫描子程序来响应键盘输入的要求。在执行键 功能程序时,CPU不再响应键输入要求,直到CPU重新扫 描键盘为止。 2: 定时扫描方式 定时扫描方式就是每隔一段时间对键盘扫描一次 ,它利用单片机内部的定时器产生一定时间(例如 10ms)的定时,当定时时间到就产生定时

7、器溢出中断 。 CPU响应中断后对键盘进行扫描,并在有键按下时 识别出该键,再执行该键的功能程序。 定时扫描方式的硬件电路与编程扫描方式相同 按键处理程序: 延时消抖 键扫描求键号 延时 键译码求键值 输入数字跳转各功能程序 有按键输入? 确有按键? 按键释放? 是数字键? 3: 中断扫描方式 采用上述两种键盘扫描方式时,无论是 否按键,CPU都要定时扫描键盘,而单片机 应用系统工作时,并非经常需要键盘输入, 因此,CPU经常处于空扫描状态。 中断式键盘电路 P1.0-P1.3 输出,为“0” P1.4-P1.7 输入 无键按下时,与门各输入 端均为高电平,输出端保 持为高电平 有键按下时,与

8、门输入有 低,输出端为低电平,向 CPU申请中断,若CPU开放 外部中断,则会响应中断 请求,转去执行键盘扫描 子程序。 五:键盘接口 原理图 程序流程图 用行扫描法进行键扫描的程序 其中KS1为判键闭合的子程序。有键闭合时 (A)=0。 DIR为数码显示器扫描显示子程序,执行一 次的时间约6ms。 程序执行后, 若键闭合, 键值存入A中, 键 值的计算公式是: 键值=行号4+列号; 若无 键闭合, 则A中存入标志FFH。 键盘扫描程序: KEY1: LCALL KS1 ;检查有闭合键否? JNZ LK1 ;A非0,有键闭合则转 LJMP LK8 ;无键闭合转返回 LK1: LCALL DIR

9、 ;有键闭合,则延时12ms LCALL DIR ;消抖 LCALL KS1 ;再次检查有键闭合否? JNZ LK2 ;有键闭合则转 LJMP LK8 ;无键闭合转返回 LK2: MOV R3,00H ;行号初值送R3 MOV R2,0FEH ;行扫描初值送R2 LK3: MOV DPTR,7F01H ;指向8155的PA口 MOV A,R2 ;行扫描值送A MOVX DPTR,A ;扫描1行 INC DPTR INC DPTR ;指向8155的PC口 MOVX A,DPTR ;读入列值 ANL A,0FH ;保留低4位 MOV R4,A ;暂存列值 CJNE A,0FH,LK4 ;列值非全“

10、1”(有键按下),转计算键值 MOV A,R2 ;行扫描值送A JNB ACC.7,LK8 ;已扫到最后1行则转 RL A ;未扫完,则移至下1行 MOV R2,A ;行值存入R2中 INC R3 ;行号加1 SJMP LK3 ;转至扫描下1行 LK4: MOV A,R3 ;行号送入A ADD A,R3 ;行号2 MOV R5,A ;暂存 ADD A,R5 ;行号4 MOV R5,A ;存入R5中 MOV A,R4 ;列值送入A LK5: RRC A ;右移1位 JNC LK6 ;该位为0则转 INC R5 ;列号加1 SJMP LK5 ;列号未判完继续 LK6: PUSH R5 ;保护键值

11、LK7: LCALL DIR ;扫描1遍显示器 LCALL KS1 ;发全扫描信号 JNZ LK7 ;键未释放则等待 LCALL DIR ;键已释放 LCALL DIR ;延时12ms,消抖 POP A ;键值存入A中 KND: RET ;返主程序 LK8: MOV A,0FFH ;无键闭合标志FFH存入A中 RET ;返主程序 KS1: MOV DPTR,7F01H ;有无闭合键判断子程序 MOV A,00H ;取全扫描信号 MOVX DPTR,A ;发全扫描信号 INC DPTR INC DPTR ;指向8155的PC口 MOVX A,DPTR ;读入列值 ANL A,0FH ;保留低4位

12、 ORL A,0F0H ;高4位取“1” CPL A ;取反,无键按下则全0 RET ;返主程序 DIR数码显示器扫描显示子程序参阅LED数码显示器 键盘(显示)接口及程序设计 图见P199 图10-7 8155的I/O口地址:7F00H-7F05H PA口:输出,作键盘的列线(键扫描) 又作6位显示器的位扫描 PB口:输出,作显示器段数据输出 PC口:输入,作键盘的行线(键输入) 键输入程序功能:1、判有无键按下 2、去抖 3、判键号 4、其它(键释放才执行,多键等) 键输入程序清单 KEY1:MOV A,#03H MOV DPTR,#7F00H MOVX DPTR,A ACALL KS1

13、JNZ LK1 ACALL DIR AJMP KEY1 LK1:ACALL DIR ACALL DIR ACALL KS1 JNZ LK2 ACALL DIR AJMP KEY1 LK2:MOV R2,#0FEH MOV R4,#0 LK4:MOV DPTR,#7F01H MOV A,R2 MOVX DPTR,A INC DPTR INC DPTR MOVX A,DPTR JB ACC.0,LONE MOV A,#0 AJMP LKP LONE:JBACC.1,LTWO MOV A,#08H AJMP LKP LTWO:JB ACC.2,LTHR MOV A,#10H AJMP LKP LTHR:JB ACC.3,NEXT MOV A,#18H LKP:ADD A,R4 PUSH ACC LK3:ACALL DIR ACALLKS1 JNZ LK3 POP ACC RET NEXT:INC R4 MOV A,R2 JNB ACC.7,KND RL A MOV R2,A AJMP LK4 KND:AJMP KEY1

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

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

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