从这两段单片机汇编程序来看,RR,RL和RRC,RLC在这里区别不大?

来源:百度知道 编辑:UC知道 时间:2024/06/21 12:24:10
从这两段单片机汇编程序来看,RR,RL和RRC,RLC在这里区别不大,是吗?
从P1.0,P1.1,,,,,,P1.7,P1.6,,,,P1.0循环.
1.
===========================
ORG 0
START:MOV R2,#8
MOV A,#0FEH
SETB C;带进位
LOOP:MOV P1,A
LCALL DELAY
RLC A
DJNZ R2,LOOP
MOV R2,#8
LOOP1:MOV P1,A
LCALL DELAY
RRC A
DJNZ R2,LOOP1
LJMP START
DELAY:MOV R5,#248
D1:MOV R6,#248
D2:MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END
=============================
2.
ORG 0
START:

MOV R2,#8
MOV A,#0FEH;1111 1110

LOOP1:
MOV P1,A
RL A
LCALL DELAY
DJNZ R2,LOOP1

MOV R2,#8
MOV A,#7FH;0111 1111
LOOP2:
MOV P1,A
RR A
LCALL DELAY
DJNZ R2,LOOP2
LJMP START

DELAY:
MOV R5,#245
D1:MOV R6,#245
D2:MOV R7,#245
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET

END

不一样,
不带C的循环,就A里的8位数据自循环,移动8次,循环一周.

带C的就不一样,移动一次,C的状态会移入A,而A的移出的位会移进C.
就是C参与了移动,所以C的位的状态会影响结果.

显示效果是不一样的。如果低电平亮的话,RLC RRC同时只会有一只灯亮。
RL RC则会亮的越来越多,知道全部亮了再重新循环。
个人认为就这段程序来说区别还是很大的