任务九:8-8矩阵键盘.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  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文档。上传文档
查看更多
任务九:8-8矩阵键盘

任务九:8*8矩阵键盘数码管显示实验 ORG 00H LJMP MAIN ORG 30H MAIN: MOV P0,#0FFH ;初始化 MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFH MOV 30H,#00H ;行编码放置单元 MOV 31H,#00H ;列编码放置单元 MOV 32H,#100 ;键值放置单元 LOOP: LCALL KEYS ;按键判断子程序 LCALL DELAY ;延时10MS LCALL KEYS;按键判断子程序 LCALL PANDUAN;判断行号和列号 LCALL JISUAN;计算键值 LCALL SHOW ;数码管显示键值 LJMP LOOP KEYS: MOV P1,#00H ;按键判断子程序, MOV P3,#0FFH ;列为0,行为1 MOV A,P3 CJNE A,#0FFH, KEYS1 LJMP KEYS_RET KEYS1:MOV 30H,A ;有键按下,行编码放入30H MOV P3,#00H ;列为1,行为0 MOV P1,#0FFH MOV A,P1 CJNE A,#0FFH, KEYS2 LJMP KEYS_RET KEYS2:MOV 31H,A;有键按下,列编码放入31H KEYS_RET: RET PANDUAN: ;判断行号和列号 MOV A,30H;判断行号 MOV R0,#00H;行号值放入R0中 PANHANG1: JNB ACC.0,PANLIE INC R0 RR A LJMP PANHANG1 PANLIE:MOV A,31H;判断列号 MOV R1,#00H; 列号值放入R1中 PANLIE1: JNB ACC.0, PANDUAN_RET INC R1 RR A LJMP PANLIE1 PANDUAN_RET: RET JISUAN:MOV A,R0;计算键值 MOV B,#8;行号乘以8加列号 MUL AB ADD A,R1 MOV 32H,A;键值放入32H单元中 RET SHOW: ;显示子程序 MOV A,32H MOV B,#10 DIV AB MOV DPTR,#TAB ;将32H中值 MOVC A,@A+DPTR;十位显示出来 MOV P0,#0FFH MOV P0,A MOV P2,#0FEH LCALL DELAY MOV A,B MOV DPTR,#TAB ;将32H中值 MOVC A,@A+DPTR;个位显示出来 MOV P0,#0FFH MOV P0,A MOV P2,#0FDH LCALL DELAY RET DELAY:MOV R7,#40;延时10MS子程序 D1:MOV R6,#123 NOP D2:DJNZ R6, D2 DJNZ R7,D1 RET TAB: ;数码管段码表 DB 0C0H,0F9H,0A4H,0B0H DB 099H,092H,082H,0F8H DB 080H,090H,088H,083H DB 0C6H,0A1H,086H,08EH END 说明:此例与4*4键盘一样,先行线为0,列线为1;然后行线为1,列线为0;其都为8位不能合并,采用“行号*8+列号=键值”形式,行号(0~7)8行,列号(0~7)8列。 行号列号判断有专门的子程序,另外键值显示部分采用的是动态显示(显示的是两位数)。 返回 键值送32H单元 再加列号 取行号(R0值) 行号乘以8到A 计算键值子程序 计算键值子程序 N 返回 取列编码到A Y ACC.0=0?(行编码的最后一位是否为0?) 取行编码到A R0清零(用来放行号) 判断行号列号子程序 按键判断子程序 按键判断 按键判断 返回 Y N 行编码放入30H中 按键判断子程序 A=0FF

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档