单片机 中断系统详细教程
80c51单片机外部中断初始化步骤
80C51 单片机外部中断初始化的步骤如下:
1. 设置中断优先级:通过设置特殊功能寄存器IP 来确定中断的优先级。
可以设置不同的优先级以确定中断的响应顺序。
2. 允许中断:通过设置特殊功能寄存器IE 来允许相应的中断源。
将对应中断源的使能位设置为1。
3. 设置触发方式:通过设置特殊功能寄存器TCON 来选择外部中断的触发方式。
可以选择低电平触发、下降沿触发或上升沿触发。
4. 配置中断向量:中断向量是指中断服务程序的入口地址。
可以通过设置特殊功能寄存器Interrupt Vector Table(中断向量表)来指定中断服务程序的入口地址。
这些步骤是80C51 单片机外部中断初始化的一般流程。
具体的实现方式可能会因不同的单片机型号和编译器而有所差异。
在实际编程中,还需要根据具体的需求和硬件连接来进行相应的配置。
单片机原理及应用教程(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
第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 微机得输入/输出方式
单片机教程 第6章-中断系统
TCON位功能:
TF0/TF1:定时器溢出中断申请标志位: =0:定时器未溢出; =1:定时器溢出申请中断,进中断后自动清零。
③ IE1 —— 外中断中断请求标志 当P3.3引脚信号有效时,IE1=1 ④ IE0 —— 外中断中断请求标志 当P3.2引脚信号有效时,IE0=1
IE0/IE1:外部中断申请标志位: =0:没有外部中断申请; =1:有外部中断申请。
=1:在INT0/INT1端申请中断的信号负跳变有效.
6.2
51单片机的中断系统
3、串行口中断设定
串行控制寄存器SCON控制字,字节地址:98H
SCON 位名称 位地址 功能 D7 D6 — — — — — — D5 — — — D4 — — — D3 — — — D2 — — — D1 TI 99H 串行发送 中断标志 D0 RI 98H 串行接收 中断标志
6.1
中断的概念
6.1.3 中断的分类 可分为三类: * 可屏蔽中断:由CPU的可屏蔽中断引脚INT引起的 中断。 * 非屏蔽中断:由CPU的非屏蔽中断引脚NMI引起的 中断(8086CPU)。 * 软件中断:由中断指令引起的中断(8086CPU)。 • 51单片机的中断可以分为:
①外部中断,由外部可屏蔽中断和外部计数器中断组成; ②内部中断,由内部定时器、串口传输中断等组成。
输入引脚。允许用户设定外部中断源以低电平或 者是负跳变方式触发。
6.2
51单片机的中断系统
②定时器溢出中断源:内部中断,51内部有两
个16位定时/计数器,它们由内部定时脉冲(主脉 冲12分频)或外部引脚T0、T1输入的外部计数脉 冲计数。当计数值溢出时,产生中断请求。这两 个16位定时/计数器的初值可由用户设定。
PIC单片机中断系统详细汇总
随着物联网、人工智能等技术的发展,中断系统与其他系 统的融合成为未来的发展方向。
在物联网和人工智能应用中,设备需要实时响应各种事件 ,如传感器数据变化、网络数据包到达等。因此,将中断 系统与操作系统、网络协议栈等其他系统进行融合,可以 实现更高效的事件处理和资源调度,提高系统的实时性和 可靠性。
串行通信中断的配置
需要设置串行通信的波特率、数据位、停止位、奇偶 校验等参数,以及中断触发方式。
串行通信中断的应用
在RS-232、RS-485、SPI等串行通信协议中广泛应 用。
外部事件中断
外部事件中断
01
用于实现外部事件触发中断,例如按键按下、传感器触发等。
外部事件中断的配置
02
需要设置外部事件的检测方式、触发条件以及中断处理程序。
中断的作用:提高CPU的效率,实现对外部事件的实时响应 和处理。
PIC单片机的中断源
外中断
由外部硬件设备产生的中断,例如定 时器溢出、串口接收数据等。
内中断
由单片机内部硬件产生的中断,例如 比较器匹配、捕获比较器等。
中断优先级和向量
中断优先级
用于标识不同中断的优先级,优先级高的中断会优先得到处理。
中断处理程序执行
一旦PIC单片机响应中断,它会跳转 到相应的中断向量表地址,执行中断 处理程序。
中断返回和清除
中断返回
中断处理程序执行完毕后,PIC单片机会自动返回到被中断的程序继续执行。
中断清除
某些中断源在响应后会自行清除中断标志位,而有些则需要手动清除。
03
PIC单片机中断系统的应用
定时器中断
中断处理程序应遵循一定的编写规范,以确 保程序正确、稳定地运行。例如,应避免在 中断处理程序中进行耗时的操作,以减小对 系统性能的影响。
单片机中断系统详细教程
单片机中断系统详细教程一、中断系统的原理中断系统是一种异步事件响应机制,它允许设备在正常程序运行的过程中插入一个特殊事件,中断请求触发后,处理器即刻中断当前程序的执行,执行特定的中断服务程序,完成对事件的处理。
其流程如下: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.编写中断服务程序根据需要,编写相应的中断服务程序来处理中断事件。
PIC单片机中断系统详细汇总
精选版课件ppt
9
§8.4 中断相关的寄存器
与中断有关的特殊功能寄存器SFR共有6个, 分别是:
选 项 寄 存 器 OPTION_REG 、 中 断 控 制 寄 存 器INTCON、第一外围设备中断标志寄存器PIR1、 第一外围设备中断屏蔽寄存器PIE1(也称中断使能 寄存器)、第二外围设备中断标志寄存器PIR2和第 二外围设备中断屏蔽寄存器PIE2,如表9.2所列。
1=选择RB0/INT上升沿触发;
精选版课件ppt
12
0=选择RB0/INT下降沿触发 ⒉中断控制寄存器INTCON
中断控制寄存器是一个可读/可写的寄存 器,各位的分布形式如下:
它将第一梯队中的3个中断源的标志位和屏 蔽位,以及PEIE和GIE包含在其中:
RBIF : 端 口 RB 的 引 脚 RB4 ~ RB7 电 平 变 化 中 断标志位。
TMR2IF:定时/计数器TMR2模块溢出中断标 志位。
➢ 1=发生了TMR2溢出; 0=未发生TMR2溢出。
CCP1IF:输入捕捉/输出比较/脉宽调制CCP1 模块中断标志位。
❖ 输入捕捉模式下:
1=发生了捕捉中断请求;
0=未发生捕捉中断请求。
精选版课件ppt
17
❖ 输出比较模式下: 1=发生了比较输出中断请求; 0=未发生比较输出中断请求。
后5个SFR,共有40位,但仅使用了30位来控 制中断,分别与图9.l中的中断逻辑电路的输入信 号成严格的对应关系。
精选版课件ppt
10
精选版课件ppt
11
⒈选项寄存器OPTION _REG
OPTION_REG选项寄存器是可读写的, 各位的分布形式:
该寄存器包含了与定时/计数器TMR0、 分频器和端口RB有关的控制位。RB端口引脚 RB0和外部中断INT复用一脚,与该脚有关的一 个控制位含义如下: INTEDG:外部中断INT触发信号边沿选择位:
单片机原理及应用 单片机的中断系统(详细分析:中断)共18张PPT
1.定时控制寄存器TCON
D7 D6 D5 D4
TF1
TF0
D3 D2 D1 D0 IE1 IT1 IE0 IT0
中断请求标志
触发方式 0 低电平1
选择
下降沿
注意:电平触发时,在中断返回前应撤除中断源。
2.串行口控制寄存器SCON
D7 D6 D5 D4 D3 D2 D1 D0 串行中断 TI RI 请求标志
③ 若现行指令是RETI、RET或访问IE、IP指令,则需要
执行到当前指令及下一条指令方可响应。
响应过程--单片机响应中断后,自动执行下列操作: ① 置位中断优先级有效触发器,即关闭同级和低级
中断:
② 调用入口地址,断点入栈,相当于LCALL指令; ③ 进入中断服务程序。
响应时间--从查询中断请求标志位到转向中断服务入 口地址所需的机器周期数。 (1)最快响应时间
T0 中断000,BH 允许或禁止向CPU请求中断。
响应条件----CPU要响应中断需满足下列条件:
有关的特殊功能寄存器(SFR)有: 注意:电平触发时,在中断返回前应撤除中断源。
5个中断源,具有二个中断优先级,可实现二级中断服务程序的嵌套。 将PCON寄存器的IDL位置“1”,单片机则进入待机方式。
中断返回—中断处理程序的最后一条指令 是RETI,它使CPU结束中断处理程序的执 行,返回到断点处,继续执行主程序。
中断系统初始化
开相应中断源的中断;(IE) 设定中断优先级;(IP) 若为外部中断,设定外部中断的触发方式。
中断应用举例
外设每准备好一个数据后,发出选通信号,使D触发器
输出1再经非门得0至INT0,向CPU发出中断请求,
掉电保护方式。如果单片机检测到电源电压过低, 此时除进行信息保护外,还需将PD位被置“1”, 使单片机进入掉电保护方式。
MCS-51中断系统教学课件PPT
5.2 MCS-51单片机的中断系统 有5个中断请求源,两个中断优先级,可两级嵌套。 MCS-51单片机的中断系统结构示意图,如图5-3所示。
5.2.1 中断源及中断入口
中断源是指能发出中断请求,引起中断的装置或事件。 MCS-51单片机共有5个中断源,其中2个为外部中断源,3 个为内部中断源:
CPU处理事件的过程,称为CPU的中断响应过程。
图5-1中断流程图所示。 对事件的整个处理过程, 称为中断处理(或中断 服务)。
能够实现中断处理功能的部件称为中断系统;产生中断 的请求源称为中断请求源。中断源向CPU提出的处理请 求,称为中断请求(或中断申请)。进入中断→保护现场 →中断处理恢复现场 →中断返回
MOV IP,#00010100B;
需要指出的是,若置5个中断源全部为高优先级,就等于 不分优先级。
MCS-51单片机响应中断的基本原则如下: 1)低优先级中断可被高优先级中断请求所中断,反之则不 能。 2)在同一优先级中(不管是高优先级或低优先级),某个 中断一旦得到响应,与它同级的中断请求就不能再中断它。 CPU同时接收到几个中断时,首先响应优先级最高的中断请 求。如果同级的多个中断请求同时出现,则按CPU查询次序 确定的中断优先权排队来响应,其确定的查询次序见表5.6。 由此可见,各中断源在同一个优先级的条件下,外部中断0 的中断优先权最高,串行口中断优先权最低。
5.3.1 中断响应 1.CPU的中断响应条件 CPU响应中断的条件主要有以下几点: 1)由中断源发出中断申请。 2)中断总允许位EA=1,即CPU允许所有中断源申请中断。 3)申请中断的中断源的中断允许位为1,即此中断源没有被屏
蔽,可以向CPU申请中断。 以上是CPU响应中断的基本条件。若满足,CPU一般会响应中 断,但如果有下列任一种情况存在,中断响应即被封锁。
第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)用字节操作指令
51单片机中断系统详解
51单片机中断系统详解51 单片机中断系统详解(定时器、计数器)51 单片机中断级别中断源INT0---外部中断0/P3.2 T0---定时器/计数器0 中断/P3.4 INT1---外部中断1/P3.3 T1----定时器/计数器1 中断/P3.5 TX/RX---串行口中断T2---定时器/计数器 2 中断第5 最低4 5 默认中断级别最高第2 第3 第4 序号(C 语言用) 0 1 2 3 intrrupt 0中断允许寄存器IE位序号符号位EA/0 ------ET2/1 ES ET1 EX1 ET0 EX0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 EA---全局中允许位。
EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。
EA=0,关闭全部中断。
-------,无效位。
ET2---定时器/计数器2 中断允许位。
ET2=1, 打开T2 中断。
ET2=0,关闭T2 中断。
关,。
ES---串行口中断允许位。
关,。
ES=1,打开串行口中断。
关,。
ES=0,关闭串行口中断。
关,。
ET1---定时器/计数器1 中断允许位。
关,。
ET1=1,打开T1 中断。
ET1=0,关闭T1 中断。
EX1---外部中断1 中断允许位。
EX1=1,打开外部中断1 中断。
EX1=0,关闭外部中断1 中断。
ET0---定时器/计数器0 中断允许位。
ET0=1,打开T0 中断。
EA 总中断开关,置1 为开;EX0 为外部中断0 (INT0) 开关,。
ET0 为定时器/计数器0(T0)开EX1 为外部中断1(INT1)开ET1 为定时器/计数器1(T1)开ES 为串行口(TX/RX)中断开ET2 为定时器/计数器2(T2)开ET0=0,关闭T0 中断。
EX0---外部中断0 中断允许位。
EX0=1,打开外部中断0 中断。
EX0=0,关闭外部中断0 中断。
中断优先级寄存器IP位序号位地址------PS/0 PT1/0 PX1/0 PT0/0 PX0/0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 -------,无效位。
第十一讲单片机的中断系统PPT教学课件
处于同一级的中断请求的中断优先权顺序由高到低 的顺序为:
外部中断0--定时器中断0--外部中断1--定时器中断1--串行 口中断
2020/12/10
10
中断优先级的使用
在开放中断的条件下,用下述四个原则使用中断优 先级结构:
1)非中断服务子程序可以被任何一个中断申请 所中断。
2)同时发生多个中断申请时,则优先级最高且 优先权最高的予以响应。
在相应的中断服务程序入口地址处使用LJMP指令跳转到中 断服务程序处。
2020/12/10
14
4.中断返回
CPU从前面相应的中断入口地址开始执行中断服务程序直 到遇到1条RETI指令为止。RETI指令表示中断服务程序的 结束。
在中断服务程序执行后有两项工作要作:
中断申请的清除
定时器溢出中断源的中断请求是自动撤除的。
3)低优先级可以被高优先级的中断所中断。即 同级不能形成中断嵌套,高优先级不能被低优先 级嵌套。
4)在同一个优先级里,优先权的顺序是由硬件 决定而不能改变的。
2020/12/10
11
中断优先的设置原则
在实时系统中,中断优先级的建立是很重要的。比如在 一个系统中,有如下任务:
1)串口读出字符(典型1ms内) 2)识别人的按键(典型100ms内) 3)一个实时时钟(一个最小计数单位)
MCS-51单片机规定了五个中断服务程序入口。
编号
中断源
入口地址
0 外部中断0(INT0)
0003H
1 定时器/计数器0(T0)
000BH
2 外部中断1(INT1 )
0013H
3 定时器/计数器1(T1)
001BH
4 串行口(ES )
c51单片机中断详解
响应中断请求的条件
一、一个中断请求被响应,需满足以下 必要条件:
(1)IE寄存器中的中断总允许位EA=1。
(2)该中断源发出中断请求,即该中断源对应 的中 断请求标志为“1”。
(3)该中断源的中断允许位=1,即该中断没有 被屏蔽。
(4)无同级或更高级中断正在被服务。
二、中断响应的主要过程
中断源
或者用: MOV 0A8H,#8AH ;A8H为IE寄存器 字节地址
三、中断优先级寄存器IP 两个中断优先级,可实现两级中断 嵌套。如图所示:
每个中断源的中断优先级都是 由中断优先级寄存器IP中的相应位 的状态来控制的。 中断优先级寄存器IP,其字节地址 为B8H。
IP各个位的含义: (1)PS——串行口中断优先级
控制位 1:高优先级中断; 0:低优先级中断。
(2)PT1——定时器T1中断优先级控制位 1:高优先级中断; 0:低优先级中断。
(3)PX1——外部中断1中断优先级控制位 1:高优先级中断; 0:低优先级中断。
(4)PT0——定时器T0中断优先级控制位 1:高优先级中断; 0:低优先级中断。
(5)PX0——外部中断0中断优先级控制位 1:高优先级中断; 0:低优先级中断。
地址是固定的,不能改动。
例
三、中断处理 编写中断中断服务程序即可
四、中断返回
▪中断返回由专门的中断返回指令 RETI来实现。
五、中断请求的撤消 2.外部中断请求的撤消 (1)跳沿方式外部中断请求的撤消 是自动撤消的。 (2)电平方式外部中断请求的撤消。
六、外部中断的响应时间 外部中断的最短的响应时间为3
二、中断允许控制
中断允许控制寄存器IE
CPU对中断源的开放或屏蔽,由片内 的中断允许寄存器IE控制(两级控制)。 字节地址为A8H,可位寻址。格式如下:
51单片机汇编语言教程:18课单片机中断系统
51单片机汇编语言教程:第18课-单片机中断系统MCS-51单片机中断系统的结构:5个中断源的符号、名称及产生的条件如下。
INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。
INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。
T0:定时器/计数器0中断,由T0计满回零引起。
T1:定时器/计数器l中断,由T1计满回零引起。
TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。
整个中断系统的结构框图见下图一所示。
<51单片机中断系统结构>如图所示,由与中断有关的特殊功能寄存器、中断入口、次序查询逻辑电路等组成,包括5个中断请求源,4个用于中断控制的寄存器IE、IP、ECON和SCON来控制中断类弄、中断的开、关和各种中断源的优先级确定。
中断请求源:(1)外部中断请求源:即外中断0和1,经由外部管脚引入的,在单片机上有两个管脚,名称为INT0、INT1,也就是P3.2、P3.3这两个管脚。
在内部的TCON中有四位是与外中断有关的。
IT0:INT0触发方式控制位,可由软件进和置位和复位,IT0=0,INT0为低电平触发方式,IT0=1,INT0为负跳变触发方式。
这两种方式的差异将在以后再谈。
IE0:INT0中断请求标志位。
当有外部的中断请求时,这位就会置1(这由硬件来完成),在CPU响应中断后,由硬件将IE0清0。
IT1、IE1的用途和IT0、IE0相同。
(2)内部中断请求源TF0:定时器T0的溢出中断标记,当T0计数产生溢出时,由硬件置位TF0。
当CPU响应中断后,再由硬件将TF0清0。
TF1:与TF0类似。
TI、RI:串行口发送、接收中断,在串行口中再讲解。
2、中断允许寄存器IE在MCS-51中断系统中,中断的允许或禁止是由片内可进行位寻址的8位中断允许寄存器IE来控制的。
见下表EAX其中EA是总开关,如果它等于0,则所有中断都不允许。
ES-串行口中断允许ET1-定时器1中断允许EX1-外中断1中断允许。
最新单片机中断系统精品课件
ET0: 定时器T0中断允许位, ET0=1,允许T1计数溢出中断; ET0=0,禁止T0
EX1: 外部中断INT1允许位, EX1=1,允许INT1中断; EX1= 0,禁止INT1
EX0: 外部中断INT0允许位, EX0=1,允许INT0中断; EX0= 0,禁止INT0中断。
执行指令
N
中断标志1?
(中断请求?)
Y
N
指令
最后一个T周期?
Y
中断请求.
N
EA=1? 允 许 位 = 1?
Y CPU 判 别优 先权 ,响 应优 先权高 的中断
中断响应
断点的PC进栈, 中断服务入口地址送PC
撤除中 断标志
中断服务
中断服务 中 断 返 回, 断 点 出 栈 送 PC
中断返回
1)中断请求、中断响应过程由硬件完成。 2)中断服务程序应根据需要进行编写。程序中要注意 保护现场和恢复现场。 3)中断返回是通过执行一条RETI中断返回指令,使 堆栈中被压入的断 点地址送PC,从而返回主程序的断 点继续执行主程序。
返回值 函数名([参数])[模式][再入]interrupt n[using m]
其中interrupt n 表示将函数声明为中断服务函数,n 为中断源编号,可以是0~31间的整数 ,不允许是带运 算符的表达式,n 通常取以下值:
0 外部中断0 1 定时器/计数器0溢出中断; 2 外部中断1; 3 定时器/计数器1溢出中断; 4 串行口发送与接收中断;
中断标志
源允许 总允许
IP PX0 1
0
PT0 1 0
PX1 1 0
单片机中断系统详细教程
单片机中断系统详细教程单片机中断系统是一种用来处理外部事件的机制,它可以在程序执行过程中,根据外部事件的发生而立即打断程序的执行,转去执行相应的中断服务程序,处理完毕后再回到原来的程序代码继续执行。
在微控制器中,中断系统广泛应用于各种外部事件的处理,包括定时器中断、外部中断、串口中断等。
本文将详细介绍单片机中断系统的原理和使用方法。
一、中断系统的基本原理在单片机中,中断系统由中断源、中断向量和中断服务程序三部分组成。
中断源是指引发中断的外部事件,例如定时器计数溢出、外部输入电平变化等。
中断向量是一个特殊的地址,用于存储中断服务程序的入口地址。
中断服务程序是一段用于处理中断事件的程序代码,它会在中断发生时被自动调用执行。
当单片机在运行程序的过程中发生中断事件时,会首先保存当前的程序状态,包括程序计数器、寄存器等,然后跳转至中断向量中存储的中断服务程序的入口地址开始执行。
中断服务程序执行完毕后,会恢复之前保存的程序状态,返回到原来的程序代码继续执行。
这样的机制可以有效地处理外部事件,提高系统的响应速度和处理效率。
二、中断系统的使用方法使用中断系统需要具备以下步骤:1.初始化中断系统:根据需要选择中断源,并设置中断控制寄存器的相应位,使能或禁止中断。
2.编写中断服务程序:根据中断源的不同,编写相应的中断服务程序。
例如,对于定时器中断,可以在中断服务程序中进行定时事件的处理。
3.设置中断向量表:中断向量是一个特殊的表格,存储着中断服务程序的入口地址。
需要将中断服务程序的入口地址写入中断向量表的相应位置。
4.在主程序中启用中断:在主程序中,需要将中断使能位设置为1,从而使得中断能够被触发并执行中断服务程序。
5.在主程序中处理中断事件:根据需要,在主程序中处理中断事件。
可以通过判断特定的中断标志位来确定中断源,然后执行相应的处理逻辑。
三、中断系统注意事项在使用中断系统时,需要注意以下几点:1.中断服务程序需要尽量简短,避免过多的延时或占用过多的系统资源,否则会影响主程序的执行效率。
单片机的中断系统
TR 1
TF0
TR 0
IE1
IT1
IE0
IT0
IT0,外部中断0(INT0)触发方式控制位,用于 设定INT0中断请求信号的有效方式。如果将IT0设定 为1,则外部中断0为边沿(脉冲)触发方式,CPU在 每个机器周期的S5P2采样INT0的输入信号(即单片 机的P3.2脚)。如果在一个机器周期中采样到高电平, 在下一个机器周期中采样到低电平,则硬件自动将 IE0置为“1”,向CPU请求中断;如果IT0为0,则外 部中断0为电平触发方式。此时系统如果检测到INT0
表4-1 中断入口地址及优先级排列表
中断源
入口地址
中断级别
外部中断0
0003H
最高
T0溢出中断
000BH
外部中断1
0013H
T1溢出中断 串行口中断
001BH 0023H
最低
三、中断系统使用的多功能寄存器 要使用8051单片机的中断功能,必须掌握4个相
关的特殊功能寄存器中特定位的意义及其使用方法。 下面分别介绍4个特殊功能寄存器对中断的具体管理 方法。 (1)TCON
清零。
送,向CPU申请中断,准备发送下一帧数据。 2出现脉冲后沿或低电平),则由中断系统的硬件电
号是低电平有效,即P3.2保持为0时系统认为INT0有中断 然后,根据中断源的类别,在硬件的控制下,内部自动执行一条子程序调用指令,将程序转移至相应的中断入口处,开始执行中断服
务程序。
而高优先级中断源不能被低级的中断源所中断;
请求。 有中断请求,IT0=0时则没有中断请求。
如果产生了一个中断请求,而且满足响应的条件,CPU响应中断,由硬件生成长调用指令转到相应的中断服务程序入口,这条指令是 双机器周期指令。
单片机的中断系统
Courseware template
自动将RI置位,向CPU申请中断。 TI,串行口的发送中断标志位。在方式0中,每当发
送完8位数据时由硬件置位。在其他方式中,在发送到停 止位开始时置位TI,表示串行口已经完成一帧数据的发 送,向CPU申请中断,准备发送下一帧数据。要发送的数 据一旦写入串行口的数据缓冲器SBUF,单片机的硬件电 路就立即启动发送器进行发送。CPU响应中断时并不清零 TI,同样要在程序中用指令来清零。
On the evening of July 24, 2021
Courseware template
直至该中断信号被检测到。同时在中断返回前必须变为电 平,否则会再次产生中断。概括地说,IT0=1时INT0的中 断请求信号是脉冲后沿(负脉冲)有效,P3.2从1变为0时 系统认为INT0有中断请求;IT0=0时,INT0的中断请求信 号是低电平有效,即P3.2保持为0时系统认为INT0有中断 请求。
2)一种中断源(无论是高优先级或低优先级)一旦得 到响应,就不会被同级的中断源所中断;
3)低优先级的中断源和高优先级的中断源同时产生中 断请求时,系统先响应高优先级的中断请求,后响应低优 先级的中断请求;
On the evening of July 24, 2021
Courseware template
IE0,外部中断0的中断请求标志位。如果IT0置1,则 当P3.2上的电平由1变为0时,由硬件置位IE0,向CPU申
On the evening of July 24, 2021
Courseware template
请中断。如果CPU响应该中断,在转向中断服务时,由硬 件将IE0复位。可见,IT0用于设定INT0中断请求的信号形 式。设定了IT0后,如果INT0产生了有效的中断请求信号 (P3.2出现脉冲后沿或低电平),则由中断系统的硬件电 路自动将IE0置位。单片机系统在工作过程的每一个机器 周期的特定时刻(即S5P2),通过检测INT0的中断请求标 志位IE0是1还是0来确定INT0是否有中断请求,而不是通 过检测P3.2上的中断请求信号来确定INT0的中断请求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中断服务函数分析
定时器0的中断服务函数 0xFFFF 0x2B
void time0ISR(void) interrupt 1 { tnOsTimeTick(); }
中断入口处汇编代码 0x000B 0x000E 0x000F 0x0010 0x0011 0x0012 …… LJMP time0ISR NOP NOP NOP NOP NOP …… time0ISR: 0x015D PUSH 0x20 …… 中断响应
外部中断0
0 1 1
同优先级 无 或更高优 中断处理 先级中断 处理中 中
外部中断1
0 1 1 1
1
0
0
1
0
1
0
0
1
0
0
由软件清0
中断响应
中断得到响应的条件
中断响应与返回过程
主程序 中断程序
堆栈空间
执行PUSH 执行POP 指令出栈 指令入栈
ISR()
PSW R0~R7 DPH DPL B ACC PCH PCL
中断嵌套处理机制:
高优先级中断抢先处理,处理完后 继续处理被抢占的低优先级中断
中断源
低优先级 高优先级
主 程 序
UART中 断服务
低优先级中 断被抢占
INT0 T0 INT1 中断请 求有效 UART T1
中断嵌套
T0中断 服务
继续处理被 抢占的中断
目
录
中断概念 80C51的中断结构
相关寄存器
中断向量 中断操作 使能和禁止中断
C语言代码 char GcA = 2; // 地址为0x5A char GcB = 1; // 地址为0x5B main () { while (1) { GcA = GcA + GcB; if (GcA == GcB) { GcA = 1; } } } void ISR() interrupt 1 { GcA = 1; }
工作和状态寄存器 指针寄存器DPTR 累加器A、B 中断返回地址
执行RETI出栈 CPU自动处理入栈
中断响应过程
C51编程中由 编译器处理出 入栈的操作
中断函数的定义
void ISRname(void) interrupt n [ using m ] 函数类型 ISRname ——无参数,无返回值 ——中断服务函数名称,由用户定义
中断相关寄存器
1
0
0
1
0
1
0
0
1
0
0
相应位写1使能
相应位写1置为高优先级
目
录
中断概念 80C51的中断结构
相关寄存器
中断向量 中断操作 使能和禁止中断
中断向量
中断向量——
CPU响应中断时跳转到一个特定的地址开始 执行中断服务程序,这个地址就是中断向量
0xFFFF
......
5个中断源均有 独立的中断向量
中断标志的产生
若配置为下降沿触发
P3.2
0xFFFE 0xFFFF 0x0000
P3.2引脚出现下降沿时IE0被置1 定时器0计数溢出是TF0被置1 若配置为低电平触发
1
P3.3
1
0xFFFE 0xFFFF 0x0000
P3.3引脚出现下降沿时IE1被置1 定时器1计数溢出是TF0被置1
接收完一个字符RI被置1 发送完一个字符TI被置1
此时发 生中断
对应的汇编代码 C:0x0109 C:0x010B C:0x010D C:0x010F C:0x0112 C:0x0015 …… MOV A, 0x5B ADD A, 0x5A MOV 0x5A, A CJNE A,0x5B,C:0x0109 MOV 0x5B,#0x01 SJMP C:0x0109
紧急处理
回忆会议进度
中断响应
现场保护 保存返回地址 和状态信息
中断服务
现场恢复 恢复暂停 前的环境
中断相关基础知识
调用程序与响应中断服务函数
中断请求 中断请求 子函数2 子函数3
主函数 程序段1
假象: CPU同时执 行多任务
子函数1
主函数 程序段3
……
中断服务 函数
中断服务 函数
事实: CPU不能同时执 行1条以上的指令
本章将学习的部件
定时器0 看门狗定时器
本章内容简介
2 . 1 中断系统
CPU事件响应机制
2 . 2 定时/计数器
2 . 3 看门狗 2 . 4 I2C总线及其驱动程序 2 . 5 串行口及其驱动程序
外设功能部件
2.1 中断系统
目
录
中断相关概念 80C51的中断结构
相关寄存器
中断向量 中断操作 使能和禁止中断
此时发 生中断
对应的汇编代码 MOV A, 0x5B ADD A, 0x5A MOV 0x5A, A MOV A, 0x5A CJNE A,0x5B,C:0x0109 MOV 0x5B,#0x05 SJMP C:0x0109
1 GcA = 3 2
GcB = 1 5
变量值
原子操作
原 子 —— 在化学里面指的是不可分割, 在计算机里面指的是不可中断
中断编号 n 中断源
interrupt n —— n是中断编号,指示中断向量 [ using m ] —— 可选部分,用于选择工作寄存器组
定时器0的中断服务函数
void time0ISR(void) interrupt 1 { tnOsTimeTick(); }
0 1 2 3 4
INT0
T0
INT1 T1 UART
原子操作 —— 不可被中断的操作
对应的汇编指令 data char flags = 0; void main(void) { …… flags |= 0x80; …… } xdata char flags = 0; void main(void) { …… flags |= 0x80; …… } MOV DPTR, #0x0000 MOVX A, @DPTR ORL A, 0x80 MOVX @DPTR, A 中断可以发 生在访问变 量的过程中
本章导读
下一阶段将要学习“模电”和“数电”, 重在分析电路原理、器件内部结构和应用设计理论
现阶段重在学习使用基本数字器件
E2PROM存储器
温度传感器
TTL-RS232电平转换器
……
本章中用到
P89V51RB2功能框图
上一章的数码管和键盘程序只用到P0~P2 I/O 口 高性能80C51 CPU
16KB程序Flash 1KB数据RAM
有保护地使用全局资源(如全局变量) 不调用不可重入函数 以原子型的方式使用硬件
不可重入函数
temp int temp; void fun(int *x, *y) { if (*x < *y) { temp = *x; // 交换*x和*y的值 *x = *y; *y = temp; } }
void some_isr(void) interupt 2 { int c = 4, d = 5; fun(&c,&d); ………… } void main(void) { int a = 1, b = 2; fun(&a,&b); …… }
对应的汇编指令
ORL 0x5B, 0x80
堆栈溢出
发生函数调用、分配局部变量和响应中断时
——将会使用堆栈空间
要使用堆栈的空间
>
可用的堆栈空间
——发生堆栈溢出
堆栈指针超 出堆栈空间
发生堆栈溢出的情况
0xFF SP 0xC0 0xBF
堆栈空间
0x7F
......
0x01 0x00
数据存储器
可重入性
一般来说具有如下特性的函数满足可重入性
PC跳转方式
调用子函数 响应中断 服务函数
不同点
相同点
都是暂停当前 程序转去执行 其他的程序
目
录
中断概念 80C51的中断结构
相关寄存器
中断向量 中断操作 使能和禁止中断
80C51中断结构示意图
中断仲裁
中断编号 中断源
0 1 2 3 4
INT0 T0 INT1 T1 UART
假设中断优先级如下: 中断源 INT0、INT1高优先级 低优先级 、UART 为低优先级; IT0、T1为高优先级 INT0 T0 INT1 T1 UART 中断请 求有效
判断不 正确
A= 0 1 3
1 GcA = 2 3
GcB = 1
变量值
volatile的作用
C语言代码 volatile char GcA = 2; C:0x0109 char GcB = 1; C:0x010B main () C:0x010D { C:0x010F while (1) { C:0x0111 GcA = GcA + GcB; C:0x0114 if (GcA == GcB) { C:0x0017 GcB = 5; …… } 判断 } 正确 } A= 0 1 3 void ISR() interrupt 1 { GcA = 1; } volatile的作用: 每次使用变量时都重新读取变量 的值而不是使用寄存器的备份值
UART T1 INT1 T0 INT0 复位后PC指向的地址 0x2B 0x23 0x1B 0x13 0x0B 0x03 0x00 8字节空间
程序存储器
中断向量表
中断编号
中断源
中断标志
中断向量
中断使能
中断优先级
仲裁顺序
掉电唤醒
目
录
中断概念 80C51的中断结构
相关寄存器
中断向量 中断操作 使能和禁止中断