2009-7-31 1
微机原理及应用第八章 中断微机原理及应用 ——第 8章 中断 2
第 八 章 中 断
8.1 引言
8.1.1 为什么要用中断?
8.1.2 中断源
8.1.3 中断系统的功能
8.2 简单的中断情况
8.2.1 CPU响应中断的条件
8.2.2 CPU对中断的响应
8.3 中断优先权
8.3.1 用软件确定中断优先权
8.3.2 硬件优先级排队电路主要内容微机原理及应用 ——第 8章 中断 3
第 八 章 中 断
8.4 8086的中断方式
8.4.1 外部中断
8.4.2 内部中断
8.4.3中断向量表
8.4.4 8086中的中断响应和处理过程
8.5 中断控制器 Intel8259A
8.5.1 8529A功能
8.5.2 8259A的结构
8.5.3 8259A的引线
8.5.4 8259A 的中断顺序
8.5.5 8259A 的编程
8.5.4 8259A 的工作方式
8.6 IBM PC/XT的中断结构
8.6.1 中断类型
8.6.2 IBM PC/XT中系统保留的中断微机原理及应用 ——第 8章 中断 4
中断的概念学习目的中断类型及中断向量2
1
4 中断控制器 Intel8259
3 8086的中断方式及过程微机原理及应用 ——第 8章 中断 5
中断的概念
CPU响应可屏蔽中断的条件
中断处理过程
硬件中断与软件中断的比较
8259A中断控制器的工作机理重 点微机原理及应用 ——第 8章 中断 6
中断,外设向 CPU发中断请求,CPU接收到中断请求并在一定条件下,暂时停止执行原来的程序而转去处理中断,处理好中断服务再返回继续执行原来的程序,就称为一个中断过程。
中断是 CPU被动的响应外设要求服务。
8.1 中断的概念为什么要用中断?
微机原理及应用 ——第 8章 中断 7
8.1 中断概述中断的好处
同步操作
数据和外设可同时工作,当外设准备好数据,
可通过中断进行处理
实时处理
在计算机用于实时控制时,现场设备可根据需要发中断请求
故障处理微机原理及应用 ——第 8章 中断 8
中断源引起中断的原因,产生中断请求的来源。
通常有以下几种:
1,一般的 I/O 设备,如键盘、打印机等。
2,实时时钟。
3,故障源。
4,为了调试程序而设置的中断。
(例如设置断点,单步运行等 )
8.1 中断概述微机原理及应用 ——第 8章 中断 9
8.1 中断概述
响应中断
保护断点和现场
执行中断
返回主程序
1,实现中断及返回中断系统的功能微机原理及应用 ——第 8章 中断 10
8.1 中断概述
优先权
当系统中有多个中断源存在时,若有几个中断源同时提出申请,那么就存在 CPU先响应谁的问题。
2,实现中断优先权排队微机原理及应用 ——第 8章 中断 11
8.1 中断概述
中断的嵌套
优先级高的中断能中断正在服务的优先级低的中断
3,实现中断优先权排队微机原理及应用 ——第 8章 中断 12
8.2 最简单的中断情况一,CPU响应中断的条件
1.设置中断请求触发器微机原理及应用 ——第 8章 中断 13
2.设置中断屏蔽触发器
8.2 最简单的中断情况微机原理及应用 ——第 8章 中断 14
CPU中断允许触发器设置
3,中断是开放的
4,现行指令执行结束
CPU在现行指令结束后响应中断,即运行到最后一个机器周期的最后一个 T状态时,CPU采样
INTR线。若发现有中断请求,则把内部的中断锁存器置,1”,然后下一个机器周期(总线周期)
不进入取指周期,而进入中断周期。
8.2 最简单的中断情况微机原理及应用 ——第 8章 中断 15
中断的全过程及有关概念:
一个完整的中断过程包括:
中断请求;
中断判优;
中断响应;
中断处理;
中断返回,
二、中断响应
8.2 最简单的中断情况微机原理及应用 ——第 8章 中断 16
执行一条指令最后一个总线周期的最后一个 T状态?
有 INTR?
中断开放? (FR中的 IF=1?)
关中断 (置 FR中 IF=0) 信号发 IN T A
断号地址 (IP,CS)入栈 FR 入栈转入相应中断服务程序保护现场中断服务处理恢复现场开中断 STI (置 FR中 IF=1)
中断返回 IRET
取下一条指令
No
No
No
Yes
Yes
Yes
8086 CPU 响应中断的过程微机原理及应用 ——第 8章 中断 17
1,用软件确定中断优先权优先权管理电路三态缓冲器译码锁存器
G
INTR
D7 ~D0
A15~A0
RD
中 断 源 A
中 断 源 B
中 断 源 C……

