第章中断系统和中断控制器A详解

合集下载

4_中断系统

4_中断系统

3.1 TCON定时控制寄存器
TFl和TF0: 定时器1和定时器0的溢出标志。 当定时器计满产生溢出时,由硬件自动置 “1”,并可申请中断。进入中断服务程序后, 由硬件自动清0。 也可作为程序查询的标志位,在查询方式 下应由软件来清0。
3.1 TCON定时控制寄存器
TR1和TR0: 为定时器1和定时器0的启停控制位。 将TRx清0后,可停止定时器的工作。 将该位置“1”后,可启动定时器工作。
3.3 IE中断允许寄存器
D7 EA D6 D5 ET2 D4 ES D3 ET1 D2 EX1 D1 ET0 D0 EX0
EA:CPU中断总允许位。 ES :串行口中断允许位。 ET1:定时器1中断允许位。 EX1:外部中断1的中断允许位。 ET0:定时器0的中断允许位 EX0:外部中断0的中断允许位。 ET2:定时器2中断允许位
TCON定时控制寄存器ቤተ መጻሕፍቲ ባይዱSCON串行口控制寄存器 IE中断允许寄存器
IP中断优先级寄存器
3.1 TCON定时控制寄存器
作用: 控制定时器/计数器的启、停 外部中断源的触发方式 定时器的溢出中断标志 外部中断源的中断请求标志。 其地址为88H。
3.1 TCON定时控制寄存器
中断源的入口地址分别为: 外部中断0中断: 0003H 最高级 T0定时器0中断: 000BH 外部中断1中断: 0013H T1定时器l中断: 001BH 串行口输入/输出中断: 0023H 最低级 定时器2中断: 002BH 最低级(52系列单片 机中)
3 MCS-51单片机中断系统使用
MCS-51单片机中断控制部分由4个专用 寄存器组成:
中断系统
1 中断系统概述 2 MCS-51单片机的中断系统 3 MCS-51单片机中断系统使用 4 C51中中断系统的应用

微机原理第7章 8086中断系统和中断控制器

微机原理第7章 8086中断系统和中断控制器

3)高级中断源能中断低级的中断处理
中断嵌套 当CPU正在响应某一中断源的请求,执行为其服务的中断服务程序时, 如果有优先级更高的中断源发出请求,CPU将中止正在执行的中断服务程 序而转入为新的中断源服务,等新的中断服务程序执行完后,再返回到被 1 中止的中断服务程序,这一过程称为中断嵌套。 • 中断嵌套可以有多级,具体级数原则上不限,只取决于堆栈深度。
外部中断 非屏蔽中断 可屏蔽中断
可屏蔽中断源
CPU 中断逻辑
INTR
8259A 中断 INTA 控制器
INT N 指令
INTO 指令
除法 错误
单步 中断
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
外 设 中 断 源
内部中断: 除法错中断 指令中断 溢出中断 单步中断
硬件(外部)中断 非屏蔽中断请求 INT 2 NMI(17号引脚) 中 断 逻 辑 可屏蔽中断请求 中断类型号32~255 INTR(18号引脚)
中断指令 INT n N=32~255
溢出中断 INTO INT 4
断点 中断 INT 3
单步中断 (TF=1) INT 1
除法 错误 INT 0
软件(内部)中断
8086/8088中断源
1.软件中断(内部中断) 8086/8088的软件中断主要有三类共五种。 (1) 处理运算过程中某些错误的中断 执行程序时,为及时处理运算中的某些错误 ,CPU以中断方式中止正在运行的程序,提醒程 序员改错。 ① 除法错中断(中断类型号为0)。在8086 /8088 CPU执行除法指令(DIV/IDIV)时,若发现 除数为0,或所得的商超过了CPU中有关寄存器所 能表示的最大值,则立即产生一个类型号为0的 内部中断,CPU转去执行除法错中断处理程序。

