求解:单片机 闪烁灯

来源:百度知道 编辑:UC知道 时间:2024/06/15 13:18:16
在P1、P3口上实现12灯的闪烁.随便怎么闪都行,从左到右,从右到左……都可以,求高手解题.
要用汇编程序,不用C.

下面的程序使12个灯不断循环左移,经实验板调试,正确无误.
ORG 0 ;利用查表功能
LJMP MAIN
ORG 0300H
MAIN: MOV DPTR,#TAB
LOOP: CLR A
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
INC DPTR
CJNE A,#0FFH,LOOP
MOV DPTR,#TAB1
LOOP1: CLR A
MOVC A,@A+DPTR
MOV P3,A
LCALL DELAY
INC DPTR
CJNE A,#0EFH,LOOP1
LJMP MAIN
;延时子和序
DELAY: MOV R5,#20
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
TAB: DB 0FEH,0FDH,0FBH,0F7H
DB 0EFH,0DFH,0BFH,07FH
DB 0FFH
TAB1: DB 0FEH,0FDH,0FBH,0F7H,0EFH
END