第七章 中断系统_续
第七章 中断系统
的中断请求从INT输出,CPU的INTR引脚。 若CPU处于开中断状态,在当前指令结束后,连续发2 个中断响应信号,8259A收到第一个中断响应信号,ISR 相应位置1,将IRR的相应位复位。
8259A在收到第二个中断响应信号后,把中断类型号
送到数据总线。 中断响应后,如8259A工作在自动结束中断方式,8259A 会在第二个中断响应结束后,把ISR相应位成0;如工作在普 通EOI方式,则必须由CPU发EOI命令。
CPU响应单级中断的条件
有中断请求信号 中断是开放的
单级中断的处理过程
中断请求 中断响应 中断处理 中断返回
发中断响应信号 关中断 保护处理器的现行状态 转去中断服务程序首地址 保护现场 中断服务 恢复现场 开中断 中断返回
第三节 多级中断
多级中断 优先权判别及中断源的识别
MOV AL, 1BH ;单片,电平触发,要ICW4 OUT 60H,AL
MOV AL, 1BH OUT 60H,AL MOV AL, 38H OUT 61H, AL MOV AL,09H OUT 61H,AL MOV AL, 22H OUT 61H, AL
;单片,电平触发,要ICW4
; IRR0的中断类型码为38H ;普通的全嵌套方式,缓冲方式, ;正常EOI ; 屏蔽IRR1和IRR5
2. OCW2
3. OCW3
3.8259A编程应用
1.初始化
例1:设IBM PC机接有一片8259A(两个端口地址为60H、61H),管理8个 中断源,采用普通完全嵌套方式,普通EOI方式,中断请求高电平有效, 优先级固定,IRR0最高,IRR7最低,IRR0的中断类型号为38H。IRR1、 IRR5需要被屏蔽。
微机原理与接口技术——中断系统
2、内部中断——软件中断
内部中断指由指令的执行或软件对标志寄存器中 某个标志的设置产生的中断
专用中断
指令中断
内部中断的种类
(1)除法出错中断 类型号为00H
除法出错中断既不是外部硬件产生,也不是用 软件指令产生,而是CPU自身产生的,因此0型中 断没有对应的中断指令,即指令系统中没有INT 0 这条指令。
30~3FH 40~FFH
DOS保留使用 DOS内部使用 DOS保留使用 用户自定义
DOS 可调用
1、外部中断——硬件中断
1、非屏蔽中断(NMI):不受中断标志位的控制,中断类型 号为2,所以中断向量放在0000:0008开始的4个单元中。NMI 中断一般用于紧急情况的处理,不受中断标志位IF影响 。 2、可屏蔽中断(INTR):受中断标志位的控制,IF=1, CPU才能响应INTR中断。CPU响应INTR中断时,往INTA引 脚上发两个负脉冲,外设接到第二个负脉冲后,立即往数据总 线上送出中断类型码,供CPU读取。
中断源
引起CPU中断的事件,发出中断请求的来源。
异常中断 内部中断
软件中断
异常事件引起 中断指令引起
可屏蔽中断 外部中断
非屏蔽中断
INTR中断 NMI中断
引入中断的原因
提高数据传输率; 避免了CPU不断检测外设状态的过程,提高了
CPU的利用率。 实现对特殊事件的实时响应。
中断系统
中断系统是指实现中断功能的软硬件的统称。功 能有: 正确识别中断请求,实现中断响应、中断处理
INTR
IRQ0 系统定时器 IRQ1 键盘 IRQ2 彩色/图形接口
8259A
IRQ3 保留(串口) IRQ4 串口
IRQ5 保留(LPT)
第7章 DOS中断和BIOS中断
表7.1 BIOS中断类型 P316
CPU中断类型 8259中断类型 BIOS中断类型 10 显示器I/O 11 取设备信息 12 取内存容量 13 磁盘I/O 14 RS232串行口 15 磁带I/O 16 键盘I/O 17 打印机I/O 18ROM BASIC 19 引导装入程序 1A 时钟 40 软盘BIOS
2012-12-28 第12页
5.字符显示 例7.14(P333) Mov ah,2 ;置光标位置 Mov bh,0 ;0页 Mov dh,20 ;row 20 Mov dl,25 ;colume 25 Int 10h Mov ah,9 Mov al,’*’ Mov bh,0 Mov bl,7;00000111 表7.7 Mov cx,1;字符重复次数 Int 10h
2012-12-28 第4页
7.1.2BIOS键盘中断
AH 0 1
2
表7.4 BIOS键盘中断(INT 16H) 功能 返回参数 从键盘读一字符 AL=字符码(ASCII码) AH=扫描码 读键盘缓冲区字符 如ZF=0 AL=字符码(ASCII码) AH=扫描码 如ZF=1 缓冲区空 取键盘状态字节 AL=键盘状态字节
在DEBUG中调试检测 ah=0,2 int 16h
2012-12-28
第5页
7.1.3DOS键盘功能调用
表7.5 DOS键盘操作(INT 21H) AH 功能 调用参数 返回参数 1 从键盘输入一字符并回显 AL=字符 6 读键盘字符 DL=0FFH 若有字符可取,AL=字符 ZF=0 若无字符可取,AL=0 ZF=1 7 从键盘输入一字符不回显 AL=字符 8 从键盘输入一字符不回显 AL=字符 检测Ctrl-Break A 输入字符到缓冲区 DS:DX=缓冲区首地址 B 读键盘状态 AL=0FFH有键输入 AL=0无键输入 C 清除键盘缓冲区 AL=键盘功能号 并调用一种键盘功能 (1,6,7,8,或A)
第七章,微型计算机的中断系统
1
第七章:微型计算机的中断系统——中断控制器8059A 8259A的内部结构和工作原理
2
第七章:微型计算机的中断系统——中断控制器8059A 8259A的内部结构和工作原理
数据总线缓冲器:它是8259A与系统数据总线的接口,是8位双向三态缓冲器。 CPU与8259A之间的控制命令信息、状态信息以及中断类型信息,都是通过该 缓冲器传送的。 读/写控制逻辑:CPU通过它实现对8259A的读/写操作。 级连缓冲器:用以实现8259A芯片之间的级连,使得中断源可以由8级扩展至 64级。 控制逻辑电路:对整个芯片内部各部件的工作进行协调和控制。 中断请求寄存器IRR:8位,用以分别保存8个中断请求信号,当相应的中断请 求输入引脚有中断请求时,该寄存器的相应位置1。 中断屏蔽寄存器IMR:8位,相应位用以对8个中断源的中断请求信号进行屏蔽 控制。当其中某位置”0”时,则相应的中断请求可以向CPU提出;否则,相应 的中断请求被屏蔽,即不允许向CPU提出中断请求。该寄存器的内容为8259A 的操作命令字OCW1,可以由程序设置或改变。 中断服务寄存器ISR: 8位,当CPU正在处理某个中断源的中断请求时,ISR寄 存器中的相应位置1。 优先级比较器PR:用以比较正在处理的中断和刚刚进入的中断请求之间的优先 级别,以决定是否产生多重中断或中断嵌套。
6
第七章:微型计算机的中断系统——中断控制器8059A 8259A的编程——8259A的控制字
8259A的命令字有两种。一种是初始化命令字(ICW),在8259A启动之前写 入,使其处于预定的初始状态。另一种是操作命令字(OCW),使处于初始状态 的8259去执行具体的某种操作方式。操作命令字可在8259初始化后的任何时 刻写入。
IR7 IR6
微机原理14162中断处理过程
8
§7.2 中断处理过程
二、CPU对中断的响应
3. 识别中断源
CPU要对中断进行处理,必须找到相应的中断服 务程序的入口地址,这就是中断源的识别。
4. 保护现场
为了不使中断服务程序的运行影响主程序的状态, 必须把断点处的相关寄存器及标志寄存器压栈保 护。
5. 执行中断服务程序
6. 恢复现场 7. 开中断及返回
2019/10/3
4
§7.2 中断处理过程
一、CPU响应中断的条件
中断允许触发器的状态可用指令CLI和 STI来改 变,下述三种情况可关闭中断:
1) 当CPU复位时,中断允许触发器处于关中 断状态;
2) 中断请求被响应后,CPU自动关中断; 3) CPU执行关中断指令CLI后,中断关闭。
2019/10/3
2019/10/3
7
§7.2 中断处理过程
二、CPU对中断的响应
CPU进入中断响应周期后,中断响应过程如下:
1. 关中断
CPU在响应中断后,发出中断响应信号INTA,同 时内部自动关中断,以禁止接受其它的中断请求。
2. 保护断点 把断点处的IP及CS值入栈保存,以备中断处理完 后能正确返回断点。
2019/10/3
四、中断优先级
17
§7.2 中断处理过程
实现方法:
将8个外 设的中断 请求触发 器组合为 一个端口, 并给这个 端口赋以 设备号 (口地址),
2019/10/3
四、中断优先级
18
§7.2 中断处理过程
四、中断优先级
然后,把各外设的中断请求信号相或后作为INTR信 号。任何外设有中断请求时,都可向CPU发出INTR 信号。CPU响应中断后,把中断寄存器的状态作为 一个输入端口读进CPU,然后逐位检测其状态,若 有中断请求就转入相应的中断服务程序,这样优先 级的级别取决于软件查询的顺序,先测试的中断源 具有较高的优先级。
第7章 中断系统
可 屏 蔽 中 断 请 求
软件中断
硬件中断
小结: 中断分类及中ຫໍສະໝຸດ 类型码8086/8088系统最多可处理256级不同类型的中断。
可屏蔽中断(INTR) 外部中断(硬件中断) 非屏蔽中断(NMI,中断类型码2) 中断分类 单步中断(中断类型码1) 内部中断(软件中断) 断点中断(中断类型码3) 溢出中断(中断类型码4) Int n 中断
器退出暂停状态,响应中断,进入中断处理程序。
若现行指令为WAIT指令,且 TEST 引脚加入低电平信号, 则中断请求信号INTR产生后,便使处理器脱离等待状态,响 应中断,进入中断处理程序。
HLT: 暂停指令
(4) 8259A连续两次接收(2个总线周期) INTA = 0的中断 响应信号后,便通过总线将中断矢量号送CPU。 (5) 保护断点。将标志寄存器内容、当前CS内容及当前IP 内容压入堆栈: (SP)←(SP)-2
((SP)+1:(SP))←(PSW)
(SP)←(SP)-2 ((SP+l:(SP))←(CS) (SP)←(SP)-2 ((SP)+1:(SP))←(IP)
(6) 清除IF及TF(IF←0,TF←0),以便禁止其它可屏蔽中 断或单步中断发生。 (7) 求中断程序的入口地址 :根据8259A向CPU送的中断 矢量号n求得矢量地址,再查中断矢量表,得相应中断处理程 序首地址(段内偏移地址和段地址),并将 位首地址置入CS及
7.1 概述
中断和异常是处理器处理突发事件时所采取的两种不同 的处理方法,具体来说,中断指的是处理器暂停当前的程序, 转而去处理中断事件;而异常虽然也会对异常事件作出反应, 但不一定会暂停当前的程序。 在8086/8088处理器时代,中断主要包括外部中断 和 内 部中断两种。 在386/486等32位处理器时代,内部中断的数量和功能被 扩充,习惯上,称内部中断为异常,而中断则主要指外部中 断。
单片机讲义第七章
一、中断的起因
什么可以引起中断? 生活中很多事件可以引起中断:有人 按了门铃了,电话铃响了,你的闹钟闹响 了,你烧的水开了….等等诸如此类的事件, 我们把可以引起中断的称之为中断源,单 片机中也有一些可以引起中断的事件, 8051中一共有5个:两个外部中断,两个 计数/定时器中断,一个串行口中断。
三、中断的响应过程
当有事件产生,进入中断之前我们必须先记住现 在看书的第几页了,或拿一个书签放在当前页的位置, 然后去处理不同的事情(因为处理完了,我们还要回 来继续看书):电话铃响我们要到放电话的地方去, 门铃响我们要到门那边去,也说是不同的中断,我们 要在不同的地点处理,而这个地点通常还是固定的。 89C51中也是采用的这种方法,五个中断源,每个 中断产生后都到一个固定的地方去找处理这个中断的 程序,当然在去之前首先要保存下面将执行的指令的 地址,以便处理完中断后回到原来的地方继续往下执 行程序。
二、中断的嵌套与优先级处理
设想一下,我们正在看书,电话铃响了,同时又 有人按了门铃,你该先做那样呢?如果你正是在等一 个很重要的电话,你一般不会去理会门铃的,而反之, 你正在等一个重要的客人,则可能就不会去理会电话 了。如果不是这两者(即不等电话,也不是等人上 门),你可能会按你通常的习惯去处理。总之这里存 在一个优先级的问题, 单片机中也是如此,也有优先级的问题。优先级 的问题不仅仅发生在两个中断同时产生的情况,也发 生在一个中断已产生,又有一个中断产生的情况,比 如你正接电话,有人按门铃的情况,或你正开门与人 交谈,又有电话响了情况。考虑一下我们会怎么办吧。
电平触发的外部中断的清除
对于电平触发的外部中断,CPU响应中断后, 虽然也是由硬件清除了相应的标志位,但是不 能对外部引脚上的电平进行处理,也就是说, 这时如果外部引脚上的低电平依然存在,会造 成重复中断,因此我们应该在电路上增加对外 部引起中断的信号进行处理。P148图7-5是一 个可行的方案之一。通过I/O口输出一个信号, 使得外部引脚上的中断请求信号变为高电平。
硬件技术基础第七章中断系统
CPU响应中断的条件和过程 CPU响应中断的条件和过程
恢复现场 把所保存的各个内部寄存器的内容和标志位的状态从 堆栈弹出,送回CPU中的原来位置。这个操作在8088 CPU中的原来位置 8088中也 堆栈弹出,送回 CPU中的原来位置。这个操作在8088 中也 是由服务程序中用POP指令来完成的。 POP指令来完成的 是由服务程序中用POP指令来完成的。 开中断与返回 在中断服务程序的最后,要开中断(以便CPU CPU能响应 在中断服务程序的最后,要开中断(以便 CPU能响应 新的中断请求)和安排一条返回指令,将堆栈内保存的IP 新的中断请求)和安排一条返回指令,将堆栈内保存的IP CS值弹出 程序就恢复到主程序中运行。 值弹出, 和CS值弹出,程序就恢复到主程序中运行。
中断系统
教学目的和要求
本章主要介绍中断的基本概念 , 中断响应过程 , 8088的中断方式 的中断方式, PC/XT的中断方式 的中断方式, 8088的中断方式,IBM PC/XT的中断方式,之后又介绍了 中断控制器8259 重点掌握中断概念、中断响应过程、 8259, 中断控制器 8259 , 重点掌握中断概念 、 中断响应过程 、 8088中断方式 中断方式。 8088中断方式。
中断系统
中断的屏蔽:有些中断源产生的中断,可以用编程的方法, 中断的屏蔽:有些中断源产生的中断,可以用编程的方法, CPU不予理睬 不予理睬。 使CPU不予理睬。 CPU响应中断转去执行中断服务程序前, CPU响应中断转去执行中断服务程序前,需要把被中 响应中断转去执行中断服务程序前 断程序的现场信息保存起来,以便执行完中断服务程序后, 断程序的现场信息保存起来,以便执行完中断服务程序后, 接着从被中断程序的断点处继续往下执行,这些现场信息 接着从被中断程序的断点处继续往下执行, 包括程序计数器的内容、CPU的状态信息 的状态信息、 包括程序计数器的内容、CPU的状态信息、执行指令后的 结果特征和一些通用寄存器的内容。 结果特征和一些通用寄存器的内容。 中断处理的隐操作: 中断处理的隐操作:有些信息的保存如程序计数器的内容 等由机器硬件预先安排完成。 等由机器硬件预先安排完成。 中断向量: 中断向量:有些信息的保存是在中断服务程序中预先安排 CPU响应中断 由中断源提供地址信息, 响应中断, 的。CPU响应中断,由中断源提供地址信息,
ARM Cortex-A9多核嵌入式系统开发教程 第七章
Highest priority interrupt
CPU Interface 1
enable_c1[ ] match_c1[ ]
nfiq_c1 nfriq_c1
AMBA slave interface
AMBA interface
enable_dn[ ] match_dn[ ] ppi_cn[15:0] legacy_nfiq_cn legacy_nirq_cn
第7章 Exynos 4412中断系统
2、中断类型 (1) 软件生成的中断(SGIs):是通过向软件生成中断寄存器 写入SGI中断号生成的。SGI一般被用作核间中断,用于核 间通信。 (2) 私有外设中断(PPI),由一个单独的处理器私有的外 设生成。 (2) 私有外设中断,由一个单独的处理器私有的外设生成。
第7章 Exynos 4412中断系统
7.1.1 中断相关术语 1、中断状态 每个中断可以被认为处于以下4个状态之一:
(1) 未激活(Inactive),中断尚未激活或未挂起; (2) 挂起(Pending),中断已经由硬件或者软件产生,正等 待目标CPU响应; (3) 激活(Active),CPU已经应答(Acknowledge)来自GIC的 中断,该中断正在被CPU处理但尚未完成; (4) 激活并挂起(Active&Pending),CPU正在处理该中断, 此时GIC又收到来自该中断源的更高优先级的中断。
Exynos 4412中断系统
Exynos 4412的中断系统概述 Exynos 4412中断机制分析 中断控制相关寄存器 中断处理程序实例
第7章 Exynos 4412中断系统
7.1 中断系统概述
Exynos 4412 采用了通用中断控制器(Generic Interrupt Controller,GIC PL390)对其中断系统进行控制和管理。 Exynos 4412共支持160个中断,其中包括16个软件生成的 中断、16个CPU核的私有外设中断、128个CPU核共享的外 设中断。其中,软件生成的中断通过写一个专用寄存器 (ICDSGIR)生成,通常被用于内部处理器之间的通信。
单片机原理及接口技术 第七章
7.6.2 中断返回
在中断服务子程序的最后要安排 一条中断返回指令IRET,执行该指令, 系统自动将堆栈内保存的 IP/EIP和CS 值弹出,从而恢复主程序断点处的地 址值,同时还自动恢复标志寄存器FR 或EFR的内容,使CPU转到被中断的程 序中继续执行。
7.6.4 中断请求的撤除
①若ITO (ITl) =0,外中断为电平触发方式。单片机在每一个机器周期的S5P2期间采样中断输入信号INTO (INT1)的状态,若为低电平,即可使TCON寄存器中的中断请求标志位IEO (IEl)置位,若满足响应条件就能得 以及时响应。由于外中断源在每个机器周期被采样一次,所以输入的低电平至少必须保持12个振荡周期,以保 证能被采样到。而一旦CPU响应中断,进入中断服务程序时,IEO (IEl)会被CPU自动删除,但由于中断系统没有 对外的中断应答信号,即中断响应后没有信号输出去通知外设结束中断申请,所以,设计人员如果没有措施来 撤除低电平信号,则在下一个机器周期CPU检测外中断申请时又会发现有低电平信号而将IEO (IEl)重新置位。
外部中断是由外部原因引起的,共有两个中断源,及外部中断0和外部中断1,相应的中断 请求信号输入端是INT0和INT1。 外部中断INT0和INT1有两种触发方式,即电触发方式和脉冲触发方式。
7.4.2 定时中断类
定时中断发生在单片机的内部,也有两个中断源,即为定时/计数器0溢出中断和定时/计 数器1溢出中断。
7.4 中断源类型
中断源,中断是指由于某种事件的发生(硬件或者软件的),计算机暂停执行当前的程序, 转而执行另一程序,以处理发生的事件,处理完毕后又返回原程序继续作业的过程。中断是 处理器一种工作状态的描述。我们把引起中断的原因,或者能够发出中断请求信号的来源统 称为中断源。
单片机原理及接口技术 第3版课件(梅丽凤)第7章
MOV TH1,#0D8H;赋初值 MOV TL1,#0F0H MOV IE,#88H ;CPU开中断,TT1开中断 SETB TR1 ;启动T1工作 MOV 60H,#100;赋毫秒计数初值 MOV 61H,#60 ;赋秒计数初值 CLR 4FH ;清标志位 TT:JNB 4FH,TT ;等1min时间到 CLR 4FH ;1min到,清标志位 CPL P1.0 ;输出反相 AJMP TT ;反复循环 END
ORG 0030H ;主程序初始化 START:MOV SP,#60H ;置堆栈指针 SETB IT0 ;置边沿触发方式 MOV IP,#01H ;置为高优先级 MOV IE,#81H ;CPU开中断、开中断 MOV 30H,#00H ;里程计数器单元清0 MOV 31H,#00H MOV 32H,#00H LJMP MAIN ;转主程序执行,并等待中断 ORG 0100H ;中断程序,中断一次,里程加2 m INT:PUSH ACC ;保护现场 PUSH PSW MOV A,30H ;读里程计数器低8位 ADD A,#02 ;低8位计数器加2m(运转一圈) MOV 30H,A ;回存
【例7-3】 出租车计价器的计程方法是:车轮 每运转一圈产生一个负脉冲,从外中断 (P3.2)引脚输入,行使里程为轮胎周长× 运转圈数。假设轮胎周长为2m,试编程实时 计算出租车行使里程(单位:米),数据存 放到32H、31H、30H单元中。 编程: ORG 0000H ;上电、复位入口地址 L JMP START ;转向主程序初始化 ORG 0003H ;中断入口地址 LJMP INT ;转向中断服务程序
图7-4 中断处理过程流程图
7.3.4 中断请求的撤除
响应某中断请求后,其中断请求标志位应及时清除,否则 会引起另一次中断。各标志位清除方法不一样。
第七章AT89s52单片机中断系统
高 优 先 级
低 优 先 级
7
3.中断触发方式
①.电平触发方式 ②.下降沿触发方式
第七章 AT89S52单片机中断系统
8
7.2.2 中断标志与控制
单片机设置了5个专用寄存器用于中 断控制,用户通过设置其状态来管理中 断系统。5个专用寄存器包括:
定时器/计数器0,1控制寄存器TCON; 定时器2控制寄存器T2CON; 串行口控制寄存器SCON; 中断允许控制寄存器IE; 中断优先级控制寄存器IP。
第七章 AT89S52单片机中断系统
9
1.定时器/计数器0,1控制寄存器TCON
D7 D6 D5 D4 D3 D2 D1 D0
TCON TF1
TF0
IE1 IT1 IE0 IT0 字节地址:88H
位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 可位寻址
TF1(TCON.7)—T1计数溢出,由硬件置位,响应中断
2
(2)中断源
中断源通常可分为以下几种: 设备中断 定时中断 故障源中断 程序性中断源
第七章 AT89S52单片机中断系统
3
(4) 中断识别方式
一般设有两种识别方式: 查询中断 矢量中断。
第七章 AT89S52单片机中断系统
4
(5) 中断的其它概念
中断请求、中断标志、中断允许、 中断入口地址(中断矢量)、中断 嵌套、中断保护、中断服务程序、 中断源清除、中断屏蔽、中断返回、 中断等待 。
当EA=1时,允许所有中断开放,总允许后,各中断的允许 或禁止由各中断源的中断允许控制位进行设置;
当EA=0时,屏蔽所有中断。
第七章 AT89S52单片机中断系统
14
计算机原理第七章8259
8259的初始化命令字ICW2
ICW2是中断类型码初始化命令字,A0=1,跟在ICW1后表示对 ICW2编程。
ICW2设置中断类型码; 中断类型码高5位来自ICW2高5位,低3位对应IR0~IR7。
17
8259的初始化命令字ICW3
ICW3是标志主片/从片的初始化命令字,只有当SNGL=0时,跟 在ICW2后面出现,对其设置应使A0=1;
连接系统总线方式
缓冲方式 在多片8259级连的大系统中,8259通过总线驱动器和数据总线相 连; 使用8259的SP#/EN#作为总线驱动器的使能信号;
非缓冲方式 8259的SP#/EN#作为输入; 单片使用时, SP#/EN#接高电平;多片时,主片SP#/EN#接高电 平,从片SP#/EN#接低电平;
操作命令字可在任何时候写入8259A ,且无顺序。
OCW1为中断屏蔽操作命令字; A0=1 表示设置OCW1; Mi=1 表示屏蔽IRi输入中断请求;
28
8259的操作命令字OCW2
ቤተ መጻሕፍቲ ባይዱ
OCW2用来设置优先级循环方式和中断结束方式; A0=0,且D4D3 = 00,表示对OCW2编程; R,优先级循环状态 R=1优先级自动循环;R=0优先级不循环; EOI 中断结束命令位,非自动结束方式时清ISn; SL 设定标志。 SL=1,由L2、L1、L0指明中断号或最低优先权; SL=0,则L2、L1、L0无效;
29
设置优先级方式
优先级自动循环方式 一般用在系统中多个中断源优先级相等的场合; 优先级是变化的,一个设备收到中断服务后,它的优先级自 动降为最低; 初始优先级为IR0-IR7;
优先级特殊循环方式 最低优先级由初始编程设置;
30
08 中断
0 1 INTR
单步中断 8086/8088CPU内部逻辑 8086/8088CPU内部逻辑 CPU
1、8088系统采用中断类型 向量 码来识别不 、 系统采用中断类型(向量 系统采用中断类型 向量)码来识别不 同的中断源, 同的中断源,每个中断源都有一个与它相对 应的中断类型码 。
(1)溢出、断点、除法溢出、单步、非屏蔽中 )溢出、断点、除法溢出、单步、 断的类型码为固定值 (2)软件中断的类型码由指令给出 ) (3)可屏蔽中断的类型码由 )可屏蔽中断的类型码由PIC给出 给出
(5)中断返回 )
执行中断返回指令IRET 执行中断返回指令
IRET指令将使 指令将使CPU把堆栈内保存的断点信息弹 指令将使 把堆栈内保存的断点信息弹 出到IP、 和 出到 、CS和FLAG中,保证被中断的程序从断 中 点处能够继续往下执行。 点处能够继续往下执行。
IPL IPH CSL CSH FLAGL FLAGH IP
外部中断
非屏蔽中断NMI:类型号2,不可用软件屏蔽,CPU必须 :类型号 ,不可用软件屏蔽, 非屏蔽中断 必须 响应它。 响应它。 可屏蔽中断INTR:类型号由 提供。 可屏蔽中断 :类型号由PIC提供。IF=1时CPU才能响 提供 时 才能响 应。
8086/8088中断源类型 中断源类型
软件中断指令 n 溢出中断 断点中断 除法错 4 3 中断逻辑 中断控 制器 8259A PIC 2 NMI 非屏蔽中断请求
• 在有些情况下,即使中断允许标志位IF=1, CPU也不能立即响应外部的可屏蔽中断请 求,而是要再执行完下一条指令才响应外 部中断。例如,发出中断请求时,CPU正 在执行封锁指令。如果执行向段寄存器传 送数据的指令,如MOV和POP指令,也要 等下一条指令执行完后,才允许中断。当 遇到等待指令或串操作指令时,允许在指 令执行过程发中断请求,但在一个基本操 作完成后响应中断。
第7章单片机的中断系统答案
一、选择题1、若要求最大定时时间为216×机器周期,则应使定时器工作于 B 。
A.工作方式0B.工作方式lC.工作方式2D.工作方式32、若要求最大定时时间为213×机器周期,则应使定时器工作于 A 。
A.工作方式0B.工作方式lC.工作方式2D.工作方式33、若要求最大定时时间为28×机器周期,则应使定时器工作于 C ,D 。
A.工作方式0B.工作方式1C.工作方式2D.工作方式34、定时器方式控制寄存器TMOD中MlM0为l l时,则设置定时器工作于 D 。
A.工作方式0B.工作方式lC.工作方式2D.工作方式35、6MHz晶振的单片机在定时工作方式下,定时器可能实现的最小定时时间是 B .A.1 u sB.2 u sC.4 u sD.8 u s ’6、12MHz晶振的单片机在定时工作方式下,定时器可能实现的最小定时时间是 A .A.1 u sB.2 u sC.4 u sD.8 u s7、12MHz晶振的单片机在定时工作方式下,定时器可能实现的最大定时时间是 B .A.4096 u sB.8192 u SC.1638 u sD.32768 u s8、定时器/计时器0的初始化程序如下:MOV TMOD,#06HMOV TH0.#0FFHMOV TLO,#0FFHSETB EASETB ET0执行该程序段后,把定时器/计时器0的工作状态设置为 D 。
A. 工作方式0,定时应用,定时时间2 u s,中断禁止B.工作方式l,计数应用,计数值255,中断允许C.工作方式2,定时应用,定时时间510 u s,中断禁止D.工作方式2,计数应用,计数值1,中断允许9、设串行口工作于方式l,晶振频率为6MHz,波特率为1200位/秒,SMOD=0,则定时器l的计数初值为 C 。
A.FlHB.F4HC.F3HD.FOH10、以下所列特点,不属于串行工作方式0的是 D 。
A.波特率是固定的,为时钟频率的十二分之一B.8位移位寄存器C.TI和RI都须用软件清零D.在通信时,须对定时器l的溢出率进行设置11、通过串行口发送或接收数据时,在程序中应使用 A 。
16-第七章 中断控制接口技术
D0:IC4 是否有ICW4,在8088系统中,ICW4必须 使用,即D0必须为1。
0:无 1:有
32
8088系统中D7~D5和D2不用,通常置0;
初始化命令字ICW2——设置中断类型码
A0 1
D7 0
D6 0
D5 0
D4 0
D3 0
D2 X
D1 X
D0 X
在写ICW1之后,对A0=1的端口第一次写入的数据是ICW2 在8088系统中,设置: D7~D3:用于确定中断类型码的高5位 D2~D0 :无效(由8259A根据IR0~IR7自动填充为000~111) 例:若在PC/XT中ICW2为00001000B,则 中断号:类型号 中断号:类型号 IR0:08H IR4:0CH IR1:09H IR5:0DH IR2:0AH IR6:0EH IR3:0BH IR7:0FH
15
4、形成中断服务程序入口地址,转入中断服务程序执行。每 个中断都有自己的处理程序,各种微处理器形成中断服务程序 入口地址的方法也不相同。 8088系列:将中断服务程序的入口地址称为中断向量。将中断 向量送入CS:IP(低字数据送IP、高字数据送CS)即可转入 中断处理程序。 内存的000H~~3FFH的1KB空间中存有256个中断中断向量 对应于256种中断类型码,称为中断向量表。
4×4=16。00010H、00011H、 00012H、00013H
中断向量1
...
中断向量表
24
4、中断响应和处理过程
P155
25
主程序 中断服务程序 有中断请求 断点 继续执行 对中断 进行处理 返回断点
中断处理的过程
26
INTR 外部中断
第七章中断与中断控制知识题选解
7.7 8259A 只有两个端口地址,但可读/写寄存器数远远多于两个,如何保证正确读/写? 解:8259A 中使用了如下几种方法来实现同一地址寻址多个内部寄存器: (1)利用命令字OCW:事先指定读IRR 或ISR;(2)利用命令字中位4和位3的状态来决定写ICW1,OCW:还是写OCW3 ; (3)根据顺序来决定同一接口地址下的命令字(ICWZ,ICW3 ,ICW4,OCW1) 。
7.11某80X86微机的中断系统有5个外部中断源,接在8259A 的07~IR IR 端,中断类型码为5BH,5CH,5DH,5EH 和5FH , 8259A 的端口地址为B0H,B1H 。
允许它们以全嵌套工作方式工作,中断请求采用电平触发方式。
试编写8259A 的初始化程序。
解:先确定要写哪些控制字,以及每个控制字对应位的取值,再编程。
此题,要写的控制字及位取值如下:(1) 1ICW = x x xllxll ,即:中断请求为电平触发、单片8259A 、写ICW4 。
(2) 2ICW =01011x x x ,即:此片8259A 中断类型码高5位为:01011 (3) ICW3无需写。
( 4 ) ICW4 = 00000 x 01,即:一般嵌套、非缓冲、正常EOI ,8086 /8088模式。
其中x 表示取值为0或1均可。
假定控制字中的x 固定为0,初始化程序如下: MOV DX,0B0H ;指向端口0MOV AL,1BH ;中断请求为边沿触发、单片8259A 、写ICW4 OUT DX , AL ;写ICWI INC DX ;指向端口1MOV AL, 58H ;中断类型码高5位为01011 OUT DX , AL ;写ICW2MOV AL,01H ;一般嵌套、非缓冲、正常EOI , 8086 /8088模式OUT DX , AL ;写ICW47.12某80X86系统中设置三片8259A 级联使用,一片为主,两片为从,从片分别接人主片的2IR 和4IR 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.8259A接收到第一个负脉冲,完成如下工作:
(1)使ISR相应位置1,表示CPU已为该中断请求服务。 (2)使IRR的相应位清0。
5.8259A接收到第二个负脉冲,将中断类型号送上数据总 线。中断类型号由用户编程和中断请求引脚IRi的序号i共同决 定(CPU读取中断类型号,经响应过程后,进入中断服务程 序,直到服务结束返回)。
(2)设计
• ① 8259A初始化编程
• ;主片8259A的初始化
•
MOV AL,11H ;写入ICW1,设定边沿触发,级联方式
•
OUT 20H,AL
•
JMP INTR1 ;延时,等待8259A操作结束,下同
• INTR1:MOV AL,08H
•
;写入ICW2,设定IRQ0的中断类型号为08H
•
OUT 21H,AL
07H 08H 09H 0AH
功能 等待从键盘输入一个字符 并显示它 显示1个字符
从COM1接收1个字符 从COM1发送1个字符
向打印机输出1个字符
立即从键盘输入1个字符 或向显示器输出1个字符
等待从键盘输入一个字符 等待从键盘输入一个字符 显示一个字符串
从键盘接收1个字符串 存入缓冲区,并显示它
入口参数 无
各级中断的用途如表7-1所示。
表7-1 IBM PC/AT的中断源和类型号
中断向量地址指针 8259A引脚 中断类型号
优先级
中断源
00020H 00024H 00028H 001C0H 001C4H 001C8H 001CCH 001D0H 001D4H 001D8H 001DCH 0002CH 00030H 00034H 00038H 0003CH
主片IR0 主片IR1 主片IR2 从片IR0 从片IR1 从片IR2 从片IR3 从片IR4 从片IR5 从片IR6 从片IR7 主片IR3 主片IR4 主片IR5 主片IR6 主片IR7
08H 09H 0AH 70H 71H 72H 73H 74H 75H 76H 77H 0BH 0CH 0DH 0EH 0FH
• 例7-4使用INT 21H 的2BH系统功能设置日期为 2004年5月1日。其程序段为:
MOV DL,1 ;入口参数送入指定寄存器:把日子放入DL中
MOV DH,5 ;把月份放入DH中
MOV CX,2004
;把年份放入CX中,CX中的年份值是以1980为基准的偏移值
SUB CX,1980 ;减去1980才为年份设定值
(2)特殊全嵌套方式。
与全嵌套方式基本相同,所不同的是在特殊全嵌 套方式下,当执行某一级中断服务程序时,可响应同级 的中断请求,从而实现对同级中断请求的特殊嵌套 (8259A级联使用时,某从片的8个中断源对主片来说, 可以认为是同级的)。
特殊全嵌套方式用于多片级联。
3.优先级控制方式
(1)优先级自动循环方式。
6.若8259A工作在自动结束中断方式AEOI,则8259A清除 ISR的相应位,否则直至中断服务结束,发出EOI命令,才能 使ISR中的相应位清0。
7.3.3 8259A的工作方式 8259A有多种工作方式,这些工作方式可以通过初始化 命令字(ICW1~ICW4)和操作命令字(OCW1~ OCW4)来设置。
动
器
地址 译码
SP/EN D7~D0
CAS0 CAS1 CAS2
A0 CS
从片 8259A
IIRR01
外设的 中断申请
INT
IR7
来自其他从片
图7-12 参与8259A组成的级联中断系统图
7.3.5 8259A的编程命令 1.初始化命令字ICW
写ICW1
写ICW2
N
级联?
Y 写ICW3
N
要ICW4?
0(最高) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15(最低)
定时器 键盘 从片8259A 时钟/日历钟 IRQ9(保留) IRQ10(保留) IRQ11(保留) IRQ12(保留) 协处理器 硬盘控制器 IRQ15(保留) 异步通信口(COM2) 异步通信口(COM1) 并行打印机2 软盘驱动器 并行打印口1
MOV AH,2BH ;设置日期功能号送入AH寄存器
INT 21H
;执行DOS调用
CMP AL,0FFH
;根据出口参数AL=00H,设置成功;AL=FFH,判断失败
JE ERROR ;不成功,转错误处理
┇
;成功,往下执行
7.4.2 DOS系统功能调用 1.字符设备I/O控制
• 字符设备包括键盘、显示器、打印机、串行通信接口 等。通过DOS系统功能调用可以实现单个字符或字符 串的输入与输出控制
19 IR1 18 IR0 17 INT
16 SP/EN 15 CAS2
图5-10 8259A引脚信号
7.3.2 8259A的工作过程
1.中断源通过IR0~IR7向8259A发中断请求,使得 8259A的中断请求寄存器IRR的相应位置1。
2.IRR中经中断屏蔽寄存器IMR允许后的置位位进入 优先权判别器PR,PR将其中最高优先权的中断请求从 INT输出,送至CPU的INTR端。
•
JMP INTR2
• INTR2:MOV AL,04H ;写入ICW3,设定主片IRQ2级联方式
•
OUT 21H,AL
•
JMP INTR3
• ;从片8259A的初始化
•
MOV AL,11H
•
;写入ICW1,设定边沿触发,级联方式
•
OUT 0A0H,AL
•
JMP INTR5
• INTR5:MOV AL,70H
• OUT 20H,AL ;写主片EOI命令
7.4 中断调用
7.4.1 DOS 和BIOS 中断的调用方法
1. 将入口参数送入指定的调用寄存器,如果没有入 口参数,就不需要这一步。 2.将功能号送入AH寄存器,将子功能号送入AL寄 存器,如果没有子功能号,不需要送AL。 3.产生一个软中断INT n ,转入子程序入口。 4.通过CPU的返回寄存器返回中断处理结果——出 口参数。如果没有返回值,也就不需要返回寄存器。
•
;写入ICW2,设定从片IR0,即IRQ8的中断类型号为70H
•
OUT 0A1H,AL
•
JMP INTR6
• INTR6:MOV AL,02H
•
;写入ICW3,设定从片级联到主片的IRQ2
•
OUT 0A1H,AL
•
JMP INTR7
• INTR7:MOV AL,01H
• ② 级联工作编程
• ;读ISR的内容
无
Ctrl-c处理 能 能 能 能 能 能
否 能 能 能
表7-2 字符设备的系统功能
• 例7-6 从键盘输入一串字符,并在显示屏上显示出来。注意09H功能显示字符串时是以‘$’符 号结束的,因此,要显示的字符串一律以‘$’结尾
8086/8088 CPU
MCE/PDEN
8288
总线
接 数接 据 总线
驱动器 IORC
INTA IOWC
总 驱动器
线 的OE端
D7~D0 地址 总线
INTR
地址 译码
INTA WR RD
SP/EN
CAS0 CAS1
主片 CAS2
8259A
A0 地址
IR0
IR1
IR7
数据总线 地址总线
驱
连接其他芯片
IR0
寄存器
IRR
IR7
中断屏蔽寄存器IMR
图5-9 8259A内部结构框图
2.8259A的引脚特性
CS 1 2
WR 3
RD 4
D7
5
D6 D5
6
D4
7
D3
8
D2
9
D1 10
D0 11
CAS0 12
CAS1 13
GND 14
28 VCC 27 A0
26 INTA 25 IR7 24 IR6 23 IR5 22 IR4 21 IR3 20 IR2
BUF BU M/S
D2
D1
AEOI PM
(2).操作命令字OCW
(1)操作命令字OCW1——屏蔽操作命令字
A0
D7
D6
D5
D4
D3
D2
D1
D0
1
(2)操作命令字OCW2——中断方式命令字
A0
D7
D6
D5
D4
D3
D2
D1
D0
1
R
SL EOI
0
0
L2
L1
L0
(3)操作命令字OCW3——状态操作命令字
A0
• MOV AL,0BH ;写入OCW3,读ISR命令
• OUT 0A0H,AL
• NOP
;延时,等待8259A操作结束
• IN AL,0A0H ;读出ISR
•
┇
• ;向从片发EOI命令
• MOV AL,20H
• OUT 0A0H,AL ;写从片EOI命令
•
┇
• ;向主片发EOI命令
• MOV AL,20H
T4
T3
(3)初始化命令字ICW3——主/从片初始化字
主片ICW3的格式如下:
A0
D7
D6
D5
D4
D3
D2
D1
D0
1
从片ICW3的格式如下:
A0
D7
D6
D5