第5章 中断系统 - 3

合集下载

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

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

(1)CPU正在执行一个同级或高优先级的中断服务程序; (2)正在执行的指令尚未执行完; (3)正在执行中断返回指令RETI或者对寄存器IE、IP进 行读/写的指令。 CPU在执行完上述指令之后,要再执行一条指令,才 能响应中断请求。
二、中断响应过程 从中断请求发生直到被响应,准备去执行中断服务程 序,此过程即中断响应过程。中断响应过程一般包括如下几 个阶段: 1、中断采样并置位 中断采样过程:CPU在每个机器周期S5P2期间顺序对 中断源采样、置中断标志。 2、查询标志 在中断采样后的下一个周期的S6按优先级顺序查 询中断标志。
第5章 MCS-51单片机中断系统
5.1.1中断的概念
单片机系统中,CPU和外部设备之间不断进行信息的传 输。通常CPU和外设之间的信息传送方式有以下几种: 程序控制方式 中断方式 直接存储器存取(DMA)方式
1、 程序控制方式 可以分为以下两种方式。 (1)无条件传送方式 外设始终处于就绪状态,CPU不必查询外设的状 态,直接进行信息传输,称为无条件传送方式。 此种信息传送方式只适用于简单的外设。如开 关和数码段显示器等。
三、中断响应的时间
一般来说,中断的响应时间最短为3个机器周期,最长 为8个机器周期。 一般中断请求标志位查询占1个机器周期。而机器周期 又恰好是指令的最后一个机器周期。执行此指令后,CPU 将响应中断,产生硬件长调用指令。 长调用LCALL指令需要2个机器周期。这样,中断响应 时间为3个机器周期。
是不可寻址的
在同级的几个中断源中同时发生请求时, 内部对同级的各中断源的优先级别有一个规 定的查询顺序: 自然优先级
外部中断请求 INT0 最高 定时/计数器 T0 外部中断请求 INT1 定时/计数器 T1 串行口 UART 最低 定时/计数器 T2

MCS-51系列单片机的中断系统

MCS-51系列单片机的中断系统
单片机原理与接口技术
大连理工大学出版社
第5章 中断
当断不断必受其乱
第5章 中断系统
5.1 概述 MCS-51系列单片机的中断系统 5.2 MCS-51系列单片机的中断系统 5.3 中断程序设计方法
第5 章
中断系统
中断控制是单片机最重要的技术之一, 实时控制及人机交互等应用都是通过中 断实现的。 本章主要介绍中断的基本概念、MCS-51 系列单片机单片机的中断机制及其简单 应用。
5.2.2中断控制 5.2.2中断控制
1.中断允许 MCS-51系列单片机中断系统通过中断允许控制 寄存器IE实现开中断和关中断的功能。 (1)IE寄存器 IE寄存器由一个中断允许总控制位和各中断源 的中断允许控制位构成,从而进行两级中断允 许控制。IE寄存器的各位定义如下:
5.2.2中断控制 IE寄存器
5.2.2中断控制 IE寄存器
EX1(IE.2)——外中断1的中断允许控 制位。中断总允许时,EX1=0,禁止外中 断1中断;EX1=1,允许外中断1中断。 ET1(IE.3)——定时器T1的中断允许控 制位。中断总允许时,EX1=0,禁止T1中 断;ET1=1,允许T1中断。
5.2.2中断控制 5.2.2中断控制 IE寄存器
5.2.1中断源和中断标志
当MCS-51系列单片机的外中断源以脉冲方式触 发时,负脉冲有效。CPU在一个机器周期采样到 INT0(或者 INT1 )引脚上为高电平,在接下 来的一个机器周期采样到INT0(或者INT1)引 脚上是低电平,即出现了下降沿的跳变(负脉 冲)时,就认为是外中断0(或者外中断1)的 一个有效的中断请求信号。因为两次检测的间 隔时间为一个机器周期,负脉冲对应的高低电 平持续时间都应至少维持一个机器周期,从而 保证CPU能够检测到电平的跳变。

单片机原理及应用教程(C语言版)-第5章 MCS-51单片机的中断系统

单片机原理及应用教程(C语言版)-第5章 MCS-51单片机的中断系统

5.2.5 中断允许控制
例5-1 假设允许INT0、INT1、T0、T1中断,试 设置IE的值。 (2)汇编语言程序 按字节操作: MOV IE,#8FH 按位操作: SETB EX0 ;允许外部中断0中断 SETB ET0 ;允许定时器/计数器0中断 SETB EX1 ;允许外部中断1中断 SETB ET1 ;开定时器/计数器1中断 SETB EA ;开总中断控制位
IP (B8H)
D7 —
D6 D5 D4 D3 D2 D1 D0 — PT2 PS PT1 PX1 PT0 PX0
PT2:定时器/计数器T2的中断优先级控制位 PT2设置1则T2为高优先级,PT2设置0则T2为 低优先级。 后面各位均是如此,设置1为高优先级,设置0 为低优先级,不再一一赘述。 PS:串行口的中断优先级控制位。 PT1:定时器/计数器1的中断优先级控制位。 PX1:外部中断1的中断优先级控制位。 PT0:定时器/计数器0的中断优先级控制位。 PX0:外部中断0的中断优先级控制位。
5.2.4 中断请求标志
4.定时器/计数器T2中断请求标志
T2CON D7 D6 D5 (C8H) TF2 EXF2 D4 D3 D2 D1 D0
EXF2:定时器/计数器2的外部触发中断请求标志 位。T2以自动重装或外部捕获方式定时、计数,当 T2EX(P1.1)引脚出现负跳变时,TF2由硬件置1, 向CPU请求中断,CPU响应中断后,EXF2不会被硬 件清0,需要在程序中以软件方式清0。
5.2.3 外中断触发方式
TCON格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IT0=1,外中断0为下降沿触发 CPU在每一个机器周期的S5P2期间对P3.2引 脚采样,若上一个机器周期检测为高电平,紧挨着 的下一个机器周期为低电平,则使IE0置1。 IT1:外中断1触发方式控制位。功能同IT0

