某系统有3个外部中断源1、2、3,当某一中断源变为低电平时,便要求CPU进行处理,它们的优先处理次序由高到低依次为3、2、1,中断处理程序的入口地址分别为1000H,1100H,1200H。试编写主程序及中断服务程序(转至相应的中断处理程序的入口即可)。
答:若仅在/INT0引脚接3个外部中断源
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT_EX0
ORG 0030H
MAIN: CLR IT0 ; 采用低电平有效中断
SETB EX0 ;允许外部中断0
SETB EA
; 插入用户程序
WAIT: MOV PCON,#01H ;单片机进入休眠方式等待中断
NOP
LJMP WAIT
;以下为外部中断0服务子程序
INT_EX0:JNB P1.0,NEXT1 ;判断是不是1号中断
LJMP INT_IR1 ;跳转到1号中断处理程序 内容来自单片机之家www.dpj100.com
NEXT1: JNB P1.1,NEXT2 ;判断是不是2号中断 内容来自单片机之家www.dpj100.com
LJMP INT_IR2 ;跳转到2号中断处理程序
NEXT2: LJMP INT_IR3 ;跳转到3号中断处理程序
ORG 1000H
INT_IR1:
;插入相应中断处理程序
RETI ;中断返回
ORG 1100H
INT_IR2:
;插入相应中断处理程序
RETI ;中断返回
ORG 1200H
INT_IR3:
;插入相应中断处理程序
RETI ;中断返回
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』