作者ruemann (此人掛網中……)
看板ASM
標題Re: [請益] 89C51外部中斷小疑問
時間Wed Apr 16 19:37:11 2008
: ORG 00H
: JMP INITIAL
: ORG 03H
: JMP SETP2
: INITIAL:
: MOV IE,#10000001B
: MOV IP,#00000001B
: SETB IT0
: JMP START
: START:
: MOV P1,#00000000B
: CALL DELAY
: MOV P1,#11111111B
: CALL DELAY
: JMP START
: SETP2:
push A
push PSW
anl PSW,
#11100111B
orl PSW,
#00001000B ; set bank1
clr IE0
: MOV P1,#10101010B
: CALL DELAY
: MOV P1,#01010101B
: CALL DELAY
: MOV P1,#10101010B
: CALL DELAY
: MOV P1,#01010101B
: CALL DELAY
: MOV P1,#10101010B
: CALL DELAY
: MOV P1,#01010101B
: CALL DELAY
pop PSW
pop A
: RETI
: DELAY:
: MOV R5,#10
: D0: MOV R6,#200
: D1: MOV R7,#250
: DJNZ R7,$
: DJNZ R6,D1
: DJNZ R5,D0
: RET
: END
: 但實際測試後發現,RESET功能正常,INT0也可以進行負源觸發,但是當INT0進入中斷後
: ,並沒有在閃爍第三次後回到RESET狀態(也就是還是在交替閃爍),而且交互閃爍第六次
: 以後,會停在10101010的狀態,不再有任何動作了。
: 請問是不是我有哪裡寫錯了呢?
1. 中斷時,R0~R7最好和一般的程式用的R0~R7分開(利用切BANK達成)
2. 試試看,Good Luck!
--
我是路人甲
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.87.156.98