第五章-AT89S51中断系统

第五章-AT89S51中断系统
第五章 AT89S51的中断系统
5.1 中断概述
5.2 中断系统结构 5.3 中断的应用及编程
§5.1 中断概述
➢ 什么叫中断?
在日常生活中:中断即中途打断某一正在进行 的工作,而去处理另外的紧急事件,待处理完 后,再继续原来的工作。 在计算机中:计算机在运行某个进程的过程 中,由于其他原因,有必要中止正在执行的进 程,而去执行引起中断的事件进程,待处理完 毕后,再回到被中止进程的被打断的地方继续 执行,这种情况称为“中断”。
(5)ET0:定时/计数器T0的溢出中断允许位 0:禁止T0溢出中断; 1:允许T0溢出中断。
(6)EX0:外部中断0中断允许位。 0:禁止外部中断0中断; 1:允许外部中断0中断。
2.中断优先级控制寄存器IP
IP D7 D6 D5 D4 D3 D2 D1 D0 PS PT1 PX1 PT0 PX0
2.中断响应过程
中断响应过程包括保护断点和将程序转 向中断服务程序的入口地址。具体过程 如下:
首先,中断系统通过硬件自动生成长调 用指令(LCALL),该指令将自动把断点 地址压入堆栈保护。
然后,将对应的中断入口地址装入PC, 使程序转向该中断入口地址,执行中断 服务程序。
单片机的中断为固定入口式中断,即一响
1:高优先级中断 0:低优先级中断 (1)PS —串行口中断优先级控制位 (2)PT1—定时器T1中断优先级控制位 (3)PX1—外部中断1中断优先级控制位 (4)PT0—定时器T0中断优先级控制位 (5)PX0—外部中断0中断优先级控制位
❖为什么要有中断优先级?
CPU同一时间只能响应一个中断请求。 若同时来了两个或两个以上中断请求,
EA
ES ET1 EX1 ET0 EX0

第5章 MCS-51单片机的中断系统

第5章 MCS-51单片机的中断系统
系统
(2)实现实时处理
在实时控制中,现场的参数、信息是不断变化的。 有了中断功能,外界的这些变化量可随时向CPU 发出中断请求,CPU可以马上响应加以处理。
(3)故障处理
单片机运行过程中,出现一些故障时(如掉电、 存储出错、运算溢出等),有了中断功能,单片 机就能自行处理而不必停机。 外界的中断请求是随机的,单片机响应请求后要 转到中断服务程序,与调用子程序相类似,需要 注意对现场进行保护。
ORG 0100H
MAIN: …;
第五章 MCS-51单片机的中断系统
ORG 1000H INT1:PUSH ACC PUSH DPH PUSH DPL PUSH R0 PUSH R1 … POP R1 POP R0 POP DPL POP DPH POP ACC RETI
第五章 MCS-51单片机的中断系统
5.3 中断处理过程
中断响应
中断处理
中断返回
第五章 MCS-51单片机的中断系统
5.3.1 中断响应
1. CPU响应中断的基本条件 (1)有中断源提出中断请求; (2)中断没有被禁止; (3)没有正在响应的同级或更高优先级的中断; (4)当前的指令周期已经结束;(也就是说,中 断申请时,正在执行的这条指令完成后,才会响 应中断请求) (5)若当前指令为RETI或访问IE、IP指令, CPU在执行完当前指令后,要再执行一条指令才 会响应中断请求。
第五章 MCS-51单片机的中断系统
2.中断响应过程 (1)根据响应的中断源的中断优先级,使相应的优 先级状态触发器置1; (2)清除相应的中断请求标志位(串行口中断请求 标志RI和TI除外);
(3)把当前程序计数器PC的内容压入堆栈;
(4)把被响应的中断源所对应的中断服务程序的入 口地址送入PC,从而转入相应的中断服务程序。 CPU响应中断请求后,在中断返回(执行RETI)前, 中断请求必须被清除,即中断标志位=0,否则会再 一次引起中断响应。

第5章 中断系统

