作者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