程序段代码:
MOV AL,80H;80H是8255的控制字
MOV DX,010EH;010EH是8255的控制端口的地址具体的根据你的电路连接的方法计算出来替换就可以了
OUT DX,AL
MOV BX,8
MOV XC,8
A2:
MOV AL,01H
MOV DX,010AH;010AH是8255的A口或者B口的地址 根据你的图而定
A1:
OUT DX,AL
CALL DEKAY
SHL AL,1
LOOP A1
DEC BX
JNZ A2
DELAY PROC NEAR
PUSH CX
MOV CX,0FFFFH;修改0FFFFH的值可以改变跑马灯的时间间隔
LOOP $
POP CX
RET
DELAY ENDP
HLT
上面的程序是一个跑马灯的程序 跑马灯效果是D0--D7一次点亮 循环八次的一个程序
希望采纳
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV R2,#8
MOV A,#0FEH
LOOP1:
MOV P1,A
CLR C
RLC A
LCALL DELAY
DJNZ R2,LOOP1
MOV R2,#8
MOV A,#80H
LOOP1:
MOV P1,A
SETB C
RRC A
LCALL DELAY
DJNZ R2,LOOP1
SJMP MAIN
DELAY:
MOV R2,#200
DLY:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DLY
RET
END
做好中断现场保护和还原就可以解决这个问题了。
INT:PUSH PSW;先现场保护
PUSH ACC;
PUSH 00H;R0
PUSH 01H;R1
PUSH 02H;R2
PUSH 03H;R3
PUSH 04H;R4
PUSH 05H;R5
PUSH 06H;R6
PUSH 07H;R7
MOV A,#0AAH
MAG:
MOV P2,A
LCALL DELAY
RL A
JNB P33,MAG
MOV A,#1
MOV R2,#7
POP 07H;R7;现场还原
POP 06H;R6
POP 05H;R5
POP 04H;R4
POP 03H;R3
POP 02H;R2
POP 01H;R1
POP 00H;R0
POP ACC;
POP PSW;
RETI
以上就是关于用8086汇编写一个流水灯的程序全部的内容,包括:用8086汇编写一个流水灯的程序、如何用汇编语言使流水灯(8个灯)从左向右依次点亮且不灭,之后从右往左依次熄灭程序步骤越多越好、单片机LED花样流水灯汇编程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)