最简单单路跑马灯汇编程序 8展灯 一个开关 开关按下 8个灯从上到下依次点亮 每盏亮1秒 用汇编语言

2025-02-24 11:33:23
推荐回答(3个)
回答1:

ORG 0000H ;程序从000H地址开始运行
AJMP MAIN ;跳转到 MAIN程序

ORG 030H ;MAIN程序从030H开始运行
MAIN:
MOV P2,#0FEH
ACALL DEL ;调用延时子程序
MOV P2,#0FCH
ACALL DEL ;调用延时子程序
MOV P2,#0F8H
ACALL DEL
MOV P2,#0F0H
ACALL DEL
MOV P2,#0E0H
ACALL DEL
MOV P2,#0C0H
ACALL DEL
MOV P2,#080H
ACALL DEL
MOV P2,#000H
ACALL DEL
MOV P2,#0FFH
AJMP MAIN ;跳转到MAIN程序

; 延时子程序
DEL: MOV R5,#02H
DEL1: MOV R6,#0F0H
DEL2: MOV R7,#0F0H
DEL3: DJNZ R7, DEL3
DJNZ R6, DEL2
DJNZ R5, DEL1
RET
END
如果和你的单片机结构不一样,你的修改,这是我用的。

回答2:

这个功能很简单,如果实现起来还有些具体的内容你没有说清,比如,是不是一开电源就开始跑马流水,还是通上电以后用一个开关来控制其跑马,开关松开就停止等等吧。下次发贴请说的严紧些。

回答3:

ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV P1,#0FFH
MOV A,#0FEH
LOOP: MOV P1,A
LCALL TIMEER
RL A
SJMP LOOP
TIMEER: MOV R5,#08H
LOOP1: MOV R6,#0FAH
LOOP2: MOV R7,#0FAH
LOOP3: DJNZ R7,LOOP3
DJNZ R6,LOOP2
DJNZ R5,LOOP1
RET
END
时间说不定不是1秒的,你自己看下,