IOM
8.3 中断优先权微机原理及应用 ——第 8章 中断 18
软件查询流程图在 中 断 服 务 中读 入 请 求 状 态
A 申 请?
B 申 请?
C 申 请?
中 断 返 回为中断源 A
服务的程序段为中断源 B
服务的程序段为中断源 C
服务的程序段
Y
Y
Y

8.3 中断优先权微机原理及应用 ——第 8章 中断 19
采用软件查询方式的特点:
询问的次序,即为优先权的次序。
硬件简单。
由查询转至相应的服务程序的时间长,
尤其在中断源较多的情况。
8.3 中断优先权微机原理及应用 ——第 8章 中断 20
思考题:
1,为什么要在中断服务程序中执行 STI 指令?
8.3 中断优先权微机原理及应用 ——第 8章 中断 21
2,硬件方式
1
2
8-3
优先权编码器优先权寄存器
A <B
比较器
A2
A1
A0
B2
B1
B0
比较失效中断请求 0
中断请求 1
中断请求 2
…………7
D7 ~ D0
INTR
若 CPU 未处理任何中断,则,优先权失效” 信号为高,
当任一中断源请求中断时,通过门 2发出 INTR 信号。
若 CPU 正在进行中断处理,当某一中断源请求中断时,
能否向 CPU 发出 INTR信号,受比较器的控制。 。
8.3 中断优先权微机原理及应用 ——第 8章 中断 22
一、中断类型
8086能处理
256种中断,
分为两大类:
外部中断和内部中断。
其中断分类如图 8.5
INT n 指令中断逻辑非屏蔽中断请求中断控制系统
( 8259A)
INT 3
指令
INTO
指令单步中断除数为
0中断

可屏蔽中断请求
NMI
INTR
硬件中断软件中断
8.4 8086中断方式微机原理及应用 ——第 8章 中断 23
1,外部中断 (硬件中断 )
非屏蔽中断 NMI (类型号为 2)
有效,不受 FR 中 IF 的影响,常用于处理系统的重大故障。
8.4 8086中断方式微机原理及应用 ——第 8章 中断 24
可屏蔽的中断 INTR
高有效,CPU 是否响应,取决于
FR 中 IF 的状态 。 常用于各种外设的中断 。
8.4 8086中断方式微机原理及应用 ——第 8章 中断 25
2,内部中断 (软件中断 )
通常由三种情况引起:
(1) INT n 指令中断 (n 为中断类型号 )
(2) 处理 CPU 某些错误的中断
除法错中断 (中断类型号为 0)
溢出中断 (INTO) (中断类型号为 4)
8.4 8086中断方式微机原理及应用 ——第 8章 中断 26
(3) 为调试程序设置的中断
单步中断当 FR 中 TF = 1时,每执行一条指令,CPU
产生类型为 1 的单步中断。
断点中断设置断点实际上是把指令,INT 3” 插入到程序中,CPU 每执行到断点处的
,INT 3” 指令,便产生类型为 3 的中断。
8.4 8086中断方式微机原理及应用 ——第 8章 中断 27
二、中断优先级
8086 系统中,中断优先级的次序为:
高低内部中断 (除法错,INTO,INT n)
NMI
INTR
单步中断
8.4 8086中断方式微机原理及应用 ——第 8章 中断 28
三、中断向量表
CPU 响应中断后,如何得到中断服务程序的入口地址,转入到中断服务程序? 8086CPU 通过建立中断向量表的方法解决。
8.4 8086中断方式微机原理及应用 ——第 8章 中断 29
中断向量 (中断服务程序入口地址 ) 在表中的地址 =
中断类型号
× 4
0000,0014 H
0000,0013 H
0000,0010 H
0000,000F H
0000,000C H
0000,000B H
0000,0008 H
0000,0007 H
0000,0004 H
0000,0003 H
0000,0000 H
溢出中断类型 5
类型 255
供用户定义的中断
(共 224个)
0000,007 FH
0000,007 EH
0000,03 FFHCS
IP
CS
IP
CS
IP
CS
IP
CS
IP
CS
IP
CS
IP
图 8-9 中断向量表

