微机习题课(键盘-8255A行扫描法).pptVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机习题课(键盘-8255A行扫描法)

8255A并行接口(实验一) 识别按键方法:行扫描法和线反转法 1、行扫描法 STEP1: 检查是否有键按下 1)所有行输出‘0’; 2)读列状态,检查是否全‘1’; 若否,则有可能有键按下 3)延时20ms,再读列线,是否全‘1’。 若否,有键按下 * * STEP2:读键码(行扫描法) 1)行扫描; 逐行输出‘0’ 2)读列状态。 被扫描到得行有键按下,列状态才会改变 STEP3:键分析 1)行值送(AL) 2)列值送(AH) 3)(AX)取反,得键码 STEP4:键处理 1)查表 拿键值与键值表比较,相同则记录下对应的字符码 2)显示字符 主程序: 设置数据段,显示提示信息 调键盘扫描子程序KEY 字符是否为‘R’ N Y 开始 结束 键扫描子程序流程图(行扫描法): 置8255A控制字82H,A口输出,B口输入 A口输出低电平,B口读入数据 标识位BL清零 列线全为高电平 (BL)=1? Y N 延时去抖动 BL置1 N Y A B B 开始 第1行输出低电平 保存行值 列线全为高电平 行扫描完毕 取行值 行值左移1位 指向下一行 N Y Y N A B C 与表无任一键相同 Y 在屏幕上显示此键对应的字符 从A口输出00,从B口读入列值 输入字符的ASCII码存放在(DL)中 键是否已释放 返回 Y N 列值送(AH),行值送(AL),(AX)取反,查表 B C N PA55 EQU 218H PB55 EQU 219H P55CTL EQU 21BH DATA SEGMENT TABLE DW 0101H,0102H,0104H,0108H ;键码表 DW 0110H,0120H,0140H,0180H DW 0201H,0202H,0204H,0208H DW 0210H,0220H,0240H,0280H DW 0401H,0402H,0404H,0408H DW 0410H,0420H,0440H,0480H CHAR DB ‘CDEF’ ;字符码表 行扫描法源程序 [1 of 10] DB ‘BA98’ DB ‘4567’ DB ‘3210’ DB ‘ ’ ;四个空格 DB ‘RPMG’ MES DB ‘INPUT ANY KEY IN THE’ DB ‘SMALL KEYBOARD.’ DB 0AH,0DH ;回车换行 DB ‘IT WILL BE DISPLAY’ DB ‘ON THE SCREEN!’ DB ‘END WITH ‘R’’ 行扫描法源程序 [2 of 10] DB 0AH,0DH, ‘$’ DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX ;DS指向数据段 MOV DX,OFFSET MES MOV AH,09 ;显示提示信息 INT 21H KY: CALL KEY ;调键盘扫描子程序 行扫描法源程序 [3 of 10] CMP DL,’R’ ;键入字符不是‘R’,转KY JNZ KY MOV AX,4C00H INT 21H RET MAIN ENDP KEY PROC NEAR ;键盘扫描子程序 MOV AL,82H ;设置8255A控制字 MOV DX,P55CTL ;工作在方式0,端 OUT DX,AL ;口A输出,端口B输入 BEGIN: MOV BL,00H ;标识位清零 行扫描法源程序 [4 of 10] WAIT1: MOV AL,00H ;端口A输出全0 MOV DX,PA55 OUT DX,AL MOV DX,PB55 IN AL,DX ;端口B读入列值 AND AL,07H CMP AL,07H JZ BEGIN ;若为07H,无键按下 CMP BL,01H JZ KPRESS ;若为1,已消抖动 MOV CX,1000H 行扫描法源程序 [5 of 10]

文档评论(0)

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

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

1亿VIP精品文档

相关文档