第5章 中断系统
5.1 中断的概念 5.2 8051的中断源和中断控制寄存器 5.3 中断处理的过程 5.4 中断响应等待时间 5.5 C51中断服务函数 5.6 中断系统的应用 5.7 实践训练—键控彩灯 5.8 习题
计算机与外设交换信息时,慢速工作的外设与快速工作的CPU之间形成一个很大的矛盾。 例如:计算机与打印机相连接,CPU处理和传送字符的速度是微秒级的,而打印机打印字符 的速度远比CPU慢。CPU不得不花大量时间等待和查询打印机打印字符。中断就是为解决这 类问题而提出的。
02
02
Hale Waihona Puke 023.中断允许控制寄存器IE CPU对中断系统的所有中断以及某个中断源的开放和屏蔽是由中断允许控制寄存器IE控制 的。IE的状态可通过程序由软件设定。某位设定为1,相应的中断源中断允许;某位设定为0, 相应的中断源中断屏蔽。CPU复位时,IE各位清0,禁止所有中断。IE的结构、位名称和位地址 见表5-3。
03
4.中断返回 中断服务程序的最后一条指令必须是中断返回指令RETI。RETI指令能使CPU结束中断服务程序的执 行,返回到曾经被中断过的程序处,继续执行主程序。RETI指令的具体功能如下。 (1)恢复断点地址 将中断响应时压入堆栈保存的断点地址从栈顶弹出送回PC,CPU从原来中断的地方继续执行程序。 注意,不能用RET指令代替RETI指令,因为用RET指令虽然也能控制PC返回到原来中断的地方,但 RET指令没有清0中断优先级状态触发器的功能,中断控制系统会认为中断仍在进行,其后果是与此同级 的中断请求将不被响应。 若用户在中断服务程序中进行了入栈操作,则在RETI指令执行前应进行相应的出栈操作,使栈顶指 针SP与保护断点后的值相同,即在中断服务程序中PUSH指令与POP指令必须成对使用,否则不能正确 返回断点。 (2)开放同级和低级中断 上述中断响应过程大部分操作是CPU自动完成的,用户只需要了解来龙去脉。而用户需要做的事情是 编制中断服务程序,并在此之前完成中断初始化,即设置堆栈,定义外中断触发方式,定义中断优先级, 开放中断等。

第5章 中断系统

第5章  中断系统

例7 如图,试编写程序实现以下功能:系统初始上电时,四 个发光二极管都熄灭,每当按下图中开关时,四个发光二极 管就能反映出与其对应的四个开关状态,开关闭合则对应二 极管亮,开关断开则对应二极管熄灭。
ORG 0000H AJMP MAIN ORG 0003H LJMP INT ORG 0030H MAIN:CLR IT0 SETB EX0 SETB EA SJMP $ ORG 0200H INT:MOV A,#0FFH MOV P1,A MOV A,P1 SWAP A MOV P1,A RETI
第 5章
MCS-51系列单片机 的中断系统
本章介绍的主要内容
★ 中断的基本概念 ★ 中断的系统结构 ★ 中断的响应 ★ 中断的应用编程
5.1 什么是中断
一、中断
中断是指CPU在执行程序的过程中,当某种 特殊状态出现时,CPU暂停现在正在执行的程序, 转向去对引起特殊状态的事件进行处理,处理完毕 后再返回继续执行原来程序的过程。 简单地说,中断就是在运行一段程序的过程中 由于某种原因临时插入了另一段程序的运行。
1. 开中断总控开关EA,置位中断源的中断允许位。 2. 对外部中断INT0、INT1,应选择中断触发方式。 3. 多个中断源中断,应设定中断优先级,预置IP。
例5 若系统需要响应定时/计数器0中断和由下降沿信号引起 的外部中断0中断,且若这两个中断源同时提出中断请求则先 响应内部中断,试编写程序,对相关寄存器进行初始化。
EA 中断 总控 允/ 禁
-
ET2
ES
ET1
EX1
ET0
EX0
不 用
T2 串行口 T1 INT1 T0 INT0 允/ 禁 允/ 禁 允/ 禁 允/ 禁 允/ 禁 允/ 禁

第五章 中断系统

第五章  中断系统

四、中断系统的功能 一般来说,一个中断系统具有以下功能: (一)实现中断及返回 当某中断源发出中断请求后,CPU应决定是否响应这个中断请求,如当前正 在执行更重要的工作可暂时不响应中断,若响应这个中断请求,CPU在当前指令 执行完后,就要保护断点地址和现场(即下条指令地址和相关寄存器内容),以便 执行完中断服务程序后能正确返回原处执行,然后转到需要处理的中断服务程序 的人口地址,去执行中断服务程序,当中断服务程序执行完毕再恢复现场和断点 ,去继续执行主程序。 (二)实现优先级排队 当计算机带有多个中断源时,可能会出现两个或两个以上中断源同时向CPU提 出中断请求的情况。这时CPU应能够根据事先确定的中断源的优先级别来先响应 高优先级的中断 并为它服务,然后再响应较低优先级的中断请求。 (三)实现中断嵌套 当CPU正在响应某一中断源的中断请求时,又有新的中断源发出请求,如果 新的请求的优先级别高于正在执行的中断源的优先级,则CPU暂停现行的服务程 序,转去执行更高级别的中断源的服务程序,执行完毕后再回到被中断的较低中 断源的服务程序继续执行,即实现了中断嵌套。若新的中断源的优先级别低于或 是等于正执行的中断源,则CPU不响应这个请求,直到正在处理的中断服务程序 执行完毕后,才去处理新的中断请求。
三、中断的分类 按中断产生的位置,中断可分为: (1)外部中断,或称外部硬件实时中断,它是由外部送到CPU的某一特定引脚 上产生的。 (2)内部中断,或称软件指令中断,是为了处理程序运行过程中发生的一些意 外情况或调试程序方便而提供的中断。 按接受中断的方式,中断可分为: (1)可屏蔽中断,可以通过指令使CPU根据具体情况决定是否接受中断请求。 (2)非屏蔽中断,只要中断源提出请求,CPU就必须响应,主要用于一些紧急 情况的处理,如掉电等。 以上从不同的角度对中断进行了分类,对于某一种类型的计算机可能只具备 其中的某几种方式,例如MCS—51就不具备非屏蔽中断方式。

