单片机 第5章 中断系统
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单片机的中断系统
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
第05章 MCS-51单片机的中断与定时(1-4)
2
1
TH0
;P1.0输出“0” ;P1.0输出“1”
5.2 MCS-51单片机的中断系统
五、外中断应用举例
1. 中断初始化程序
设置外中断源的触发方式 设置中断允许寄存器IE 设置中断优先级寄存器IP
2. 中断服务程序
保护现场 中断处理 恢复现场
23/65
5.2 MCS-51单片机的中断系统
【例5-3】 设外部中断0为下降沿触发方 式,高优先级,试编写中断初始化程序
5.2 MCS-51单片机的中断系统
【例5-4】 将单脉冲接到外中断0(INT0)引脚,利 用P1.0作为输出,经反相器接发光二极管。编写程 序,每按动一次按钮,产生一个外中断信号,使发 光二极管的状态发生变化,由亮变暗,或反之
P1.0 单脉冲 发生器 INT0
1
+5V
8031
26/65
5.2 MCS-51单片机的中断系统
串口:0023H
20/65
5.2 MCS-51单片机的中断系统
四、中断请求的撤除
1.定时/计数器中断请求标志TF0/TF1会自动撤除 2.串行口中断请求标志TI/RI要用指令撤除
CLR TI ;清TI标志位 CLR RI ;清RI标志位
3.负脉冲触发的外中断请求标志IE0/IE1会自动撤除 4.低电平触发的外中断请求信号需要外加电路撤除
下次课前请预习5.3节
30/65
5.3 51单片机的定时器/计数器
MCS-51单片机内部有两个16位定时/计数器 T0和T1,简称定时器0和定时器1
在特殊功能寄存器TMOD和TCON的控制下, 它们既可以设定成定时器使用,也可以设定 成计数器使用
定时/计数器有4种工作方式,具有中断功能, 可以完成定时、计数、脉冲输出等任务
第5章-MCS-51单片机中断系统-PPT
5、2、2 MCS-51单片机得中断源
IT1=1,外中断1为下降沿触发 采样:CPU在每一个机器周期得S5P2期间 对P3、3引脚采样,若上一个机器周期检测为 高电平,紧挨着得下一个机器周期为低电平,则 使IE1置1。 IT0:外中断0触发方式控制位。
CPU主要就是通过标志寄存器、控制 寄存器、优先级寄存器对中断源进行管
5、2、2 MCS-51单片机得中断源
(1)与中断标志相关得SFR
主要有:定时器/计数器T0、T1控制寄 存器TCON
串行口控制寄存器SCON 定时器/计数器2控制寄存器T2CON(第 6章介绍) (2)中断控制寄存器:TCON、IE (3)中断优先级寄存器:IP
DMA释放总线:当一批数据传送后, DMA控制器再向CPU发出“结束总线请 求”,CPU响应请求,收回总线使用权。
DMA方式速度高、效率高,可以与CPU 并行工作。
5、1、2 中断得相关概念
1、中断得概念
CPU在正常运行得时候, 外部或者内部发生了请求 CPU迅速去处理得事件,CPU 暂时中断当前得程序,去处理 所发生得事件,处理完事件后, 再返回到原来被中断得程序 继续运行。此过程称为中断。
图5-3 定时器得控制寄存器
TCON可位寻址。复位后TCON=00H。 TF1(TCON、7):T1溢出标志位
当T1计满溢出时,由内部硬件置位; 中断响应后自动清 0。
5、2、2 MCS-51单片机得中断源
TF0:T0溢出标志位 功能同TF1。
IT1:外中断1触发方式设置位 IT1=0,外中断1为低电平触发
5、1、1 微机得输入/输出方式
第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章 STC15F2K60S2单片机中断系统
精品课件
S2CON为串行口2控制寄存器,字节地址为9AH, S2CON中各位功能与串口1控制寄存器SCON类似,其中S2TI 和S2RI为串口2的发送和接收中断标志位。
➢ S2RI:串行口2接收中断标志。若串行口2允许接收且以方式0 工作,则每当接收到第8位数据时置1;若以方式1、方式2或 方式3工作且SM2=0时,则每当接收到停止位的中间时置1; 当串行口2以方式2或方式3工作且S2SM2=1时,则仅当接收 到的第9位数据S2RB8为1后,同时还要接收到停止位的中间时 置1。S2RI为1表示串行口2已接收到一帧数据,正向CPU申请 中断(接收中断),S2RI必须由用户的中断服务程序清0。
第5章 STC15F2K60S2单片 机中断系统
精品课件
5.1 中断的概念 5.2 STC15F2K60S2单片机的中断系统结构 5.3 中断允许及其优先级管理 5.4 单片机中断处理过程 5.5 中断的应用举例
精品课件
5.1 中断的概念
在单片机应用系统中,中断技术主要用于实时监测与 控制,能对外界发生的事件进行及时的处理。中断系统是 为使CPU具有对外界紧急事件的处理能力而设置的。
在进入掉电工作状态前,如果低压检测电路未被允许可产生中 断,则在进入掉电模式后,该低压检测电路不工作以降低功耗。 如果被允许可产生低压检测中断,则在进入掉电模式后,该低压 检测电路继续工作,在内部工作电压VCC低于低压检测门槛电压 后,产生低压检测中断,可将MCU从掉电状态唤醒。
精品课件
5. CCON寄存器
精品课件
➢TI:串行口1发送中断标志。串行口1以方式0发送时,每 当发送完8位数据,由硬件置1;若以方式1、方式2或方式3 发送时,在发送停止位的开始时置1。TI为1表示串行口已发 送一帧数据,串行口1正在向CPU申请中断(发送中断)。值得 注意的是,CPU响应发送中断请求,转向执行中断服务程序 时并不将TI清0,TI必须由用户在中断服务程序中清0。
第5章AT89S51单片机的中断系统-2ppt课件
【注意】:TCON既有定时器的控制功能,又有中断控制功能。 虽然不少资料将TCON称为定时器控制寄存器,但多数位都是 为中断控制而设置的(其中与中断有关的控制位共6位)。
位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
✓ 计数溢出标志位的使用有两种情况: • 采用中断方式时,作为中断请求标志位来使用; • 采用查询方式时,作为状态位供查询使用。
(2)SCON中的中断标志位
位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
位符号 SM0 SM1 SM2 REN TB8 RB8 TI
RI
TI:串行发送中断请求标志位
AT89S51单片机的中断系统
本章主要内容
中断的概念和应用 AT89S51中断系统结构 与中断相关的SFR及中断控制 外部中断 C51中断函数编程举例
微机的输入输出方式
(1)无条件传送方式 (2)查询传送方式 (3)直接存储器存取(DMA)方式 (4)中断方式
无条件传送方式
无条件传送方式在这种传送方式下,CPU不需要了解 外设的状态,只要在程序中加入访问外设的指令, 就可实现CPU与外设之间的数据传送。此种方法控制 简单,但数据传送时,由于不知道外设的状态,传 送数据时容易出错。
④ 故障处理:当计算机出现故障时,CPU可自动执行故障 处理程序,提高了系统自身的可靠性。
计算机与外围设备之间传送数据及实现人机联系也常采 用中断方式。
89S51的中断源
中断源:凡是中断请求的来源都统称为中断源。 在单片机系统中,中断可以由各种硬件设备产生,
郭天祥单片机教程 第5章中断
第5章 MCS - 51单片机的中断
例 2 多中断源。 MCS - 51 单片机 有两个外部中断输入 端, 当有 2 个以上中 断源时, 它的中断输 入端就不够了。此时, 可以采用中断与查询 相结合的方法来实现。 可以使每个中断源都 接在同一个外部中断 输入端上, 同时利用 输入口线作为多中断 源情况下各中断源的 识别线。
EA X X X ET2 PT2 ES PS ET1 EX1 ET0 EX0 PT1 PX1 PT0 PX0
第5章 MCS - 51单片机的中断
5.2.3 中断响应 1. 中断响应的条件
在下列情况下,中断响应会受到阻断: (1) 同级或高优先级的中断已在进行中; (2) 当前的机器周期还不是正在执行指令的最后一个机 器周期(换言之, 正在执行的指令完成前, 任何中断请求 都得不到响应); (3) 正在执行的是一条 RETI或者访问特殊功能寄存器 IE或 IP的指令(换言之, 在 RETI或读写 IE或 IP之后, 不会 马上响应中断请求, 而至少执行一条其它指令之后才会响应)。
0 0
(LSB)
PS
PT1
PX1
PT0
PX0
中 中断 IP B8H 总 允 许 断 器 时
定 串 行 口
定 时 部 器 断 1 中
外 时 器
定 部 中 断
外
2
0 1 0
第5章 MCS - 51单片机的中断 表 5.2 同级内第二优先级次序
第5章 MCS - 51单片机的中断 例如, 某软件中对寄存器IE、 IP设置如下: MOV IE, # 8FH MOV IP, # 06H 则此时该系统中: * CPU中断允许; * 允许外部中断0、外部中断1、定时器 /计数器0、定时器/计 数器1中断申请; * 中断源的优先次序为: 定时器0 > 外部中断1 > 外部中断0 > 定时器1。
单片机原理及其接口技术--第5章 MCS-51单片机中断系统
下来,这称为保护现场,由用户自己编程完成。
保护断点和现场后即可执行中断服务程序,执行完毕, CPU由中断服务程序返回主程序。 主目录 上一页 下一页 结 束
15
……
响应
单片机原理及其接口技术
主程序A
断点
返回
中断返回过程如下:
RETI 中断服务程序B
首先恢复原保留寄存器的内容和标志位的状态,这称为恢 复现场,由用户编程完成。 然后,再加返回指令RETI,RETI指令的功能是恢复PC值, 使CPU返回断点,这称为恢复断点。 恢复现场和断点后,CPU将继续执行原主程序,中断响应 过程到此为止。 主目录 上一页 下一页 结 束
主目录 上一页 下一页 结 束
单片机原理及其接口技术
5.2.2 中断标志与中断控制
1.中断标志
(1) 定时器控制寄存器TCON
SFR之一,锁存中断请求标志,字 节地址88H,可位寻址。
其结构、位名称、位地址及其功能 如表5.1所示。
主目录 上一页 下一页 结 束
单片机原理及其接口技术 表5.1 TCON的结构、位名称、位地址和功能
单片机原理及其接口技术
第5章 MCS-51单片机中断系统
教学目标 5.1 中断概述 5.2 MCS-51中断系统 5.3 中断系统的应用 本章小结 思考题与习题主目录上一页来自下一页结束
单片机原理及其接口技术
教学目标
通过本章教学,要求达到以下目标: 1.熟记MCS-51 5个中断源及其中断入口地址。 2.熟悉TCON、SCON、IE、IP的结构、控制 作用和设置方法。 3.理解MCS-51中断响应过程。 4.了解中断响应等待时间。 5.理解中断请求撤除情况和应对措施。 6.熟悉中断优先控制的方法。 7.掌握中断应用程序的编制方法。
第五章-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,应接温度超限信号。
第5章 STC89C52单片机中断系统
精选可编辑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章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、若为外部中断,则应规定低电平还是负边沿的中断 触发方式
单片机-05-中断系统
中断系统
一、中断系统
1. 中断的概念 举例:某同学正在教室写作业,忽然被人叫出去, 回来后,继续写作业。这就是生活中中断的例子。
与上对比,单片机中也有同样的问题。CPU正
在执行原程序,突然,被意外事情打断,转去执行
新程序。CPU执行新程序结束后,又回到原程序中
继续执行。这样的过程就叫
Here: SJMP Here
ORG 0200H PINT0:CPL P1.0
RETI
;返回主程序
例5-4、出租车计程:设车轮每转产生一个负脉冲,从外部中断INT0 (P3.2)引脚输入,行驶里程为轮胎周长×运转圈数,设轮胎周长2m,试通 过编程实时计算出租车行驶里程(m),数据存入32H, 31H, 30H中。
ORG 0000H LJMP START ORG 0200H ADDC A, POP PSW 30H POP ACC RETI 32H
ORG 0003H
LJMP INT0 ORG 0100H
INT0: PUSH ACC
PUSH PSW MOV A,
MOV 32H, A
START: MOV SP, #60H
ORG 0000H LJMP MAIN ORG 000BH LJMP INSE1 ORG 1000H MAIN: MOV SP,#60H MOV TL0,#0CH MOV TH0,#0F0H MOV TMOD,#00H SETB TR0 SETB ET0
INSE1: MOV TL0,#0CH MOV TH0,#0F0H
该位是“1”时,为高级优先级
该位是“ 0”时,为低级优先级
同一级中的5个中断源的优先顺序是: /INT0中断 T0溢出中断 /INT1中断 T1溢出中断 出厂前已由厂家固化顺序 ——事先约定 高
单片机-第五章 单片机中断系统
单片机-第五章单片机中断系统单片机第五章单片机中断系统在单片机的世界里,中断系统就像是一位高效的调度员,能够在各种任务之间迅速切换,确保系统能够及时响应紧急事件和重要任务。
这一章,咱们就来深入了解一下单片机中断系统的奥秘。
先来聊聊什么是中断。
想象一下,单片机正在有条不紊地执行着一个任务,比如计算一组数据的平均值。
突然,有个更紧急的事情发生了,比如外部设备传来了一个重要的信号,需要单片机立即处理。
这时候,单片机就会暂时放下手头正在进行的任务,转而去处理这个紧急事件。
等处理完紧急事件后,再回到之前被打断的地方继续执行原来的任务。
这个过程就是中断。
中断系统之所以重要,是因为它大大提高了单片机系统的工作效率和实时响应能力。
如果没有中断,单片机就得按照顺序依次完成所有任务,哪怕遇到紧急情况也不能停下来,这在很多实际应用中是无法接受的。
单片机的中断系统通常由几个部分组成。
首先是中断源,也就是那些能够触发中断的事件或信号。
常见的中断源包括外部中断、定时中断、串口中断等等。
外部中断一般是由外部设备的状态变化引起的。
比如说,一个按键被按下,就会产生一个外部中断信号,通知单片机进行相应的处理。
定时中断则是根据预先设定的时间间隔产生中断。
这在需要周期性执行某些任务的场合非常有用,比如每隔一定时间采集一次温度数据。
串口中断是在串口通信过程中,当接收到数据或者发送完成时产生的中断。
接下来是中断控制寄存器。
它就像是中断系统的“指挥官”,决定哪些中断被允许,哪些被禁止,以及中断的优先级等。
通过设置这些寄存器,我们可以灵活地控制中断的行为。
然后是中断向量。
当发生中断时,单片机会根据中断向量跳转到相应的中断服务程序去执行。
中断向量就像是一个地址索引,告诉单片机中断服务程序在哪里。
在实际编程中,使用中断系统需要经过一系列的步骤。
首先,要初始化中断相关的寄存器,设置中断的触发方式、允许或禁止中断、确定中断的优先级等。
然后,编写中断服务程序。
单片机讲义(第五章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计数溢出中断。
单片机基础(第3版)——第5章
第一部分:主程序初始化 此部分必须编写
功能:
用于设置堆栈位置; 定义触发方式(低电平触发或脉冲下降沿触发) 对IE和IP赋值等; 第二部分:须由主程序完成的其它功能。
1.中断系统的程序编制
(2)选择中断服务程序的入口地址。 (3)编制中断服务程序。
即明确中断服务程 序的起始位置
DJNZ R6,D2 DJNZ R5,D1 RET INT0: PUSH PSW ;保护PSW,ACC值 PUSH ACC MOV A,#00H ;使8个LED全亮 MOV R2,#6 ;闪烁3次(全亮全灭各3次) L4:MOV P1,A ;A值送出 LCALL DELAY ;延时0.2秒 CPL A ;A值取反 DJNZ R2,L4 ;闪烁3次? POP ACC ;恢复保护的A值 POP PSW ;恢复保护的PSW值 RETI ;返回主程序 END
4.3定时/计数器
1. 日常生活中定时、计数的例子: 2 . 单片机应用系统中定时计数的需求:
如用单片机控制的打铃器、空调的定时开关、啤酒自 动生产线上对酒瓶的计数装置等。 3 . 80C51单片机片内的定时/计数器: 两个16位可编程的定时/计数器:T0和T1,都能定 时和对外部事件进行计数。 此外,T1还可以作为串行接口的波特率发生器。
说明:此时串口的优先级高于外部中断0的优先级
答案:
此时CPU按自然优先级顺序确定该响应哪个
中断请求。
如果几个同级别的中断 源同时申请中断,CPU 如何响应?
注意: 自然优先级由硬件决定,用户不能更改。 排列见表4-2
表4-2
中断入口地址及自然优先级
3.定时/计数器及外部中断控制寄存器TCON • 功能:
3.中断系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. CPU响应中断的过程
单片机一旦响应中断请求, 就由硬件完成以下功能: (1) 保留断点,执行硬件中断服务子程序调用, 并把当前 程序计数器PC的内容压入堆栈; (2) 自动清除相应的中断请求标志位(串行口中断请求标 志 RI和 TI除外);
(3) 把被响应的中断源所对应的中断服务程序的入口
5.1 中断的概述
日常中断的例子
5.1.1 什么是中断?
中断是指计算机在执行某段程序的过
程中, 由于计算机系统内、外的某种原因, 暂时中止原程序的执行, 转去执行相应的 处理程序, 并中断服务程序执行完后, 再回 来继续执行被中断的原程序的过程。
图5.1 中断过程示意图
5.1.2 中断的作用
例5-2 设有如下要求,将T0、外中断1设 为高优先级,其它为低优先级,求IP的值。
解:IP的首3位没用,可任意取值,设为000,后面 根据要求写就可以了。
位
符号
D7 X 0
D6 X 0
D5 X 0
D4 PS 0
D3 PT1 0
D2 PX1 1
D1 PT0 1
D0 PX0 0
值
IP的值就是06H。
最 高
最 低
MCS-51系列单片机中断响应原则:
(1)高级中断请求可以中断正在执行的低级中断。 (2)同级或低级中断请求不能中断正在执行的中断。 (3)多个中断源同时向CPU申请中断,首先响应优先级 别最高的中断请求;多个同级中断源同时向CPU申 请中断,CPU通过内部硬件查询,按自然优先级确 定优先响应哪一个中断请求。
4.中断优先级寄存器IP(单元地址B8H)
MCS-51单片机有两个中断优先级:高级中断和低级中断。
每一个中断源都可以通过编程确定为高优先级中断或低 优先级中断。
当有多个中断源提出中断请求时,CPU先响应高级中断, 然后再响应低级中断。
若CPU当前正在为低优先级中断服务,在开中断的条件 下,它能被另一个高优先级中断请求所中断,转去为高级中 断服务,再返回到被中断了的低级中断的服务程序,这即为 中断嵌套。
(MSB)AFH AEH ADH D7 D6 D5 位 符号 值 EA × × ACH ABH AAH A9H A8H(LSB) D4 D3 D2 D1 D0 ES ET1 EX1 ET0 EX0
1
0
0
0
1
1
0
0
(a)用字节操作指令实现 MOV IE,#8CH
或
MOV
A8H,#8CH
(b)用位操作指令实现 SETB EA ;使 EA=1,CPU开中断 SETB ET1 ;使ET1=1,定时/计数器1允许中断 SETB EX1 ;使EX1=1,外中断T1允许中断
2. 串行口控制寄存器SCON(单元地址98H)
(MSB)9FH 9EH 9DH 9CH 9BH 9AH 99H 98H(LSB)
D7
D6
D5
D4
D3
D2
D1
D0
SM0 SM1 SM2 REN TB0
RB0
TI
RI
TI (SCON.1)——串行发送中断标志。
RI (SCON.0)——串行接收中断标志。
中断管理和控制程序一般不独立编写,而是包 含在主程序中,根据需要通过几条指令来完成。
5.3.1 主程序
MCS-51系列单片机复位后, (PC)=0000H,而0003H~002BH分别为各中断源的入 口地址。所以编程时应在0000H处写一跳转指令(一般为 长跳转指令),使CPU在执行程序时,从0000H跳过各中 断源的入口地址。主程序则是以跳转的目标地址作为起 始地址开始编写,一般从0030H开始。 2.主程序的初始化内容 所谓初始化,是对将要用到 的MCS-51系列单片机内部部件或扩展芯片进行初始工作 状态设定。应对IE,IP进行初始化编程,以开放CPU中断 ,允许某些中断源中断和设置中断优先级等。
位地址 AFH D7 位序 位名 AEH D6 ADH ACH ABH AAH A9H A8H D5 D4 D3 D2 D1 D0
EA
×
×
ES
ET1 EX1 ET0 EX0
EA:CPU中断总允许位
=1 允许中断 =0 禁止中断
EX0:外部中断0中断允许位 ET0:定时/计数器0中断允许位 EX1:外部中断0中断允许位 ET1:定时/计数器0中断允许位 ES:串行口中断允许位
注意:在CPU响应发送器中断请求,转向执行中断服务程序时 并不清“0”TI或RI,TI或RI必须由用户在中断服务程序中清 注意:该寄存器可以位寻址。 “0”,即在中断服务程序中必须有CLR TI或ANL SCON, #0FDH等清“0”TI或RI的指令。
3. 中断允许寄存器IE(单元地址A8H)
3. 中断允许寄存器IE
中断允许寄存器IE对中断的开放和关闭实 行两级控制。所谓两级控制,就是有一个 总开、关中断控制位EA,当EA=0时,则 屏蔽所有的中断申请,即任何中断申请都 不接受;当EA=1时,CPU开放中断,但 五个中断源还要由IE的低5位的各对应控 制位的状态进行中断允许控制。
例5-1 如果我们要设置外中断1、定时器1中 断允许,其它不允许,请设置IE的相应值。
1. 中断源
(1)外部中断源:MCS-51系列单片机有2个外 中断源,称为外中断0和1,经由单片机上的P3.2、 P3.3这两个外部引脚引入,为 INT 0 INT 1 、 。 (2)内部中断源 1)定时器溢出中断源。定时器溢出中断源由内 部定时器/计数器产生,属于内部中断。 2)串行口中断源。串行口中断是由内部串行口 中断源产生。
CPU将封锁对中断的响应的情况:
(1)同级或高优先级的中断已在进行中; (2)当前的机器周期还不是正在执行指令的最后一个机
器周期(换言之, 正在执行的指令完成前, 任何中断请求都得
不到响应); (3)正在执行的是一条 RETI或者访问特殊功能寄存器 IE或 IP的指令(换言之, 在 RETI或读写 IE或 IP之后, 不会 马上响应中断请求, 而至少执行一条其它指令之后才会响应)。
1)CPU与外设并行工作。解决CPU速度快、外设 速度慢的矛盾。在外设需要时发出中断申请,CPU才 中断原有工作执行中断服务程序,与外设交换数据; 中断服务结束,CPU返回原程序继续执行。 2)实时处理。控制系统往往有许多数据需要采集 或输出。实时控制中有的数据难以估计何时需要交换。 中断可为实时控制提供支持。 3)故障处理。计算机系统的故障往往随机发生, 如电源断电、运算溢出、存储器出错等。采用中断技 术,系统故障一旦出现,就能及时处理。
D4
D3
D2
D1
D0
×
×
×
PS
PT1
PX1
PT0
PX0
专用寄存器IP为中断优先级寄存器,用户可用软件设定 相应位为1,对应的中断源被设置为高优先级,相应位 为0,对应的中断源被设置为低优先级
系统复位时,均为低优先级
该寄存器可以位寻址
自然优先权顺序
中 断 源 同级内优先权排列
外部中断0中断 定时器/计数器0中断 外部中断1中断 定时器/计数器1中断 串行接口中断
T1 TXD RXD 中断标 志位
中断源 允许
总允许
中断优 矢量 先级 地址
低 级 中 断 请 求
图
MCS-51的中断系统结构图
1. 定时器控制寄存器TCON(单元地址88H)
控制对象 定时/计数器T1 定时/计数器T0 外部中断1 外部中断0
位地址 位序 位名
8FH D7 TF1
8EH D6 TR1
8DH D5 TF0
8CH 8BH D4 TR0 D3 IE1
8AH D2 IT1
89H D1 IE0
88H D0 IT0
外部中断INT0中断标志 位(TCON.1) : IE0=1,外部中断1 向CPU申请中断
注意:该寄存器可以位寻 址。
外部中断INT0触发方 式控制位(TCON.0): IT0=0,电平触发方 式 IT0=1, 下降沿触发 方式
例5-3 在上例中,如果5个中断请求 同时发生,求中断响应的次序。
解:响应次序为 定时器0→外中断1→外中断0→实时器1→ 串行中断。
5.2.3 中断响应
1. 中断响应的时序与条件
一个完整的中断处理的基本过程应包括: 中断请求、中断响应、中断处理和中断返回。
(1)在每个机器周期的S5P2期间,各中断标志采样相 应的中断源。CPU则在下一机器周期的S6期间按优 先级的顺序查询各中断标志。若查询某中断标志为 1,则按优先级的高低进行处理,即响应中断。 (2) 响 应 中 断 后 , 执 行 硬 件 生 成 的 长 调 用 指 令 “LCALL”,将程序计数器PC的内容压入堆栈保护, 先低位地址,后高位地址,栈指针加2。 (3)将对应中断源的中断矢量地址装入程序计数器PC, 使程序转向该中断矢量地址,去执行中断服务程序。 (4)中断服务程序由中断矢量地址开始执行,直到遇 到RETI指令为止。 (5)执行RETI指令,撤销中断申请,弹出断点地址送 入PC,先弹出高位地址,后弹出低位地址,栈指 针减2,恢复原程序的执行。
地址(中断矢量)送入PC, 从而转入相应的中断服务程序。
注 意:
每个中断向量地 址只间隔了8个单元, 如 0003H ~ 000BH , 在如此少的空间中是 无法存储一个比较完 整的中断服务程序的, 需要作一个简单的技 术处理。就是在中断 入口处存储一条LJMP 或AJMP指令。
一个完整的主程序 看起来应该是这样 的:
1. 定时器控制寄存器TCON
7 TF1 6 5 TF0 4 3 IE1 2 IT1 1 IE0 0 IT0
TCON
T0溢出中断标志(TCON.5): T0启动计数后,计满溢出由硬件 置位TF0=1,向CPU请求中断,此标志 一直保持到CPU响应中断后,才由硬 件自动清0。也可用软件查询该标志, 并由软件清0。