专用的中断
(共 5个)
保留的中断
(共 27个)
类型 32
类型 31
类型 0
类型 4
类型 3
类型 2
类型 1
除数为 0 中断非屏蔽中断单步中断断点中断微机原理及应用 ——第 8章 中断 30
五,8086CPU 转入中断服务程序的过程
8086转入中断处理程序的过程
1800H
F000H
00H
18H
00H
F0H
PUSH
IRET





例:执行 INT 21H
向量地址=
21H? 4 = 84H
CPU
IP
CS
MEM
( 4)
( 1)
( 2)
( 3)
0,0000H
0,0084H
0,0087H
0,03FFH
F000,1800H
中断向量表
8.4 8086中断方式微机原理及应用 ——第 8章 中断 31
1,取类型号;
2,计算向量地址;
3,根据向量地址查表,将偏移地址送 IP,
段基址送 CS;
4,转入中断服务程序,进行中断处理。
8.4 8086中断方式微机原理及应用 ——第 8章 中断 32
六,8086CPU 对中断的响应流程内部中断?
NMI?
INTR?
TF= 0?
执行下条指令完成当前指令
IF= 1?
标志进栈保存 TF,将 IF,TF清 0
断点地址进栈查中断向量表,转中断服务程序保护现场中断服务恢复现场开中断,返回第一个中断响应周期
AD7 ~ AD0 浮空第二个响应周期,取中断类型码
N
N
N
N
Y
Y
Y
Y
Y
N
微机原理及应用 ——第 8章 中断 33
1片 8259A 能管理 8级中断
通过级联用 9片 8259A可以构成 64 级主从式中断系统
每一级中断可以屏蔽或允许
在中断响应周期,8259A 可提供相应的中断向量。
可编程使 8259A 工作在多种不同的方式
8.5 中断控制器 8259A
Intel 8259A 可编程中断控制器,主要有以下功能,
微机原理及应用 ——第 8章 中断 34
8259A 的内部结构与引脚信号控制逻辑中断服务寄存器
ISR
优先权电路
PR
中断请求寄存器
IRR
中断屏蔽寄存器 IMR
读写控制逻辑级联缓冲比较器数据总线缓冲器
D0~D7
RD
WR
CS
A0
CAS0
CAS1
CAS2
ENSP
INTA INT
IR0
IR1
IR7

8259A内部逻辑框图
8.5.1 8259A概述微机原理及应用 ——第 8章 中断 35
1,数据总线缓冲器
8位、双向、三态,是 8259A与 CPU
之间的数据接口。
D0~ D7直接与 CPU 数据总线的低 8位连结。
8.5.1 8259A概述微机原理及应用 ——第 8章 中断 36
2,读 /写控制逻辑
。接高位地址的译码输出:CS
A0,常常与地址信号线 A0相连。
相连。、的与,WRRDC P UWRRD
8259A的两个端口地址
CPU 通常利用:
OUT 指令,。配合写入有关的控制字与 A0,CSWR
IN 指令,
有关寄存器的内容。
内部配合读出与 A8 2 5 9A0,CSRD
8.5.1 8259A概述微机原理及应用 ——第 8章 中断 37
3,中断请求寄存器 IRR
8 位,若 IRi 有效 (,1”,),
对应位置,1”,直到 IRi 得到响应。
8.5.1 8259A概述微机原理及应用 ——第 8章 中断 38
4,中断服务寄存器 ISR
8位,当 IRi得到响应时,对应位置,1”。
ISR 记录正在处理的 IRi,当中断嵌套时,
可能多位置,1”。
8.5.1 8259A概述微机原理及应用 ——第 8章 中断 39
5,中断屏蔽寄存器 IMR
8位,某位置,1”,对应 IRi 禁止产生中断。
8.5.1 8259A概述微机原理及应用 ——第 8章 中断 40
6,优先权电路实现优先权的判断与处理,采用编码器和比较器电路
8259A中的中断优先权电路比较器
B
0
B
0
B
0
A > B
A
0
A
1
A
2
中断请求优先级编码器中 断 屏 蔽 寄 存 器 I M R
中断请求寄存器
I R R
I S R 编 码 器? 1
&
&
&
I N T
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
IR
0
IR
1
IR
2
IR
3
IR
4
IR
5
IR
6
IR
7
图 7 - 12  中断优先权电路比较器比较器中断请求优先级编码器中 断 屏 蔽 寄 存 器中断请求寄存器中断请求寄存器中断请求寄存器编 码 器图
8.5.1 8259A概述微机原理及应用 ——第 8章 中断 41
7,控制逻辑
由 IRR 和 PR 的情况,向 8259A 其它部件发出控制信息。
向 CPU 发出 INT 信号,接收 CPU
的信号。
INTA
8.5.1 8259A概述微机原理及应用 ——第 8章 中断 42
8,级联缓冲 /比较器可以实现 8259A的级联,扩展外中断。
(1) CAS2,CAS1,CAS0 引脚
主 8259A,CAS2~ CAS0 输出,输出被响应的从片的标志码。
8.5.1 8259A概述微机原理及应用 ——第 8章 中断 43
从 8259A,CAS2~ CAS0 输入,接收主片发出的标志码,与自己的标志码比较。若相等,下一个信号到来时,将中断向量送至数据总线。
INTA
8259 A
从片 A
8259 A
主片
8259 A
从片 B
I NT
CAS
0
CAS
1
CAS
2
IR
0
I NT
CAS
0
CAS
1
CAS
2
IR
0
I NT
CAS
0
CAS
1
CAS
2
IR
7
IR
6
IR
3
IR
0
…SP/EN
SP/EN IR
7
CS A
0
I NT A CS A
0
I NT A
CS A
0
I NT A

