请单片机高手进来帮一下忙,谢谢了,急需,用89C51单片机语言编写跑马灯程序

2024-12-22 00:38:45
推荐回答(1个)
回答1:

以12MHz晶振为例
ORG 000H
AJMP START
START:
SETB C ;跑马灯,一直循环255次...
MOV R0,#0FFH
MOV A,#0
JX1:RLC A
MOV P1,A
LCALL DELAY500MS
DJNE R0,JX1

SETB C
MOV R0,#8
MOV A,#0
JX:RLC A ;P1.0>>>P1.7依次亮1S
MOV P1,A
LCALL DELAY1S
DJNE R0,JX
;灯全亮,1S
MOV P1,#0FFH
LCALL DELAY1S
MOV P1,#0

MOV P1,#01010101B ;偶数灯亮1S
LCALL DELAY1S
MOV P1,#0

MOV P1,#10101010B ;奇数灯闪2次
LCALL DELAY500MS
MOV P1,#0
LCALL DELAY500MS
MOV P1,#10101010B
LCALL DELAY500MS
MOV P1,#0
AJMP $

DEALY500MS:
MOV R7,#4
D1S1:MOV R6,#250
D1S:MOV R5,#250
DJNZ R5,$
DJNZ R6,D1S
DJNZ R7,D1S1
RET

DELAY1S:
MOV R7,#8
D1S1:MOV R6,#250
D1S:MOV R5,#250
DJNZ R5,$
DJNZ R6,D1S
DJNZ R7,D1S1
RET
差不多应该是这样的..试试看吧...:)