网站大量收购闲置独家精品文档,联系QQ:2885784924

《第9章键盘与显示接口技术.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 键盘与显示接口技术 共阴极和共阳极的段选码互为反码 。 DISP: MOV SCON,#00H ;串口初始化方式0 SETB P1.0 ;74HC164处于正常工作状态 MOV R0, #33H ;首地址赋指针 MOV R1,#04H ;显示4个数 LP1: MOV A,@R0 ;取待显示字符 LCALL DXM ;查段选码 MOV SBUF ,A ;启动串行发送命令,输出段位码 JNB TI, $ ;等待发送完毕 CLR TI ;清发送完毕标志位 DEC R0 ;指针减1 DJNZ R1,LP1 ;判断4位段选码是否全部输出 RET ; 9.3 键盘与显示接口应用举例 键盘显示扫描程序编写 程序清单: 1 子程序6——判断是否有键按下 2 子程序7——键盘扫描程序,确认按下的键 3 主程序 ——将按键码显示在数码管上 子程序6:判断是否有键按下 占用资源:A KeyTest: MOV DPTR, #0E101H ;指向8155的PA口寄存器 MOV A, #00H MOVX @DPTR, A ;列输出全0 MOV DPTR, #0E103H ;指向8155的PC口寄存器 MOVX A , @DPTR ;读键值 ORL A, #0F0H ;屏蔽高四位 CPL A ;全0无按键 RET Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 9.3 键盘与显示接口应用举例 子程序7:键盘扫描程序,确认按下的键 占用资源:A, R2, R4 KeyGet: MOV R2, ;行扫描码 MOV R4, #00H ;置第0行首键值 KG1: MOV DPTR, #0E101H ;指向8155的PA口寄存器 MOV A, R2 MOVX @DPTR, A ;一行输出0,其它行输出1 MOV DPTR, #0E103H ;指向8155的PC口寄存器 MOVX A, @DPTR ;读键值 JB ACC.0, L1 ;第0列无按键,跳到L1 MOV A, #00H ;保存列号,准备计算键值 LJMP KG2 L1: JB ACC.1, L2 ;第1列无按键,跳到L2 MOV A, #01H ;保存列号,准备计算键值 LJMP KG2 L2: JB ACC.2, L3 ;第2列无按键,跳到L3 MOV A, #02H ;保存列号,准备计算键值 LJMP KG2 L3: JB ACC.3, NEXT ;第3列无按键,跳到扫描下一行 MOV A, #03H ;保存列号,准备计算键值 KG2: ADD A, R4 ; 停止扫描,计算键值 行0 行1 行2 行3 行4 行5 R2 FE FD FB F7 EF DF R4 0 4 8 C 10 14 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 9.3 键盘与显示接口应用举例 MOV DPTR, #TAB1 MOVC A, @A+DPTR ;按照键值查表得到键码 PUSH ACC ;保存键码 WaitRelease: LCALL DISP LCALL KeyTest ;判断是否有键按下 JNZ WaitRelease LCALL DISP ;调用显示程序, 延时6ms,消除抖动 LCALL KeyTest ;再次判断是否有键按下 JNZ WaitRelease POP ACC KeyGetEND: RET NEXT: MOV A, R2 ;扫描行指针 JNB ACC.5, NEXT1 ;判断6行是否全部扫描完 RL A ;行扫描码左移 MOV R2, A MOV A, R4 ADD A, #04 ;置下一行首键值 MOV R4, A LJMP KG1 ;开始扫描下一行 NEXT1: MOV A, #24 ;未扫描到按键返回键码24 LJMP KeyGetEND TAB1: DB 0,1,4,7,0FH,2,5,8,0E

文档评论(0)

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

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

1亿VIP精品文档

相关文档