- 1、本文档共136页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中职 单片机 课件
MCS-51控制转移指令 ?[1].?无条件转移指令(4条)????这组指令执行完后,程序就会无条件转移到指令所指向的地址上去。长转移指令访问的程序存储器空间为16地址64kB,绝对转移指令访问的程序存储器空间为11位地址2kB空间。?????? ??LJMP ?addr16 ????;addr16→(PC),给程序计数器赋予新值(16位地址)。???????? AJMP ?addr11 ????;(PC)+2→(PC),addr11→(PC10-0)程序计数器赋予新值(11位地址),(PC15-11)不改变。 ? ????SJMP ?rel ????????;(PC)+ 2 + rel→(PC)当前程序计数器先加上2再加上偏移量给程序计数器赋予新值。????? ???JMP ?@A+DPTR ??;(A)+ (DPTR)→(PC),累加器所指向地址单元的值加上数据指针的值给程序计数器赋予新值。 ?[2].?条件转移指令(8条) ??? ??JZ ?rel??????; A=0,(PC)+ 2 + rel→(PC),累加器中的内容为0,则转移到偏移量所指向的地址,否则程序往下执行。 ?????? ??JNZ ?rel?????; A≠0,(PC)+ 2 + rel→(PC),累加器中的内容不为0,则转移到偏移量所指向的地址,否则程序往下执行。??????? ?CJNE ?A, data, rel?????; A≠(data),(PC)+ 3 + rel→(PC),累加器中的内容不等于直接地址单元的内容,则转移到偏移量所指向的地址,否则程序往下执行。??????? ?CJNE ?A, #data, rel????; A≠#data,(PC)+ 3 + rel→(PC),累加器中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行。???????? CJNE ?Rn, #data, rel??; A≠#data,(PC)+ 3 + rel→(PC),工作寄存器Rn中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行。?????? ? ?CJNE ?@Ri, #data, rel?; A≠#data,(PC)+ 3 + rel→(PC),工作寄存器Ri指向地址单元中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行。?????? ??DJNZ ?Rn, rel?; (Rn)-1→(Rn),(Rn)≠0,(PC)+ 2 + rel→(PC)工作寄存器Rn减1不等于0,则转移到偏移量所指向的地址,否则程序往下执行。????? ???DJNZ ?data, rel?; (Rn)-1→(Rn),(Rn)≠0,(PC)+ 2 + rel→(PC)直接地址单元中的内容减1不等于0,则转移到偏移量所指向的地址,否则程序往下执行 ??[3].?子程序调用指令(1条)???? 子程序是为了便于程序编写,减少那些需反复执行的程序占用多余的地址空间而引入的程序分支,从而有了主程序和子程序的概念,需要反复执行的一些程序,我们在编程时一般都把它们编写成子程序,当需要用它们时,就用一个调用命令使程序按调用的地址去执行,这就需要子程序的调用指令和返回指令。 ????? ???LCALL ?addr16?; 长调用指令,可在64kB空间调用子程序。 ??????? RETI ?; 中断返回指令,除具有RET功能外,还具有恢复中断逻辑的功能,需注意的是,RETI指令不能用RET代替. MCS-51布尔变量操作指令 [1].?位传送指令(2条)????位传送指令就是可寻址位与累加位CY之间的传送,指令有两条。???? ????MOV ?C,bit ???????;bit→CY,某位数据送CY???????? MOV ?bit,C ???????;CY→bit,CY数据送某位 [2].?位置位复位指令(4条)????这些指令对CY及可寻址位进行置位或复位操作,共有四条指令。???? ???CLR ?C???????????; 0→CY,清CY????? ???CLR ?bit??????????; 0→bit,清某一位????? ???SETB ?C??????????; 1→CY,置位CY????? ???SETB ?bit?????????; 1→bit,置位某一位 [3].?位运算指令(6条) ?位运算都是逻辑运算,有与、或、非三种指令,共6条。 ???????? ANL ?C,bit?????;(CY)∧(bit)→CY? ?? ANLC,/bit????????;(CY)∧()→CY ??????? ?ORLC,bit??????
文档评论(0)