实验内容
1、利用系统总线上中断请求信号MIR7 ,设计一个单一中断请求实验。
2、利用系统总线上中断请求信号MIR6和MIR7,设计一个双中断优先级应用实验,观察8259对中 断优先级的控制。
3、利用系统总线上中断请求信号MIR7和SIR1,设计一个级连中断应用实验。
中断控制器8259简介
在Intel 386EX芯片中集成有中断控制单元,该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。从片的INT连接到主片的IR2信号上构成两片8259的级联。本实验中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。8259的内部连接及外部管脚引出如下图:

8259A工作逻辑
在总线控制器控制下,8259A芯片可以处于编程状态和操作状态。编程状态通过CPU的IN或OUT指令对8259A芯片进行初始化编程。完成初始化编程后,芯片即可进入操作状态,此时芯片即可随时响应外部设备提出的中断请求(IRQ0 -IRQ15),同时系统还可以使用操作命令字随时修改其中断处理方式。通过中断判优选择,芯片将选中当前最高优先级的中断请求作为中断服务对象,并通过CPU引脚INT通知CPU中断请求的到来,CPU响应后,芯片从数据总线D7-D0将编程设定的当前服务对象的中断号送出,CPU由此获取对应的中断向量值,并执行中断服务程序。逻辑图如下:

(图有亿点点丑,别介意,只要能看清就ok)
下面列出本实验会用到的中断控制单元寄存器列表(它们都是8位的)
| 寄存器 | 口地址 | 功能描述 |
| ICW1(主) ICW1(从) (只写) |
0020H 00A0H |
初始化命令字1 决定中断请求信号为电平触发还是边沿触发。 |
| ICW2(主) ICW2(从) (只写) |
0021H 00A1H |
初始化命令字2 包含了8259的基址中断向量号,基址中断向量是IRO的向量号,基址加1就是 IR1的向量号,依此类推。 |
| ICW3(主) (只写) |
0021H |
初始化命令字3: 用于识别从8259设备连接到主控制器的IR信号,内部的从8259连接到主8259 的IR2信号上。 |
| ICW3(从) (只写) |
00A1H | 初始化命令字3 表明内部从 |

本文介绍了基于8259A中断控制器的三个实验,包括单一中断请求、双中断优先级应用以及级连中断应用。通过具体的实验内容和代码示例,详细讲解了8259A的初始化配置过程及其在中断处理中的作用。
最低0.47元/天 解锁文章
1万+