SP/EN

IR
7
AB
CB
DB
图 7 - 14   8259 主从级联
GND GND
Vcc 6
3
从片 主片从片
……… ……
图   主从级联
8.5.1 8259A概述微机原理及应用 ——第 8章 中断 44
主片,IR3有申请
IRR:0000 1000
ISR:0000 1000
主片向 CPU发 INTR信号
CPU发回答信号 INTA
2个从片都收到 TNTA
主片向从片送识别码,
CAS0~CAS2=011
2#从片
IR5有申请
IRR,0010 0000
ISR,0010 0000
向主片发 INT信号
从片地址与主片地址同
2#从片与识别码一致 2#
从片送出中断类型码
1#从片 挂在 主片 的 IR6
2#从片 挂在 主片 的 IR3
8.5.1 8259A概述微机原理及应用 ——第 8章 中断 45
(2) 引脚EN/SP
当 8259A 工作于非缓冲方式 (直接与
CPU 的 DB 相连 )
主片,1SP?
从片,0SP?
SP 为输入,是主从芯片定义引脚。
8.5.1 8259A概述微机原理及应用 ——第 8章 中断 46
当 8259A 工作于缓冲方式 (通过总线缓冲器与
CPU 的 DB 相连 )
EN 为输出,用于启动数据总线驱动器。
DB DBCPU 数据总线驱动器
8259A
ENOE
此时,主从芯片的定义由 ICW4中的 M/S实现。
8.5.1 8259A概述微机原理及应用 ——第 8章 中断 47
8259A 的中断处理过程下面以 8259A单片使用为例,说明其中断处理过程。
1,当一条或多条中断请求线 IR0 ~ IR7变高时,
设置相应的 IRR位 。
2,PR对中断优先权和中断屏蔽寄存器的状态进行判断之后,如某中断优先权最高且为允许中断状态,就向 CPU发高电平信号
INT,请求中断服务 。
8.5.2 8259工作方式微机原理及应用 ——第 8章 中断 48
3,CPU响应中断时,送回应答信号 INTA 。
4,8259A接到来自 CPU的第一个信号 INTA时,
当前中断服务寄存器 ( ISR) 中相应位置位,
并把 IRR中相应位复位 。 同时,8259A准备向数据总线发送中断类型号 。
8.5.2 8259工作方式微机原理及应用 ——第 8章 中断 49
5,在 8259A发送中断类型号的最后一个 INTA
脉冲期间,如果是在 AEOI( 自动结束中断 )
方式下,在这个 INTA 脉冲结束时复位 ISR
的相应位 。 在非自动中断结束方式下,ISR
相应位要由中断服务程序结束时发出的 EOI
命令来复位 。
8.5.2 8259工作方式微机原理及应用 ——第 8章 中断 50
8259A 的工作方式
8259A有多种工作方式,这些工作方式可以通过初始化命令字 ( ICW1?ICW4) 和操作命令字 ( OCW1?OCW4) 来设置 。
8.5.2 8259工作方式微机原理及应用 ——第 8章 中断 51
1,引入中断请求的方式
边沿触发方式 。 以上升沿向 8259A请求中断,上升沿后可一直维持高电平,不会再产生中断 。
电平触发方式 。 以高电平申请中断,但在响应中断后必须及时清除高电平,以免引起第二次误中断 。
8.5.2 8259工作方式微机原理及应用 ——第 8章 中断 52
2,连接系统总线的方式
在大系统中,要求数据总线有总线缓冲器 。 8259A与这种带总线缓冲器的系统总线连接的方式称缓冲器方式 。
在小系统中,则 8259A不需要总线缓冲器而是将其直接接至数据总线 。
8.5.2 8259工作方式微机原理及应用 ——第 8章 中断 53
3,屏蔽中断源的方式
普通屏蔽方式 。 利用操作命令字 OCW1,
使屏蔽寄存器 IMR中的一位或几位置 1来屏蔽一个或几个中断源的中断请求 。
特殊屏蔽方式 。 在某些场合,在执行某一个中断服务程序时,要求允许另一个优先级比它低的中断请求被响应,此时可采用特殊屏蔽方式 。 它可通过 OCW3的 D6D5= 11来设定 。
8.5.2 8259工作方式微机原理及应用 ——第 8章 中断 54
4,优先级排队的方式
全嵌套方式 。 在此种方式下中断优先级按 0? 7顺序进行排队,只允许中断级别高的中断源去中断中断级别低的中断服务程序 。
特殊全嵌套方式 。 它和全嵌套方式基本相同,所不同的是在特殊全嵌套方式下,当执行某一级中断服务程序时,可响应同级的中断请求,从而实现对同级中断请求的特殊嵌套 ( 8259A级联使用时,某从片的 8个中断源对主片来说,可以认为是同级的 ) 。 特殊全嵌套方式用于多片级联 。
8.5.2 8259工作方式微机原理及应用 ——第 8章 中断 55
D.
主 8259A
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
一般嵌套方式:
从片的 INT被主片封锁,故更 高 级别的
IR0-IR2中断也无法得到响应特殊嵌套方式:
因主片不封锁从片的
INT,故级别高的 IR0-
IR2中断可以得到响应 。
(但 IR3-IR7 仍被本 从片封锁 )
C.
假定 IR3发生中断,并获得服务一般嵌套方式:
IR4的中断被服务时,这些中断将被封锁 。
B.
特殊嵌套方式:
IR4的中断被服务时,只 封 锁
IR5-IR7。
A.
INT
E.
从 8259A
INT
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
一般全嵌套方式与特殊全嵌套方式的区别去 CPU
微机原理及应用 ——第 8章 中断 56
优先级自动循环方式 。 在这种方式下,
优先级顺序不是固定不变的,一个设备得到中断服务后,其优先级自动降为最低 。 其初始的优先级顺序规定为 IR0,IR1,…,IR7。 该方式用在系统中多个中断源优先级相等的场合 。
8.5.2 8259工作方式微机原理及应用 ——第 8章 中断 57
优先级特殊循环方式 。 这种方式与优先级自动循环方式唯一的区别是,其初始的优先级顺序不是固定 IR0为最高,然后开始循环,
而是由程序指定 IR0? IR7中任意一个为最高优先级,然后再按顺序自动循环,决定优先级 。
8.5.2 8259工作方式微机原理及应用 ——第 8章 中断 58
5,结束中断的处理方式
自动中断结束方式 。 在中断服务程序中,
中断返回之前,不需发中断结束命令就会自动清除该中断源所对应的 ISR位 ( 实际上在
CPU发第二个信号时,8259即自动消除 ISR中的对应位 ) 。 这种方式用在多个中断不会嵌套的系统中 。
非自动中断结束方式 。 在中断服务程序返回之前,必须发中断结束命令才能使 ISR中的当前服务位清除 。
8.5.2 8259工作方式微机原理及应用 ——第 8章 中断 59
8259A 的初始化命令字
8259A 初始化编程时,有四个初始化命令字
ICW ( Initialiation Command Word),即
ICW1?ICW4 ;三个操作命令字 OCW( Opeiation
Command Word),即 OCW1~ OCW3)。
8259A 只有两个端口地址 A0=
0 偶地址端口
1 奇地址端口
8.5.3 8259编程微机原理及应用 ——第 8章 中断 60
1,ICW1
(IRi 触发方式,是否单片使用,是否写入 ICW4)
0 1 LTIM? SNGL IC4
A0 D7 D6 D5 D4 D3 D2 D1 D0
标志位
8.5.3 8259编程微机原理及应用 ——第 8章 中断 61
LTIM,规定 IRi的触发方式
1 高电平触发
0 触发
=
8.5.3 8259编程微机原理及应用 ——第 8章 中断 62
SNGL,是否单片使用
1 单片使用
0 级联使用
=
8.5.3 8259编程微机原理及应用 ——第 8章 中断 63
IC4,是否写入 ICW4
1 后面写入 ICW4
0 不写入 ICW4
=
8.5.3 8259编程微机原理及应用 ——第 8章 中断 64
例:某 8086微机系统中,使用单片 8259A,
中断请求信号为上升沿触发,需要设置 ICW4,
端口地址为 20H,21H,则其初始化命令字
ICW1应为,00010011= 13H,设置 ICW1的指令为:
MOV AL,13H
OUT 20H,AL
8.5.3 8259编程微机原理及应用 ——第 8章 中断 65
2,ICW2
(中断类型号的高 5位 )
(中断类型号的低 3位由 8259A 自动编码产生 )
1 T7 T6 T5 T4 T3
A0 D7 D6 D5 D4 D3 D2 D1 D0
IRi 对应中断类型号的高 5位
8.5.3 8259编程微机原理及应用 ——第 8章 中断 66
T7 T6 T5 T4 T3 T2 T1 T0
由 ICW2规定 0 0 0
0 0 1
0 1 0
….
1 1 1
IR0
IR1
IR2

