01---第3章 人机接口.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
行扫描法识别按键 MOV BL,0 ;扫描键盘矩阵,送键号初值 MOV BH ;置初始扫描模式-行码送FEH MOV CX,8 FNDROW: MOV AL,BH ;送行码 MOV DX,PORTA OUT DX,AL ROL BH,1 ;修改行码 MOV DX,PORTB ;读列码 IN AL,DX CMP AL,0FFH JNZ FNDCOL ;有键按下,查列号 ADD BL,8 ;无键按下,指向下一行键号初值 LOOP FNDROW ;8行扫描未完,送下一行扫描码 JMP DONE ;8行扫描完,无键按下 FNDCOL: ROR AL,1 ;查哪一列有键按下 JNC RIGHT ;查到按下键的键号 INC BL ;键号加1,查下一列 JMP FNDCOL RIGHT: … ;按下键的编号在BL中 DONE: … ;无键闭合 一、扫描键值的确定 1、判断是否有键按下 CPU依次使X0~X7为低电平,其代码分别为X0(01H),X1(02H),X2(04H),X3(08H),X4(10H),X5(20H),X6(40H),X7(80H),然后由三态门读出列线Y0~Y7的值,若无键按下为FFH,否则不等于FFH,由此可判断是否有键按下。 2、求十进制键值 分别设一个行值寄存器BL和列值寄存器BH,每扫完一行后,如果此行无键按下,则行寄存器加08,否则不加08而转到求列值。求列值的方法是将列值读数右移,每移一次列值寄存器加1,直到有键按下为止(低电平表示有键按下),最后把行值和列值相加并进行DAA修正,即可得到所求键值。 二、功能键入口地址的确定 对数字键就是要把该键值直接送到显示缓冲区进行显示。 对功能键则是找到该键处理程序入口地址,并转去执行。 64键全译码键扫描程序和功能键处理(功能键散转法)框图如图3-16所示,其程序程序 P75。 THAT IS ALL FOR CHAPTER 3 CMP AX,[V1] ? ;Vi=V1转N2 JAE N2 N1: MOV CX,[K1] ; ViV1,计算K1Vi MUL CX; MOV CX,10 ;计算结果缩小10倍 DIV CX; JMP ? DONE N2: SUB AX,[V1] ;计算K2(Vi-V1)+tA MOV CX,[K2]; MUL CX; MOV CX,10; DIV CX ADD AX,[TA] JMP DONE N3: SUB AX,[V2] ;计算K3(Vi-V2)+tB MOV CX,[K3]; MUL CX; MOV CX,10; DIV CX ADD AX,[TB] JMP DONE N4: SUB AX,[V3] ;计算K4(Vi-V3)+tC MOV CX,[K4];

文档评论(0)

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

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

1亿VIP精品文档

相关文档