作者yingfufu (...)
看板ASM
标题[问题] 有关8051的中断
时间Tue Jan 13 00:02:16 2009
Hello~
我最近刚学51,要写一个中断的作业
程式主要是有一个loop
然後当int0时会执行另一段
不过因为int0时也会call delay
所以希望用bank0, bank1来分开存两个r1, r2
不过以我下面的写法会当掉
可是如果不分bank的话,delay时间会重算
请问程式是那边有错呢?
谢谢您的帮忙
ORG 00H
JMP START
ORG 03H
JMP INT_1
ORG 30H
START:
MOV IE,
#10000001B
MOV IP,
#00000001B
SETB TCON.0
MOV A,#01H
LOOP:
MOV P0,A
CALL DELAY
RL A
JMP LOOP
INT_1:
SETB PSW.3
MOV P0,#0FFH
CALL DELAY
CLR PSW.3
RETI
DELAY:
MOV R1,#10H
D1:
MOV R2,#10H
DJNZ R2,$
DJNZ R1,D1
RET
END
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.225.133.227
※ 编辑: yingfufu 来自: 125.225.133.227 (01/13 00:23)
1F:→ yingfufu:发现问题了...没有移SP,盖到了 T____T 01/13 14:54