IR7
8.5.3 8259编程微机原理及应用 ——第 8章 中断 67
例:某 PC机中 8个可屏蔽中断 ( IR0? IR7)
的类型号为 08H? 0FH,A0= 1,端口地址为
21H,则 ICW2为,08H,设置 ICW2的指令为:
MOV AL,08H
OUT 21H,AL
8.5.3 8259编程微机原理及应用 ——第 8章 中断 68
3,ICW3
(级联时,主从芯片的级联引脚 )
若 ICW1 中 SNGL=
1 不写入 ICW3
0 写入 ICW3
8.5.3 8259编程微机原理及应用 ——第 8章 中断 69
(1) 写给主片的 ICW3
Si = 1,表示主片 IRi上接有从片。
1 S7 S6 S5 S4 S3 S2 S1 S0
A0 D7 D6 D5 D4 D3 D2 D1 D0
8.5.3 8259编程微机原理及应用 ——第 8章 中断 70
(2) 写给从片的 ICW3
ID2 ID1 ID0 该从片
0 0 0 接入主片的 IR0
0 0 1 接入主片的 IR1
… …
1 1 1 接入主片的 IR7
1 0 0 0 0 0 ID2 ID1 ID0
A0 D7 D6 D5 D4 D3 D2 D1 D0
从片的标志码
8.5.3 8259编程微机原理及应用 ——第 8章 中断 71
例:某 8086微机系统中,主片 8259A的 IR2,IR6引脚上分别接有从片 8259A,则主,从片的 ICW3初始化命令字设置如下:
主片初始化命令字,(口地址设为 20H,21H)
MOV AL,44H ; 44H为主片的 ICW3,表示其 IR6,IR2上接有从片OUT 21H,AL ;将 ICW
3写入奇地址端口从片 1的初始化命令:
MOV AL,02H
OUT 21H,AL
从片 2的初始化命令:
MOV AL,06H
OUT 21H,AL
S7 1 S5 S4 S3 1 S1 S0
D7 D6 D5 D4 D3 D2 D1 D0
微机原理及应用 ——第 8章 中断 72
4,ICW4
1 0 0 SFNM BUF M/S AEOI 1
A0 D7 D6 D5 D4 D3 D2 D1 D0
0
标志位 用于 8088/
8086系统
8.5.3 8259编程微机原理及应用 ——第 8章 中断 73
= 0 正常的完全嵌套方式
= 1 特殊的完全嵌套方式
(1) SFNM,规定 8259A中断的嵌套方式
(单片使用时,两种方式一样,为什么? )
8.5.3 8259编程微机原理及应用 ——第 8章 中断 74
正常的完全嵌套方式高级的中断
8.5.3 8259编程微机原理及应用 ——第 8章 中断 75
特殊的完全嵌套方式同级的或高级的中断级联使用时,某一从片的 IRi对主片来说是同级的。
8.5.3 8259编程微机原理及应用 ——第 8章 中断 76
1 缓冲方式
0 非缓冲方式
(2) BUF
=
8.5.3 8259编程微机原理及应用 ——第 8章 中断 77
(3) M/S
当 8259A 工作于缓冲方式时 (BUF=1),
1 主 8259A
0 从 8259A
M/S =
8.5.3 8259编程微机原理及应用 ——第 8章 中断 78
当 8259A工作于非缓冲方式时 (BUF = 0),
芯片,引脚为输入,定义主从 SP
此时 M/S 不起作用。
8.5.3 8259编程微机原理及应用 ——第 8章 中断 79
(4) AEOI,规定中断的结束方式
(如何使 ISR中对应位置 0)
AEOI = 1 自动中断结束方式当 CPU 发出第二个 后,ISR
中的相应位复位,此时,不能实现中断嵌套。
INTA
8.5.3 8259编程微机原理及应用 ——第 8章 中断 80
AEOI = 0 非自动中断结束方式由程序发出 EOI 命令 (由 8259A 的
OCW 实现 ),使 ISR 中相应位复位。
8.5.3 8259编程微机原理及应用 ——第 8章 中断 81
8259A 的初始化编程逻辑用 ICW1设置:是否级联?
请求信号的触发方式后面是否用 ICW4
用 ICW2设中断类型码是否为级联方式?
本片为主片吗?
设 ICW3各位对应
IR0~IR 7 的连接状况设 ICW3 高 5位为 0;
低 3位为标识码用 ICW4 吗?
用 ICW4 设:为特殊全嵌套方式?
为缓冲方式?
为自动 EOI方式?
为 8086/8088系统?
END
N
Y
N
N
Y
8.5.3 8259编程微机原理及应用 ——第 8章 中断 82
例,PC/XT 系统中 8259A的初始化编程
20H,21H为 8259A的端口地址,
在 BIOS 中,8259A的初始化程序段如下:
MOV AL,13H ; ICW1=0001,0011B,边沿触发,单片使用,; 要 ICW4.
OUT 20H,AL
MOV AL,08H ; ICW2=08H,IR0~IR7对应的中断类型号; 为 08H~0FH
OUT 21H,AL
MOV AL,09H ; ICW4=09H,正常的嵌套方式,; 非自动中断结束方式
OUT 21H,AL
微机原理及应用 ——第 8章 中断 83
8259A 的操作命令字对 8259A 进行初始化编程后,
8259A作好了接收中断请求输入的准备,
在 8259A 工作期间可由操作命令字
OCW1~ OCW3 规定其各种工作方式 。
8.5.3 8259编程微机原理及应用 ——第 8章 中断 84
1,OCW1(中断屏蔽操作命令字)
设置或清除 IMR 的各个位。
1
A0 D7 D0
M7 M0…………
…………
Mi=1 表示 IRi被屏蔽
8.5.3 8259编程微机原理及应用 ——第 8章 中断 85
例:设 OCW1= 06H,则表示 IR1,IR2 两 个引脚上的中断申请被屏蔽,其他的中断申请
(IR0,IR3?IR7)则得到允许 。 8259A编程指令为:
MOV AL,00000110B ; OCW1屏蔽字
OUT 21H,AL ;屏蔽字写入奇地址口的 OCW1寄存器
8.5.3 8259编程微机原理及应用 ——第 8章 中断 86
2,OCW2 (优先取循环方式和中断结束方式操作命令字 )
0 R SL EOI 0 0 L2 L1 L0
A0 D7 D6 D5 D4 D3 D2 D1 D0
标志位
8.5.3 8259编程微机原理及应用 ——第 8章 中断 87
有两个作用:
(1) 8259A 工作于非自动中断结束方式时,如何复位 ISR 中的对应位?
正常方法:令 SL = 0,EOI =1
将 OCW2写入 8259A后,将刚刚被服务的 IRi对应位复位。
8.5.3 8259编程微机原理及应用 ——第 8章 中断 88
特殊方法:令 SL = 1,EOI = 1
写入 OCW2后,使 L2L1L0指定的位复位。
L2 L1 L0
0 0 0
0 0 1

