版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、山西大学计算机与信息技术学院实验报告姓 名学 号专业班级2012级 计算机科学与技术课程名称微型计算机系统原理及应用指导教师实验日期2014.12.05成 绩实验名称8259中断控制实验1、实验目的:1. 掌握 8259中断控制器的工作原理。2. 掌握 系统总线上PCI_INTR中断请求的应用编程方法。2、实验设备PC机一台、TD-PIT+实验装置一套三、实验内容1、单中断实验。利用系统总线上中断请求信号INTR,设计一个单中断应用。使用单次脉冲模拟中断产生。编写中断处理程序,在显示器屏幕上显示一个字符。2、扩展中断源查询方式应用实验。利用实验平台上8259控制器对系统总线上的中断线INTR进
2、行扩展。编写程序对8259控制器的IR0和IRI中断请求进行处理。四、实验原理: (1)PC微机系统中的8259介绍中断控制器8259 是Intel 公司专为控制优先级中断而设计开发的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259 进行编程,就可以管理8 级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需增加其他电路的情况下,通过多片8259 的级连,能构成多达64 级的矢量中断系统。它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU 传送
3、中断类型号。8259A的命令字共有7个,可分为两类。一类是初始化命令字,另一类是操作命令字。8259 的编程就是根据应用需要将初始化命令字ICW1-ICW4 和操作命令字OCW1- OCW3 分别写入初始化命令寄存器组和操作命令寄存器组。ICW1-ICW4各命令字格式如表2-1所示,OCW1-OCW3各命令字格式如表2-2所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和结束方式的操作命令字,OCW3用于设置和撤消特殊屏蔽方式,设置中断查询方式以及设置对8259A内部寄存器的读出命令。表2-1 8259A初始化命令字D7D6D5D4D3D2D1D0ICW1XXX11:电
4、平触发0:边沿触发X1:单片82590:多片82591:需要ICW40:不需要ICW4ICW2中断向量的高5位XXXICW3(主)分别对应8个IRQ,Di=1,IRQi上有级连芯片,=0,无级连芯片ICW3(从)00000指明从片连接在主片的哪个IRQ上ICW40001:特殊全嵌套0:非特殊全嵌套1:缓冲0:非缓冲1:主片0:从片1:自动EOI0:非自动EOI1:8086系统0:8080系统表2-2 8259A操作命令字D7D6D5D4D3D2D1D0OCW1Di=0:开放IRi中断请求Di=1:禁止IRi中断请求OCW2优先级循环控制位L2L0有效控制位中断结束命令位00中断级编码OCW3X
5、0X:无意义10:撤销特殊屏蔽11:设置特殊屏蔽01中断查询控制位0X:无意义10:读IRR寄存器11:读ISR寄存器(2)PC微机系统中的8259A在80x86系列PC微机系统中,系统中包含了两片8259中断控制器,通过级连可以管理15级硬件中断,但其中部分中断号已经被系统硬件占用,具体使用情况如表2-3所示。两片8259的端口地址为:主片8259使用020H和021H两个端口;从片使用0A0H和0AlH两个端口。系统初始化两片8259的中断请求信号均采用上升沿触发,采用全嵌套方式,优先级的排列次序为:0级最高,依次为1级、8级15级,然后是3级7级。在实验平台上系统总线单元的INTR信号对
6、应的中断线就是PC机保留中断其中的一个。对INTR中断的初始化PC机已经完成,在使用时主要是将其中断屏蔽打开,修改中断向量。表2-3 PC微机系统中的硬件中断中断号功能中断向量号中断向量地址主8259 IRQ0时钟/计数器008H0020H0023H主8259 IRQ1键盘09H0024H0027H主8259 IRQ2接从片82590AH0028H002BH主8259 IRQ3串行口20BH002CH002FH主8259 IRQ4串行口10CH0030H0033H主8259 IRQ5并行口20DH0034H0037H主8259 IRQ6软盘0EH0038H003BH主8259 IRQ7并行口1
7、0FH003CH003FH从8259 IRQ8实时钟70H01C0H01C3H从8259 IRQ9保留71H01C4H01C7H从8259 IRQ10保留72H01C8H01CBH从8259 IRQ11保留73H01CCH01CFH从8259 IRQ12保留74H01D0H01D3H从8259 IRQ13协处理器中断75H01D4H01D7H从8259 IRQ14硬盘控制器76H01D8H01DBH从8259 IRQ15保留77H01DCH01DFH5、实验说明及步骤1、单中断应用实验实验平台上系统总线单元的INTR中断请求信号已经是对应到PC机内部的某一级中断。 INTR产生一个上升沿的中断
8、请求, PC机内部相应的那级中断就会得到响应。所以,使用INTR中断请求信号,就相当在使用PC机内部相应的那一级中断。 本实验要求使用总线上INTR中断请求线完成一次单中断应用实验。用单次脉冲上升沿模拟中断源,中断处理程序完成在屏幕上的显示字符“9” 。图2-1 8259单中断实验参考接线图(1)实验步骤如下:实验接线图如图2-1所示,按图接线。 运行Tdpit集成操作软件,编写程序,编译、链接。 使用运行命令运行程序,重复按单次脉冲开关KK1,显示屏会显示字符“9”,说明响应了中断。 实验代码如下:INTR_IVADD EQU 01C8H ;INTR对应的中断矢量地址INTR_OCW1 EQ
9、U 0A1H ;INTR对应PC机内部8259的OCW1地址INTR_OCW2 EQU 0A0H ;INTR对应PC机内部8259的OCW2地址INTR_IM EQU 0FBH ;INTR对应的中断屏蔽字STACK1 SEGMENT STACKDW 256 DUP(?STACK1 ENDSDATA SEGMENT MES DB Press any key to exit!,0AH,0DH,0AH,0DH,$CS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址的变量IM_BAK DB ? ;保存INTR原中断屏蔽字的
10、变量DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MES ;显示退出提示MOV AH,09H INT 21H CLIMOV AX,0000H ;替换INTR的中断矢量MOV ES,AXMOV DI,INTR_IVADD MOV AX,ES:DIMOV IP_BAK,AX ;保存INTR原中断处理程序入口偏移地址 MOV AX,OFFSET MYISRMOV ES:DI,AX ;设置当前中断处理程序入口偏移地址ADD DI,2MOV AX,ES:DIMOV CS_BAK,AX
11、 ;保存INTR原中断处理程序入口段地址MOV AX,SEG MYISRMOV ES:DI,AX ;设置当前中断处理程序入口段地址MOV DX,INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR屏蔽位IN AL,DXMOV IM_BAK,AL ;保存INTR原中断屏蔽字AND AL,INTR_IMOUT DX,ALSTIWAIT1: MOV AH,1 ;判断是否有按键按下INT 16HJZ WAIT1 ;无按键则跳回继续等待,有则退出QUIT: CLIMOV AX,0000H ;恢复INTR原中断矢量MOV ES,AXMOV DI,INTR_IVADD MOV AX,IP_BAK ;恢复I
12、NTR原中断处理程序入口偏移地址MOV ES:DI,AXADD DI,2MOV AX,CS_BAK ;恢复INTR原中断处理程序入口段地址MOV ES:DI,AXMOV DX,INTR_OCW1 ;恢复INTR原中断屏蔽寄存器的屏蔽字MOV AL,IM_BAKOUT DX,ALSTIMOV AX,4C00H ;返回到DOSINT 21HMYISR PROC NEAR ;中断处理程序MYISRPUSH AXMOV AL,39HMOV AH,0EHINT 10HMOV AL,20HINT 10HOVER: MOV DX,INTR_OCW2 ;向PC机内部8259发送中断结束命令MOV AL,20H
13、OUT DX,ALmov al,20hout 20h,al POP AX IRET MYISR ENDPCODE ENDSEND START(2)实验结果如下:2、扩展中断应用实验利用实验单元中的8259控制器,可以对总线上的INTR进行中断源的扩充。将8259的INT连接到INTR,8259的8路中断请求线IR0IR7就成了单一INTR中断请求线的扩充。这8路中断源共用INTR的中断矢量,共用INTR的中断服务程序。在INTR的中断服务程序中通过对8259的OCW3的查询,以确定是IR0IR7中哪个产生中断,然后转到相应的服务线程进行处理。 本实验要求实现8259控制器IR0、IR1两路中断
14、都可以通过INTR向PC发起中断请求。用KK1+和KK2+模拟两个中断源,在IR0对应的服务程序中显示字符“0”,在IR1对应的服务程序中显示字符“1”。图2-3 8259扩充中断源实验参考接线图(1)实验步骤如下:实验接线图如图2-3所示,按图接线。 运行Tdpit集成操作软件,编写程序,编译、链接。 使用运行命令运行程序,按动KK1+、KK2+按键,观察中断是否产生。实验代码如下:INTR_IVADD EQU 01C8H ;INTR对应的中断矢量地址INTR_OCW1 EQU 0A1H ;INTR对应PC机内部8259的OCW1地址INTR_OCW2 EQU 0A0H ;INTR对应PC机
15、内部8259的OCW2地址INTR_IM EQU 0FBH ;INTR对应的中断屏蔽字IOY0 EQU 3000H ;片选IOY0对应的端口始地址MY8259_ICW1 EQU IOY0+00H ;实验系统中8259的ICW1端口地址MY8259_ICW2 EQU IOY0+04H ;实验系统中8259的ICW2端口地址MY8259_ICW3 EQU IOY0+04H ;实验系统中8259的ICW3端口地址MY8259_ICW4 EQU IOY0+04H ;实验系统中8259的ICW4端口地址MY8259_OCW1 EQU IOY0+04H ;实验系统中8259的OCW1端口地址MY8259_
16、OCW2 EQU IOY0+00H ;实验系统中8259的OCW2端口地址MY8259_OCW3 EQU IOY0+00H ;实验系统中8259的OCW3端口地址STACK1 SEGMENT STACKDW 256 DUP(?STACK1 ENDSDATA SEGMENT MES DB Press any key to exit!,0AH,0DH,0AH,0DH,$CS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址的变量IM_BAK DB ? ;保存INTR原中断屏蔽字的变量DATA ENDSCODE SEGME
17、NTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MES ;显示退出提示MOV AH,09H INT 21H CLIMOV AX,0000H ;替换INTR的中断矢量MOV ES,AXMOV DI,INTR_IVADD MOV AX,ES:DIMOV IP_BAK,AX ;保存INTR原中断处理程序入口偏移地址MOV AX,OFFSET MYISRMOV ES:DI,AX ;设置当前中断处理程序入口偏移地址ADD DI,2MOV AX,ES:DIMOV CS_BAK,AX ;保存INTR原中断处理程序入口段地址MO
18、V AX,SEG MYISRMOV ES:DI,AX ;设置当前中断处理程序入口段地址MOV DX,INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR屏蔽位IN AL,DXMOV IM_BAK,AL ;保存INTR原中断屏蔽字AND AL,INTR_IMOUT DX,ALMOV DX,MY8259_ICW1 ;初始化实验系统中8259的ICW1MOV AL,13h ;边沿触发、单片8259、需要ICW4OUT DX,ALMOV DX,MY8259_ICW2 ;初始化实验系统中8259的ICW2MOV AL,08h OUT DX,ALMOV DX,MY8259_ICW4 ;初始化实验系统中8
19、259的ICW4MOV AL, 05h ;非自动结束EOIOUT DX,ALMOV DX,MY8259_OCW3 ;向8259的OCW3发送读取IRR命令MOV AL,0AHOUT DX,ALMOV DX,MY8259_OCW1 ;初始化实验系统中8259的OCW1MOV AL,0fch ;打开IR0和IR1的屏蔽位OUT DX,ALSTIWAIT1: MOV AH,1 ;判断是否有按键按下INT 16HJZ WAIT1 ;无按键则跳回继续等待,有则退出QUIT: CLIMOV AX,0000H ;恢复INTR原中断矢量MOV ES,AXMOV DI,INTR_IVADD MOV AX,IP_
20、BAK ;恢复INTR原中断处理程序入口偏移地址MOV ES:DI,AXADD DI,2MOV AX,CS_BAK ;恢复INTR原中断处理程序入口段地址MOV ES:DI,AXMOV DX,INTR_OCW1 ;恢复INTR原中断屏蔽寄存器的屏蔽字MOV AL,IM_BAKOUT DX,ALSTIMOV AX,4C00H ;返回到DOSINT 21HMYISR PROC NEAR ;中断处理程序MYISRPUSH AXQUERY: MOV DX,MY8259_OCW3 ;向8259的OCW3发送读取IRR命令IN AL,DX ;读出IRR寄存器值And al,03hCMP AL,01HJE
21、IR0ISR ;若为IR0请求,跳到IR0处理程序JNE IR1ISR ;若为IR1请求,跳到IR1处理程序JMP OVERIR0ISR:MOV AL,30H ;IR0处理,显示字符串STR0MOV AH,0EHINT 10HMOV AL,20HINT 10H JMP OVERIR1ISR:MOV AL,31H ;IR1处理,显示字符串STR1MOV AH,0EHINT 10HMOV AL,20HINT 10HJMP OVEROVER: MOV DX,INTR_OCW2 ;向PC机内部8259发送中断结束命令MOV AL,20HOUT DX,ALMOV AL,20HOUT 20H,ALPOP
22、AXIRETMYISR ENDPCODE ENDSEND START(2)实验结果如下:6、思考题编写程序实现实验一中流水灯的A、B口对应16位灯依次循环点亮。实验代码如下:IOY0 EQU 3000H MY8255_A EQU IOY0+00H*4 MY8255_B EQU IOY0+01H*4 MY8255_C EQU IOY0+02H*4 MY8255_MODE EQU IOY0+03H*4 STACK1 SEGMENT STACKDW 256 DUP(?STACK1 ENDSDATA SEGMENT LA DB ? LB DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,MY8255_MODE MOV AL, 80h OUT DX,ALMOV DX,MY8255_A MOV AL, 80hOUT DX,ALMOV LA,ALMOV DX,MY8255_B MOV AL,01hOUT DX,ALMOV LB,ALLOOP0: MOV CL,8LOOP1: CALL DALLYMOV AL,LA ROR Al,1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工现场施工防噪隔音制度
- 现代家居设计中的绿植艺术实践
- 医疗护理医学培训 小麦病虫害防治课件
- DB6528T 202-2024春玉米滴灌栽培技术规程
- 中小企业劳动合同模板大全
- 个人与工厂合作协议合同
- 个人借款合同条款解析
- 交通运输行业劳动合同准则
- 个人短期借款合同文本范例
- 临时劳务用工合同协议
- 北京房地产典当合同
- 儿童歌曲弹唱课程标准
- 大学生心理健康教育全套PPT完整教学课件
- 安庆汇辰药业有限公司高端原料药、医药中间体建设项目环境影响报告书
- 档案工作管理情况自查表
- 初中英语人教版 八年级上册 单词默写表 汉译英
- pcs-9611d-x说明书国内中文标准版
- T∕CMATB 9002-2021 儿童肉类制品通用要求
- 工序劳务分包管理课件
- 毕业论文-基于51单片机的智能LED照明灯的设计
- 酒厂食品召回制度
评论
0/150
提交评论