第五章-MCS-51单中断系统习题答案.doc

第五章-MCS-51单中断系统习题答案.doc

第五章MCS-51单片机中断系统习题答案一、填空题1、中断允许寄存器,中断优先级寄存器。

2、电平触发,边沿触发(或答跳变触发)。

二简答题1、写出8052的中断源和相应的中断入口。

INT0 0003HT0 000BHINT1 0013HT1 001BHTI或RI 0023H2、8051单片机的中断优先级是如何排列的?硬件INT0 T0 INT1 T1 TI或RI软件通过IP定义两个优先级3、外部中断有哪几种触发方式?边沿触发和电平触发。

4、8052单片机程序存储器中的六个特殊单元是什么,各有何用途?0000H(PC),0003H(int0),000BH(c/T0),0013H(int1),001BH(c/T1),0023H(s口)。

4、三、程序设计1、8031芯片的INT0、INT1引脚分别输入压力超限及温度超限中断请求信号,定时器/计数器0作定时检测的实时时钟,用户规定的中断优先权排队次序为:压力超限温度超限定时检测要求确定IE、IP的内容,以实现上述要求。

解:(1)中断控制寄存器各位定义:D7:CPU中断允许位EA,应设为1D6:未定义,可为随意量,取为0D5:定时器/计数器2中断允许位ET2,可取0D4:串行口中断允许位ES, 可取0D3:定时器/计数器1中断允许位ET1, 应取0D2:外部中断1中断允许位EX1, 应取1D1:定时器/计数器0中断允许位ET0, 应取1D0:外部中断0中断允许位EX0, 应取1故IE=87H(2)由硬件确定的同一优先级中断源的优先权排队顺序如下:INT0-C/T0-INT1-C/T1-串行口中断-c/2MCS-51有两个中断优先级,中断优先权选择寄存器IP可对各中断源用软件进行编程,确定为高优先级中断还是低优先级中断。

因些可以用硬件与软件相结合的方法对中断源的优先级进行排序。

由题意,根据IP各位的定义:D7:未定义,可为随意量,取为0D6:未定义,可为随意量,取为0D5:定时器/计数器2优先权选择位PT2,可取0D4:串行口优先权选择位PS, 可取0D3:定时器/计数器1优先权选择位PT1, 应取0 D2:外部中断1优先权选择位PX1, 应取1,应接温度超限信号。

单片机原理及接口技术课后习题答案 李朝青五

单片机原理及接口技术课后习题答案 李朝青五

单片机原理及接口技术课后习题答案课后习题答案 2009-11-22 15:13 阅读696 评论9字号:大中小第五章1、什么是中断和中断系统?其主要功能是什么?答:当CPU正在处理某件事情的时候,外部发生的某一件事件请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转去处理所发生的事件,中断服务处理完该事件以后,再回到原来被终止的地方,继续原来的工作。

这种过程称为中断,实现这种功能的部件称为中断系统。

功能:(1)使计算机具有实时处理能力,能对外界异步发生的事件作出及时的处理(2)完全消除了CPU在查询方式中的等待现象,大大提高了CPU 的工作效率(3)实现实时控制2、试编写一段对中断系统初始化的程序,使之允许INT0,INT1,TO,串行口中断,且使T0中断为高优先级中断。

解:MOV IE,#097HMOV IP,#02H3、在单片机中,中断能实现哪些功能?答:有三种功能:分时操作,实时处理,故障处理4、89C51共有哪些中断源?对其中端请求如何进行控制?答:(1)89C51有如下中断源①:外部中断0请求,低电平有效②:外部中断1请求,低电平有效③T0:定时器、计数器0溢出中断请求④T1:定时器、计数器1溢出中断请求⑤TX/RX:串行接口中断请求(2)通过对特殊功能寄存器TCON、SCON、IE、IP的各位进行置位或复位等操作,可实现各种中断控制功能5、什么是中断优先级?中断优先处理的原则是什么?答:中断优先级是CPU相应中断的先后顺序。

原则:(1)先响应优先级高的中断请求,再响应优先级低的(2)如果一个中断请求已经被响应,同级的其它中断请求将被禁止(3)如果同级的多个请求同时出现,则CPU通过内部硬件查询电路,按查询顺序确定应该响应哪个中断请求查询顺序:外部中断0→定时器0中断→外部中断1→定时器1中断→串行接口中断6、说明外部中断请求的查询和响应过程。

答:当CPU执行主程序第K条指令,外设向CPU发出中断请求,CPU 接到中断请求信号并在本条指令执行完后,中断主程序的执行并保存断点地址,然后转去响应中断。

第5章 STC89C52单片机中断系统