微机原理与接口技术——中断系统

微机原理与接口技术——中断系统

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)

单片机中断系统详细教程

单片机中断系统详细教程

单片机中断系统详细教程一、中断系统的原理中断系统是一种异步事件响应机制,它允许设备在正常程序运行的过程中插入一个特殊事件,中断请求触发后,处理器即刻中断当前程序的执行,执行特定的中断服务程序,完成对事件的处理。

其流程如下:1.当外设需要处理器响应时,会向处理器发送中断请求信号,通常为一个引脚的高电平触发。

2.处理器在接收到中断请求信号后,暂停当前的程序执行,保存当前现场(保存中断发生时的CPU状态),并进入中断服务程序执行,执行完成后再返回到原来的程序继续执行。

二、中断系统的使用方法1.初始化中断控制器:对中断向量表进行初始化,设置中断优先级等。

2.配置外设的中断请求触发方式:设置外设的中断触发方式,包括电平触发和边沿触发。

3.编写中断服务程序:根据需要,编写中断服务程序来处理中断事件。

4.启动中断系统:启动中断系统,使处理器能够响应外设的中断请求。

三、中断系统的实例下面以8051单片机为例,演示如何使用中断系统。

1.初始化中断控制器使用8051单片机的中断系统,首先需要初始化中断控制器,设置中断向量表和中断优先级。

具体步骤如下:```cvoid init_interrup//设置中断向量表EA=1;//打开总中断使能ET0=1;//打开定时器0中断EX0=1;//打开外部中断0EX1=1;//打开外部中断1//设置中断优先级IP=0x10;//设置定时器0中断为高优先级P3=0x0F;//设置外部中断0和中断1为低优先级```2.配置外设的中断请求触发方式在8051单片机中,外部中断0和中断1的触发方式可由用户进行配置,可以选择为低电平触发或上升沿触发。

例如,将外部中断0配置为上升沿触发:```cvoid init_external_interrupIT0=1;//设置外部中断0为边沿触发方式(上升沿触发)EX0=1;//打开外部中断0使能```3.编写中断服务程序根据需要,编写相应的中断服务程序来处理中断事件。

第7章 中断系统

第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位处理器时代,内部中断的数量和功能被 扩充,习惯上,称内部中断为异常,而中断则主要指外部中 断。

第8章 中断系统

第8章 中断系统

中断执行示意图如下:
第18页
2012年6月11日星期一
第8章
结束当前指令?
内部中断?
中断系统

关中断 标志寄存器入栈 TEMP=TF(暂存) 清除IF、TF标志 断点(CS,IP)入栈 取中断向量 进入中断服务程序 开中断 执行中断服务程序 Y
N
有NMI?

无 N

有INTR?

IF=1?
Y Y
TF= N 1? 取中断类型码
第8页 2012年6月11日星期一
第8章
8.2.2 中断处理
中断系统
1.中断的处理过程 ⑴关中断。目的:在现场保护过程中,CPU不应该 响应更高级的中断源申请。 ⑵保存断点和现场。即将现行状态字和断点地址相 继压入堆栈。目的:在中断处理完后返回主程序时, 恢复原程序运行状态。 ⑶开中断。目的:允许更高级中断请求能够及时得 到响应,实现中断嵌套。 ⑷转入中断服务程序。目的:完成的最终目的。 ⑸ 退出中断。返回到主程序的执行。
第20页 2012年6月11日星期一
第8章
8.3.4 软件中断
中断系统
软件中断有如下特点: 1.INT n 指令,中断类型码是 n。 2.不执行中断响应总线周期,不读取中断类型码。 3.软件中断不受IF的影响。 4.可进行中断嵌套,即可以响应非屏蔽中断;当被软 件中断调用的中断处理子程序使IF=1时,那么也可响 应屏蔽中断的高优先级请求。 5.软件中断没有随机性,这是因为软件中断是由程序 中的中断指令引起的,何时执行,是事先知道的,所 以软件中断失去了随机性。
第21页 2012年6月11日星期一
第8章
8.4 中断控制器8259A
一、引言
中断系统