1 1 1
D0
D1

D7
ISR中的 Di
IR0
IR1

IR7
对应的 IRi
8.5.3 8259编程微机原理及应用 ——第 8章 中断 89
(2) 定义 8259A 的优先权工作方法
R = 0 固定优先权方式
IR0? IR1? …? IR7
8.5.3 8259编程微机原理及应用 ——第 8章 中断 90
R = 1,SL = 0 优先权自动循环方式例,IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
初始优先权为,7 6 5 4 3 2 1 0
若 ISR = 0 1 0 1 0 0 0 0
则当 IR4
服务完毕后,优先权为,2 1 0 7 6 5 4 3
8.5.3 8259编程微机原理及应用 ——第 8章 中断 91
R = 1,SL = 1 优先权特殊循环方式此时,L2L1L0 规定循环开始时的最低优先权例,1 1? 0 0 1 0 1
IR5优先权最低此时,优先权为:
IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
1 0 7 6 5 4 3 2
8.5.3 8259编程微机原理及应用 ——第 8章 中断 92
例:若使 8086系统中 8259A的优先级顺序为 IR3,IR4,IR5,IR6 IR7,IR0 IR1,IR2,试编写一段程序实现该优先顺序,设 8259A的偶地址为
20H。
根据题意要求,为实现上述优先级顺序,
应先确定 OCW2,然后将它写入 8259A的偶地址端口:
OCW2:
R S L E O I 0 0 L 2 L 1 L 0
1 1 0 0 0 0 1 0
MOV AL,0C2H ; OCW2
OUT 20H,AL ;把 OCW2写入 8259A
的偶地址端口 。
8.5.3 8259编程微机原理及应用 ——第 8章 中断 93
例:试编一段程序,用以清除 8086系统中
8259A的 ISR第 6位( ISR6),8259A的偶地址为 20H。
为实现题意要求,应先确定 OCW2的内容,
然后将 OCW2写入 8259A的偶地址端口。
OCW2:
MOV AL,66H ; OCW2
OUT 20H,AL ;把 OCW2写入 8259A
的偶地址端口。
R SL EOI 0 0 L2 L1 L0
0 1 1 0 0 1 1 0
微机原理及应用 ——第 8章 中断 94
3,OCW3
1 0 ESMM SMM 0 1 P RR RIS
A0 D7 D0
标志位
(特殊屏蔽方式和中断查询方式操作命令字 )
8.5.3 8259编程微机原理及应用 ——第 8章 中断 95
有三个作用:
(1) 设置和撤消特殊屏蔽工作方式
正常的屏蔽方式由 OCW1 设置 IMR 实现
8.5.3 8259编程微机原理及应用 ——第 8章 中断 96
特殊的屏蔽工作方式因此,可以通过设置或撤消特殊的屏蔽工作方式,
动态改变优先权的结构。
正常的屏蔽方式设置特殊的屏蔽方式只要 IMR中的对应位没有置,1”,
8259A就可以接受其中断请求。
撤消特殊的屏蔽方式正常的屏蔽方式

