8259中断控制器实验实验报告实验六8259中断控制器实验实验目的学习中断控制器8259的工作原理掌握可编程控制器8259的应用编程方法实验设备PC微机一台、TD-PIT+实验系统一套实验内容单中断应用实验编写中断处理程序,利用 PC机给实验系统分配的中断线,使用单次脉冲单兀的 KKI+键模拟中断,每次PC机响应中断恳求,在显示器上显示一个字符编写中断处理程序,利用 PC机给实验系统分配的中断线,使用单次脉冲单兀的 KKI+键模拟中断,每次PC机响应中断恳求,在显示器上显示“ Hello ”,中断5次后退出扩展多中断实验利用实验平台上 8259控制器对扩展系统总线上的中断线INTR进展扩展编写程序对 8259控制器的IR0和IR1中 断恳求进展处理实验原理1.8259控制器的介绍中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片它将中断优先级排队、区分中断以及 提供中断矢虽的电路集于一片中,因此无需附加任何电路, 只需对8259A进展编程,就可以管理 8级中断,并选择优先 形式和中断恳求方式,即中断构造可以用户编程来设定同 时,在不需增加其他电路的情况下, 通过多片8259A的级连,能构成多达64级的矢虽中断系统。
它的管理功能包括: 1〕记录各级中断恳求, 2〕判另U优先级,确定是否响应和响应哪一级中断,3〕响应中断时,向 传送中断类型号8259A的内部构造和引脚如图 6-1所示8259A的命令共有7个,一类是初始化命令字,另一类 是操作命令8259A的编程就是根据应用需要将初始化命令 字ICW1-ICW4和操作命令字 OCW1-OCW3别写入初始化命令 存放器组和操作命令存放器组 ICW1-ICW4各命令字格式如图6-2所示,OCW1-OCW3命令字格式如图 6-3所示,其中 OCW1用于设置中断屏蔽操作字, OCW2用于设置优先级循环方式和中断完毕方式的操作命令字, OCW初于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对 8259内部存放器的读出命令图6-1 8259 内部构造和引脚图图6-2 ICW1格式图6-2 ICW2格式图6-2 ICW3格式图6-2 ICW4格式图6-3 OCW命令字格式8259存放器及命令的控制访问在硕件系统中,8259仅占用两个外设接口地址, 在片选有效的情况下,利用 A0来寻址不同的存放器和命令字对存放器和命令的访问控制如表 6-1所示表6-1 8259存放器及命令的访问控制A0 0 1 0 0 0 1 D4 0 0 1 _ D3 0 1 _ _ 读信 号0 0 1 1 1 1 写信号1 1 0 0 0 0 片选0 0 0 0 0 0 操 作 读出ISR,IRR 的内容 读出IMR的内容 写入 OCW2写入 OCW3入 ICW1 写入 OCW,1 ICW2 ICW3, ICW4PC微机系统中的8259在80_86系列PC微机系统中,系统中包含了两片 8259A 中断控制器,经级连可以管理 15级硕件中断,但其中局部中断号已经被系统硕件占用,详细使用情况如表 6-2示。
两片8259A的端口地址为:主片 8259使用020H和021H两个 端口;从片使用0A0H和0A1H两个端口系统初始化两片8259 的中断恳求信号均采用上升沿触发,采用全嵌套方式,优先 级的排列次序为0级最高,依次为1级、8级?15级,然后是3级?7级在扩展系统总线上的INTR对应的中断线就是 PC机保存 中断其中的一个对INTR中断的初始化 PC机已经完成,在 使用时主要是将其中断屏蔽翻开,修改中断向虽表6-2 PC微机系统中的硕件中断中断号 主 8259A IRQ0 主 8259A IRQ1 主 8259A IRQ2 主 8259A IRQ3 主 8259A IRQ4 主 8259A IRQ5 主 8259A IRQ6 主 8259A IRQ7 从 8259A IRQ8 从 8259A IRQ9 从 8259A IRQ10 从 8259A IRQ11 从 8259A IRQ12 从 8259A IRQ13 从 8259A IRQ14 从8259A IRQ15功能 日时钟/计数器0键盘 接从片8259A 串行口 2串行口 1并行口 2软盘并行口 1实时钟保存 保存 保存 保存 协处理器中断 硕盘控制器 保存 实验 说明及步骤1.单中断应用实验本实验要求使用总线上 INTR中断恳求线完成一次单中断应用实验。
中断处理程序完成在屏幕上显示字符“ 9”实验前先运行 CHEC僵序,得到INTR所对应的中断号、相 应的初始化命令字存放器 ICW及操作命令字存放器 OCW勺地址、开屏蔽的命令字、中断矢虽地址和 PCI卡中断控制存放器INTCSR的地址得到这些信息后就可以开场设计实验了参考程序流程如图6-5所示实验步骤如下1)确认从PC机引出的两根扁平电缆已经连接在实验 平台上2)首先运行CHEC催序,查看INTR中断号及相 关信息3)参考实验流程图编写程序,然后编译链接4)将单次脉冲单元的 KK1琏接到系统总线上的INTR5)运行程序,按动 KK1成键,观察中断是否产生2.扩展多中断实验利用实验平台上的 8259控制器,可以对总线上的 INTR 进展扩展将8259的INT连接到INTR, 8259的8路中断请 求线IR0?IR7就成了单一 INTR中断恳求线的扩大这 8路 中断共用INTR的中断矢虽,共用INTR的中断效劳线程在INTR的中断效劳线程中通过对 8259OCW3勺查询,以确定是IR0?IR7中哪个产生中断,然后转到相应的效劳线程进 行处理将8259的OCW如P位置1即可执行查询,查询字 格式如图6-6所示。
中断向虽号 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 70H 71H 72H 73H 74H 75H 76H 77H 中断向虽地址 0020H ?0023H 0024H?0027H 0028H ?002BH 002CH?002FH 0030H?0033H 0034H?0037H 0038H ?003BH 003CH?003FH 01C0H?01C3H 01C4卜 01C7H 01C8i 01CBH 01CC+ 01CFH 01D0卜 01D3H 01D4i 01D7H 01D8卜 01DBH 01DCH 01DFH(a)主程序 (b)中断处理程序 图6-5 8259 中断应 用实验(1)参考程序流程图图6-6 8259 OCW3查询命令字格式本实验要务实现 8259控制器IR0、IR1两路中断用KK1 +和KK2时莫拟两个中断,在IR0对应的效劳程序中显示字符“0”,在IR1对应的效劳程序中显示字符“ 1”实验程序参考流程如图6-7所示参考实验电路如图 6-8所示实验步骤如下:(1)确认从PC机引出的两根扁平电缆已经连接在实验平台上2)首先运行CHEC催序,查看INTR中断号及相关信息。
3)参考实验流程图编写程序, 然后编译链接4) 参考实验接线图连接实验电路5)运行程序,按动 KK1_KK2嘏键,观察中断响应是 否正常第 5 页 共 5 页。