第八章中断系统第九章DMA控制器

第八章中断系统第九章DMA控制器
2. IBM PC/XT系统保留的中断 8086CPU最多能处理256种不同的中断,其中5个保留
为CPU专用;一部分是由磁盘操作系统DOS保留为 系统使用,用户可以使用200个左右中断。
§8.5 IBM PC/XT的中断方式
第九章 DMA控制器
DMA:direct memory access
直接存储器访问技术,适合高速的数据交换
2. 硬件优先权排队电路
(1)中断优先权编码电路
若有8个中断源,当任意一个有中断请求时,通过或门, 即可有一个中断请求信号产生,能否送至CPU的中断请 求线,还要受比较器的控制。
(2)雏菊花环(Daisy Chain)式或称为链式优先权排队电 路
§8.3 中断优先权及多重中断
中断响应(来自CPU)
§8.3 中断优先权及多重中断
8.3.1 中断优先权
(2)移位法 XOR AL,AL IN AL,[20H] RCL AL, 1 JC PWF RCL AL, 1 JC DISS ……
;输入中断请求触发器的状态 ;外设A中断服务程序 ;外设B中断服务程序
§8.3 中断优先权及多重中断
8.3.1 中断优先权
§8.4 8086/8088的中断方式
3.中断向量表 o 每一种中断类型对应一个中断向量; o 每个中断向量占4个字节,前两个字节存放中断处 理子程序入口地址的偏移量(IP),后两个字节存放 中断处理子程序入口地址的段地址(CS); o 256个中断中:0-4为专用中断,5-31为系统保留 (21个),32以上共224个为用户自定义中断。
内部中断
INT n指令—类型为n的中断指令
软件中断 INT 3指令—断点中断指令 INT0指令—溢出中断指令
IRET指令—中断返回

微机原理习题答案8章

微机原理习题答案8章

第8章中断系统与可编程中断控制器8259A1.什么叫中断?8086微机系统中有哪几种不同类型的中断?答:在CPU执行程序的过程中,由于某个事件的发生,CPU暂停当前正在执行的程序,转去执行处理该事件的一个中断服务程序,待中断服务程序执行完成后,CPU再返回到原被中断的程序继续执行。

这个过程称为中断。

8086微机系统中有3种中断:1)外部可屏蔽中断。

2)外部不可屏蔽中断。

3)内部中断2.什么是中断类型?它有什么用处?答:通常用若干位二进制编码来给中断源编号,该编号称为中断类型号。

8086微处理器用8位二进制码表示一个中断类型,有256个不同的中断。

这些中断可以划分为内部中断、外部不可屏蔽中断、外部可屏蔽中断三类。

用处:使CPU识别中断源,从而能正确地转向该中断源对应的中断服务程序入口。

3.什么是中断嵌套?使用中断嵌套有什么好处?对于可屏蔽中断,实现中断嵌套的条件是什么?答:微处理器在处理低级别中断的过程中,如果出现了级别高的中断请求,微处理器停止执行低级中断的处理程序而去优先处理高级中断,等高级中断处理完毕后,再接着执行低级的未处理完的程序,这种中断处理方式成为中断嵌套。

使用中断嵌套的好处是能够提高中断响应的实时性。

对于某些对实时性要求较高的操作,必须赋予较高的优先级和采取中断嵌套的方式,才能保证系统能够及时响应该中断请求。

对于可屏蔽中断,实现中断嵌套的条件有:(1)微处理器处于中断允许状态(IF=1)(2)中断请求的优先级高于正在执行的中断处理程序的优先级。

(3)中断请求未被8259屏蔽。

(4)没有不可屏蔽中断请求和总线请求。