1S M M
1ES M M令

1S M M
0ES M M令微机原理及应用 ——第 8章 中断 97
(2) 为 CPU 读取 8259A内部寄存器提供选择
IN AL,INTA1 ; IMR? AL
8259A 中的 IMR由 OCW1设置,对应奇地址端口,可以写入,也可以读出。
8.5.3 8259编程微机原理及应用 ——第 8章 中断 98
8259A 中 IRR,ISR 只能读出,不能写入,都对应偶地址端口 。 此时,可先写入 OCW3,
OCW3中的 RR,RIS 规定从偶地址端口读出的是 IRR 或 ISR 的值 。
MOV AL,OCW3
OUT INTA0,AL
IN AL,INTA0 ; 若 OCW3中
RR RIS 则读出的是
1 1 ISR
1 0 IRR
8.5.3 8259编程微机原理及应用 ——第 8章 中断 99
例:试编写一段程序,以实现将 8086系统中 8259A的 IRR,ISR,IMR三寄存器的内容读出并送入存储器从 0080H开始的数组中,设
8259A的偶地址为 20H,奇地址为 21H。
MOV AL,0AH ; OCW3=0AH,指出要读 IRR
OUT 20H,AL ; OCW3写入 8259A的偶地址端口
IN AL,20H ;读回 IRR的内容
MOV [080H],AL ;将 IRR的内容存入从 080H开始的单元中
MOV AL,0BH ; OCW3= 0BH,指出要读 ISR
OUT 20H,AL
IN AL,20H ;读回 ISR的内容
MOV [ 081H ],AL ;将 ISR的内容存入内容
IN AL,21H ;读回 IMR
MOV [082H],AL ; IMR内容存入内存微机原理及应用 ——第 8章 中断 100
8259A 对 ICW,OCW的识别
8259A 只占两个端口,但 ICW 有 4个,
OCW有 3个。
1,A0 = 0 (偶地址端口 ) 写入的有:
ICW1,OCW2,OCW3
(D4=1)?

0D
0D
4
3?

0D
1D
4
3
用标志位识别
8.5.3 8259编程微机原理及应用 ——第 8章 中断 101
2,A0 = 1 (奇地址端口 ) 写入的有:
ICW2? ICW3? ICW4? OCW1
按写入顺序识别
8.5.3 8259编程