8.1键盘接口技术.ppt

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

8.1 键盘接口技术 8.1.1 行列式非编码键盘的工作原理 行列式键盘又叫矩阵键盘,如图8-1所示,按键设置在行列的交叉点上,如用2×2的行列结构可构成四个键的键盘,4×4的行列结构可构成16个键的键盘。在按键数量较多时,矩阵键盘可节省I/O口线。 综上所述,对于非编码键盘,按键处理程序应具有如下四个功能: (1) 判断键盘上有无键按下。 (2) 去除键的机械抖动。 (3) 求按下键的键码。 (4) 闭合一次,只进行一次键功能操作。 8.1.2 单片机对非编码键盘的控制方式 1. 查询方式 这种方式是指在单片机完成其它工作后的空余时间,调用键盘扫描子程序,来响应键盘输入的要求,在执行键功能程序时,CPU不再响应键输入要求。 [例8.1] 用查询法按图8-1读取行列键盘键码,并将键码存入内部RAM 32H单元。 图中P1.4~P1.7用于控制行线,P1.0~P1.3用于控制列线。行、列线通过上拉电阻接+5 V,没有键按下时,被钳在高电平状态。通过发送扫描字确定键码,具体方法如下: (1) 由列线输出0,然后读入P1口的值存入内部RAM 30H单元。 (2) 由行线输出0,然后读入P1口的值存入内部RAM 31H单元。 (3) 把30H的低4位与31H的高4位的值相加存入累加器A。 (4) 最后判断累加器A的值,如果累加器A的数据全为1,说明无键按下,否则说明有键按下,且累加器A的数据就是被按下键的键值(程序中对累加器A取反,目的是用JNZ指令判断是否有键按下)。如图中圆圈所指键的键值。 键扫描程序如下: BOAD:LCALL BOADD JNZ BOAD1 ;无键按下转BOAD LCALL DELAY ;调延时子程序 AJMP BOAD ;继续扫描键盘 BOAD1:LCALL DELAY ;消除键抖动(延时子程序略) LCALL BOADD ;确认是否有键按下 JNZ BOAD2 LCALL DELAY SJMP BOAD ;转键扫描 BOAD2: CPL A MOV 32H,A ;取键值 BOAD3: LCALL DELAY LCALL BOADD JNZ BOAD3 ;等待键松开 B2: RET ;返回 ? ;获取键值子程序 BOADD: MOV P1,#0FH ;置行线为0 MOV A,P1 MOV 30H,A MOV P1,#0F0H ;置列线为0 MOV A,P1 MOV 31H,A ANL 30H,#0FH ;取列值 MOV A,30H ANL 31H,#0F0H ;取行值 ADD A,31H ;行值加列值 CPL A ;A全0无键按下 RET 2. 定时扫描工作方式 定时扫描工作方式是利用单片机内部定时器产生定时中断,CPU响应中断后对键盘进行扫描,当有键按下时,转入键功能的处理程序。 定时扫描在本质上是中断方式,只不过是定时扫描键盘,以中断的方式处理键盘,它的硬件电路与编程扫描工作方式相同。 3. 中断工作方式 单片机应用系统工作时,并不经常需要键输入。因此,无论是编程工作方式或是定时工

文档评论(0)

18273502 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档