单片机里的cjne djnz分别是什么意思?
cjne的意思是Compare Jump Not Equal 比较不相等转移指令。
参与比较的两个数,若不相等,则转移,若相等则程序顺序执行;利用这条指令,就可以判断两数是否相等。
djnz的意思是减一不为零转移指令。
djnz指令是将操作数的内容减1,然后判断操作数的结果,若操作数为零,则顺序执行程序,不为零则程序转移。根据DJNZ指令的功能:每执行一次DJNZ RO, IDATALOOP就将R0的值减1,若R0的值不为0则就跳到IDATALOOP地址去。
扩展资料
DJNZ指令有两种格式:DJNZ Rn,rel和DJNZ direct,rel,前者为双字节指令,其中第二个字节存储rel的相对地址,范围是-128~+127,所以转移范围很窄,所以转移的位置为指令的当前PC值加上rel;第二条指令的第三个字节也是存储rel的,和第一条指令的转移方式相同,都是PC+rel。
cjne作用是Rn中的数与data比较,如果Rn=data,顺序执行,否则转移到指定的标号处。由于这是一条3字节指令,程序的转移范围应以(PC)+3为起始地址的+127~-128共256字节单元地址。
参考资料来源:百度百科-CJNE
参考资料来源:百度百科-djnz
单片机指令 CJNE A,B,KEY
CJNE @Ri, #data, rel
其中:i=0或1
若data<((Ri)),则PC←(PC)+3+rel,且Cy←0;
若data>((Ri)),则PC←(PC)+3+rel,且Cy←1;
若data=((Ri)),则PC←(PC)+3。
CJNE A, #data, rel
若(A)>data,则PC←(PC)+3+rel,且Cy←0;
若(A)<data,则PC←(PC)+3+rel,且Cy←1;
若data=(A),则PC←(PC)+3。
CJNE A, direct, rel
若(direct)<(A),则PC←(PC)+3+rel,且Cy←0;
若(direct)>(A),则PC←(PC)+3+rel,且Cy←1;
若(direct)=(A),则PC←(PC)+3。
CJNE Rn, #data, rel
若data<(Rn),则PC←(PC)+3+rel,且Cy←0;
若data>(Rn),则PC←(PC)+3+rel,且Cy←1;
若data=(Rn),则PC←(PC)+3。
CJNE A,B, rel(属于自创 为验证)
若(direct)<(A),则PC←(PC)+3+rel,且Cy←0;
若(direct)>(A),则PC←(PC)+3+rel,且Cy←1;
若(direct)=(A),则PC←(PC)+3。
单片机CJNE,JZ,JNZ这些指令的跳转范围是多少?具体是怎么算的?
这3个指令跳转范围在256个字节地址内,在程序存储地址中,
它属于短跳转。长跳:LJMP---16位二进制地址
AJMP---11位二进制地址内
其余大部分是短跳,256字节内
51单片机汇编 CJNE A,30H,LOOP 这句是什么意思?
CJNE A,30H,LOOP意思即为:
A中的值是否等于30H中的值,如不相等即跳到LOOP标号所指程序位置,如果相等,程序执行下一行。这条指令一般表示为CJNE A,direct,rel;(a)≠(direct),则程序转移。
direct代表为直接地址,rel代表相对偏移量,为8位带符号的补码。rel在实际的程序中一般用标号代替。
扩展资料:
使用方法:
1.将仿真器插入需仿真的用户板的CPU插座中,仿真器由用户板供电;
2.将仿真器的串行电缆和PC机接好,打开用户板电源;
3.通过Keil C 的IDE 开发仿真环境UV2 下载用户程序进行仿真、调试。
硬件说明
1、使用用户板的晶振:仿真器晶振旁有两组跳线用来切换内部晶振和用户板晶振,当两个短路块位于仿真器晶振一侧时,默认使用仿真板上的晶振(11.0592MHz), 当两个短路块位于电容一侧时,使用用户板的晶振。
2、为便于调试带看门狗的用户板,仿真器的复位端未与用户板复位端相连;故仿真器的复位按钮只复位仿真器,不复位用户板;若要复位用户板,请使用用户板复位按钮。