第5章 STC89C52单片机中断系统
表5.6
精选可编辑ppt
22
表5-6 RC/RD+ 系列8051单片机中断特殊功能寄存器
精选可编辑ppt
23
一、 中断允许控制寄存器
• 1. IE寄存器 • IE寄存器的字节地址为A8H,可位寻址,
D7 D6 D5 D4 D3 D2 D1 D0
IE
EA ─ ET2 ES ET1 EX1 ET0 EX0
(IE)=0000 0101,因总中断允许为0,所有中断都 被屏蔽。
精选可编辑ppt
26
【例1】 若允许片内3个定时器/计数器中断,并禁止其他中断源的 中断请求,请编写设置IE的相应程序段。
(1)用位操作指令
CLR ES CLR EX0 CLR EX1 SETB ET0 SETB ET1 SETB ET2 SETB EA
17
3. T2CON
• 方式寄存器T2CON(定时/计数器2的控制寄存 器)字节地址:C8H,可位寻址
T2CON 位地址
D7 D6 D5 D4 D3 D2 D1 D0
TF2 - -
--
---
CFH CEH CDH CCH CBH CAH C9H C8H
精选可编辑ppt
18
T2CON TF2 - - - - - - -
精选可编辑ppt
28
XICON ─ EX3 IE3 IT3 ─ EX2 IE2 IT2
(1)EX2—附加的外部中断2中断允许位, EX2=1中断允许,EX2=0中断禁止。
(2)EX3—附加的外部中断3中断允许位, EX3=1中断允许,EX3=0中断禁止。
注意: XICON寄存器中D7、D3功能在本章本节中断优先级
(2)用字节操作指令

第5章8086的中断系统

第5章8086的中断系统
见图5-14, 第一个INTA信号通知8259A请求已被接收;
在第二个INTA信号有效,8259A送中断类型码 (初始化时写入8259A)到数据总线,由CPU启 动中断过程,同时撤消中断请求信号.
二、不可屏蔽中断NMI
发生“灾难性”事件(如电源掉电、存储器读 写出错、总线奇偶出错或协处理器中断请求 等),NMI=1,无法禁止(不受IF影响), 优先级比INTR高,且是边沿触发(只要有效 宽度大于2T即可),中断类型号为2,CPU响 应NMI,不发INTA,不要求外设提供中断向 量,自动到08H单元取入口地址。
5.3.2 外部中断
一、可屏蔽中断INTR 处理过程: 1)接口发请求,若屏蔽位(可用命令写入)=0, 通常由可编程中断控制器8259A PIC驱动,INTR=1,
一直保持到收到响应信号或撤消请求为止. 若IF=0(关中断,可由CLI复位),CPU不响应,继
续处理下一条指令;
若IF=1(开中断,可由STI置位),CPU响应, 2)执行两个INTA总线周期,发两个INTA信号,时序
专用5个(内部中断):在某些特定情况下, 由CPU内硬件自动提供类型号0~4;
保留27个(软件中断):由内部软件的中断 指令产生,供系统开发用。
用户定义224个(外部中断):由外部设备 硬件启动。
可以利用保留的中断类型码扩充自己需要的 中断功能,只要在向量表中加入对应的中断 向量即可。
由系统提供或用户定义,CPU执行后,立即产生中 断,转向n规定的中断服务程序去,入口地址在初 始化时已预置在中断向量表中。
四、断点中断——类型3(单字节指令)
CPU执行INT 3 (简写INT)时,产生中断, 进行特殊处理,如显示寄存器、存储单元的内 容,以检查程序运行的结果是否正确。在调试 时把断点插入程序中的关键之处,命令如-G CS: nnnnH。

第5章MCS-51的中断系统

第5章MCS-51的中断系统

例:写出INT1为低电平触发的中断系统初始化程序
SETB EA; SETB EX1 SETB PX1 CLR IT1
二、 中断服务程序
1、编写中断程序应注意以下几点: ① 为了要跳到用户设计的中断服务程序,在相应入口 地址安排一条跳转指令; ② 在中断服务程序的末尾,安排一条返回指令RETI; ③ 由于在响应中断时,CPU只自动保护断点,所以 CPU的其他现场的保护和恢复也必须由用户在中断服 务程序中安排。
1、T0/T1中断撤除:自动清除TF0 TF1
2、TX/RX中断撤除:不能自动撤除,必须软件清“0” CLR RI CLR TI ANL SCON ,#0FCH
3、外部中断请求的撤除
对于负边沿触发的外部中断,CPU在响应中断后是 用硬件自动清除中断请求标志IE0或IE1。
电平触发时,虽然自动清除中断请求标志IE0或IE1。但 不及时撤除低电平的话会重复响应中断,必须采取措施。
中断允许寄存器IE的单元地址是A8H,各控制位也可 位寻址,故既可以用字节传送指令也可以用位操作指 令来对各个中断请求加以控制。 例:开放T/C1的溢出中断
MOV IE,#88H;
SETB EA SETB ET1
二、 对中断优先级的控制
MCS-51具有两个中断优先级,可由软件设置每个中断 源为高优先级中断或低优先级中断,可实现二级中断 嵌套。
可在中断服务程序开 头安排如下程序: INSVR:ANL P1 ,#0FEHORL Fra bibliotek1,#01H …
RETI END
§4 中断系统的初始化及应用
一、中断系统的初始化 中断初始化是指用户对TCON、SCON、IE等特殊功能 寄存器中的各控制位进行赋值。
中断系统的初始化步骤: 1、 CPU开中断或关中断 2、 某中断源中断请求的允许或禁止(屏蔽) 3、 设定所用中断的中断优先级 4、若为外部中断,则应规定低电平还是负边沿的中断 触发方式

单片机原理及应用课后习题答案第5章作业

单片机原理及应用课后习题答案第5章作业

第五章中断系统作业1. 外部中断1所对应的中断入口地址为()H。

2. 对中断进行查询时,查询的中断标志位共有、_ _、、_ 和_ 、_ _ 六个中断标志位。

