欢迎来到天天文库
浏览记录
ID:39306258
大小:561.60 KB
页数:46页
时间:2019-06-30
《C51控制转移类指令及位操作指令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章80C51单片机指令系统本讲教学内容:控制转移类指令控制转移类指令程序的顺序执行是由PC自动加1来实现的,但在应用系统中,往往会遇到一些情况,需要强迫改变程序执行顺序,比如调用子程序,比如根据检测值与设定值的比较结果要求程序转移到不同的分支入口等。要改变程序的执行顺序进行分支转向,应通过强迫修正PC值得方法来实现,这就是控制转移类指令的基本功能。80C5设有丰富的控制转移指令,可分为无条件转移指令、条件转移指令、循环转移指令、子程序调用和返回指令及空操作指令等。采用助记符有:AJMP、LJMP、SJMP、JZ、JNZ
2、、CJNE、DJNZ、ACALL、LCALL、RET、RETI、NOP等13种。磨砺当如百炼之金,急就者,非邃养;条件转移指令仅仅在满足指令中规定的条件(如累加器内容是否为零,两个操作数是否相等)时才执行无条件转移,否则程序顺序执行。6条指令可分为累加器判零转移指令、数值比较转移指令和减1条件转移指令。条件转移指令磨砺当如百炼之金,急就者,非邃养;⒈累加器判零转移指令JZrel;若(A)=0,则(PC)=(PC+2)+rel;若(A)≠0,则(PC)=(PC)+2JNZrel;若(A)≠0,则(PC)=(PC+2)+rel
3、;若(A)=0,则(PC)=(PC)+2满足各自条件时,程序转向指定的目标地址执行(相当于执行SJMPrel)。当不满足各自条件时,程序顺序往下执行。偏移量rel是用补码形式表示的带符号的8位数,因此.程序转移的目标地址为指令前128B或指令后127B。这些指令执行后不影响任何操作数和标志位。磨砺当如百炼之金,急就者,非邃养;⒉数值比较转移指令CJNEA,direct,relCJNEA,#data,relCJNERn,#data,relCJNE@Ri,#data,rel其指令格式为:CJNE(操作数1),(操作数2),re
4、l数值比较转移指令是三字节指令,是80C51单片微机指令系统中仅有的四条三个操作数的指令,在程序设计中非常有用。同时具有比较转移和数值大小比较的功能。磨砺当如百炼之金,急就者,非邃养;这组指令的功能是对指定的两操作数进行比较,即(操作数1)-(操作数2),但比较结果均不改变两个操作数的值,仅影响标志位CY。若不等,程序转移到(PC)十3加上第三字节带符号的8位偏移量(rel)所指向的目标地址;若(操作数1)>(操作数2),清进位标志(CY)。若(操作数1)<(操作数2),则置位进位标志(CY)。值相等,程序继续执行。程序转
5、移的范围是从(PC)+3为起始的+127~一128B的单元地址。比如CJNERn,#data,rel指令磨砺当如百炼之金,急就者,非邃养;例:温度控制程序某温度控制系统,A中存温度采样值Ta,(20H)=温度下限值T20,(30H)=温度上限值T30。若Ta>T30,程序转降温JW,若Ta<T20,程序转升温SW,若T30≥Ta≥T20程序转FH返回主程序。CJNEA,30H,LOOPAJMPFH;等于T30,转FHLOOP:JNCJW;大于T30,降温CJNEA,20H,LOOP1AJMPFH;等于T20,转FHLOOP
6、1:JCSW;小于T20,升温FH:------;保温JW:------;降温SW:------;升温磨砺当如百炼之金,急就者,非邃养;DJNZRn,relDJNZdirect,rel指令功能是:每执行一次本指令,先将指定的Rn或direct的内容减1,再判别其内容是否为0。若不为0,转向目标地址,继续执行循环程序;若为0,则结束循环程序段,程序往下执行。减1条件转移指令磨砺当如百炼之金,急就者,非邃养;例:某应用系统外扩了8K字节RAM,要求把内部RAM的20H~2FH单元内容发送到外部RAM的800H~80FH单元中。
7、执行指令:MOVDPTR,#800HMOVR0,#20HMOVR7,#10HAGAIN:MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR7,AGAIN?:请将以上循环控制改用CJNE指令来实现?:请将以上循环控制改用JZ指令来实现磨砺当如百炼之金,急就者,非邃养;请看KeilC下演示实例,程序段如下:ORG0000HLJMPMAINORG0030HMAIN:MOVA,#01HJZLable1DECAJZLable2NOPLable1:NOPLable2:MOVB,#0FFHEND磨砺当如百炼之金,急
8、就者,非邃养;指令SJMPrelAJMPaddr11LJMPaddrl6JMP@A+DPTR这类指令的功能是程序无条件地转移到各自指定的目标地址去执行,不同的指令形成的目标地址不同。无条件转移指令磨砺当如百炼之金,急就者,非邃养;1.长转移指令LJMPaddr16该指令提供16位地址,目标地址由指令第二
此文档下载收益归作者所有