MOVWFTRISB将portb设为输出状态
MOVLWB'1000000'
LOOP:
MOVWFDATA1
MOVWFPORTB点亮第一个灯
CALLDELAY调延时,这样能看到灯亮的效果
BCFDATA1,C使进位c为0
RRFDATA1,F循环右移
GOTOLOOP继续执行
这样就可以到达你要的效果。如果你想控制亮灯凳庆的次数也可以枣扰握加个终止条件,如:
你想8个灯顺序闪10下,那么
movlwd‘10’
movwfcount
decfszcount,f
gotoloop
end
如果有不对的地方,你再自己改下李坦,反正大概的流程就这样
ORG 0
CALL PRG1 亮且发音
CALL PRG2 灭且静薯薯返音
SJMP 0
-------------数饥----
PRG1:
MOV P0, #0 8个led灯亮
MOV R2, #200
LP1:
CPL P1.0 蜂鸣器响
DJNZ R6, $
DJNZ R7, $ - 2
DJNZ R2, LP1
MOV P0, #255 8个led灯灭
RET
-----------------
PRG2:
MOV P0, #255 8个led灯不亮
MOV R2, #200
LP2:
SETB P1.0 手塌 蜂鸣器不响
DJNZ R6, $
DJNZ R7, $ - 2
DJNZ R2, LP2
MOV P0, #255 8个led灯灭
RET
-----------------
END
main:mov P1,#0aah
acall delay
mov P1,#55H
acall delay
sjmp main
delay:mov r7,#0ffh
de:mov r6,#0ffh
djnz r6,$
djnz r7,de
ret
end 这档森槐春敬就行友是你想要的效果,不妨试试哦!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)