结构推理 某系统有3个外部中断源1、2、3,当某一中断源变为低电平时,便要求CPU进行处理,它们的优先处理次序由高到低依次为3、2、1,中断处理程序的入口地址分别为1000H,1100H,1200H。试编写主程序及中断服务程序(转至相应的中断处理程序的入口即可)。
【正确答案】若仅在/INT0引脚接3个外部中断源,电路如图5-10(P115) 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号中断处理程序 NEXT1: JNB P1.1,NEXT2 ;判断是不是2号中断 LJMP INT_IR2 ;跳转到2号中断处理程序 NEXT2: LJMP INT_IR3 ;跳转到3号中断处理程序 ORG 1000H INT_IR1: ;插入相应中断处理程序 RETI ;中断返回 ORG 1100H INT_IR2: ;插入相应中断处理程序 RETI ;中断返回 ORG 1200H INT_IR3: ;插入相应中断处理程序 RETI ;中断返回
【答案解析】