p1口的led闪烁10次后停止子程序的嵌套--手把手教你学单片机

;知识要点:熟悉子程序的嵌套

;r0送20,开始为0,然后每次加1,到20后停止:注意闪烁是取反2次

;所以取反20次为闪烁10次

ORG 0000H

LJMP MAIN

ORG 030H

MAIN: MOV R0,#0;最开始为0

MOV a,#0ffH;;a送ff,全部不亮

loop: cpl a ; 取反a(变为00h,全部亮)

mov p1,a;输出到p1

acall del;调用延时以便观察

cjne r0,#20,loop;如果海没有到20则继续

sjmp $;否则原地等待结束

DEL: MOV R7,#01FH;延时子程序

DEL1: MOV R6,#0fFH

DEL2: MOV R5,#08H

DEL3: DJNZ R5,DEL3

DJNZ R6,DEL2

DJNZ R7,DEL1

inc r0;;每调用一次子程序r0加1

RET

END


运行的状态p1口灯全亮

运行的状态闪烁10次后停止