8259A的其他应用
计算机接口与微机原理-第12周-中断控制器8259A-c

计算机接⼝与微机原理-第12周-中断控制器8259A-c可编程中断控制器8259Ap IBM PC/XT的中断指令p DOS系统功能调⽤p BIOS中断类型p8259A的中断级联p IBM PC/AT的中断级联p8259A的应⽤举例p8259A的编程⽅法中⼭⼤学信息科学与技术学院陈任IBM PC/XT中的中断指令(1) 8086/8088系统中与中断有关的专⽤指令。
1.INT n 软件中断指令(Interrupt)-软件中断指令,也称为软中断指令,其中n为中断类型号,其值必须在0~255的范围内。
-可在编程时安排在程序中的任何位置上,因此也被称为陷阱中断。
-CPU执⾏INT n指令时,先把标志寄存器的内容推⼊堆栈,再把当前断点的段基地址CS和偏移地址IP⼊栈保护,并清除中断标志IF和单步标志TF。
-然后将中断类型号n乘以4,找到中断服务程序的⼊⼝地址表的表头地址,从中断⽮量表中获得中断服务程序的⼊⼝地址,将其置⼊CS和IP寄存器,CPU就⾃动转到相应的中断服务程序去执⾏。
-原则上讲,利⽤INT n指令能以软件的⽅法调⽤所有256个中断的服务程序,尽管其中有些中断实际上是由硬件触发的。
因此可以利⽤这条指令来调试各种中断服务程序。
-例如,可⽤INT 0指令让CPU执⾏除法出错中断服务程序,可⽤INT 2指令执⾏NMI中断服务程序,⽽不必在NMI引脚上加外部信号。
IBM PC/XT中的中断指令(2)1. INT n 软件中断指令(Interrupt)2. INTO 溢出中断指令(Interrupt On Overflow)-当带符号数进⾏算术运算时,如果溢出标志OF置1,则可由溢出中断指令INTO产⽣类型为4的中断,若OF清零,则INTO指令不产⽣中断,CPU继续执⾏后续程序。
-在带符号数进⾏加减法运算之后,必须安排⼀条INTO指令,⼀旦溢出就能及时向CPU提出中断请求,CPU响应后可作出相应的处理,如显⽰出错信息,使运算结果⽆效等。
总结介绍8259中断控制器

8259中断控制器Overview前言8259A芯片是一个中断管理芯片,中断的来源除了来自于硬件自身的NMI中和来自于软件的INT n指令造成的软件中断之外,还有来自于外部硬件设备的中断,这些中断的可屏蔽的。
这些中断也都通过PIC(Programmable Interrupt Controller)进行控制,并传递给CPU。
一个8259A芯片最多可接收8个中断源,但由于可以将2个或多个8259A芯片进行级连(cascade),并且最多可以级链到9个,所以最多可以接64个中断源。
如今绝大多数的PC 都拥有2个8259A,这样最多可以接收15个中断源。
通过8259A可以对单个中断源进行屏蔽。
在一个8259A芯片上有如下几个内部的寄存器:1.Interrupt Mask Register(IMR)。
2.Interrupt Request Register(IRR)。
3.In Service Register(ISR)。
IMR被用作过滤被屏蔽的中断,IRR被用作暂时放置未被进一步处理的Interrupt,当一个Interrupt正在被CPU处理时,此中断被放置在ISR中。
除了这几个寄存器之外,8259A还有一个单元叫做Priority Resolver,当多个中断同时发生时,Priority Resolver根据它们的优先级,将最高优先级的优先传递给CPU。
工作原理当一个中断请求从IR0到IR7中的某根线到达IMR时,IMR首先判断IR是否被屏蔽,如果被屏蔽,则此中断请求被丢弃;否则,则将放入IRR中。
在此中断请求不能进行下一步处理之前,它一直被放置在IRR中。
一旦发现处理中断的时机已到,Priority Resolver将从所有被放置于IRR中的中断中挑选出一个优先级最高的中断,将其传递给CPU去处理。
IR号越低的中断优先级级别越高,比如IR0的优先级是最高的。
8259A通过发送一个INTR(Interrupt Request)信号给CPU,通知CPU有一个中断到达。
8259A介绍

