8259中断控制实验.docx
- 文档编号:23479288
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:20
- 大小:916.16KB
8259中断控制实验.docx
《8259中断控制实验.docx》由会员分享,可在线阅读,更多相关《8259中断控制实验.docx(20页珍藏版)》请在冰豆网上搜索。
8259中断控制实验
深圳大学实验报告
课程名称:
实验项目名称:
学院:
专业:
指导教师:
报告人:
学号:
班级:
实验时间:
实验报告提交时间:
教务部制
实验目的与要求:
1.掌握8259中断控制器的工作原理。
2.学习8259的应用编程方法。
方法、步骤:
(1)按图4.15连接实验线路。
(2)编写实验程序,经编译、链接无误后装入系统。
(3)运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“7”,说明响应了中断。
实验过程及内容:
1.中断控制器8259简介
在Intel386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。
该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。
从片的INT连接到主片的IR2信号上构成两片8259的级联。
在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。
8259的内部连接及外部管脚引出如图4.5:
图4.58259内部连续及外部管脚引出图
表4.1列出了中断控制单元的寄存器相关信息。
表4.1ICU寄存器列表
寄存器
口地址
功能描述
ICW1(主)
ICW1(从)
(只写)
0020H
00A0H
初始化命令字1:
决定中断请求信号为电平触发还是边沿触发。
ICW2(主)
ICW2(从)
(只写)
0021H
00A1H
初始化命令字2:
包含了8259的基址中断向量号,基址中断向量是IR0的向量号,基址加1就是IR1的向量号,依此类推。
ICW3(主)
(只写)
0021H
初始化命令字3:
用于识别从8259设备连接到主控制器的IR信号,内部的从8259连接到主8259的IR2信号上。
ICW3(从)
(只写)
00A1H
初始化命令字3:
表明内部从控制器级联到主片的IR2信号上。
ICW4(主)
ICW4(从)
(只写)
0021H
00A1H
初始化命令字4:
选择特殊全嵌套或全嵌套模式,使能中断自动结束方式。
OCW1(主)
OCW1(从)
(读/写)
0021H
00A1H
操作命令字1:
中断屏蔽操作寄存器,可屏蔽相应的中断信号。
OCW2(主)
OCW2(从)
(只写)
0020H
00A0H
操作命令字2:
改变中断优先级和发送中断结束命令。
OCW3(主)
OCW3(从)
(只写)
0020H
00A0H
操作命令字3:
使能特殊屏蔽方式,设置中断查询方式,允许读出中断请求寄存器和当前中断服务寄存器。
IRR(主)
IRR(从)
(只读)
0020H
00A0H
中断请求:
指出挂起的中断请求。
ISR(主)
ISR(从)
(只读)
0020H
00A0H
当前中断服务:
指出当前正在被服务的中断请求。
POLL(主)
POLL(从)
(只读)
0020H
0021H
00A0H
00A1H
查询状态字:
表明连接到8259上的设备是否需要服务,如果有中断请求,该字表明当前优先级最高的中断请求。
初始化命令字1寄存器(ICW1)说明见图4.6所示。
图4.6初始化命令字1寄存器
初始化命令字2寄存器(ICW2)说明见图4.7所示。
图4.7初始化命令字2寄存器
初始化命令字3寄存器(ICW3)说明,主片见图4.8,从片见图4.9。
图4.8主片初始化命令字3寄存器
图4.9从片初始化命令字3寄存器
初始化命令字4寄存器(ICW4)说明见图4.10。
图4.10初始化命令字4寄存器
操作命令字1寄存器(OCW1)说明见图4.11。
图4.11操作命令字1寄存器
操作命令字2寄存器(OCW2)说明如图4.12所示。
图4.12操作命令字2寄存器
操作命令字3寄存器(OCW3)说明如图4.13所示。
图4.13操作命令字3寄存器
查询状态字(POLL)说明如图4.14所示。
图4.14程序状态字寄存器
在对8259进行编程时,首先必须进行初始化。
一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入初始化命令字。
8259有一个状态机控制对寄存器的访问,不正确的初始化顺序会造成异常初始化。
在初始化主片8259时,写入初始化命令字的顺序是:
ICW1、ICW2、ICW3、然后是ICW4,初始化从片8259的顺序与初始化主片8259的顺序是相同的。
系统启动时,主片8259已被初始化,且4号中断源(IR4)提供给与PC联机的串口通信使用,其它中断源被屏蔽。
中断矢量地址与中断号之间的关系如下表所示:
主片中断序号
0
1
2
3
4
5
6
7
功能调用
08H
09H
0AH
0BH
0CH
0DH
0EH
0FH
矢量地址
20H~23H
24H~27H
28H~2BH
2CH~2FH
30H~33H
34H~37H
38H~3BH
3CH~3FH
说明
未开放
未开放
未开放
未开放
串口
未开放
可用
可用
从片中断序号
0
1
2
3
4
5
6
7
功能调用
30H
31H
32H
33H
34H
35H
36H
37H
矢量地址
C0H~C3H
C4H~C7H
C8H~CBH
CCH~CFH
D0H~D3H
D4H~D7H
D8H~DBH
DCH~DFH
说明
未开放
可用
未开放
未开放
未开放
未开放
未开放
未开放
2.8259单中断实验
实验接线图如图4.15所示,单次脉冲输出与主片8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”。
图4.158259单中断实验接线图
实验程序清单(INT1.ASM)
SSTACKSEGMENTSTACK
DW32DUP(?
)
SSTACKENDS
CODESEGMENT
ASSUMECS:
CODE
START:
PUSHDS
MOVAX,0000H
MOVDS,AX
MOVAX,OFFSETMIR7;取中断入口地址
MOVSI,003CH;中断矢量地址
MOV[SI],AX;填IRQ7的偏移矢量
MOVAX,CS;段地址
MOVSI,003EH
MOV[SI],AX;填IRQ7的段地址矢量
CLI
POPDS
;初始化主片8259
MOVAL,11H
OUT20H,AL;ICW1
MOVAL,08H
OUT21H,AL;ICW2
MOVAL,04H
OUT21H,AL;ICW3
MOVAL,01H
OUT21H,AL;ICW4
MOVAL,6FH;OCW1
OUT21H,AL
STI
AA1:
NOP
JMPAA1
MIR7:
STI
CALLDELAY
MOVAX,0137H
INT10H;显示字符7
MOVAX,0120H
INT10H
MOVAL,20H
OUT20H,AL;中断结束命令
IRET
DELAY:
PUSHCX
MOVCX,0F00H
AA0:
PUSHAX
POPAX
LOOPAA0
POPCX
RET
CODEENDS
ENDSTART
数据处理分析:
一般中断实验,为了保护现场,程序开头都会引用堆栈把把现在的程序放入堆栈中进行保护,所以,PUSHDS就起到这样的作用.在中断程序结束后,为了能回到之前执行的程序入口,还得用POPDS指令返回现场.这个实验是关于8259的单中断,不牵涉级联问题,所以,8259的初始化只需要看主片就可了.初始化的时候,一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入始化字.8259有四个初始化控制字ICW1,ICW2,ICW3,ICW4,由于8259只有一根地址线,因此对各个制字的操作是按照一定的顺序并结合某些数据位来进行寻址设置的.当初始化完成后,对8259的操作命令字的寻址是通过8259的地址线A0和某些数据位结合来进行的.其初始化控制字和控制命令辽的赋值由我已经在注释中给出.另外,在初始化程序中我们用了STI这条指令打开中断,那么进入MIR7中断程中,我们为什么又执行STI这条指令呢,会不会重复了?
经过实验,我们知道这条指令并不是没用的,如果少后面这条STI指令,实验中我们会发现,当按一次KK1开关的时候,屏幕会显示一个字符7,但是,再按KK1的时候,就没有反应了,起初并不知道怎么解释这个现象,后来才知道8086CPU执行完一次中断后,会自动将相应的中断位屏蔽,所以,如果我们想按一次KK1就发生一次中断,就得重新在程序中打开中断,也就是STI.另外,RET指令是短信返回指令,而IRET指令则是中断短程返回指令,一般中断程序也大多是短程的.那么,中断发生的时候,CPU又是怎样进入中断子程序的呢?
这就需要我们正确地设置中向量表的了.实验板上主中断序号7可用,也就是我们得利用3CH-3FH这矢量地址.所以在程序开始的候,就采用MOVAX,OFFSETMIR7,MOVSI,003CH,MOV[SI],AX这三句来获得偏移地址IP,接着高址位置又用MOVAX,CS,MOVSI,003EH,MOV[SI],AX这三条指令来获得CS.CPU根据CS,IP就能转入正确的中断程序执行中断了.而中断程序结尾处,用了MOVAL,20HOUT20H,AL以及IRET这三条指令,是为了说明这是正常的EOI,可以通知8259A此次服务结束.
深圳大学学生实验报告用纸
实验结论:
中断的思想在程序的设计中无疑占有重要的位置.采取中断的方法,大大提高程序的有效和CPU的高效率工作.因此,8259中断控制实验在微机的几个实验中,就显得尤其重点.掌握8259中断控制器的工作原理和应用编程方法,需要对课本上那些对8259的系统介绍一个深入的了解,以及级联方式下各个寄存器相应的控制和操作方法,这些,都是我们学习重点,我们应该熟练掌握.
指导教师批阅意见:
成绩评定:
指导教师签字:
年月日
备注:
注:
1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8259 中断 控制 实验