《8259中断控制器实验》的实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六8259中断控制器实验
实验目的
(1)学习中断控制器8259的工作原理。
(2)掌握可编程控制器8259的应用编程方法。
实验设备
PC微机一台、TD-PIT+实验系统一套。
实验内容
1.单中断应用实验
(1)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的
KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。
(2)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的
KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示“Hello ”,中断5次后退出。
2 •扩展多中断源实验
利用实验平台上8259控制器对扩展系统总线上的中断线INTR进行扩展。编写程序对8259控制器的IR0和IR1中断请求进行处理。
实验原理
1.8259控制器的介绍
中断控制器8259A 是Intel 公司专为控制优先级中断而设计开发的芯片。 它将中断源 优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,
只需对8259A 进行编程,就可以管理 8级中断,并选择优先模式和中断请求方式,即中断 结构可以由用户编程来设定。同时,在不需增加其他电路的情况下,通过多片 8259A 的级
连,能构成多达64级的矢量中断系统。它的管理功能包括: 1 )记录各级中断源请求,2)
判别优先级,确定是否响应和响应哪一级中断,
3)响应中断时,向 CPU 专送中断类型号。
8259A 的内部结构和引脚如图 6-1所示。
8259A 的命令共有7个,一类是初始化命令字,另一类是操作命令。
8259A 的编程就
是根据应用需要将初始化命令字 ICW1-ICW4和操作命令字0CW1-0CW3别写入初始化命令 寄存器组和操作命令寄存器组。
ICW1-ICW4各命令字格式如图 6-2所示,0CW1-0CW 各命
令字格式如图6-3所示,其中OCW 用于设置中断屏蔽操作字, OCW 用于设置优先级循环
方式和中断结束方式的操作命令字,
OCW 用于设置和撤销特殊屏蔽方式、 设置中断查询方
式以及设置对8259内部寄存器的读出命令。
图6-1 8259内部结构和引脚图
♦
tl^R :
1申陆皿敲/仃右襦1IWK ;
匕 nrwi 、
orwi
OTW3 /
I 2S
ICI 1 号
II
1
11
11
11 I -- V CC
M
IMTA 1R7 1*£ [RJb
『只
斗
[R>
-tRi IR] I K 申
INT
SP/KW 1
C AS2
读丿写电路
>■殆令寄 祚睨E
!初删I
IMTA
拄制逻辑
>|<«1
D& — CM ----- D4 -----
口] ----
D1 --- DQ -----
CASH -----
CASL —— ONIJ ------ 1
爭魁>M9I (P) 2-9 ®
□a ta ECI
爭魁GMO I (□) 2-9 ®
爭魁乙MOI (q) 2-9 ®
爭魁IMO I (e) 2-9 ®
gQ
r o=ea ■ Pld
= O-TC
*T=OtI
f O=OJ^|
ED
6-3 OCW
2.8259寄存器及命令的控制访问
在硬件系统中,8259仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的寄存器和命令字。对寄存器和命令的访问控制如表6-1所示。
3. PC微机系统中的8259
在80x86系列PC微机系统中,系统中包含了两片8259A中断控制器,经级连可以管
理15级硬件中断,但其中部分中断号已经被系统硬件占用,具体使用情况如表6-2示。
两片8259A的端口地址为:主片8259使用020H和021H两个端口;从片使用0A0H和0A1H
两个端口。系统初始化两片8259的中断请求信号均采用上升沿触发,采用全嵌套方式,
优先级的排列次序为0级最高,依次为1级、8级〜15级,然后是3级〜7级。
在扩展系统总线上的INTR对应的中断线就是PC机保留中断其中的一个。对INTR中断的初始化PC机已经完成,在使用时主要是将其中断屏蔽打开,修改中断向量。
实验说明及步骤
1.单中断应用实验
本实验要求使用总线上INTR中断请求线完成一次单中断应用实验。中断处理程序完
成在屏幕上显示字符“ 9”。实验前先运行CHECK程序,得到INTR所对应的中断号、相应的初始化命令字寄存器ICW及操作命令字寄存器OCW勺地址、开屏蔽的命令字、中断矢量地址和PCI卡中断控制寄存器INTCSR的地址。得到这些信息后就可以开始设计实验了。参考程序流程如图6-5所示。
实验步骤如下。
(1)确认从PC机引出的两根扁平电缆已经连接在实验平台上。
⑵首先运行CHECKS序,查看INTR中断号及相关信息。
(3)参考实验流程图编写程序,然后编译链接。
⑷ 将单次脉冲单元的KK1琏接到系统总线上的INTR。
⑸ 运行程序,按动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所示。