? ?
? 某位Mi为1,表示对应的中断源IRQi被屏蔽;Mi为0,IRQi被开放。 OCW2——写中断方式命令字(对偶地址操作)
? 设置优先级是否进行循环,循环的方式及中断结束的方式。 OCW3——(对偶地址操作)
? 用来设置特殊屏蔽方式、查询方式
? 用来读8259A的中断请求寄存器IRR,中断服务寄存器ISR、中断屏蔽寄存器IMR的当
前状态。
11-2
4.
PC机系统中8259A的应用
现代PC机系统中包含了两片8259A中断控制器,经级连可以管理15级硬件中断,但其中部分中断源已经被系统硬件占用,具体使用情况如表11-1所示。中断向量表的占用情况见表10-1。
两片8259A的端口地址为:主片在020H~03FH,实际使用020H和021H两个端口;从片在0A0H~0BFH范围,实际使用0A0H和0A1H两个端口。
11-1
5.
8259A的应用编程流程,如图11-3所示。 开发用户中断时,做到以下几点: (1)硬件方面:将外扩中断源的中断请求(由低电平到高电平的跃变)接入选定的中断源IRQi上。
(2)软件方面:
? 置换相应的中断向量,即把用户中断子程序的入口地址写入4×n~4×n+3单元。
? 分别向主从8259A写入屏蔽字,使主片IMR的D2位置0;使从片IMR的Di位置0,开
36
? ?
放用户中断。(即填写OCW1)
每一次中断服务结束,即执行IRET之前,向从片、主片8259A送中断结束命令。(即填写OCW2)
返回DOS之前,写中断屏蔽字OCW1,使主片IMR的D2位置1;使从片IMR的Di位置1,屏蔽用户中断。恢复系统中断屏蔽字、恢复系统中断向量。
11-3 8259A
六. 实验步骤
1.
运行示例程序,按键8次,观察运行结果。
七. 参考程序清单
;按键8次,计算键盘中断次数 DATA SEGMENT CSBAK DW ? IPBAK DW ? MKBAK DB ? DATA ENDS
37
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START PROC FAR
MOV AX,DATA MOV DS,AX
IN AL,21H ;保留8259初始屏蔽字的状态 MOV MKBAK,AL
CLI AND OUT MOV MOV MOV MOV MOV MOV CLD STOSW
MOV MOV MOV STOSW
XOR A1: STI CMP JZ JMP A2: PUSH CLI MOV MOV MOV MOV CLD STOSW
MOV STOSW
MOV OUT STI POP CALL MOV INT RET
38
AL,11111101B 21h,AL AX,0 ES,AX
DI,24H AX,ES:[DI]
IPBAK,AX AX,OFFSET MYINT AX,ES:[DI] CSBAK,AX AX,SEG MYINT DX,DX DX,10H A2 A1 DX AX,0 ES,AX
DI,24H ;IRQ1,09H AX,IPBAK AX,CSBAK AL,MKBAK 21h,AL DX SHWORD AX,4C00H 21H ;关中断
;打开键盘屏蔽 ;修改键盘中断的中断矢量 ;IRQ1,09H,24H=09H*4 ;写入IP ;写入CS ;清计数器 ;开中断
;是否按了8次键 ;是,结束程序运行 ;否则继续等待键盘中断 ;保存计数值 ;关中断 ;恢复系统中断矢量 ;恢复系统8259屏蔽字 ;开中断 ;显示计数值 START ENDP MYINT PROC FAR STI INC DX IN AL,60H IN AL,61H MOV AH,AL OR AL,80H OUT 61H,AL CLI MOV AL,61H OUT 20H,AL
IRET MYINT ENDP
SHWORD PROC NEAR MOV CX,4 AGA: ROL DX,4 MOV AL,DL AND AL,0FH CMP AL,10 JC NEXT2 ADD AL,7 NEXT2: ADD AL,30H MOV AH,0EH INT 10H LOOP AGA RET
SHWORD ENDP CODE ENDS
END START
;自定义键盘中断处理程序 ;开中断 ;计数加一
;读入扫描码(用户可对此键值进行处理)
;读入控制字节
;复位键盘 ;关中断
;中断结束命令送中断控制器 ;中断返回
;2→16进制显示
39
实验十二、 PCI总线中断应用
一. 实验目的 1. 2. 3. 4.
掌握使用PCI中断的方法。
了解操作PCI设备I/O端口的方法。
进一步掌握8259中断控制器的工作原理、编程方法以及PC机如何通过8259A实现对外部可屏蔽硬件中断源的管理。
进一步掌握中断服务程序的设计方法。
二. 实验设备
PC机一台,TD-PIT-B实验装置一套。
三. 实验预习要求
1.复习中断的概念,了解PC机系统中断向量表的占用情况(见表10-1)。
2.复习8259中断控制器的工作原理,了解PC机中外部可屏蔽硬件中断的处理过程。 3.复习PC机如何通过8259A实现对外部可屏蔽硬件中断源的管理。
4.仔细阅读实验说明、示例程序,掌握PCI总线中断服务程序的编写方法。 5.根据实验内容,仔细阅读相关的实验要求及说明,编写程序,以便上机调试。
四. 实验内容
1.【示例】编写一实验程序,利用实验装置提供的中断源,完成每按动一次脉冲开关,产生一次中断,向显示器输出字符“7”。 2.修改示例程序,控制中断响应次数为10次,即当第11次以后按动脉冲开关,屏幕上不再显示“7”。 五. 实验说明
1.TD-PIT-B实验系统编程信息简要说明
(1).本实验的接口电路是在PD-PIT-B实验装置上搭接完成,而PC机作为主机控制该实验装置。二者之间通过PCI总线扩展卡及转接逻辑在PD-PIT-B实验装置上提供了一个仿真ISA的总线接口,用户可以基于该接口对常用接口芯片进行应用编程。TD-PIT-B实验系统的硬件环境,参见附录。
(2).要利用仿真ISA的总线接口资源,扩展接口电路,首先必须掌握实验装置获取的系统配置资源,即PCI总线资源配置的有关内容。
执行PCI_BIOS.EXE,获取实验用PCI总线扩展卡分配的地址空间及中断请求线。假设执行PCI_BIOS.EXE后屏幕显示:
从以上获取的信息可知道,本实验用的PCI总线扩展卡申请了:
40
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《微机原理与接口技术》实验指导书(8)在线全文阅读。
相关推荐: