《微机接口实验-北京科技大学.docx》由会员分享,可在线阅读,更多相关《微机接口实验-北京科技大学.docx(28页珍藏版)》请在优知文库上搜索。
1、微机原理与接口技术实验报告学院计算机与通信工程学院班级通信1002姓名马勇学号410502132023年5月实验十一8259中断控制器应用实验一、实验目的1 .学习中断控制器8259的工作原理;2 .掌握可编程控制器8259的应用编程方法。二、实验所用设备1 .PC微机一台;2 .TD-Pir实验系统一套。三、实验内容1 .利用PC机给实验系统分配的中断线,设计一个单中断应用。使用单次脉冲模拟中断产生。编写中断处理程序,在显示器屏幕上显示一个字符。2 .利用实验平台上8259控制器对扩展系统总线上的中断线INTR进行扩展。编写程序对8259控制器的IRO和IRl中断请求进行处理。四、实验原理1
2、. 8259控制器的介绍中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先级排队、区分中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。8259A的内部结构和引脚如图11-1所示。8259A的命令共有7个,一类是初始化命令字
3、,另一类是操作命令。8259A的编程就是根据应用需要将初始化命令字ICWl-ICW4和操作命令字OCWl-C)CW3分别写入初始化命令存放器组和操作命令存放器组。ICWl-ICW4各命令字格式如图11-2所示,OCWl-OCW3各命令字格式如图11-3所示,其中OCWl用于设置中断屏蔽操作字,0CW2用于设置优先级循环方式和中断结束方式的操作命令字,0CW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部存放器的读出命令。INTAINTD7-D0CASO CASl CAS2 SP/ENRDWRAOCS断务存聘 中S寄部断求存 中请寄AO12345678911111282726
4、2524232221201918171615图11-1 8259内部结构和引脚图D7 D6 D5 D4 D3 D2 Dl DOOlolOI LTIM I ADI I SNGL IC4 |不需要ICW4 需要ICW48086/8088不使用特征位无效Dl=O: Dlls D3=0: D3=l多片级联单片使用边沿触发电平触发图11-2(a)ICWl格式AoD7D6D5D4D3D2DlDOI1I1171T6IT5IT4I13IOI0IoIII,II中断类型号的高5位8086旗)88不使用图112(b)ICW2格式AOD7D6D5D4D3D2DlDOLUIS7IS6S5IS4S3IS2ISiIsoI主
5、片AOD7D6D5D4D3D2DlDOQII1.IIIJIm2IIDlIEDOI从并不可用图11-2(c)ICW3格式AOD7D5D5D4D3D2DlDOmOlololSFNMIBUFM/SAEOlUPM|AOD7D6D5D4D3D2DlDOJOCWlIM7IIM6IM5IM4M3IM2MlMOAOD7D6D5D4D3D2DlDO回RSLIEOII00L2LlLo口OCW2编码对应IR的最低优先权OOl一般 EOl中断结束命令Oll特殊EOl101循环优先权的一般Eol自动循环100在自动EorF置循环优先权0在自动EOl下复位循环优先权Ill循环优先权的特殊EOl命令IlO设置优先权特殊循环
6、OlO无效D2 Dl DOAOD7D6D5D4D3I0II0IESMMISMMIOlllPlRKlRlSlOCW3OX:无效0:不查询OX:无效10:复位特殊屏蔽1:允许查询10:可读IRR11:设置特殊屏蔽11:可读ISR图113OCW命令字2. 8259存放器及命令的控制访问在硬件系统中,8259A仅占用两个外设接口地址,在片选有效的情况下,利用AO来寻址不同的器和命令字。对存放器和命令的访问控制表如表11-1所示。3. Pe微机系统中的8259在80x86系列PC微机系统中,系统中包含了两片8259A中断控制器,经级连可以管理15级硬件中断,但其中局部中断号已经被系统硬件占用,具体使用情
7、况如表11-2示。两片8259A的端口地址为:主片8259使用020H和021H两个端口;从片使用OAoH和OAlH两个端口。系统初始化两片8259的中断请求信号均采用上升沿触发,采用全嵌套方式,优先级的排列次序为0级最高,依次为1级、8级15级,然后是3级7级。在扩展系统总线上的INTR对应的中断线就是PC机保存中断其中的一个。对INTR中断的初始化PC机已经完成,在使用时主要是将其中断屏蔽翻开,修改中断向量。表11-18259存放器及命令的访问控制AOD4D3读信号写信号片选操作OO1O读出ISRJRR的内容IO1O读出IMR的内容OOO1OO写入OCW2OO11OO写入OCW3O1X1O
8、O写入ICWl1XX1OO写入OCW1,ICW2.ICW3,ICW4中断源功能中断向量号中断源功能中斯向量号.8259AIRQO定时中断08H从8259AIRQ8实时神70HI.8259AIRQI健盘中断09H又8259A1RQ9保留71H上8259A1RQ2接从8259AOAH从8259AIRQlO保笛72HI:8259AIRQ3COM2OBH从8259AlRQO保留73Ht8259AIRQ4COMIOCH从8259AIRQ12保留74H上8259A1RQ5硬切井口2中断ODH从8259AIRQ13写处理器中断75H18259A1RQ6软盘OEH从8259A1RQ14硬盘控制器76HI.82
9、59A1RQ7打印机OFH从8259AIRQ15保留77H五、实验说明及步骤1.单中断应用实验本实验要求使用总线上INTR中断请求线完成一次单中断应用实验。中断处理程序完成在屏幕上的显示字符“9。实验前先运行CHECK程序,得到INTR所对应的中断号、相应的初始化命令字存放器ICW及操作命令字存放器OCW的地址、开屏蔽的命令字、中断矢量地址和PCI卡中断控制存放器INTCSR的地址。得到这些信息后就可以开始设计实验了。参考程序流程如图11-4所示。实验步骤如下:1 .确认从PC机引出的两根扁平电缆已经连接在实验平台上;2 .首先运行CHECK程序,查看INTR中断号及相关信息;3 .参考实验流
10、程图编写程序,然后编译链接;4 .将单次脉冲单元的KK1+连接到系统总线上的1NTR;5 .运行程序,按动KKl+按键,观察中断是否产生。I开,始II关中断I中断处理(显示字符)I初始fLpCijntcsrI替换in”中帧.矢量I清PcIJNTeSR标志位I向PC内8259发中断结束命会I中断返回II打开INTR中断屏蔽位I开中断IINTCSRI恢复PCI否有按键下?一是I关卡断II恢复INTR中断矢量II恢复INTR中断屏蔽字I开中断II返回IDOW(a)主程序(b)中断处理程序图11-48259中断应用实验(1)参考程序流程图2.扩展多中断源实验利用实验平台上的8259控制器,可以对总线上
11、的INTR进行扩展。将8259的INT连接到INTR,8259的8路中断请求线IR0IR7就成了单一INTR中断请求线的扩充。这8路中断源共用INTR的中断矢量,共用INTR的中断效劳线程。在INTR的中断效劳线程中通过对8259OCW3的查询,以确定是IR0IR7中哪个产生中断,然后转到相应的效劳线程进行处理。将8259的OCW3中P位置1即可执行查询,查询字格式如图11-5所示。D7D6D5IID4D3D2DlDOW2IWlIWOI0:无中断请求1:有中断请求W2W1W0:请求中断中优先级最高的中断源编码图1158259OCW3查询命令字格式本实验要求实现8259控制器1R0、IRl两路中
12、断。用KK1+和KK2+模拟两个中断源,在IRO对应的效劳程序中显示字符“0,在IRl对应的效劳程序中显示字符“1。实验程序参考流程如图11-6所示。参考实验电路如图3-5-8所示。实验步骤如下:1 .确认从PC机引出的两根扁平电缆已经连接在实验平台上;2 .首先运行CHECK程序,查看INTR中断号及相关信息;3 .参考实验流程图编写程序,然后编译链接;4 .参考实验接线图连接实验电路;5 .运行程序,按动KK1+、KK2+按键,观察中断响应是否正常。六、实验报告内容及要求1 .按步骤分析实验原理及实验过程中存在的问题。2 .附中断处理程序清单。(b)中断处理程序(a)主程序图11-6 82
13、59中断应用实验(2)参考程序流程图系统总线XxxxxxxX1XI2A2NT1D7D6D5D4D3IROD28259Dl单元DOIRIWRRDCSAOINTKKl +KK2+单次脉冲单元图1178259中断应用实验(2)参考接线图中断处理程序如下:(I)单中断应用实验INTR_IVADDEQU01C8H;INTR对应的中断矢量地址INTR_OCW1EQUOA1H;INTR对应PC机内部8259的OCW1地址INTR_OCW2EQUOAOH;INTR对应PC机内部8259的OCW2地址INTR.IMEQUOFBHJNTR对应的中断屏蔽字STACKlSEGMENTSTACKDWSTACKlENDSDATASEGMENT256DUP(?)MESDBPressanykeytoexit!,OAH,ODH,OAH,ODH,$CS_BAKDW?;保存INTR原中断处理程序入口段地址的变量IP_BAKDW?;保存INTR原中断处理程序人口偏移地址的变量IM_BAKDBDATAENDSCODESEGMENT