4.什么是中断向量?中断类型号为1FH的中断向量为2345H:1234H,画图说明它在中断向量表中的存放位置。

答:中断向量为每个中断服务子程序的入口地址,为32位(16位的偏移地址和16位的段地址),在中断向量表中占用4个地址单元。

在8086CPU组成的计算机系统中,采用最低的1024个地址单元(称为0页)来存储中断向量。

计算机硬件基础——第八章(中断系统)

计算机硬件基础——第八章(中断系统)

AJMP MAIN
AJMP IT0P MAIN: MOV SP,#60H MOV TMOD, #01H MOV TH0 ,#M
DJNZ R7,DD2
DJNZ R5,DD1 RET
MOV TL0,#N
SETB TR0 SETB EA SETB ET0 SJMP $
从上例可看出中断大大提高了CPU的工作效率。
中建立堆栈。 ②在中断服务程序的开始应有保护现场的指令。 即将中断服务程序中用到的各寄存器的内容压入堆栈保存,在中 断结束之前弹回恢复,然后返回。这样就能保证返回原断点时各
寄存器内容与中断服务前相同,使原程序能正确运行。
③中断与调用子程序的异同: 中断过程中由主程序转向中断服务程序的请求是由外部设备提出 的,发生中断的时刻不确定,而在何处调用子程序则是由程序确 定的。
3
一.8031的中断请求源
有5个中断源,它们是:串行口 T1 INT1 T0 INT0
TCON (88H)中相应的位锁存它们的中断标志:
TF1 其中:
TR1
TF0
TR0
IE1
IT1
IE0
IT0
IT0 :INT0触发方式选择,0:低电平触发,1:负跳变触发
IE0 :INT0选择负跳变触发时的中断标志,0:INT0未申请中断, 1:INT0申请中断 INT0选择低电平触发时此标志无用。 IT1、IE1同上定义对INT1控制。
10

8000H
MOV A, #06H

8002H
8005H
MOV B, #05H
MUL AB MOV IE , #05H MOV R0 , #30H …………….

8006H 8009H 800BH

第6章 中断系统

第6章  中断系统

中断系统的功能
CPU响应中断时,会停止当前执行程序,转去执行中断处 理程序,原程序被打断的地方称为“断点”。
断点地址是指中断处理程序结束后,返回原程序恢复执 行的第一条指令的地址,又称“返回地址”。
现场是指进入中断服务程序之前CPU各个寄存器的状态。
正常程序 CS : IP 断点 CS : IP+1 继续执行 中断服务程序
中断系统的功能
2. 链式优先权排队电路(应答方式)
外设1
+5V D7 ~ D0 INTA INTR IOR IOW
外设2
IEI 接口2 IEO
SEL1 SEL2
外设3
IEI 接口3 IEO
SEL3
IEI 接口1 IEO
※ 电路说明
① 每个接口有一个中断允许输入IEI和中断允许输出IEO, 只有IEI为高电平时才允许该接口芯片发中断请求; ② IEO=IEI•INT INT表示该设备有中断请求; ③ 每个接口芯片的中断请求输出为OC门,具有负逻辑的 “线或”关系; ④ 响应中断时由INTA从接口读取中断矢量。 计算机原理讲义
中断 处理
返回断点
3. 中断服务完成时将中断申请信号撤销 4. 中断服务完成后恢复现场和断点,返回原程序 计算机原理讲义
中断系统的功能
(二)对中断进行控制
1. 对中断申请进行控制 例1 一个输入设备的中断接口电路
三 态 缓冲器 D7~D0 INTR IOW A15 ~ A0 IOR INTA 地址 译码 器 三 态 缓冲器 B Q R C D 中断类型 码(0FH) D7~D0
中断系统
第六章 中断系统
计算机原理讲义
中断的作用
第6.1节 计算机中断系统

硬件技术基础第七章中断系统

硬件技术基础第七章中断系统

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响应中断,由中断源提供地址信息,

