微机原理及汇编语言(黄永平)ch20-键盘接口技术.docVIP

微机原理及汇编语言(黄永平)ch20-键盘接口技术.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
键盘接口技术 概述 键盘输入设备及接口。键盘有编码键盘(ASCII码)及非编码键盘之分。 键盘要解决的问题有: 判断有无键按下(查询,中断); 识别按下的键(行扫描法,列扫描法,行列反转法); 去抖动(硬件法,软件法); 重键处理(软件第一次,键释放)。 键盘设计 去抖动 不稳定状态大约20ms。 硬件去抖动 R-S触发器 软件去抖动 延时20ms. 重键处理 重键:两个或两个以上键同时按下;或者一个键按下时,另一个键又按下。 处理方式: 扫描键盘,当有多个闭合键时,只识别最后一个按下的键。 确认一个闭合键之后,保持状态,只有当该键释放后再去处理,并开始识别其它键。 键盘结构 种类:线性键盘、矩阵键盘。 线性键盘 矩阵键盘 判断有无键按下(有键按下吗?) 方法:查询法、中断法。 查询法 行输出全0,输入列值,若不是全1,表示有键按下,但是是哪个键按下还不知道。 中断法 行输出全0,若有中断IR4表示有键按下了,但是是哪个键按下还不知道。 键的识别(按下的到底是哪个键?) 方法:行扫描法、列扫描法、行列反转法。 行扫描法 行输出,列输入。 行输出的值分别使某一行为低电平,输,输…0111111B。即行扫描。 行每输出一个扫描值,列都会读入,判断列中有无0,若有0,说明对应0的列中有键按下。 例如,行在输时,读入的列值,说明第一行,第二列有键按下。 列扫描法 列输出,行输入。方法与行扫描法相同中。 行列反转法 行输出,列输入;之后反转输出与输入,变为行输入,列输出。 (1)首先行输出全0,读入列值并保存,若有键按下,会有一个是0,表示某列有一个键按下,到底是哪行的键并不知道。 (2)之后行列输入输出反转,把上步骤读入的列值在列中输出,读入行值,行值中会有一个是0,0会位置表示某行有键按下,确定了是哪行的键按下了。 由列值确定了哪列有键按下;行值确定了哪行有键按下。两个合起来确定了按下键的行列位置。 对4x4矩阵键盘,有: 键值编号=行计数值x4+列计数值 对8x8矩阵键盘,有: 键值编号=行计数值x8+列计数值 什么是键值编号?什么是行计数值?什么是行列数值? 键值编号—功能键值的变换,查表方式。 综合 如何判断有无键按下?如何去抖动?如何识别到底是哪个键按下了? 以下都是用软件去抖动。重键处理方式相同。 查询方式、行扫描法 判断有无键按下:行输出全0,读入列值,是不是全1,若是全1,无键按下,否则有键按下。 延时20ms去抖动。 键识别:行扫描法识别到底是哪个键按下。 重键处理:行输出全0,列是否是全1,是全1时说明键已经松开,可以继续执行,否则查询等待。 见书中例子。P249 中断方式、行扫描法 初始化时行输出全0. 判断有无键按下: 有中断,表示有键按下。 延时20ms去抖动(中断服务程序中)。 键识别:行扫描法识别到底是哪个键按下(中断服务程序中)。 重键处理:行输出全0,列是否是全1,是全1时说明键已经松开,可以继续执行,否则查询等待(中断服务程序中)。 查询方式、行列反转扫描法 判断有无键按下:行输出全0,读入列值,是不是全1,若是全1,无键按下,否则有键按下。 延时20ms去抖动。 键识别:行列反转,在列中输出读入的列值,读行值,识别到底是哪个键按下。 重键处理:行输出全0,列是否是全1,是全1时说明键已经松开,可以继续执行,否则查询等待。 中断方式、行列反转扫描法 初始化时行输出全0. 判断有无键按下: 有中断,表示有键按下。 延时20ms去抖动(中断服务程序中)。 键识别:行列反转,在列中输出读入的列值,读行值,识别到底是哪个键按下(中断服务程序中)。 重键处理:行输出全0,列是否是全1,是全1时说明键已经松开,可以继续执行,否则查询等待(中断服务程序中)。 见p254 微机与键盘的接口 键盘扫描原理 扫描码=ON/OFF状态+键盘位置编号 格式: 键盘侧与微机的接口 微机侧键盘接口 PB6=0,禁止系统时钟PCLK;PB6=1允许时钟。 PB7=1,清74LS322和中断请求触发器;PB7=0允许74LS322工作。 键盘中断 键盘中断处理程序有中断类型码09H,16H, 21H三种方式。 明天实验考题: 编程实现在键盘上输入4个十六进制的值,在屏幕上显示其二进制的数据值。如键盘上输入F0F0之后,会在屏幕中显示为111100001111B。 9

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档