第7章-单片机系统扩展.ppt

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

ORG 0000H RDKEY: MOV A,#0FFH MOV P1,A ;准双向口 MOV A,P1 JNB ACC.0,P0 JNB ACC.1,P1 JNB ACC.2,P2 …… JNB ACC.7,P7 ;查询P1.n DONE: RET P0: LJMP PROM0 P1: LJMP PROM1 …… P7: LJMP PROM7 ;转对应服务程序 PROM0: …… LJMP DONE PROM1: …… LJMP DONE …… PROM7:: …… LJMP DONE ;程序执行后返回 END 4.矩阵式键盘 键盘扫描程序应包括以下内容: 检测当前是否有键按下 有键闭合时,消除抖动。 依次给每一条列线送出0信号,其余各列线均为1,并相继检测每一次扫描时所对应的行状态。若各行全为1,表示为0的这一列上没有键闭合;否则为0的这一列上有键闭合,且闭合键所在的行就是行状态为0的行。 判断闭合键是否释放,如没释放继续等待。 用查表法或计算法得到键值,送A然后转向相应的处理程序。 【例7-8】如图所示矩阵式键盘,写出查询方式的键盘处理子程序KEYP,将扫描后的键号(0~15)存入R4,以便用散转指令转移到不同的处理程序上去。 KEYP: MOV P1,#0F0H MOV A,P1 ANL A,#0F0H CJNE A,#0F0H,P0 ;不全为1,有键按下 LJMP DONE ;无键按下,返回 P0: LCALL DELAY ;延时 MOV A,P1 ANL A,#0F0H CJNE A,#0F0H,P1 ;确认有键按下 LJMP DONE ;抖动,返回 P1: MOV R2,#04H ;扫描次数 MOV R3,#01H ;扫描记录 参考程序 : MOV R4,#00H ;行号初值 SCA: MOV A,R3 CPL A MOV P1,A ;输出列线 MOV A,P1 ;读行线 ANL A,#0F0H CJNE A,#0F0H,FKN ;有键按下 MOV A,R3;修改列扫描线状态 RL A MOV R3,A MOV A,R4 ;行号自增4 ADD A,#04 MOV R4,A DJNZ R2,SCA ;判断四次扫描是否完成 LJMP DONE ;无键按下,返回 FKN: MOV R2,#04H ;有键按下 FKN1: RLC A; JNC DONE ;R4中为键值 MOV A,R4 INC A MOV R4,A ;获取键值 DJNZ R2, FKN1 DONE: RET 【例7-9】设图7-21中16个按键对应的处理程序为WORK0~WORK15,利用【例7-8 】获得的键值,应用散转指令跳转到按键对应的处理程序上去。 MOV A,R4 MOV B,#03 MUL AB ;键号*3 MOV DPTR,#KONW JMP @A+DPTR KONW: LJMP WORK0 ;跳转到0号键对应处理程序 LJMP WORK1 … LJMP WORK15 WORK0: …… ; 0号键对应处理程序 LJMP DONE WORK1: …… LJMP DONE

文档评论(0)

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

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

1亿VIP精品文档

相关文档