单片机-第五章 单片机中断系统

单片机-第五章 单片机中断系统

单片机-第五章单片机中断系统单片机第五章单片机中断系统在单片机的世界里,中断系统就像是一位高效的调度员,能够在各种任务之间迅速切换,确保系统能够及时响应紧急事件和重要任务。

这一章,咱们就来深入了解一下单片机中断系统的奥秘。

先来聊聊什么是中断。

想象一下,单片机正在有条不紊地执行着一个任务,比如计算一组数据的平均值。

突然,有个更紧急的事情发生了,比如外部设备传来了一个重要的信号,需要单片机立即处理。

这时候,单片机就会暂时放下手头正在进行的任务,转而去处理这个紧急事件。

等处理完紧急事件后,再回到之前被打断的地方继续执行原来的任务。

这个过程就是中断。

中断系统之所以重要,是因为它大大提高了单片机系统的工作效率和实时响应能力。

如果没有中断,单片机就得按照顺序依次完成所有任务,哪怕遇到紧急情况也不能停下来,这在很多实际应用中是无法接受的。

单片机的中断系统通常由几个部分组成。

首先是中断源,也就是那些能够触发中断的事件或信号。

常见的中断源包括外部中断、定时中断、串口中断等等。

外部中断一般是由外部设备的状态变化引起的。

比如说,一个按键被按下,就会产生一个外部中断信号,通知单片机进行相应的处理。

定时中断则是根据预先设定的时间间隔产生中断。

这在需要周期性执行某些任务的场合非常有用,比如每隔一定时间采集一次温度数据。

串口中断是在串口通信过程中,当接收到数据或者发送完成时产生的中断。

接下来是中断控制寄存器。

它就像是中断系统的“指挥官”,决定哪些中断被允许,哪些被禁止,以及中断的优先级等。

通过设置这些寄存器,我们可以灵活地控制中断的行为。

然后是中断向量。

当发生中断时,单片机会根据中断向量跳转到相应的中断服务程序去执行。

中断向量就像是一个地址索引,告诉单片机中断服务程序在哪里。

在实际编程中,使用中断系统需要经过一系列的步骤。

首先,要初始化中断相关的寄存器,设置中断的触发方式、允许或禁止中断、确定中断的优先级等。

然后,编写中断服务程序。

微机原理--第八章-中断系统

微机原理--第八章-中断系统

裁决器
0
IR6
0
IR7
选 CS 译 码
RD
WR
INTA INT
ICW1 芯片控制 A0
A0
1 × I3 I4 0 1 0 0 1 0 1 0 0 1
ICW2 中断类型号 1
ICW3 主从片连接关系
1 ICW4 方式控制
1
OCW1 中断屏蔽寄存器 IMR
00
0
SP/EN
CA0
OCW2 优先级设置、发EOI
上有中断申请,则将IRR相应位置1;
总线
D0 ~ D7 A0
A5 ~ A9
IOR IOW INTA INTR
数据线 D0 ~ D7
A0
ISR 0
当前 0
中断 服务
• 非屏蔽中断 – 由NMI引脚引起的中断,称非屏蔽中断。 – 当NMI引脚上产生上升沿信号,CPU必响应此中断请 求,即NMI引脚上的中断请求不受IF标志的控制, – IF不能屏蔽NMI引脚上的中断请求。
8086/8088CPU的中断分类图
中断源
外部中断 内部中断
非屏蔽中断 可屏蔽中断 内部硬件中断
SP/EN CA0 CA1 CA2
GND
+ 5V
电子钟时间基准
键盘 保留 串 口2 串 口1 硬盘 软盘 打印机
用于多片 8259A
级连情况
7.3.4 8259A的控制字
8259A中断控制器
处理部分
0
ISR 0
当前 0
中断 0
服务 0
寄存器
0 0
0
IRR
中断申请
0 0
寄存器 0
0
PR
0
优先级

中断系统

中断系统

在另外的新型号中,PIC16F870单片机的芯片内部集成了10个外围 设备模块, PIC16F871单片机的芯片内部集成了13个外围设备模 块, PIC16F872单片机的芯片内部也集成了10个外围设备模块(比 PIC16F870多了1个USART模块,少了一个SSP模块)。而该公司早 期生产的PIC12CXX和PIC16C5X系列不具备中断功能。 这些外围设备模块在投入工作时以及在工作过程中,都或多 或少的需要CPU参与控制、协调或交换数据等各种服务工作。外 围设备模块的数量和种类如此的多,而CPU只有一个;各个外围 设备模块不仅工作速度不同,而且对于时间上轻重缓急程度要求 也不同,他们在工作过程中需要CPU参与的程度也不同。那么, 一个CPU如何“照顾”得过来这样多的外围设备模块呢?怎样才 能保障单片机内部的各个部分运行得协调和高效呢?在实际工作 中这两个问题都得到了很好的解决。解决这些问题基于2个条件: 一个是CPU的运行速度非常高,而各个外围设备模块的工作速度 却非常低,况且这些外围设备模块也不都是频繁的要求CPU对其 服务;二是采取一种让众多外围设备模块分享一个CPU,并且能 够及时得到CPU服务的调速方法——中断。
CCPIF CCPIE
TMR2IF TMR2IE TMR1IF TMR1IE GIE
中断源第二梯队 (d) PIC16F871中断逻辑
中断源第一梯队
EEIF EEIE
ADIF ADIE RCIF RCIE TXIF TXIE T0IF T0IE INTF INTE RBIF RBIE PEIE CCPIF CCPIE TMR2IF TMR2IE TMR1IF TMR1IE GIE 中断CPU当 前的程序 唤醒CPU(如果 处于模式)
在上述的9个阶段中,第1、2、3和9阶段是由硬件自动实现的, 而第4、5、6、7、8阶段则是用户软件完成的。 CPU相应中断后转入中断服务子程序的处理方法,欲“CPU 汇编语言程序设计基础”部分中讲道德子程序条用的处理过程有 类似之处,都需要在跳转时保护现场和返回时恢复现场。但是, 应该说中断转子程序的情况更为复杂一些。原因分析如下,调用 子程序的指令是程序设计者预先安排的,也就是说,主程序执行 到何处发生到子程序的跳转是可以预知的。于是,保护现场和恢 复现场的工作,既可以安排在主程序内,也可以放到子程序中去 完成。并且需要保护的寄存器的数量也可以视跳转到子程序的时 机而进行适当的减少。而在出程序执行过程中何时发生中断,或 者说,主程序执行到何处会发生到中断服务子程序的跳转完全是 随机的。于是,保护现场和恢复现场的任务,只能是放到中断服 务子程序中去实现。并且由于跳转到子程序的时机不可预料,因 此凡是主程序中用到过的和子程序中也将会用到(或影响到)的寄 存器,原则上都需要保护。

单片机中断系统详细教程

单片机中断系统详细教程

单片机中断系统详细教程单片机中断系统是一种用来处理外部事件的机制,它可以在程序执行过程中,根据外部事件的发生而立即打断程序的执行,转去执行相应的中断服务程序,处理完毕后再回到原来的程序代码继续执行。

在微控制器中,中断系统广泛应用于各种外部事件的处理,包括定时器中断、外部中断、串口中断等。

本文将详细介绍单片机中断系统的原理和使用方法。

一、中断系统的基本原理在单片机中,中断系统由中断源、中断向量和中断服务程序三部分组成。

中断源是指引发中断的外部事件,例如定时器计数溢出、外部输入电平变化等。

中断向量是一个特殊的地址,用于存储中断服务程序的入口地址。

中断服务程序是一段用于处理中断事件的程序代码,它会在中断发生时被自动调用执行。

