作者icetofux (豆腐)
看板ASM
标题[请益] 89C51外部中断小疑问
时间Wed Apr 16 17:53:49 2008
我想试着使用外部中断(INT0),实验方法为PORT1接8个LED,
当IC RESET时:
LED全暗->停一秒->全亮->停一秒(无限次循环)
当INT0负源触发时:
LED以间格方式交替闪烁,每次间格一秒,共三次。
以下是试写的CODE:
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:
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
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的状态,不再有任何动作了。
请问是不是我有哪里写错了呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.67.181.137