网站大量收购独家精品文档,联系QQ:2885784924

接口技术-7-1-键盘接口.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
接口技术-7-1-键盘接口

常用键盘类型 线性键盘 键盘输入接口 键盘的任务可以用硬件或软件来完成,可分为: 1.编码键盘:即每一次按键时,键盘能自动地产生按键的键值。同时产生一选通脉冲信号通知微机系统读取键值。一般具有去抖动和同时按键保护功能。这种键盘易于使用,但硬件较复杂。 2.非编码键盘:只简单提供键盘的行列矩阵,其它操作如键的识别、键值读取、去抖动等均由软件完成,故硬件较简单。 按键的判别与识别 按键扫描注意事项: 1.去抖动 去抖动的方法通常有两种: 硬件法 用单稳态电路消除机械抖动的影响 用傍路电容减小机械抖动的影响 软件法 中断方式时,在中服程序的开始关中断 查询方式时,用延时的方法获得键的稳定值 2.防串键 串键是指两个或两个以上按键同时按下,或一个键按下后没释放又按下另一个键时产生的问题。 ⑴双键锁定。 ⑵N键连锁。 3.按键识别和键码产生 ⑴行扫描法。 ⑵行列交换法。 行扫描法(一) 第一步:判断是否有键按下 输出端口的各位都为低电平,即各列都为0 读取输入端口数据,如果输入不等于FFH,则有键被按下 行扫描法(二) 第二步:确定按键号 确定按键的列数: 输出扫描值,使某一列为低电平,其它列为高电平; 读取行值,看是否有行线处于低电平 确定按键的行数:循环右移行值,直到为0 行扫描法程序流程 矩阵键盘的键位识别 矩阵键盘的按键判别无效 矩阵键盘的按键判别有效(行输出全0法) 矩阵键盘的键位识别(行输出扫描法) 矩阵键盘的键位识别(行输出扫描 法) 矩阵键盘的键位识别(行多键识别) * 15 * §7.1 键盘接口 线性键盘 矩阵键盘 每一位输入线对应一键位 输入线分为行线和列线,相交处对应一键位 I/O接口 VCC GND 输入口 注:N 位键需 N 条输入线 8 位 并行 输入 端口 8 位 并行 输出 端口 +5V 10k Ω 10k Ω 10k Ω 10k Ω 第 0 行 第 1 行 第 2 行 …… 第 7 行 第 0 列 第 1 列 第 2 列 第 3 列 …… 第 7 列 矩阵键盘结构 MOV AL,00H; MOV DX,OUTPORT; OUT DX,AL MOV DX,INPORT; IN AL,DX; AND AL,0FFH CMP AL,0FFH 8 位 并行 输入 端口 8 位 并行 输出 端口 +5V 10k Ω 10k Ω 10k Ω 10k Ω 第 0 行 第 1 行 第 2 行 …… 第 7 行 第 0 列 第 1 列 第 2 列 第 3 列 …… 第 7 列 是否有一行接地? 键盘命令处理 是 进位位为0 ? 否 扫描值循环左移一位, 使下一列为低电平 键号 +1 ,计数值 - 1 否 读进行值 行值循环右移一位 是 结束 是 全部扫描完? 否 输出扫描值,使某一行为低电平 MOV AL,CL OUT OUTPORT,AL MOV BL,0 MOV DL,8 MOV CL,0FEH ROL AL,1 MOV CL,AL IN AL,INPORT CMP AL,0FFH RCR AL,1 JNC PROC INC BL 设键号 =0 ,计数器 = 列数 行扫描初值 判断是否有键按下 识别是什么键按下 行线输出全 0 若列线输入全 1,无键按下 若列线输入不全 1,有键按下 行线输出扫描,011、101、110 若列线输入不全 1,有键按下 根据行、列值(0、0)确定键位 VCC 行线 列线 1 1 1 1 1 1 VCC 行线 列线 1 1 1 1 1 1 注: 行线输出全高电位, 按键列线输入全高 电位 0 行 1 行 2 行 0 列 1 列 2 列 该键按下 该键按下 该键按下 VCC 行线 列线 0 0 0 1 0 1 注: 行线输出全低电位, 有按键列线输入非全高 电位 0 行 1 行 2 行 0 列 1 列 2 列 VCC 行线 列线 0 1 1 X X X 注: 某行输出 0, 该行键操作影响列输入 0 行 1 行 2 行 0 列 1 列 2 列 该行有效 VCC 行线 列线 0 1 1 1 1 1 0 行 1 行 2 行 0 列 1 列 2 列 该键按下 注:行输出 011,有键按下不在 0 行, 列线输入全高,未找到键位。 该键按下 该键按下 VCC 行线 列线 1 0 1 1 0 0 0 行 1 行 2 行 0 列 1 列 2 列 注:行输出 101,有双键按下在 1 行, 列线输

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档