当单片机在运行程序的过程中发生中断事件时,会首先保存当前的程序状态,包括程序计数器、寄存器等,然后跳转至中断向量中存储的中断服务程序的入口地址开始执行。

中断服务程序执行完毕后,会恢复之前保存的程序状态,返回到原来的程序代码继续执行。

这样的机制可以有效地处理外部事件,提高系统的响应速度和处理效率。

二、中断系统的使用方法使用中断系统需要具备以下步骤:1.初始化中断系统:根据需要选择中断源,并设置中断控制寄存器的相应位,使能或禁止中断。

2.编写中断服务程序:根据中断源的不同,编写相应的中断服务程序。

例如,对于定时器中断,可以在中断服务程序中进行定时事件的处理。

3.设置中断向量表:中断向量是一个特殊的表格,存储着中断服务程序的入口地址。

需要将中断服务程序的入口地址写入中断向量表的相应位置。

4.在主程序中启用中断:在主程序中,需要将中断使能位设置为1,从而使得中断能够被触发并执行中断服务程序。

5.在主程序中处理中断事件:根据需要,在主程序中处理中断事件。

可以通过判断特定的中断标志位来确定中断源,然后执行相应的处理逻辑。

三、中断系统注意事项在使用中断系统时,需要注意以下几点:1.中断服务程序需要尽量简短,避免过多的延时或占用过多的系统资源,否则会影响主程序的执行效率。

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

② 专用硬件方式——可编程的中断控制器。采用可编 程中断控制器,是当前微型计算机系统中解决中断优先 权管理的常用办法。
如8259A,它具有8个优先权控制,级联后可扩展至64 级优先权控制,且每级中断都可设置为允许或屏蔽。
7.2 8086/8088的中断系统
1.中断分类
● 8086/8088CPU可以处理256种类型的中断源,这些中断源可分为 外部(硬件)中断和内部(软件)中断两大类。 内部中断:由执行指令引起 外部中断:由CPU得引脚线INTR、NMI引起。
2.中断向量表
● 在8086系统中,允许引入256种类型中断源(类型码为0~255), 相应有256个中断服务程序首址。存放中断地址的一段内存空间称中 断向量表。
7.2.1 中断指令
1、中断指令 格式:INT n 或 INT
;n=0~255,为中断类型码分别为 ;双/单字节指令
指令的操作: (SP) ←(SP)-2,((SP+1),(SP)) ←(FR) (IF) ←0,(TF) ← 0 (SP) ←(SP)-2,((SP+1),(SP)) ←(CS) (SP) ←(SP)-2,((SP+1),(SP)) ←(IP) (IP) ←(n×4) (CS) ←(n×4+2)
第7章 中断系统和中断控制器8259A
7.1 中断的基本概念
•中断:是指CPU在正常运行程序时,由于内部或外部事件 引起CPU暂时中止执行现行程序,转去执行请求CPU为其 服务的那个外设或事件的服务程序,待该服务程序执行完 后又返回到被中止的程序这样一个过程。
•中断源:能发出中断申请的外设或引起中断的原因。
7.1.2 中断处理过程
1.中断过程
● 对于不同的微机系统,CPU中断处理的具体过程不尽相同,但是一 个完整的中断基本过程应包括五个基本过程:


保护现场







断 响
断 处
断 返
开中断





