- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(2) 比较转移指令(4条) 比较转移指令用于对两个数作比较,并根据比较情况进行 转移,比较转移指令有四条: CJNE A,#data,rel ;若A=data,则PC←PC+3,不转移,继续执行 若Adata,则Cy=0,PC←PC+3+rel,转移 若Adata,则Cy=1,PC←PC+3+rel,转移 CJNE Rn,#data,rel ;若(Rn)=data,则PC←PC+3,不转移,继续执行 若(Rn)data,则Cy=0,PC←PC+3+rel,转移 若(Rn)data,则Cy=1,PC←PC+3+rel,转移 CJNE @Ri,#data,rel ;若((Ri))=data,则PC←PC+3,不转移,继续执行 若((Ri))data,则Cy=0,PC←PC+3+rel,转移 若((Ri))data,则Cy=1,PC←PC+3+rel,转移 CJNE A,direct,rel ;若A=(direct),则PC←PC+3,不转移,继续执行 若A(direct),则Cy=0,PC←PC+3+rel,转移 若A(direct),则Cy=1,PC←PC+3+rel,转移 (3)减1非0转移指令(2条) ② DJNZ direct,rel ;(PC)+3→(PC),(direct)-1→(direct) 若(direct)=0,则程序顺序执行 若(direct)?0,则(PC)+rel→(PC),转移 ① DJNZ Rn,rel ;(PC)+2→PC,(Rn)-1→(Rn), 若(Rn)=0,则程序顺序执行 若(Rn)?0,则(PC)+rel→(PC),转移 ?例:利用DJNZ指令设计循环延时程序,已知fosc=12MHz。 1)? 单循环延时: DELAY: MOV R7,#10 ;1T DJNZ R7,$ ;2T △t=2×1μs×10+1×1μs=21μs ? 2)? 双重循环延时: DELAY: MOV R7,#0AH ;1T DL: MOV R6,#64H ;1T DJNZ R6,$ ;2T DJNZ R7,DL ;2T △t=(2μs×100+2+1)×10+1=2031μs T=12/12MHz=1μs 3)? 三重循环延时: DELAY:MOV R7,#10 DL2:MOV R6,#200 DL1:MOV R5,#250 DJNZ R5,$ DJNZ R6,DL1 DJNZ R7,DL2 △t= (((2us×250+2+1)×200)+2+1)×10+1 = 1006031μs ≈ 1 秒 N N N Y Y Y 习题:当循环计数器初值为0,循环次数有多少? 例:设单片机的晶振频率为6MHz,编写一段延时程序约100ms的子程序。 Delay: MOV R7,#64H ;设循环计数器初值(100次) LOOP: MOV R6,#0FAH ;循环250次(250×4=1ms) DJNZ R6,$ ;循环控制 DJNZ R7,LOOP RET T=12/6 MHz=2μs t=2μs+100×(2μs+1ms+2×2μs)+4μs =100.606 ms 1T 1T 2T 2T 2T 这类指令有四条。两条子程序调用指令,两条返回指令。 1)长调用指令 指令格式:LCALL addr16 执行过程: (PC)←(PC)+ 3 (SP)←(SP)+ 1 (SP)←(PC)7~0 (SP)←(SP)+ 1 (SP)←(PC)15~8 (PC)← addr16 该指令执行时,先将当前的PC(指令的PC加指令的字节数3)值压入堆栈保存,入栈时先低字节,后高字节。然后转移到指令中addr16所指定的地方执行。由于后面带16位地址,因而可以转移到程序存储空间的任一位置(64KB)。 3、调用和返回指令 2) 短调用指令 指令格式:ACALL addr11 执行过程: (PC)←(PC)+ 2 (SP)←(SP)+ 1 (SP)←(PC)7~0 (SP)←(SP)+ 1 (SP)←(PC)15~8 (PC)10~0 ← addr11 该指令执行过程与
文档评论(0)