3.在MCS-51中,需要外加电路实现中断撤除的是:()(A) 定时中断(B) 脉冲方式的外部中断(C) 外部串行中断(D) 电平方式的外部中断4.下列说法正确的是:()(A) 同一级别的中断请求按时间的先后顺序顺序响应。

()(B) 同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。

()(C) 低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求。

()(D) 同级中断不能嵌套。

()5.在一般情况下8051单片机允许同级中断嵌套。

()6.各中断源对应的中断服务程序的入口地址是否能任意设定? ()7.89C51单片机五个中断源中优先级是高的是外部中断0,优先级是低的是串行口中断。

()8.各中断源发出的中断申请信号,都会标记在MCS-51系统中的()中。

(A)TMOD (B)TCON/SCON (C)IE (D)IP9. 要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容应是()(A)98H (B)84H (C)42 (D)22H10.编写出外部中断1为负跳沿触发的中断初始化程序。

11.什么是中断?其主要功能是什么?12. 什么是中断源?MCS-51有哪些中断源?各有什么特点?13. 什么是中断嵌套?14.中断服务子程序与普通子程序有哪些相同和不同之处?15. 中断请求撤除的有哪三种方式?16. 特殊功能寄存器TCON有哪三大作用?17. 把教材的P82页的图4.24改为中断实现,用负跳变方式,中断0(INT0)显示“L2”,中断1(INT1)显示“H3”。

(可参考第四章的电子教案中的例子)18.第5章课后作业第9题。

第五章中断系统作业答案1. 外部中断1所对应的中断入口地址为(0013)H。

第5章 89C51的中断系统---部分习题解答

第5章 89C51的中断系统---部分习题解答
先级中断服务程序的条件 下。中断响应等待时间最少需要几个机周?最长需要几个机 周?
答:在CPU未执行同级或更高优先级中断服务程序的条 件下,中断响应等待时间最少需要3个机周,最长需要8个 机周。
19.简述89C51外中断的触发方式,电平触发方式时,如何防 止CPU重复响应外中断? 答:80C51外中INT0/INTl有两种触发方式:电平触发和边 沿触发方式。采用电平触发方式时,CPU响应中断后,虽用硬件 自动清除了相应中断请求标志IE0/IEl,但相应引脚(P3.2/P3.3) 的低电平信号若继续保持下去(一般可能保持时间较长),中断 请求标志IE0/IEl就无法清零,就会发生重复响应中断情况, 引起出错。需要采取软硬件结合的方法撤消引起重复中断相应 引脚的低电平信号。 硬件电路如教材书图5-4所示。当外部设备有中断请求时, 中断请求信号经反相,加到锁存器CP端,作为CP脉冲。由于 D端接地为0,Q端输出低点平,触发INT0产生中断。当CPU 响应中断后,应在该中断服务程序中按排两条指令: CLR P1.0; SETB P1.0; 使P1.0输出一个负脉冲信号,加到锁存器Sp端(强迫置“1” 端),Q端输出高点平,从而撤消引起重复中断的INT0低电平 信号。因此一般来说,对外中断INT0、INT1,应尽量采用边 沿触发方式,以简化硬件电路和软件程序。
14.89C51中断处理过程包括哪四个步骤?简述中断处理过程。 答:中断处理过程大致可分为四步:中断请求、中断响应、中 断服务和中断返回。 ①中断请求:由中断源向CPU发出中断请求信号。 ②中断响应:在满足中断响应条件下,响应中断,保存断点地 址,将相应中断的入口地址送入PC。 ③中断服务:执行中断服务程序,完成中断源要求的相应操作。 ④中断返回:恢复断点地址,开放同级中断。 15.89C51响应中断有什么条件? 答:中断响应条件: ①该中断已经“开中”; ②CPU此时没有响应同级或更高优先级的中断; ③当前正处于所执行指令的最后一个机器周期; ④正在执行的指令不是RETI或者是访向IE、IP的指令;否则必 须再另外执行一条指令后才能响应。

单片机讲义(第五章MCS-51的中断系统)

单片机讲义(第五章MCS-51的中断系统)


5.6.2 跳沿触发方式(下降沿触发方式)
如果相继连续两次采样,一个机器周期采样到外部中断输入为高, 下一个机器周期采样为低,则置1中断申请触发器,直到CPU响应此 中断时,该标志才清0。这样不会丢失中断,输入的负脉冲宽度至少保
持12个时钟周期(若晶振频率为6 MHZ,则为2μs),才能被CPU采样到。
(2)用字节操作指令
MOV IP,#05H ;000 00101 或者用: MOV 0B8H,#05H ;B8H为IP寄存器的字节地址
5.5 外部中断的响应时间


从外部中断请求有效(外部中断请求标志置1)到转 向中断入口地址所需要的响应时间。 外部中断的最短响应时间为3个机器周期。其中中断
请求标志位查询占1个机器周期,而这个机器周期恰好是处于指令 的最后一个机器周期,在这个机器周期结束后,中断即被响应, CPU接着执行1条硬件子程序调用指令 LCALL以转到相应的中断服 务程序入口,则需要2个机器周期。

外部中断响应的最长时间为8个机器周期。执行RETI或
是访问IE或IP的指令,最长需要2个机器周期。而接着再执行的1条 指令,按最长的指令(乘法指令MUL和除法指令DIV)来算,需4 个机器周期。再加上硬件子程序调用指令LCALL的执行,需要2个 机器周期,所以,外部中断响应最长时间为8个机器周期。
5.3.3中断允许寄存器IE

