单片机中的中断ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中断的设定
1、开启中断开关(设定IE寄存器) 例:EA=1; EX0=1; 2、中断优先级的设定(设定IP寄存器) 例:PT1=1; 3、中断信号的设定(设定TCON寄存器) 例:IT0=1;
练习: 1、利用外部中断INT1来控制P1.1的LED灯,当有外部中 断时LED的状态取反。 2、控制P1.1的LED灯每隔0.5s状态取反一次,要求用定 时器T0的工作方式1进行计时。分别以查询方式和中断方 式进行控制。 3、要求主程序正常执行时,4个LED灯间隔0.8s闪烁, 若按下按键K1,4个LED灯将正向流水循环3次(间隔 0.4s)。用T1的工作方式1编写延时程序,按键动作采用 外部中断INT0(p3.2)实现。
实时处理:
CPU能够及时处理应用系统的随机事件,系统的实时 性大大增强。
中断系统的结构
TCON ____ INT0 IT0=0 IT0=1 T0 TF0 ET0 ____ IT1=0 INT1 IT1=1 T1 TX RX PX1 IE1 EX1 PT1 TF1 ET1 TI + RI SCON 中断标志 ES 源允许 EA 总允许 PS IE IP PX0 EX0 PT0 1 0 1 0 1 0 1 0 1 0 优先级 自 然 优 先 级 矢量 地址 硬件查询 低 级 中 断 请 求 PC IE0 自 然 优 先 级 矢量 地址 高 级 中 断 请 求 PC
中断标志位
中断标志位 位名称 说 明 T1被启动计数后,从初值开始加1计数,计满溢出后由硬 件置位TF1,同时向CPU发出中断请求,此标志一直保持 到CPU响应中断后才由硬件自动清0。也可由软件查询该标 志,并由软件清0。前述的定时器编程都是采用查询方式实 现。 T0被启动计数后,从初值开始加1计数,计满溢出后由硬 件置位TF0,同时向CPU发出中断请求,此标志一直保持 到CPU响应中断后才由硬件自动清0。也可由软件查询该标 志,并由软件清0。 IE1 = 1,外部中断1向CPU申请中断。
PT1
IP.3
PX1
IP.2
PT0
T0中断优先控制位
IP.1
PT0 = 1,设定定时器T0为高优先级中断;PT0 = 0, 设定定时器T0为低优先级中断。
PX0 = 1,设定外部中断0为高优先级中断;PX0 = 0, 设定外部中断0为低优先级中断。
PX0
外部中断0中断优先控 制位
IP.0
中断处理过程
2、SCON的中断标志
RI(SCON.0),串行口接收中断标志位。当允许串
行口接收数据时,每接收完一个串行帧,由硬件置位 RI。注意,RI必须由软件清除。 TI(SCON.1),串行口发送中断标志位。当CPU将 一个发送数据写入串行口发送缓冲器时,就启动了发 送过程。每发送完一个串行帧,由硬件置位TI。CPU 响应中断时,不能自动清除TI,TI必须由软件清除。
中断处理过程
中断响应过程就是自动调用并执行中断函数的过程。 C51编译器支持在C源程序中直接以函数形式编写中断服 务程序。常用的中断函数定义语法如下: void 函数名() interrupt n 其中n为中断类型号,C51编译器允许0~31个中断, n取值范围0~31。下面给出了8051控制器所提供的5个中 断源所对应的中断类型号和中断服务程序入口地址: 中断源 n 入口地址 外部中断0 0 0003H 定时/计数器0 1 000BH 外部中断1 2 0013H 定时/计数器1 3 001BH 串行口 4 0023H
RI
串行接收中断标志
SCON.0
当串行口允许接收时,每接收完一个串行帧,硬件都使RI 置位;同样,CPU在响应中断时不会自动清除RI,必须由 软件清除。
中断的开放和禁止
MCS-51系列单片机的5个中断源都是可屏蔽中断,中断系统内部设 有一个专用寄存器IE,用于控制CPU对各中断源的开放或屏蔽。IE寄 存器格式如下:
中断优先级
中断优先级控制位 位名称 说明
PS
串行口中断优先控制 位 定时器T1中断优先控 制位 外部中断1中断优先控 制位
IP.4
PS = 1,设定串行口为高优先级中断;PS = 0,设 定串行口为低优先级中断。 PT1 = 1,设定定时器T1为高优先级中断;PT1 = 0, 设定定时器T1为低优先级中断。 PX1 = 1,设定外部中断1为高优先级中断;PX1 = 0, 设定外部中断1为低优先级中断。
IE(A8H)
D7 EA
D6 ×
D5 ×
D4 ES
D3 ET1
D2 EX1
D1 ET0
D0 EX0
中断的开放和禁止
IE(A8H) D7 EA D6 × D5 × D4 ES D3 ET1 D2 EX1 D1 ET0 D0 EX0
中断允许位 总中断允许控 制位 串行口中断允 许位 T1中断允许位 INT1中断允许 位 T0中断允许位 INT0中断允许 位
中断处理过程 中断响应时间
中断响应时间是指从中断请求标志位置位到CPU开始执 行中断服务程序的第一条语句所需要的时间。 1)中断请求不被阻断的情况 外部中断响应时间至少需要3个机器周期,这是最短的 中断响应时间。一般来说,若系统中只有一个中断源,则 中断响应时间为3 8个机器周期。 2)中断请求被阻断的情况 如果系统不满足所有中断响应条件、或者存在任何一种 中断阻断情况,那么中断请求将被阻断,中断响应时间将 会延长。
TF1
T1溢出中断标志
TCON.7
TF0 IE1 IT1 IE0 IT0 TI
T0溢出中断标志 外部中断1中断标志
TCON.5 TCON.3
中断触发方式控制位 TCON.2
外部中断0中断标志 TCON.1
当IT1 = 0,外部中断1控制为电平触发方式;当IT1 = 1, 外部中断1控制为边沿(下降沿)触发方式。
void int_0() interrupt 0 { P1=0x00; delay0_5s(); P1=0xff; delay0_5s(); } void main() { unsigned char i,w; EA=1; EX0=1; IT0=1; TMOD=0x01; while(1) { w=0x01; for(i=0;i<8;i++) { P1=~w; w<<=1; delay_t(2); } } }
EX1 = 1,允许外部中断1中断;EX1 = 0, 禁止外部中断1中断。 ET0 = 1,允许T0中断;ET0 = 0,禁止T0 中断。 EX0 = 1,允许外部中断0中断;EX0 = 0, 禁止外部中断0中断。
中断优先级
1、自然优先级
MCS-51系列单片机有两个中断优先级:高优先级和低优 先级。 每个中断源都可以通过设置中断优先级寄存器IP确定为 高优先级中断或低优先级中断,实现二级嵌套。同一优先 级别的中断源可能不止一个,因此,也需要进行优先权排 队。同一优先级别的中断源采用自然优先级。 中断优先级寄存器IP,用于锁存各中断源优先级控制位。 IP中的每一位均可由软件来置1或清0,1表示高优先级,0 表示低优先级。
IE0= 1,外部中断0向CPU申请中断。
中断触发方式控制位 TCON.0
串行发送中断标志 SCON.1
当IT0= 0,外部中断0控制为电平触发方式;当IT0 = 1,外 部中断0控制为边沿(下降沿)触发方式。
CPU将数据写入发送缓冲器SBUF时,启动发送,每发送完 一个串行帧,硬件都使TI置位;但CPU响应中断时并不自 动清除TI,必须由软件清除。
第 4章
定时与中断系统
本章内容
定时/计数器 C语言的函数
中断系统
任务9 可控霓虹灯控制
任务要求: 正常情况下8个霓虹灯(LED灯)依次顺序点亮,循 环显示,时间间隔为1s。按键(按P3.2口)按下后8个霓 虹灯同时亮灭一次,时间间隔为0.5s。用T0、工作方式1 编制延时程序,按键动作采用外部中断INT0实现。
#include <reg51.h> void delay0_5s() //延时0.5s { unsigned char i; for(i=0;i<0x0a;i++) { TH0=0x3c; TL0=0xb0; TR0=1; while(!TF0); TF0=0; } } void delay_t(unsigned char t) { unsigned char i; for(i=0;i<t;i++) delay0_5s(); }
1、4个与中断有关的寄存器:中断标志TCON、SCON、IE、IP 2、5个中断源:INT0、INT1、T0、T1、RI/TI 3、中断标志位 4、中断允许控制位 5、中断源的中断优先级
MCS-51系列单片机中断源
序号
1
中断源
外部中断0请求
说 明
由P3.2引脚输入,通过IT0位(TCON.0)来决定是低 电平有效还是下降沿有效。一旦输入信号有效,即向 CPU申请中断,并建立IE0(TCON.1)中断标志。任 务9中采用下降沿有效,由按键产生下降沿。 由P3.3引脚输入,通过IT1位(TCON.2)来决定是低 电平有效还是下降沿有效。一旦输入信号有效,即向 CPU申请中断,并建立IE1(TCON.3)中断标志。 当T0产生溢出时,T0溢出中断标志位TF0(TCON.5) 置位(由硬件自动执行),请求中断处理。 当T1产生溢出时,T1溢出中断标志位TF1(TCON.7) 置位(由硬件自动执行),请求中断处理。
主程序 中断响应
中断请求
执行主 程序
断点 继续执行 主程序 执行 中断 处理 程序
中断返回
中断基本概念
(1)中断服务程序:CPU响应中断后,转去执行相应的
处理程序,该处理程序通常称之为中断服务程序。
(2)主程序:原来正常运行的程序称为主程序。 (3)断点:主程序被断开的位置(或地址)称为断点。 (4)中断源:引起中断的原因,或能发出中断申请的来 源,称为中断源。 (5)中断请求:中断源要求服务的请求称为中断请求 (或中断申请)。
中断特点
同步工作:
中断是CPU和接口之间的信息传递方式之一,它使CPU 与外设同步工作,较好地解决了CPU与慢速外设之间的配 合问题。例如:打印输出。
异常处理:
针对难以预料的异常情况,如掉电、存储出错、运算 溢出等,可以通过中断系统由故障源向CPU发出中断请求, 再由CPU转到相应的故障处理程序进行处理。
位名称
说明 EA = 1,开放所有中断,各中断源的允许 和禁止可通过相应的中断允许位单独加 以控制;EA = 0,禁止所有中断。 ES = 1,允许串行口中断;ES = 0禁止串 行口中断。
EA
IE.7
ES ET1 EX1 ET0 EX0
IE.4 IE.3 IE.2 IE.1 IE.0
ET1 = 1,允许T1中断;ET1 = 0,禁止T1 中断。
什么是中断
中断是指通过硬件来改变CPU的运行方向。计算机在
执行程序的过程中,外部设备向CPU发出中断请求信号, 要求CPU暂时中断当前程序的执行而转去执行相应的处理 程序,待处理程序执行完毕后,再继续执行原来被中断 的程序。这种程序在执行过程中由于外界的原因而被中 间打断的情况称为“中断”。
MCS-51单片机的中断系统结构
中断响应
中断响应是指CPU对中断源中断请求的响应。CPU并非任 何时刻都能响应中断请求,而是在满足所有中断响应条件、 且不存在任何一种中断阻断情况时才会响应。 CPU响应中断的条件有:①有中断源发出中断请求;② 中断总允许位EA 置 1;③申请中断的中断源允许位置1。 CPU响应中断的阻断情况有:①CPU正在响应同级或更高 优先级的中断;②当前指令未执行完;③正在执行中断返 回或访问寄存器IE和IP。
INT0
2
INT1
外部中断1请求
3 4
TF0 TF1
T0溢出中断请求 T1溢出中断请求
5
RI或TIFra Baidu bibliotek
串行口中断请求
当接收或发送完一个串行帧时,内部串行口中断请求 标志位RI(SCON.0)或TI(SCON.1)置位(由硬件 自动执行),请求中断。
二、中断请求标志
1、TCON的中断标志
IT0(TCON.0),外部中断0触发方式控制位。 当IT0=0时,为电平触发方式。 当IT0=1时,为边沿触发方式(下降沿有效)。 IE0(TCON.1),外部中断0中断请求标志位。 IT1(TCON.2),外部中断1触发方式控制位。 IE1(TCON.3),外部中断1中断请求标志位。 TF0(TCON.5),定时/计数器T0溢出中断请求标志位。 TF1(TCON.7),定时/计数器T1溢出中断请求标志位。 当中断源向CPU申请中断时,相应中断标志位由硬件自动置1。 CPU在响应中断后即由硬件将各标志位自动复位。(串行中断除外)