51单片机3个外部中断源中断响应编程举例
扫描二维码
随时随地手机看文章
某系统有3个外部中断源1、2、3,当某一中断源变为低电平时,便要求CPU进行处理,它们的优先处理次序由高到低依次为3、2、1,中断处理程序的入口地址分别为1000H,1100H,1200H。试编写主程序及中断服务程序(转至相应的中断处理程序的入口即可)。
答:若仅在/INT0引脚接3个外部中断源
ORG0000H
LJMPMAIN
ORG0003H
LJMPINT_EX0
ORG0030H
MAIN:CLRIT0;采用低电平有效中断
SETBEX0;允许外部中断0
SETBEA
;插入用户程序
WAIT:MOVPCON,#01H;单片机进入休眠方式等待中断
NOP
LJMPWAIT
;以下为外部中断0服务子程序
INT_EX0:JNBP1.0,NEXT1;判断是不是1号中断
LJMPINT_IR1;跳转到1号中断处理程序内容来自单片机之家www.dpj100.com
NEXT1:JNBP1.1,NEXT2;判断是不是2号中断内容来自单片机之家www.dpj100.com
LJMPINT_IR2;跳转到2号中断处理程序
NEXT2:LJMPINT_IR3;跳转到3号中断处理程序
ORG1000H
INT_IR1:
;插入相应中断处理程序
RETI;中断返回
ORG1100H
INT_IR2:
;插入相应中断处理程序
RETI;中断返回
ORG1200H
INT_IR3:
;插入相应中断处理程序
RETI;中断返回