IE中各位的功能如下:
(l)EA——中断允许总控制位 EA=0,CPU屏蔽所有的中断请求(CPU关中 断); EA=1,CPU开放所有中断(CPU开中断)。 (2)ES——串行口中断允许位 ES=0,禁止串行口发送/接收中断; ES=1,允许串行口发送/接收中断。 (3) ET1——定时器/计数器T1的溢出中断允许 位 ET1= 0,禁止T1计数溢出中断; ET1= 1,允许T1计数溢出中断。

5IO系统-3中断

5IO系统-3中断

• 针对主优先级,CPU内部的判优电路只能响应级别 最高的请求。而针对次优先级,通常采取菊花链方 式的优先链结构。
16
采用中断控制器集成芯片的优先逻辑
• 中断请求信号的寄存、汇集、屏蔽、排优、编 码等逻辑集成于一个芯片之中。 • 例如,Intel 8259芯片提供四种工作方式,包 括全嵌套、循环优先级、特定屏蔽和程序查询 方式。
中断系统的软件组织方法
1.列出系统需要处理的各种中断请求 模型机外部硬件中断源、内部硬件中断源、软中断 2.针对各中断源的需要,分别编制对应的中断 服务程序模块 3.将各中断服务程序的入口地址写入中断向量 表
中断向量表中存放着各中断服务程序的入口地址,称 为中断向量。 向量地址=中断号+2
访问中断向量表的地址称为向量地址
由硬件请求信号引发中断
(2)内中断与外中断
中断源来自主机内部
可通过屏蔽字屏蔽该 类请求;关中断时不 响应该类请求。
中断源来自主机外部
该类请求与屏蔽字无 关;请求的响应与开/ 2 关中断无关。
(3)可屏蔽中断与非屏蔽中断
(4)向量中断与非向量中断 由软件提供服务程序
由硬件提供服务程序入口地址
4.中断典型应用 软中断指令—INT n (1)管理中、低速I/O操作 n为中断号 (2)处理故障 软中断指令与转子指令的区别: (3)实时处理 转子指令只能按严格的约定,在特定 某事件出现的实际时间内及时处理,不是批量处理。 位置执行; 利用时钟中断定时采集参数,检测,调节。 软中断指令的执行作为中断处理,在 (4)人机对话 中断周期保存断点,按指令给出的中断 (5)多机通信 号n查找中断向量表,找到相应的中断 中断系统的硬、软界面 5.中断系统的组成 服务程序入口,实现程序切换。 (1)软件: 有意调用,随机插入 服务程序、中断向量表 请求、传递、判优逻辑 (2)硬件 接口方面: 3

第5章 AT89S51的中断系统

第5章 AT89S51的中断系统
14
5.3 中断允许与中断优先级的控制
中断允许控制由中断允许寄存器 控制 中断允许控制由中断允许寄存器IE控制。 控制由中断允许寄存器 控制。 中断优先级控制由中断优先级寄存器 控制 中断优先级控制由中断优先级寄存器IP控制。 控制由中断优先级寄存器 控制。
5.3.1 中断允许寄存器IE
AT89S51的对各中断源的开放或屏蔽,是由中断允许寄存 的对各中断源的开放或屏蔽, 的对各中断源的开放或屏蔽 器IE控制的。 控制的。 控制的 IE字节地址为 字节地址为A8H,可位寻址,格式如图5-5所示。 所示。 字节地址为 ,可位寻址,格式如图 所示
13
2. SCON寄存器 寄存器 串行口控制寄存器,字节地址为98H,可位寻址 可位寻址。 可位寻址 低二位锁存串行口的发送中断和接收中断的中断请求标志 TI和RI,格式如图5-4所示 图 所示 所示。
图5-4
SCON中的中断请求标志位 中的中断请求标志位
各标志位的功能: (1)TI—串行口的发送中断请求标志 位。每发送完一帧串行数据后,TI自动置“1”。TI标志必须 必须 由软件清“ ” 由软件清“0”。 (2)RI—串行口接收中断请求标志位。串 ) 行口接收完一个串行数据帧,硬件自动使RI中断请求标志置 “1”。必须在中断服务程序中用指令对RI清“0”。
学习要求
• 熟悉中断的概念和中断的功能。 熟悉中断的概念和中断的功能。 • 掌握中断系统的硬件结构,5个中断源的含义。 掌握中断系统的硬件结构, 个中断源的含义 个中断源的含义。 • 熟练掌握各中断控制寄存器各控制位功能及标志位的含义 • 掌握中断处理过程及中断嵌套的概念及应用
5.1 AT89S51中断技术概述 AT89S51中断技术概述
中断技术主要用于实时监测与控制,要求单片机能及 中断技术主要用于实时监测与控制,要求单片机能及 实时监测与控制 时地响应中断请求源提出的服务请求,并作出快速响应、 时地响应中断请求源提出的服务请求,并作出快速响应、 及时处理。这是由片内的中断系统来实现的。 及时处理。这是由片内的中断系统来实现的。 发出中断请求时 如果中断请求被允许, 当中断请求源发出中断请求 当中断请求源发出中断请求时,如果中断请求被允许, 单片机暂时中止当前正在执行的主程序,转到中断服务处 单片机暂时中止当前正在执行的主程序, 理程序处理中断服务请求。 理程序处理中断服务请求。 中断服务处理程序处理完中断服务请求后,再回到原 中断服务处理程序处理完中断服务请求后, 来被中止的程序之处(断点),继续执行被中断的主程序。 来被中止的程序之处(断点),继续执行被中断的主程序。 ),继续执行被中断的主程序 图5-1为整个中断响应和处理过程。 为整个中断响应和处理过程。
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【实例4】【P108】根据下图所示的数码管显示与按键电路,编程验证两级外部中断嵌套效果。

