《8259中断控制器实验》的实验报告.docx
- 文档编号:6131673
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:11
- 大小:208.45KB
《8259中断控制器实验》的实验报告.docx
《《8259中断控制器实验》的实验报告.docx》由会员分享,可在线阅读,更多相关《《8259中断控制器实验》的实验报告.docx(11页珍藏版)》请在冰豆网上搜索。
《8259中断控制器实验》的实验报告
实验六8259中断控制器实验
6.1实验目的
(1)学习中断控制器8259的工作原理。
(2)掌握可编程控制器8259的应用编程方法。
6.2实验设备
PC微机一台、TD-PIT+实验系统一套。
6.3实验内容
1.单中断应用实验
(1)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。
(2)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示“Hello”,中断5次后退出。
2.扩展多中断源实验
利用实验平台上8259控制器对扩展系统总线上的中断线INTR进行扩展。
编写程序对8259控制器的IR0和IR1中断请求进行处理。
6.4实验原理
1.8259控制器的介绍
中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。
它的管理功能包括:
1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。
8259A的内部结构和引脚如图6-1所示。
8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。
8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。
ICW1-ICW4各命令字格式如图6-2所示,OCW1-OCW3各命令字格式如图6-3所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。
图6-18259内部结构和引脚图
图6-2(a)ICW1格式
图6-2(b)ICW2格式
图6-2(c)ICW3格式
图6-2(d)ICW4格式
图6-3OCW命令字格式
2.8259寄存器及命令的控制访问
在硬件系统中,8259仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的寄存器和命令字。
对寄存器和命令的访问控制如表6-1所示。
表6-18259寄存器及命令的访问控制
A0
D4
D3
读信号
写信号
片选
操作
0
0
1
0
读出ISR,IRR的内容
1
0
1
0
读出IMR的内容
0
0
0
1
0
0
写入OCW2
0
0
1
1
0
0
写入OCW3
0
1
×
1
0
0
写入ICW1
1
×
×
1
0
0
写入OCW1,ICW2,ICW3,ICW4
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机已经完成,在使用时主要是将其中断屏蔽打开,修改中断向量。
表6-2PC微机系统中的硬件中断
中断号
功能
中断向量号
中断向量地址
主8259AIRQ0
日时钟/计数器0
08H
0020H~0023H
主8259AIRQ1
键盘
09H
0024H~0027H
主8259AIRQ2
接从片8259A
0AH
0028H~002BH
主8259AIRQ3
串行口2
0BH
002CH~002FH
主8259AIRQ4
串行口1
0CH
0030H~0033H
主8259AIRQ5
并行口2
0DH
0034H~0037H
主8259AIRQ6
软盘
0EH
0038H~003BH
主8259AIRQ7
并行口1
0FH
003CH~003FH
从8259AIRQ8
实时钟
70H
01C0H~01C3H
从8259AIRQ9
保留
71H
01C4H~01C7H
从8259AIRQ10
保留
72H
01C8H~01CBH
从8259AIRQ11
保留
73H
01CCH~01CFH
从8259AIRQ12
保留
74H
01D0H~01D3H
从8259AIRQ13
协处理器中断
75H
01D4H~01D7H
从8259AIRQ14
硬盘控制器
76H
01D8H~01DBH
从8259AIRQ15
保留
77H
01DCH~01DFH
6.5实验说明及步骤
1.单中断应用实验
本实验要求使用总线上INTR中断请求线完成一次单中断应用实验。
中断处理程序完成在屏幕上显示字符“9”。
实验前先运行CHECK程序,得到INTR所对应的中断号、相应的初始化命令字寄存器ICW及操作命令字寄存器OCW的地址、开屏蔽的命令字、中断矢量地址和PCI卡中断控制寄存器INTCSR的地址。
得到这些信息后就可以开始设计实验了。
参考程序流程如图6-5所示。
实验步骤如下。
(1)确认从PC机引出的两根扁平电缆已经连接在实验平台上。
(2)首先运行CHECK程序,查看INTR中断号及相关信息。
(3)参考实验流程图编写程序,然后编译链接。
(4)将单次脉冲单元的KK1+连接到系统总线上的INTR。
(5)运行程序,按动KK1+按键,观察中断是否产生。
2.扩展多中断源实验
利用实验平台上的8259控制器,可以对总线上的INTR进行扩展。
将8259的INT连接到INTR,8259的8路中断请求线IR0~IR7就成了单一INTR中断请求线的扩充。
这8路中断源共用INTR的中断矢量,共用INTR的中断服务线程。
在INTR的中断服务线程中通过对8259OCW3的查询,以确定是IR0~IR7中哪个产生中断,然后转到相应的服务线程进行处理。
将8259的OCW3中P位置1即可执行查询,查询字格式如图6-6所示。
(a)主程序(b)中断处理程序
图6-58259中断应用实验
(1)参考程序流程图
图6-68259OCW3查询命令字格式
本实验要求实现8259控制器IR0、IR1两路中断。
用KK1+和KK2+模拟两个中断源,在IR0对应的服务程序中显示字符“0”,在IR1对应的服务程序中显示字符“1”。
实验程序参考流程如图6-7所示。
参考实验电路如图6-8所示。
实验步骤如下:
(1)确认从PC机引出的两根扁平电缆已经连接在实验平台上。
(2)首先运行CHECK程序,查看INTR中断号及相关信息。
(3)参考实验流程图编写程序,然后编译链接。
(4)参考实验接线图连接实验电路。
(5)运行程序,按动KK1+、KK2+按键,观察中断响应是否正常。
(a)主程序(b)中断处理程序
图6-78259中断应用实验
(2)参考程序流程图
图6-88259中断应用实验
(2)参考接线图
6.6思考题
1.在编程过程中,用到了哪些操作命令字?
2.在执行中断服务程序之前,保存了哪些断点?
为什么?
单一中断应用实验参考程序
;***************根据CHECK配置信息修改下列符号值*******************
INTR_IVADDEQU_____H;INTR对应的中断矢量地址
INTR_OCW1EQU_____H;INTR对应PC机内部8259的OCW1地址
INTR_OCW2EQU_____H;INTR对应PC机内部8259的OCW2地址
INTR_IMEQU_____H;INTR对应的中断屏蔽字
PCI_INTCSREQU_____H;PCI卡中断控制寄存器地址
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
DATASEGMENT
CS_BAKDW?
;保存INTR原中断处理程序入口段地址的变量
IP_BAKDW?
;保存INTR原中断处理程序入口偏移地址的变量
IM_BAKDB?
;保存INTR原中断屏蔽字的变量
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
CLI
MOVDX,PCI_INTCSR
SUBDX,19H
INAL,DX
MOVDX,PCI_INTCSR;初始化PCI卡中断控制寄存器
MOVAX,1F00H;向PCI_INTCSR中写入003F1F00H
OUTDX,AX
ADDDX,2
MOVAX,003FH
OUTDX,AX
MOVAX,0000H;替换INTR的中断矢量
MOVES,AX
MOVDI,INTR_IVADD
MOVAX,ES:
[DI]
MOVIP_BAK,AX;保存INTR原中断处理程序入口偏移地址
MOVAX,OFFSETMYISR
MOVES:
[DI],AX;设置当前中断处理程序入口偏移地址
ADDDI,2
MOVAX,ES:
[DI]
MOVCS_BAK,AX;保存INTR原中断处理程序入口段地址
MOVAX,SEGMYISR
MOVES:
[DI],AX;设置当前中断处理程序入口段地址
MOVDX,INTR_OCW1;设置中断屏蔽寄存器,打开INTR的屏蔽位
INAL,DX
MOVIM_BAK,AL;保存INTR原中断屏蔽字
ANDAL,INTR_IM
OUTDX,AL
STI
WAIT1:
MOVAH,1;判断是否有按键按下
INT16H
JZWAIT1;无按键则跳回继续等待,有则退出
QUIT:
CLI
MOVDX,PCI_INTCSR;恢复PCI卡中断控制寄存器
MOVAX,0000H
OUTDX,AX
MOVAX,0000H;恢复INTR原中断矢量
MOVES,AX
MOVDI,INTR_IVADD
MOVAX,IP_BAK;恢复INTR原中断处理程序入口偏移地址
MOVES:
[DI],AX
ADDDI,2
MOVAX,CS_BAK;恢复INTR原中断处理程序入口段地址
MOVES:
[DI],AX
MOVDX,INTR_OCW1;恢复INTR原中断屏蔽寄存器的屏蔽字
MOVAL,IM_BAK
OUTDX,AL
STI
MOVAX,4C00H;返回到DOS
INT21H
MYISRPROCNEAR;中断处理程序MYISR
MOVAL,39H
MOVAH,0EH
INT10H
MOVAL,20H
INT10H
OVER:
MOVDX,PCI_INTCSR
SUBDX,19H
INAL,DX
MOVDX,PCI_INTCSR;清PCI卡中断控制寄存器标志位
ADDDX,2
MOVAX,003FH
OUTDX,AX
MOVDX,INTR_OCW2;向PC机内部8259发送中断结束命令
MOVAL,20H
OUTDX,AL
MOVAL,20H
OUT20H,AL
IRET
MYISRENDP
CODEENDS
ENDSTART
如有侵权请联系告知删除,感谢你们的配合!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8259中断控制器实验 8259 中断 控制器 实验 报告