庄友谊《单片机原理及应用》单片机 第3章.pptVIP

庄友谊《单片机原理及应用》单片机 第3章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LJMP addr16 长跳转指令 ——可在64K范围内跳转 AJMP addr11 绝对跳转指令 ——可在指令所在的2K范围内跳转 SJMP rel 相对跳转指令 ——可在当前PC-128与+127范围内跳转 JMP @A+DPTR 间接长跳转指令 ——可在以DPTR为基址 + A为偏移量 之和所指向的64K程序范围内跳转 小结: (1)累加器判零条件转移指令 ? JZ rel ;(A)=0,PC←(PC)+2+rel ;(A)≠0,PC←(PC)+2 JNZ rel ;(A)≠0,PC←(PC)+2+rel ;(A)=0,PC←(PC)+2 2. 条件转移指令 CJNE A,#data,rel ;(A)≠data,转移 CJNE A,direct,rel ;(A)≠(direct),转移 CJNE Rn,#data,rel ;(Rn)≠data,转移 CJNE @Ri,#data,rel ;((Ri))≠data,转移 若目的操作数=源操作数,则(CY)=0,PC←(PC)+3 若目的操作数源操作数,则(CY)=0,PC←(PC)+3+rel 若目的操作数源操作数,则(CY)=1,PC←(PC)+3+rel 两操作数的比较不影响操作数的值,但影响CY标志,CY的值由无符号数目的操作数–源操作数有无借位决定。 (2)数值比较转移指令 DJNZ Rn,rel ;Rn←(Rn)-1 ;若(Rn)=0,则 PC←(PC)+2 ;若(Rn)≠0,则PC←(PC)+2+rel DJNZ direct,rel ;direct←(direct)-1 ;若(direct) = 0,则PC←(PC)+3 ;若(direct)≠0,则PC←(PC)+3+rel (3)减1条件转移指令? 例 从P1.7输出5个方波。 MOV R2,#10 ;预置方波数 PULSE:CPL P1.7 ;1个机器周期 DJNZ R2,PULSE ;2个机器周期   方波的宽度为3个机器周期,通过CPL指令切换方向,若P1.7初始为低电平,则进入这段程序后P1.7的输出波形为: 3个机器周期 例 将内部RAM中以20H单元开始的8个无符号数相加,结果送内部RAM的30H单元,设相加结果不超过255。 MOV R0,#20H ;数据块首地址送R0 MOV R3,#8 ;置计数初值 CLR A LOOP:ADD A,@R0 ;累加一次 INC R0 ;地址指针加1,指向下一个单元 DJNZ R3,LOOP ;R3减1,判断循环是否结束 MOV 30H,A ;存和 (1)长调用指令 LCALL addr16 PC的内容加3:PC←(PC)+3 PC的内容压入堆栈: SP←(SP)+1,(SP)←(PC7~0) SP←(SP)+1,(SP)←(PC15~8) 将16位地址送入PC: PC←addr16 长调用的子程序调用范围是64KB。 3. 子程序调用与返回指令 子程序调用示意图 子程序 主程序 断点 调用 返回 ? ACALL addr11 ? 本指令为双字节指令 其中a10 ~a0为指令提供的11位地址addr11。 (2)绝对调用指令 PC的内容加2: PC←(PC)+2 PC的内容压入堆栈: SP←(SP)+1,(SP)←(PC7~0) SP←(SP)+1,(SP)←(PC15~8) 将地址送入PC: PC10~0←addr11 与绝对调用指令AJMP一样,指令给出了11位地址,因此本指令的子程序调用范围是2KB。 例:8100H ACALL 48FH *断点保护 (PC)=8102H 压栈,构造目的地址 (PC)=848FH (3)返回指令 RET ;子程序返回指令 RETI ;中断服务子程序返回指令 PC15~8←((SP)),SP←(SP)-1 PC7~0←((SP)),SP←(SP)-1 例 (SP)=42H,(42H)=0EH,(41H)=32H, 执行

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档