|
请大家多多指教啊,怎么可以控制一连串彩灯呈“流星扫尾”一样 的效果啊!下边的程序只可以整体控制小灯渐灭! 多多指教啊,谢谢!
ORG 0000H
START: MOV R0,#01H ;延时次数置初值
MOV R1,#00H
MOV R2,#0FFH ;灯控制字置初值
MOV R3,#0
LOOP: MOV P0,R2 ;从暗到亮时输出"0",亮灯;从亮到暗时输出"1",灭灯
MOV A,R0 ;延时次数暂存于A
LOOP1: MOV R4,#10 ;延时
DJNZ R4,$
DJNZ R0,LOOP1
INC A ;延时次数递增
MOV R0,A
MOV P0,R3 ;从暗到亮时输出"1",灭灯;从亮到暗时输出"0",亮灯
MOV A,R1 ;延时次数暂存于A
LOOP2: MOV R4,#10 ;延时
DJNZ R4,$
DJNZ R1,LOOP2
DEC A ;延时次数递减
MOV R1,A
JNZ RTN ;达到最亮或最暗时,反转灯控制字
MOV A,R2
DEC A
MOV R2,A
MOV A,R3
INC A
MOV R3,A
RTN: SJMP LOOP
END
|
|