中断处理
产指断触生令接发中或口器断电和CP信路中U确 最号有断引定高。一屏脚有的来个蔽。中那至中触每断个于断发个请中中请器中C自关保形求断P断 求 。动中护成U且 源完 断 现 中响优 。成 ; 场 断应先下 保 服;进级列 护 务入中 中 中工 断 程中断 断作 点 序断服 服 服: ; 入周务 务 务口期就 程 程地,是 序 序弹址过 结C出P程 构断U。 如执点图行,返回主程恢中关序复断。中现返断场回
1.能实现中断响应、中断服务和中断返回
2.能实现中断优先级排队
3.能实现中断嵌套
•中断技术的优点: 并行操作:指CPU和多个外设并行操作。 分时操作:指CPU可分时执行多个用户程序和多道作业。 实现实时处理、 故障处理。 基本功能调用:通过软件中断可实现DOS功能调用和基本BIOS 调用。 提高了CPU的利用效率。
7.2.1 中断指令
2、溢出中断指令 格式:INTO ;单字节指令
操作同INT n,n=4. 用于代符号数加减后溢出产生的中断. 通常放在一条算术运算指令后面.
7.2.1 中断指令
3、中断返回指令 格式:IRET
指令的操作: (IP) ← ((SP+1),(SP) (SP) ←(SP)+2 (CS) ← ((SP+1),(SP) (SP) ←(SP)+2 (FR) ← ((SP+1),(SP) (SP) ←(SP)+2
注意入 栈和出 栈的顺
序!!
低 IP
CS
FR 高
7.2.2 中断分类
内部中断
●8086/8088中的各种中断的响应和处理过程是不相同的。主要 区别在于如何获取相应的中断类型码。
●对于专用中断,中断类型码是自动形成的。 几种类型码为:类型0、1、3、4
除法错误:单除步数中为断断:点T中F=断1:,与单步溢出中断:OF为
1.NMI
● CPU采样NMI引脚的中断请求时,自动提供中断类型号2,然 后根据中断类型号,查找中断向量表指针,其后的处理与内部中 断一样。NMI上的请求信号有效宽度要大于2个时钟周期.
2.INTR
● IF=1时,INTR引脚上由中断请求信号,CPU响应,从而进入中断响应 周期。 ● STI,开中断,CLI,关中断.
7.1.3 中断优先权
(1) 软件查询方式 ●软件查询优先方式是最简单的中断优先处理方式。图6.5显示 了采用软件查询方式的接口电路。
保留现场
A申请服务? N
B申请服务?
Y
外设A中断服务程序 Y
பைடு நூலகம்
N C申请服务?
外设B中断服务程序 Y
N
外设C中断服务程序
恢复现场 软件查询方式流程图
(2)硬件优先权排队电路
① 简单硬件方式——中断优先权编码链法或链式优先 权排队电路。
中断优先权编码电路主要由硬件编码器和比较器组成。 由编码器送出优先权最高的编码,由此编码获得相应 的中断服务程序入口地址。由比较器判别只有比当前 优先权高的中断请求才能送到CPU引脚。
链式优先权排队电路由硬件逻辑电路代替查询程序。 各中断源通过一个特定的信号串行连接成链。无中断 请求时,该信号可串行通过;链中某个中断源由中断 请求,CPU响应后,该信号在中断源出截止,只有该 中断源前的中断源可以打断CPU的服务程序。即:排 在最前面的中断源为优先权最高的,排在最后面的为 优先权最低。
中断源
● 引起中断的事件称为中断源,通常中断源有以下几种:
(1) 输入、输出设备: 如键盘、显示器和打印机等; (2) 数据通道: 如磁带等; (3) 实时控制过程中的各种参数; (4) 故障源: 如掉电保护等; (5) 控制系统的现场测试信号以及软件中断。
● 为了满足上述各种条件下的要求,中断系统应具有以下功能
0或商超过自寄动存产器生中单断步类中似断。。用在调1时,执行INTO
表达范一围般。用在调试试程程序序中中。。
进入。
●对于INT n指令,其类型码为指令中给定的n。
溢出中断:OF为1时,执行INTO进入。
外部中断——硬中断
● 8086/8088CPU为外部设备提供了两条硬件中断信号线, 即NMI和INTR中断请求信号。
8086系统内存地址的一些专用区域
● 0000~003FFH 1KB 空间用于存放中断向量表,可存放256个中断
服务程序的入口地址,每个地址占4字节。
相关文档
最新文档