微机接口实验报告8259中断控制器实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六8259中断控制器实验

1 实验目的

(1) 学习中断控制器8259的工作原理。

(2) 掌握可编程控制器8259的应用编程方法。

2 实验设备

PC微机一台、TD-PIT+实验系统一套。

3 实验内容

编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。

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内部寄存器的读出命令。

2.8259寄存器及命令的控制访问

在硬件系统中,8259仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的寄存器和命令字。对寄存器和命令的访问控制如表6-1所示。

图6-1 8259内部结构和引脚图图6-2(a) ICW1格式

图6-2(b) ICW2格式

图6-2(c) ICW3格式

图6-2(d) ICW4格式

图6-3 OCW命令字格式

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-2 PC微机系统中的硬件中断

中断号功能中断向量号中断向量地址主8259A IRQ0 日时钟/计数器0 08H 0020H~0023H

主8259A IRQ1 键盘09H 0024H~0027H

主8259A IRQ2 接从片8259A 0AH 0028H~002BH

5 实验说明及步骤

本实验要求使用总线上INTR中断请求线完成一次单中断应用实验。中断处理程序完成在屏幕上显示字符“9”。实验前先运行CHECK程序,得到INTR所对应的中断号、相应的初始化命令字寄存器ICW及操作命令字寄存器OCW的地址、开屏蔽的命令字、中断矢量地址和PCI卡中断控制寄存器INTCSR的地址。得到这些信息后就可以开始设计实验了。参考程序流程如图6-5所示。

实验步骤如下。

(1) 确认从PC机引出的两根扁平电缆已经连接在实验平台上。

(2) 首先运行CHECK程序,查看INTR中断号及相关信息。

(3) 参考实验流程图编写程序,然后编译链接。

(4) 将单次脉冲单元的KK1+连接到系统总线上的INTR。

(5) 运行程序,按动KK1+按键,观察中断是否产生。

附:开机步骤:

(1) 开机,屏幕出现提示“Microsoft Windows 2000 Professional.

从虚拟启动软盘启动。”

选择“从虚拟启动软盘启动”,再次出现提示

“ 1.Start computer with CD-ROM support.

2.Start computer without CD-ROM support.

3.View the Help file.”

选择2。启动后出现提示“A:\ >”。

A:\ > E: ;下划线处是要从键盘输入的命令

E:\ > CD TANGDU\PIT-ASM ;进入E盘TANGDU\PIT-ASM子目录操作

(2) E:\ TANGDU\PIT-ASM > CHECK

运行CHECK程序,查看INTR中断号及片选信号对应的I/O端口始地址。

(3) 编辑源程序:E:\ TANGDU\PIT-ASM > EDIT 程序名.ASM 。

(4) 编译程序: E:\ TANGDU\PIT-ASM > TASM 程序名.ASM。(如有错返回上一步编辑修改。)

(5) 连接程序: E:\ TANGDU\PIT-ASM > LINK 程序名.OBJ ;。(加“;”跳过提示问题)

(6) 运行程序: E:\ TANGDU\PIT-ASM > 程序名.EXE。

实验参考答案及提示

;***************根据CHECK配置信息修改下列符号值*******************

INTR_IVADD EQU _____H ;INTR对应的中断矢量地址

INTR_OCW1 EQU _____H ;INTR对应PC机内部8259的OCW1地址

INTR_OCW2 EQU _____H ;INTR对应PC机内部8259的OCW2地址

INTR_IM EQU _____H ;INTR对应的中断屏蔽字

PCI_INTCSR EQU _____H ;PCI卡中断控制寄存器地址

STACK1 SEGMENT STACK

DW 256 DUP(?)

STACK1 ENDS

DATA SEGMENT

CS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量

IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址的变量

IM_BAK DB ? ;保存INTR原中断屏蔽字的变量

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

CLI

MOV DX,PCI_INTCSR ;初始化PCI卡中断控制寄存器

MOV AX,1F00H ;向PCI_INTCSR中写入003F1F00H

OUT DX,AX

ADD DX,2

MOV AX,003FH

OUT DX,AX

MOV AX,0000H ;替换INTR的中断矢量

MOV ES,AX

MOV DI,INTR_IVADD

MOV AX,ES:[DI]

MOV IP_BAK,AX ;保存INTR原中断处理程序入口偏移地址

MOV AX,OFFSET MYISR

MOV ES:[DI],AX ;设置当前中断处理程序入口偏移地址

相关文档
最新文档