21,489
社区成员




刚学汇编的小白,遇到个考题,利用内部中断写一个跑马灯程序,用的是松翰的单片。,实在搞不明白,求大佬带带,愿意有偿10块,虽然不多,但我现在想学会啊。
ORG 000H
JMP MAIN
ORG 10
jmp INTERRUPTSUB
;*************************************************************************************************************
; MAIN PROGRAM AREA *
;*************************************************************************************************************
MAIN:
MOV A,#5aH
B0MOV WDTR,A
MOV A,#0FFH
b0mov p2m,a
B0BCLR FT0IEN ; 禁止T0 中断
B0BCLR FT0ENB ;
MOV A,#70H ;
B0MOV T0M, A ; T0 时钟= / 64
MOV A,#00H ; T0C 初始值置为 74H
B0MOV T0C, A ; T0 间隔为 8ms
B0BSET FT0IEN ; 允许响应T0中断
B0BCLR FT0IRQ ; T0 中断请求标志清零
B0BSET FT0ENB
BSET FGIE
MOV A,#5aH
B0MOV WDTR,A
jmp $-2
INTERRUPTSUB:;DELAY_128US
PUSH
bset p2.0
bset p2.2
bset p2.3
MOV A,#40H ;100uS
B0MOV T0C, A
b0bclr ft0irq
pop
reti
这是我现在瞎搞的代码,从老程序上复制的中断,想让P2.0 P2.1 P2.2跑马灯亮起来,但现在根本搞不懂怎么用内部中断让灯能延时500ms,灯只会一直亮,根本搞不懂中断啊