第7章 MCS-51与键盘、显示器的接口设计.ppt

第7章 MCS-51与键盘、显示器的接口设计.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 MCS-51与键盘、显示器的接口设计

图10-4:4位8段LED动态显示电路。其中段码线占用一个8位I/O口,而位选线占用一个4位I/O口。 图10-8为8255A扩展I/O口的独立式按键接口电路。 图10-9用三态缓冲器扩展的I/O口的按键接口电路。 DIR1: MOVX @DPTR,A ;段码→8155HPB口 ACALL DL1ms ;该位显示1ms INC R0 ;指针指向下一个数据单元 MOV A,R3 ;位选码送入A中 JB Acc.5,LD1 ;判断是否扫描到最右边的 ; LED,如到最右边则返回 RL A ;位选码向左移一位,准备让 ; 右边的下一位LED亮 MOV R3,A ;位选码送R3中保存 AJMP LD0 ; LD1: RET ; DSEG: DB 3FH,06H,5BH,4FH,66H,6DH ;共阴极段码表 DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,73H,3EH DB 31H,6EH,1CH,23H,40H,03H DB 18H,00H DL1ms: MOV R7,#02H ;延时1ms子程序 DL: MOV R6,#0FFH DL6: DJNZ R6,DL6 DJNZ R7,DL RET 2.键盘程序设计 (1)判别键盘上有无键闭合 (2)去除键的机械抖动 (3)判别闭合键的键号 (4)使CPU对键的一次闭合仅作一次处理 键盘程序的流程如图10-16。 键盘子程序如下: KEYI:ACALL KS1 ;调用判有无键闭合子程序 JNZ LK1 ;有键闭合,跳LK1 NI: ACALL DIR ;无键闭合,调用显示子程序,延 ;迟6ms后,跳KEYI AJMP KEYI LK1: ACALL DIR ;可能有键闭合,软件延迟12ms去抖 ACALL DIR ACALL KS1 ;调用判有无键闭合子程序 JNZ LK2 ;经去抖,判键确实闭合,跳LK2 ACALL DIR ;调用显示子程序延迟6ms AJMP KEYI ;抖动引起,跳KEYI LK2: MOV R2,#0FEH ;列选码→R2 MOV R4,#00H ;R4为列号计数器 LK4: MOV DPTR,#7F01H ;列选码→8155H的PA口 MOV A,R2 ; MOVX @DPTR,A ; INC DPTR ;数据指针增2,指向PC口 INC DPTR ; MOVX A,@DPTR ;读8155H PC口 JB Acc.0,LONE ;0行线为高,无键闭合,跳 LONE,转判1行 MOV A,#00H ;0行有键闭合,首键号0→A AJMP LKP ;跳LKP,计算键号 LONE:JB Acc.1,LTW0 ;1行线为高,无键闭合,跳LTW0, ;转判2行 MOV A,#08H ;1行有键闭合,首键号8→A AJMP LKP LTW0:JB A.2,LTHR ;2行线为高,无键闭合,跳 ;LTHR,转判3行 MOV A,#10H ;2行有键闭合,首键号10H→A AJMP LKP ;跳LKP,计算键号 LTHR:JB Acc.3,NEXT ;3行线为高,无键 ;闭合,跳NEXT,准备下一列扫描 MOV A,#18H ;3行有键闭合,首键号18H→A LKP: ADD A,R4 ;计算键号:首键号+列号=键号 PUSH A ;键号进栈保护 LK3: ACALL DIR ;调用显示子程序,延时6ms ACALL KS1 ;调用判有无键闭合子程序,延时 ;6ms JNZ LK3 ;判键释放否,未释放,则循环 POP A ;键已释放,键号出栈→A RET NEXT:INC R4 ;列计数器加1,为下一列扫描作准备 MOV A,R2 ;判是否已扫到最后一列(最右一列) JNB Acc.7,KND ;键扫描已扫到最后一列,跳KND, ;重新进行整个键盘

文档评论(0)

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

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

1亿VIP精品文档

相关文档