- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                第七章  并接口习题答案
                     当把82H装入8255A的控制寄存器后,其端口A、B和C的工作方式和I/O配置是什么? 【例6-5】8255A作为矩阵键盘接口,工作于方式0,如图6.10所示。试编程读取矩阵键盘的按键扫描码。 矩阵式键盘是非编码键盘的一种,指按键开关按行列排列,形成二维矩阵的结构。图6.10中的键盘为4行×4列的矩阵键盘,其行线接8255A的端口A的低4位,列线接端口B的低4位。8255A的A口设为方式0输出,B口设为方式0输入。  识别键盘上哪个键被按下的过程称为键盘扫描,其过程如下:先使行线全为“0”,若此时无键按下,则列线应为全“1”;若有键按下,则相应位置的列线应为“0”。有键按下时,还要判断按下的键在哪行哪列,即读取按键的扫描码。方法之一是逐行扫描法,也就是先扫  图6.10    矩阵键盘接口     描第一行,使PA0=0,PA3~PA1为1,判别列线有无低电平。若有,则可识别出第一行哪一列上有键按下(此时A口、B口的值即为该键的扫描码);若没有,则继续扫描第二行,使PA1=0,其余为1,依上述方法判别,直至扫描完所有4行,总可以找到按下的按键。  当然,在检测到有键按下后,还必须消除按键的抖动。消除按键抖动的常用方法是在检测到有键按下后,延长一定的时间(通常为20ms),再检查该键是否仍被按着,若是,才能认定该键确实被按下了,而不是干扰信号。  设图6.10中8255A的端口地址为80~86H,其键盘扫描程序段如下:           ;判别是否有键按下    START:MOV  AL,82H           ;设置8255A的工作方式字                     OUT  86H,AL                     MOV  AL,00H           ;给A口输出00H                     OUT  80H,AL    WAIT1:IN    AL,82H           ;读入B口的值                     AND  AL,0FH           ;取低4位                    CMP  AL,0FH           ;比较                     JZ    WAIT              ;结果为0,则无键按下,继续等待                    CALL  DELAY           ;调用延时子程序,消除按键抖动                    IN    AL,82H           ;再次读B口,测试有无低电平                   AND  AL,0FH                   CMP  AL,0FH         JZ    WAIT              ;结果为0,则是干扰,继续等待  ;判断哪个键按下            MOV  CL,4               ;设置计数初值            MOV  AL,0EH         ;使A0=0,准备先扫描第一行    CHECK:OUT  80H,AL            MOV  AH,AL           ;保存行扫描码            IN    AL,82H             ;读B口            AND  AL,0FH           ;取低4位            CMP  AL,0FH           ;比较            JNZ   TABLE    ;不为0,则该行有键按下,转键值处理子程序            MOV  AL,AH           ;无键按下,则修改行扫描码            ROL  AL,1            DEC  CL                      ;行数减1            JNZ  CHECK              ;未扫描完4行,则继续            JMP  START               ;重新扫描    TABLE:CALL  KEYVALUE     ;此时AH中为行扫描码,AL中为列扫描码,调用键值处理子程序           ;等待按键释放                   MOV  AL,00            ;向A口输出00H                    OUT  80H,AL    WAIT2:IN    AL,82H           ;读B口                     AND  AL,0FH          ;取低4位             
                您可能关注的文档
最近下载
- 2023年资料员资格考试题库答案下载.docx
 - 人教版小学语文四年级上册第二单元试卷及答案.pdf VIP
 - 安全与急救(四川警察学院)超星尔雅学习通网课章节测试答案.doc VIP
 - 铁总工电〔2018〕125号普速铁路桥隧建筑物修理规则.docx VIP
 - 煤岩复合体能量传递特性与动力灾害关联性.docx VIP
 - 高血压的危害及有效的降压方法.pptx VIP
 - 生涯发展报告.pdf VIP
 - 数学活动 月历中的奥秘及和为定值的两数积的规律 2025-2026学年人教版数学八年级上册.docx
 - 2026教育部教育技术与资源发展中心(中央电化教育馆)招聘3人(非事业编)笔试备考试题及答案解析.docx VIP
 - 弱电施工方案.doc VIP
 
原创力文档
                        

文档评论(0)