单片机外部中断源的扩展
设计一个五个外部中断源系统。其中最高级的外部中断源连接到INT0脚,其余中断源连接到INT1脚。画出系统电路原理图,并写出外部中断1的中断服务程序。案例分析:
中断与查询相结合的方法是把系统中多个外部中断源按它们的重要程度进行排序,把其中最高级别的中断源接到MCS-51的一个外部中断源输入端(例如接到 脚),其余的中断源用线“或”的方法连接到另一个外部中断输入端( ),并同时接到一个I/O口,如图3中所示接到P1口。中断请求由硬件电路产生,而中断源的识别由程序查询来处理,查询顺序由中断源的优先级决定。图3为五个外部中断源的连接电路,其中设备1~4经OC门与 连接,并连接到P1.0~P1.3,均采用电平触发方式。设备0为最高级中断源,单独作为外部中断0的输入信号。这种办法扩展比较简单,但是当外部中断扩展的数量较多时,查询的时间比较长,导致程序的执行效率较低。
程序代码:
ORG 1000H
LJMP INTR
INTR: PUSH PSW ; 保护现场
PUSH A
JNB P1.0, IR1 ; P1.0引脚为0,转至设备1中断服务程序
JNB P1.1, IR2 ; P1.1引脚为0,转至设备2中断服务程序
JNB P1.2, IR3 ; P1.2引脚为0,转至设备3中断服务程序
JNB P1.3, IR4 ; P1.3引脚为0,转至设备4中断服务程序
INTR1: POP A ; 恢复现场
POP PSW
RETI ; 中断返回
IR1: …… ; 设备1中断服务程序入口
AJMP INTR1 ; 跳转到INTR1所指示的指令
IR2: …… ; 设备2中断服务程序入口
AJMP INTR1 ; 跳转到INTR1
IR3: …… ; 设备3中断服务程序入口
AJMP INTR1 ; 跳转到INTR1
IR4: …… ; 设备4中断服务程序入口
AJMP INTR1 ; 跳转到INTR1
编辑:admin 最后修改时间:2018-05-08