单片机中的中断ppt
中断响应
中断响应是指CPU对中断源中断请求的响应。CPU并非任 何时刻都能响应中断请求,而是在满足所有中断响应条件、 且不存在任何一种中断阻断情况时才会响应。 CPU响应中断的条件有:①有中断源发出中断请求;② 中断总允许位EA 置 1;③申请中断的中断源允许位置1。 CPU响应中断的阻断情况有:①CPU正在响应同级或更高 优先级的中断;②当前指令未执行完;③正在执行中断返 回或访问寄存器IE和IP。
中断处理过程 中断响应时间
中断响应时间是指从中断请求标志位置位到CPU开始执 行中断服务程序的第一条语句所需要的时间。 1)中断请求不被阻断的情况 外部中断响应时间至少需要3个机器周期,这是最短的 中断响应时间。一般来说,若系统中只有一个中断源,则 中断响应时间为3 8个机器周期。 2)中断请求被阻断的情况 如果系统不满足所有中断响应条件、或者存在任何一种 中断阻断情况,那么中断请求将被阻断,中断响应时间将 会延长。
中断的设定
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)实现。
#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(); }
什么是中断
中断是指通过硬件来改变CPU的运行方向。计算机在
执行程序的过程中,外部设备向CPU发出中断请求信号, 要求CPU暂时中断当前程序的执行而转去执行相应的处理 程序,待处理程序执行完毕后,再继续执行原来被中断 的程序。这种程序在执行过程中由于外界的原因而被中 间打断的情况称为“中断”。
MCS-51单片机的中断系统结构
第 4章
定时与中断系统
本章内容
定时/计数器 C语言的函数
中ቤተ መጻሕፍቲ ባይዱ系统
任务9 可控霓虹灯控制
任务要求: 正常情况下8个霓虹灯(LED灯)依次顺序点亮,循 环显示,时间间隔为1s。按键(按P3.2口)按下后8个霓 虹灯同时亮灭一次,时间间隔为0.5s。用T0、工作方式1 编制延时程序,按键动作采用外部中断INT0实现。
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中断允许 位
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 表示低优先级。
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); } } }
中断优先级
中断优先级控制位 位名称 说明
PS
串行口中断优先控制 位 定时器T1中断优先控 制位 外部中断1中断优先控 制位
IP.4
PS = 1,设定串行口为高优先级中断;PS = 0,设 定串行口为低优先级中断。 PT1 = 1,设定定时器T1为高优先级中断;PT1 = 0, 设定定时器T1为低优先级中断。 PX1 = 1,设定外部中断1为高优先级中断;PX1 = 0, 设定外部中断1为低优先级中断。
中断特点
同步工作:
中断是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 中断。
2、SCON的中断标志
RI(SCON.0),串行口接收中断标志位。当允许串
行口接收数据时,每接收完一个串行帧,由硬件置位 RI。注意,RI必须由软件清除。 TI(SCON.1),串行口发送中断标志位。当CPU将 一个发送数据写入串行口发送缓冲器时,就启动了发 送过程。每发送完一个串行帧,由硬件置位TI。CPU 响应中断时,不能自动清除TI,TI必须由软件清除。
IE0= 1,外部中断0向CPU申请中断。
中断触发方式控制位 TCON.0
串行发送中断标志 SCON.1
当IT0= 0,外部中断0控制为电平触发方式;当IT0 = 1,外 部中断0控制为边沿(下降沿)触发方式。
CPU将数据写入发送缓冲器SBUF时,启动发送,每发送完 一个串行帧,硬件都使TI置位;但CPU响应中断时并不自 动清除TI,必须由软件清除。
RI
串行接收中断标志
SCON.0
当串行口允许接收时,每接收完一个串行帧,硬件都使RI 置位;同样,CPU在响应中断时不会自动清除RI,必须由 软件清除。
中断的开放和禁止
MCS-51系列单片机的5个中断源都是可屏蔽中断,中断系统内部设 有一个专用寄存器IE,用于控制CPU对各中断源的开放或屏蔽。IE寄 存器格式如下:
INT0
2
INT1
外部中断1请求
3 4
TF0 TF1
T0溢出中断请求 T1溢出中断请求
5
RI或TI
串行口中断请求
当接收或发送完一个串行帧时,内部串行口中断请求 标志位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在响应中断后即由硬件将各标志位自动复位。(串行中断除外)
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) 置位(由硬件自动执行),请求中断处理。
PT1
IP.3
PX1
IP.2
PT0
T0中断优先控制位
IP.1
PT0 = 1,设定定时器T0为高优先级中断;PT0 = 0, 设定定时器T0为低优先级中断。
PX0 = 1,设定外部中断0为高优先级中断;PX0 = 0, 设定外部中断0为低优先级中断。