此外,利用发光管验证外部中断请求标志IE0在脉冲触发中断时的硬件置位与撤销过程。

#include <reg51.h> //林立P108例题
char led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(unsigned int count)
{ unsigned char i;
while(count--)
for(i=0;i<120;i++);
}
void key0(void) interrupt 0 // P3.2
{ unsigned char i;
for(i=0; i<=9; i++)
{ P2=led_mod[i];
delay(1000); }
P2=0x40; //循环显示完“0”~“9”之后,显示“-”
void key1(void) interrupt 2 //P3.3
{ unsigned char i;
for(i=0; i<=9; i++)
{ P1=led_mod[i];
delay(1000);
}
P1=0x40;
}
void main(void)
{ unsigned char i;
TCON=0x05; // 0x05= 0000 0101,最好写成IT0=1,IT1=1
PX0=0;
PX1=1; //INT1 高优先级
P1=0x40; P2=0x40;
IE=0x85; // 0x85=1000 0101, EA=1, EX1=1,EX0=1
while(1)
{ for(i=0;i<=9;i++)
{ P0=led_mod[i];
delay(1000); }
}
}
5.6 扩充外部中断源
实际应用中,两个外部中断请求源往往不够用,需对外部中断源进行扩充,如图5-10所示。

系统有5个外部中断请求源IR0~IR4,高电平有效。

INT,优先级高的请求源IR0直接接到80C51的一个外部中断请求输入端0
其余4个请求源IR1~IR4通过各自的OC门(集电极开路门)连到80C51的另
INT,同时还连到P1口的P1.0~P1.3脚,供80C51查询。

一个外中断源输入端1
图5-10所示电路,除了IR0优先权级别最高外,其余4个外部中断源的中断优先权的高与低取决于查询顺序。

图5-10 中断和查询相结合的多外部中断请求源系统假设图5-10中的4个外设中有一个提出高电平有效的中断请求信号,则中断请求通过4个集电极开路OC门的输出公共点,即1
INT脚的电平就会变低。

究竟是哪个外设提出的请求,要通过程序查询P1.0~P1.3引脚上的逻辑电平来确定。

查询法扩展外部中断源比较简单,但是扩展的外部中断源个数较多时,查询时间稍长。

因此,可以采用74LS优先编码器来实现。

【74LS148;8-3线八进制优先编码器】
8线-3线优先编码器:54148/74148
148为8线-3线,148将8条数据线(0-7)进行3线(4-2-1)二进制(八进制)优先编码,即对最高位数据线进行译码。

利用选通端5(EI)和输出选通端15(EO)可进行八进制扩展。

引脚图如下:
【例】利用74LS148扩展外部中断【P110】
#include <reg51.h>【已通过74LS148扩展中断】
#include <intrins.h>
unsigned char led_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};
void delay(unsigned int count)
{ unsigned char i;
while(count--)
for(i=0;i<120;i++);
}
void EX_INT0() interrupt 0
{ unsigned char bi;
bi= P2 & 0x07; //0x07=0000 0111,保留P2口的低3位switch(bi)
{ case 0x00: //7按下
P0= led_code [7];
break;
case 0x01: //6按下
P0= led_code [6];
break;
case 0x02: //5按下
P0= led_code [5];
break;
case 0x03: //4按下
P0= led_code [4];
break;
case 0x04: //3按下
P0= led_code [3];
break;
case 0x05: // 2按下
P0= led_code [2];
break;
case 0x06: // 1按下
P0= led_code [1];
break;
case 0x07: // 0按下
P0= led_code [0];
break;
}
}
void main()
{ EA=1;
EX0=1;
IT0 = 1; //INT0引脚上,出现负跳变作为中断信号
while(1);
}
小结
1、5个中断源及其对应入口地址:
外中断2个:INT0、INT1
定时中断2个:T0、T1
串行中断1个:RI/TI
2、中断优先原则:分2个优先级;
同级:INT0→T0→INT1→T1→RI/TI。

3、中断响应过程:
4、中断请求的撤消:3类中断请求撤消的异同点。

5、中断源的扩展。

【第十一次课20111010的一部分】
作业:把教材的P87页的图4.24改为中断实现,用负跳变方式,中断0(INT0)显示“L2”,中断1(INT1)显示“H3”。

#include <reg51.h>
// 林立P87的例题20120930
unsigned char led_mod[]={0x38,0x5b,0x76,0x4f}; // L2H3 unsigned char i,led_pos;
sbit P17=P1^7;
void delay(unsigned int count)
{ unsigned char i;
while(count--)
for(i=120;i>0;i--);
}
void xint0(void) interrupt 0
{ led_pos=2; }
void xint1(void) interrupt 2
{ led_pos=0; }
main()
{ IT0=1;
IT1=1;
EX0=1;
EX1=1;
EA=1;
P1=0xfd; //0xfd=1111 1101 while(1)
{
for(i=0;i<2;i++)
{ P2=led_mod[i+led_pos];
delay(5);
P1=~P1;
}
}
}。

相关文档
最新文档