Day05
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
MOV A,#00H
SETB C
MOV R2,#08H
MOV P0,A
CALL DELAY
LOOP:
RLC A
MOV P0,A
CALL DELAY
DJNZ R2,LOOP
MOV R2,#07H
LOOP1:
MOV P0,A
RRC A
CALL DELAY
DJNZ R2,LOOP1
AJMP MAIN
DELAY:MOV R5,#248
D1: MOV R6,#248
DJNZ R6,$
DJNZ R5,D1
RET
END
累加器循环加1
ORG 0000H
AJMP START
ORG 0030H
START:
CPL A;取反
MOV P0,A
CPL A
INC A
CALL DELAY
JMP START
DELAY:MOV R4,#255
D2: MOV R5,#255
DJNZ R5,$
DJNZ R4,D2
RET
END
拓展
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:MOV A,#0FFH
MOV P0,A
SETB P2.0
LOOP:
INC A
SHOW:
JNB P2.0,INCR
JMP SHOW
INCR:
JNB P2.0,INCR
MOV P0,A
CALL DELAY
JMP LOOP
DELAY:
MOV R4,#255
D2: MOV R5,#255
DJNZ R5,$
DJNZ R4,D2
RET
END
当累加器A为#00H时,减一为0FFH
当累加器A为#0FFH时,加一为#00H
累加器循环加减
ORG 0000H
AJMP MAIN;跳过中断向量地址的入口地址
ORG 0030H;设置程序初始地址
MAIN:MOV A,#0FFH
SETB P2.0
SETB P2.1
LOOP:
MOV P0,A
JNB P2.0,INCR
JNB P2.1,DECR
JMP LOOP
INCR:
JNB P2.0,INCR
INC A
MOV P0,A
CALL DELAY
JMP LOOP
DECR:
JNB P2.1,DECR
DEC A
MOV P0,A
CALL DELAY
JMP LOOP
DELAY:
MOV R5,#255
D2: MOV R4,#255
DJNZ R4,$
DJNZ R5,D2
RET
END
浙公网安备 33010602011771号