标题: [讨论]CJNE在这里是什么意思 [打印本页]

作者: 请赐教    时间: 2008-7-31 00:37
标题: [讨论]CJNE在这里是什么意思

ORG 0000H
LJMP START;转入主程序
ORG 0010H
START:

 MOV DPTR,#TABLE
 CLR P2.7
 MOV R0,#00H
MAIN:

 MOV A,R0
 MOVC A,@A+DPTR
 MOV P0,A

 LCALL DELAY1S

 INC R0
 CJNE R0,#17,MAIN 

 MOV R0,#00
 JMP MAIN

 

DELAY1S:
 MOV R3,#10
DELAY10MSB:
 MOV R4,#200
DELAY10MSA:
 MOV R5,#247
 DJNZ R5,$
 DJNZ R4,DELAY10MSA
 DJNZ R3,DELAY10MSB
RET

TABLE:
 DB 00101000B ;0
 DB 11101011B ;1
 DB 00110010B ;2
 DB 10100010B ;3
 DB 11100001B ;4
 DB 10100100B ;5
 DB 00100100B ;6
 DB 11101010B ;7
 DB 00100000B ;8
 DB 10100000B ;9
 DB 01100000B ;A
 DB 00100101B ;b
 DB 00111100B ;C
 DB 00100011B ;d
 DB 00110100B ;E
 DB 01110100B ;F
 DB 11110111B ;-
 DB 11111111B ;

END

这条指令是什么意思啊CJNE R0,#17,MAIN 


作者: awfijekgdesfn    时间: 2008-7-31 10:43
当R0不等于17的时候就跳到MAIN入口去

在这个程序里等于是LED全都亮了之后再去从新开始执行程序

作者: 新手小苏    时间: 2018-6-8 21:57
Cjne是比较不等转移指令,当目的操作数等于源操作数时,程序顺序执行(PC指针加3);当目的操作数大于源操作数时,程序跳转(PC指针加3加相对地址),且CY为为0;当目的操作数小于源操作数时,程序跳转(PC指针加3加相对地址),且CY为位1.
在本指令中,如果R0中的数等于17,则程序往下执行,如果R0不等于17,则程序调到MAIN,CY为做出相应变化




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1