汇编,一个很简单的问题,但是我实在不知道哪里错了....
时间:10-02
整理:3721RD
点击:
外部中断:
通过K01产生外部中断请求(/INT0)信号,K02产生外部中断请求
(/INT1)信号,在对应的中断服务程序实现在一位数码管上显示中断源编号(0或1)。
我的程序,但是实验起来,进入不了外部中断,不知道错哪了
ORG 0000H ;程序入口
LJMP MAIN ;转向主程序
ORG 0003H ;外部中断0的入口地址
LJMP INT_0 ;转向外部中断0中断服务程序
ORG 0013H ;外部中断1的入口地址
LJMP INT_1;转向外部中断1中断服务程序
ORG 0080H
MAIN:MOV SP,#30H
SETB EA;开中断总开关
SETB EX0;开外部中断0
SETB EX1;开外部中断1
SETB IT1;设置触发方式为负跳变沿触发
SETB IT0
MOV P0,#0FFH
SJMP $
INT_0: LCALL DELAY
MOV P0, #0C0H
RETI
INT_1: LCALL DELAY
MOV P0,#0F9H
RETI
DELAY: MOV R1,#5
DEL1: MOV R2,#100
DEL2: MOV R3,#100
DEL3: DJNZ R3,DEL3
DJNZ R2,DEL2
DJNZ R1,DEL1
RET
END
通过K01产生外部中断请求(/INT0)信号,K02产生外部中断请求
(/INT1)信号,在对应的中断服务程序实现在一位数码管上显示中断源编号(0或1)。
我的程序,但是实验起来,进入不了外部中断,不知道错哪了
ORG 0000H ;程序入口
LJMP MAIN ;转向主程序
ORG 0003H ;外部中断0的入口地址
LJMP INT_0 ;转向外部中断0中断服务程序
ORG 0013H ;外部中断1的入口地址
LJMP INT_1;转向外部中断1中断服务程序
ORG 0080H
MAIN:MOV SP,#30H
SETB EA;开中断总开关
SETB EX0;开外部中断0
SETB EX1;开外部中断1
SETB IT1;设置触发方式为负跳变沿触发
SETB IT0
MOV P0,#0FFH
SJMP $
INT_0: LCALL DELAY
MOV P0, #0C0H
RETI
INT_1: LCALL DELAY
MOV P0,#0F9H
RETI
DELAY: MOV R1,#5
DEL1: MOV R2,#100
DEL2: MOV R3,#100
DEL3: DJNZ R3,DEL3
DJNZ R2,DEL2
DJNZ R1,DEL1
RET
END
程序还真没发现啥问题,你的K是怎么接的,有没有电路图?
将中断引脚对地短路测试下;
在某个引脚输出低电平和高电平,看下CPU是否正常工作。
其实真没错,我的一根线有问题,不好意思,辛苦了