(5)控制逻辑电路 控制逻辑电路根据CPU对8259A编程设定的工作方 式 管 理 8259A , 负 责 发 出 INTR 和 接 收 INTA# , 并 使 INTA#转化为内部所需的各种控制信号。 (6)读/写电路 读/写电路可接收CPU对8259A的初始化命令字ICW 和操作命令字OCW,并将其存入相应的端口寄存器, 来规定8259A的工作方式和控制模式;也可以向CPU提 供各端口寄存器的内容。 (7)数据总线缓冲器 连 接 系 统 总 线 和 8259A 的 内 部 总 线 , 用 于 传 输 8259A的控制字或状态字,以及中断类型号。 (8)级连缓冲/比较器 控制多片8259A的级连,扩展中断级。多片8259A 级连时,一片为主,其余为从。最多可9片级连,扩 展64级中断。
1.中断嵌套方式
(2)特殊全嵌套方式 和一般全嵌套方式基本相同,区别在于: 在特殊全嵌套方式下,处理某一中断时, 可实现对同级中断请求的响应。 系统中只有单片8259A时,通常用全嵌 套方式;而当8259A多片级连时,主片 必须采用特殊全嵌套方式,从片可采用 一般全嵌套方式。
一般全嵌套方式与特殊全嵌套方式的区别
8259A中断优先权的管理方式有固定优先权方式和自 动循环优先权方式两种。 (1)固定优先权方式 注: 特殊全嵌套仅用于多个8259A级连时的 在固定优先权方式中,IR7~IR0的中断优先权 主 8259A , 而 不 能 用 于 从 属 8259A 或 单 的级别是由系统确定的。 8259A系统。 它 们 由 高 到 低 的 优 先 级 顺 序 是 : IR0, IR1, IR2, …, IR7, 其中,IR0的优先级最高,IR7的优 先级最低。当有多个IRi请求时,优先权判决器(PR) 将它们与当前正在处理的中断源的优先权进行比较, 选出当前优先权最高的IRi,向CPU发出中断请求INT, 请求为其服务。
微型计算机技术及应用习题答案

微型计算机技术及应用习题答案第一章微型计算机概述1.1微处理器、微型计算机和微型计算机系统三者之间有什么不同?答:①微处理器是微型计算机的核心,是微型计算机的一部分。
它是集成在一块芯片上的CPU,由运算器和控制器组成。
②微型计算机包括微处理器、存储器、I/O接口和系统总线,是微型计算机系统的主体。
③微型计算机系统包括微型计算机、外设及系统软件三部分。
1.2CPU在内部结构上由哪几部分组成?CPU应具备哪些主要功能?答:在内部结构上由以下几部分组成:①算术逻辑部件(ALU);②累加器和通用寄存器组;③程序计数器(指令指针)、指令寄存器和译码器;④时序和控制部件。
应具备以下主要功能:①可以进行算术和逻辑运算;②可保存少量数据;③能对指令进行译码并执行规定的动作;④能和存储器、外设交换数据;⑤提供整个系统所需要的定时和控制;⑥可以响应其他部件发来的中断请求。
1.3累加器和其他通用寄存器相比,有何不同?答:许多指令的执行过程以累加器为中心;输入/输出指令一般也以累加器来完成。
1.4微处理器的控制信号有哪两类?答:一类是通过对指令的译码,由CPU内部产生的。
这些信号由CPU送到存储器、I/O接口电路和其他部件。
另一类是微型机系统的其他部件送到CPU的。
通常用来向CPU发出请求。
如中断请求、总线请求等。
1.5微型计算机采用总线结构有什么优点?答:首先是系统中各功能部件之间的相互关系变为各个部件面向总线的单一关系。
其次是一个部件只要符合总线标准,就可以连接到采用这种总线标准的系统中,使系统功能得到扩充。
1.6数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么,要靠什么来区分地址或数据?答:1.数据总线是双向三态;地址总线是单向输出三态。
2.数据和地址复用时,必须有一个地址选通信号来区分该总线上输出的是地址还是数据。
1.7控制总线传输的信号大致有哪几种?答:包括CPU送往存储器和I/O接口的控制信号,如读信号、写信号、中断响应信号、存储器和I/O接口区分信号等。
利用8259A扩展MCS—51系列单片机外部中断源

