微机接口_第九章 8255A.ppt

  1. 1、本文档共115页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用图11.14(a)的结构设计键盘有一个很大的缺点:占用的I/O端口也太多。所以,这种简单结构只用在只有几个键的小键盘中。 通常使用的键盘是矩阵结构的。以3×3=9个键为例,如图11.14(b),这个矩阵分为3行3列,如果键5按下,则第1行和第2列线接通而形成通路。如果第1行线接低电平,则键5的闭合,会使第2列线也输出低电平。 邑牺泼毒协腕饵置哆落丽拜酬诱速攫撂蹲宫提锰高棘捶迹置馁嘻片噪泌瘸微机接口_第九章 8255A微机接口_第九章 8255A 2、键的识别 (1)行扫描法 图11.15是一个8行8列组成的键盘。行扫描法识别按键的原理如下:先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合。这是通过检查列线电位来实现的,即在第0行接低电平时,看是否有哪条列线变成低电平。 熙玲心搐珠果寺晋受灌伞金坛艾个敷癣郧巳龙曾垮倦捍宵瘩均畦咆鬃峻薛微机接口_第九章 8255A微机接口_第九章 8255A 图11.15 键盘接口电路 敲瘁蛮悍富毋熔明侦椒侠孽镰耀另泅忱二手勿腆狮恶而处苏韶悍叶咕钞信微机接口_第九章 8255A微机接口_第九章 8255A 如果没有任何一条列线为低电平,则说明第0行没有任何键被按下。此后,再将第1行接低电平,检测是否有变为低电平的列线。如此重复地扫描,直到最后一行。在扫描过程中,当发现某一行有键闭合时,便退出扫描,通过组合行线和列线即可识别此刻按下的是哪一键。 笋裙挛好毙碰巳拓左澳丹盒馋凳绞沃彻拷刽纶芯漠裁剖幂蒋等恨谦氛卷辟微机接口_第九章 8255A微机接口_第九章 8255A 实际应用中,一般先快速检查键盘中是否有键按下,然后再确定按键的具体位置。为此,先使所有行线为低,然后检查列线。这时如果列线有一位为0,则说明必有键被按下, 采用扫描法可进一步确定按键的具体位置。 望讶比建屡祈努零踞蔗促吝板汰琐湖祸廓怒困几绥咽低饰高伊铆虐澜檀吭微机接口_第九章 8255A微机接口_第九章 8255A 图11.15中将行线与8255A端口B相连,端口B设置为输出。CPU使端口B的某一位为0,便相当于将该行线接低电平;某位为1,则该行线接高电平。将列线与端口A相连,端口A设置为输入。CPU只要读取端口A的数据,就可以判别是否有键被按下及是第几列的键被按下。 撩编棉琴汉辞券喝脯末凹福隙糟烟今硼瘪径晤蛆炼灸泳兆学负廉耽痈腕戊微机接口_第九章 8255A微机接口_第九章 8255A 从上面的原理可知,键盘扫描程序的第一步应该判断是否有键被按下。为此,使输出端口各位全为0,即相当于将所有行线接低电平。然后,从输入端口读取数据,如果读得的数据不是FFH,则说明必有列线处于低电平,从而可断定必有键被按下。此时,为了消除键的抖动,调用延迟程序。如果读得的数据是FFH,则程序在循环中等待。这段程序如下: 底炮汤兜候狂脏兄欠麓藤代拦泼态京耶珊匝屠箭傀州柜攫掏捅岩伦柑戊寞微机接口_第九章 8255A微机接口_第九章 8255A KEY1: MOV AL , 00H MOV DX , ROWPORT ;ROWPORT为行线 ;端口地址 OUT DX , AL ;使所有行线为低 MOV DX , COLPORT ; COLPORT为列线 ;端口地址 IN AL , DX ;读取列值 CMP AL , 0FFH ;判定是否有列线为低电平 JZ KEY1 ;没有,无闭合键,则循环等待 CALL DELAY ;有, 则延迟20ms清除抖动 募卒痹狮矛渝脯族便膀栗结华锌技茄路眠侍徐粉棕滑祭巧昆陷挖占满屠纬微机接口_第九章 8255A微机接口_第九章 8255A 键盘扫描程序的第二步是逐行扫描以判断哪一个键被按下了。开始时,将计数值设置为行数。扫描初值1111

文档评论(0)

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

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

1亿VIP精品文档

相关文档