三、可屏蔽硬中断程序设计分三大步骤:1.了解IBMPC/XT系统可屏蔽硬中断的响应过程据连线确定外设中断申请对应的中断类型号:2。主程中做好外设发出中断申请,CPU能够响应的准备工作:3。编写可屏蔽硬中断子程,完成中断源请求的任务
三、可屏蔽硬中断程序设计 分三大步骤: 1 . 了解IBM PC/XT系统可屏蔽硬中断的响应过程, 据连线确定外设中断申请对应的中断类型号; 2.主程中做好外设发出中断申请,CPU能够响应的准备工作; 3.编写可屏蔽硬中断子程,完成中断源请求的任务
1.了解IBMPC/XT系统可屏蔽硬中断的响应过程据连线确定外设中断申请对应的中断类型号8259AVcc+5V总线08HIRO18.2Hz方波数据线DODO09HIR1键盘~D7IRQ2OAHIR2IRQ3OBHIR3IORIRQ4OCHIR4IOWIRQ5ODHIR5AIRQ6OEHIR6片选译码IRQ7OFHIR7A5csSP/EN220~3FH用于多片CAOA98259ACAIINTAINTA级连情况INTINTRGNDPC/XT总线M例类型号0BH接口的中断申请连IRQ3类型号ODH接口的中断申请连IRQ5
1 . 了解IBM PC/XT系统可屏蔽硬中断的响应过程, 据连线确定外设中断申请对应的中断类型号。 例 接口的中断申请连 IRQ3 类型号0BH 接口的中断申请连 IRQ5 类型号0DH IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 CS 8259A A0 RD WR D0 ~ D7 SP/EN CA0 CA1 CA2 GND IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 Vcc + 5V 用于多片 8259A INTA 级连情况 INT 数 据 线 片 选 译 码 20~3FH IOW A0 总线 IOR A5 ~ A9 D0 ~ D7 INTA INTR 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 18.2Hz方波 键 盘 PC/XT总线
2:主程中做好外设发出中断申请,CPU能够响应的准备工作。在主程序中应做的工作:CPU关中断(用CLI置IF=0)保存原中断向量(用35H系统功能)设置中断向量(用25H系统功能)设置8259A的中断屏蔽字,使21H端口对应位为0,允许中断申请进入优先级裁决器CPU开中断5(用ST置IF=1)准备工作做好后,此后若该级有中断申请则CPU响应中断,执行相应类型的中断子程。主程在返回DOS前,应恢复原中断向量。(用25H系统功能
在主程序中应做的工作: ① CPU关中断 ( 用CLI置 IF=0 ) ② 保存原中断向量 ( 用35H系统功能 ) ③ 设置中断向量 ( 用25H系统功能 ) ④ 设置8259A的中断屏蔽字, 使21H端口对应位为0, 允许中断申请进入优先级裁决器 ⑤ CPU开中断 (用STI置IF=1 ) 2.主程中做好外设发出中断申请,CPU能够响应的准备工作。 准备工作做好后,此后若该级有中断申请, 则CPU响应中断,执行相应类型的中断子程。 主程在返回DOS前,应恢复原中断向量。( 用25H系统功能 )
主板-18.2Hz方波IRO808808h键键盘键盘IR109h当前接口盘中断申请中断服务0Ah外IR2IRQ2外设接口寄存器IFIRQ7设OFhIR7INTINTRPC中断屏蔽寄存器总线8259AIBMPC/XT微机可屏蔽中断响应过程示意图
8088 INTR 主 板 IF 键 盘 18.2Hz 方波 8259A INT 中断屏蔽寄存器 键盘 中断申请 IR1 IR2 ~ IR7 IR0 当前 中断 服务 寄存器 键盘 接口 IRQ2 ~ IRQ7 PC 总 线 外 设 接 口 外 设 08h 09h 0Ah ~ 0Fh IBM PC/XT微机可屏蔽中断响应过程示意图
3编写硬中断子程,完成中断源请求的任务1处理中断源甲请任务部分的编写与普通子程类在中断子程结束前,发中断结束命令清除8259A中ISR的记录;否则,响应一次中断后同级中断和低级中断将被优先级裁决器屏蔽用IRET中断返回指令返回主程被中断处
① 处理中断源申请任务部分的编写与普通子程类似 ② 在中断子程结束前, 发中断结束命令清除 8259A 中ISR的记录; 否则,响应一次中断后, 同级中断和低级中断将被优先级裁决器屏蔽 ③ 用IRET中断返回指令返回主程被中断处 3.编写硬中断子程,完成中断源请求的任务