关键 词 : S 5 MC 一 l系列 单 片机 ; 2 9 可 鳊 程 中 断控 制 嚣 ; 口 8 5A 接 中 图 分 类 号 : 6 . TP 3 8 1 文献标识 码 : A 储 区 内按 中 断 类 型 码 0 ~ 2 5 的 顺 序 将 各 # 2#
中 , 有 中 断 当
法。
2 8 5 A 可 编 程 中 断 控 制 器 与 M Cs 5 29 _1
单片 机 接 口 电路
由 于 MCS 5 单 片 机 在 响 应 外 部 中 断 请 求 一1
} 0 .
维普资讯
第 1期
付 占稳 等
利 用 8 5 A 扩 展 MCS 5 29 一 1系 列 单 片 机 外 部 中 断 源 O fI t r u t 。 n e r p )
总第 7 1期
文 章 簟 号 1 0 -S 4 Z 0 ) 10 1 - 4 0 8 1 3 ( 0 2 0 -0 00
利 用 8 5 A 扩 展 M CS 5 29 一 1系 列
单 片 机 外 部 中 断 源
付 占稳 , 建 业 刘
( 北 科技 大 学 电 气信 息 学 院 , 北 石 家庄 河 河
l 】
时 不 执 行 中 断 响 应 周 期 , 此 , 何 处 理 8 5 A 因 如 29
的 中 断 响 应 信号 引脚 I NTA , 必 须 考 虑 的 问 是
题 。若 8 5 A 的 I 29 NTA 引 脚 悬 空 , 当 8 5 A 则 29
由 于 M C 一 1单 片 机 不 能 自 动 获 取 8 5 A S5 29 中 断 源 的 中 断 类 型 码 , 法 识 别 中 断 辣 , 以 无 所 M CS 5 一 1的 中 断 管 理 利 用 了 8 5 A 的 程 序 查 询 29 中 断 功 能 ; C 一 1响 应 中 断 后 进 人 到 I M S5 NTo 断 人 口 , 中 首 先 向 8 5 A 发 程 序 查 询 中 断 命 令 字 OC 3 29 W —
8259A介绍

特殊屏蔽方式允许低优先 级中断请求中断正在服务 在有些场合中,希望一个中断服务程序能动态地改变系 的高优先级中断。
6.5.4 8259A工作过程
8259A进入工作状态的先决条件是必须按要求对其初始
化,使其处于准备就绪状态。当完成初始化后,8259A便 处于就绪状态,随时可接收外部的中断请求信号。 8259A对外部中断请求的响应和处理过程如下: (1) 当中断请求输入线IRQ0~IRQ7中有一条或多条变高 时,则中断请求寄存器IRR的相应位置“1”。 (2) 未被屏蔽的中断请求信号进入优先权判别器,优先级判 定电路选出优先级最高的中断请求,控制电路由INT引脚
(2)自动循环优先权方式
在自动循环优先权方式中,IR7~IR0优先权级别是可以 改变的。 其变化规律是:当某一个中断请求IRi服务结束后,该中 断的优先权自动降为最低,而紧跟其后的中断请求IR(i+1) 的优先权自动升为最高,IR7~IR0优先权级别按如下所示的 右循环方式改变。
假设在初始状态IR0有请求,CPU为其服务完毕,IR0优先权 自动降为最低,排在IR7之后,而其后的IR1的优先权升为最高, 其余依次类推。这种优先权管理方式,可以使8个中断请求都拥 有享受同等优先服务的权利。
初始最低优先级,由用户通过置位优先权命令
指定。
因不保留当前正在服务 3.中断结束方式
的中断的状态,所以不 当某一IRi中断被服务时,ISR中的相应位ISRi=1。 能用于中断嵌套方式。
当服务结束后,则必须清零该ISRi位。 (1)自动中断结束方式AEOI 此方式只适用于单片8259A系统中,且多个中断不会 嵌套。系统进入中断响应后,8259A在接收到CPU发来 的第二个INTA的信号时自动将ISR中的对应位清0。 (2)非自动中断结束方式EOI
最新 计算机原理与应用 复习1-填空题

1.8088中,AD7 -AD0 是线。
2.8088的段寄存器是位的寄存器。
3.在IBM-PC/XT中,地址FFFFOH是地址。
4.8088的中断向量表在内存的区域,它可以容纳个中断向量,每个中断向量占个字节。
5.8255A有个8位端口,其中端口可以以双向方式工作。
6.在串行异步通信时,接收端只要采样到位,就知道有一个有效的字符。
7.十进制数61.5转换为二进制是,转换为十六进制是。
8.已知X的原码是10001000,则X的反码是,补码是。
9.逻辑运算11110101和11101110的相“或”的结果是。
10.微机硬件系统是指构成微机系统的,微机软件系统是指。
软件系统包括和两大类。
11.高速缓冲存储器的英文名称是。
12.8086 CPU通过寄存器和寄存器能准确找到指令代码。
13.8086中地址/数据线分时复用,为保证总线周期内地址稳定,应配置,为提高总线驱动能力,应配置。
14.类型码为的中断所对应的中断向量存放在0000H:0058H开始的4个连续单元中,若这4个单元的内容分别为,则相应的中断服务程序入口地址为5060H:7080H。
15.CPU 在指令的最后一个时钟周期检测INTR引脚,若测得INTR为且IF为,则CPU在结束当前指令后响应中断请求。
16.设8251A工作于异步方式,收发时钟频率为38.4KHz,波特率为2400。
数据格式为7位数据位,1位停止位,偶校验,则8251A的方式字为。
17.CPU从I/O接口中的获取外设的“准备就绪”或“忙/闲”状态信息。
18.当存储器的读出时间大于CPU所要求的时间,为保证CPU与存储器的周期配合,就需要用信号,使CPU插入一个状态。
19.CPU响应可屏蔽中断的条件是、、。
20.8255A工作于方式1输入时,通过信号表示端口已准备好向CPU输入数据。
21.总线按其作用和位置可分为、、和四种,RS-232C属于总线。
22.中断控制器8259A中的中断屏蔽寄存器IMR的作用是。
8259A中断控制器

– 如果进入的中断申请比 ISR 中记录的中断优先级高, » 则通过 8259A 的 INT 引脚向 CPU发出中断请求信号; – 如果进入的中断申请不比 ISR 中记录的中断优先级高, » 同级或低级,则不向 CPU 发中断请求信号。
① 中断申请寄存器IRR 锁存外部的中断申请。 • 若 IR0~IR7 引脚上有中断申请,则将 IRR 相应位置1
(1) 处理外设中断申请,决定是否向 处理外设中断申请,决定是否向CPU发中断申请信号 发中断申请信号 ① 中断申请寄存器IRR 锁存外部的中断申请。 • 若 IR0~IR7 引脚上有中断申请,则将 IRR 相应位置1 ② 中断屏蔽寄存器 IMR 决定 IRR 中的中断申请 是否进入优先级裁决器 PR。 • IMR对应位为 0,允许中断申请进入优先级裁决器,
第二个 中断响应周期 T1 T2 T3 T4
向量类型
三、8088CPU的中断优先权 8088CPU的中断优先权
• 优先级 • 高
• 非屏蔽中断 • 可屏蔽中断
低
• 内中断 ( 除零,INT 指令,断点,INTO指令 )
•
低
内中断( 单步 )
当有多个中断源同时产生中断申请时, 当有多个中断源同时产生中断申请时, CPU先响应优先权最高的中断源,再 先响应优先权最高的中断源, 先响应优先权最高的中断源 响应优先级较低的中断源。 响应优先级较低的中断源。
– ISR中的某位为1,表示CPU正在响应此级中断, » 即正在执行此中断源的中断子程; – ISR中的某位为 0,表示CPU没有或已响应完此级中断, » 即不在执行此中断源的中断子程 总线 D0 ~ D7 A0 A5 ~ A9 IOR IOW INTA INTR 片 选 CS 译 码 RD WR INTA INT 数据线 A0 D0 ~ D7
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图6-23是IBM PC/XT系统可屏蔽硬中断的连线示意图,利用连接在8259A IR0上的时钟信号,编写具有定时功能的程序,要求每隔5秒在屏蔽上显示一个字符‘A’。
时钟信号连接在IR0上,由其申请的中断类型号设为08H。
时钟信号是频率为18.2Hz的方波信号。
图6-23 可屏蔽硬中断的连线示意图
通常,完整程序包括主程序和中断服务程序。
在主程序中需要完成以下几项工作:
(1)CPU关中断( 用CLI置IF=0 ) 。
(2)保存原中断向量( 用35H系统功能)。
(3)设置中断向量( 用25H系统功能)。
(4)对8259A进行工作方式初始化,设置中断屏蔽字,使21H端口对应位为0,允许中断申请进入优先级裁决器。
(5)对中断服务子程序初始化。
(6)CPU开中断(用STI置IF=1)。
(7)主程序在返回DOS前,应恢复原中断向量( 用25H系统功能)。
在中断服务子程序中需完成以下几项工作:
(1)包括现场。
(2)开中断,允许中断嵌套。
(3)完成中断源申请的任务。
(4)关中断。
(5)发中断结束命令。
(6)中断返回。
时钟信号是一个频率为18.2Hz的方波信号,即每秒向8259A发出18.2次的中断申请。
如果CPU响应该中断申请,则以每秒18.2次的频率执行08H类型的中断子程。
中断申请的任务是每5秒显示一个字符‘A’,1秒执行18.2次,则5秒执行18.2×5=91次,只在执行到第91次时显示‘A’。
在中断子程中用一个量来计数中断子程被执行的次数,即CPU响应IR0中断申请的次数。
当达到91次,则显示‘A’,并将计数值清0,重新开始计数。
而在其它情况下只计数,不显示‘A’。
注意,必须在中断子程的最后发中断结束命令EOI。
具体程序代码如下:
code SEGMENT
ASSUME CS:code
start: CLI ;关中断
MOV AL, 08H
MOV AH, 35H
INT 21H ;取系统08H类型中断向量
PUSH ES ;用堆栈保存
PUSH BX
PUSH DS
MOV DX, OFFSET display ;设置08H 类型中断向量
MOV AX, SEG display
MOV DS, AX
MOV AL, 08H
MOV AH, 25H
INT 21H
POP DS
IN AL, 21H ;设置8259A中断屏蔽字,
AND AL, 1111 1110B ;允许IR0中断
OUT 21H, AL
MOV CX, 0 ;置中断子程计数器初值为0
STI ;CPU开中断
……. ;其他需处理任务
POP DX ;恢复系统08H类型中断向量
POP DS
MOV AL, 08H
MOV AH, 25H
INT 21H
MOV AH, 4CH ;返回DOS
INT 21H
display PROC ;自编的08H类型中断子程
PUSH AX ;保护现场
INC CX ;执行中断子程一次,计数值加1
CMP CX, 91
JNZ exit ;到91次了吗?未到跳转至exit
MOV DL, ’A’ ;到,显示‘A’
MOV AH, 02
INT 21H
MOV CX, 0 ;清计数值为0,重新计时
exit: MOV AL, 20H ;发中断结束命令EOI
OUT 20H, AL
POP AX ;恢复现场
IRET ;中断返回
display ENDP
code ENDS
END start。