51单片机的中断系统扫盲行动

发布者:清新家园最新更新时间:2025-11-05 来源: bilibili关键字:51单片机  中断系统 手机看文章 扫描二维码
随时随地手机看文章

中断技术概述

中断系统作用:单片机能够及时地响应和处理单片机外部事件或内部事件所提出的中断请求。

CPU正在执行程序时,单片机外部或内部突然紧急要去先处理某一事件,请求CPU现在马上去处理。CPU就会暂时放下手头上的工作,转到中断服务处理程序处理那件突然紧急的事情。处理完该事件后,再回到停止时的那个状态接着做原来的工作,这称为中断。 CPU处理事件的过程,称为CPU的中断响应过程。

中断系统就是能够实现中断处理功能的部件;中断请求源就是能产生中断的请求源。

中断源向CPU提出的处理请求,称为中断请求(或中断申请)。

具体的流程是:进入中断→保护现场→中断处理→恢复现场→中断返回

中断方式优点:大大地提高了CPU的工作效率。

\插播一条:

自己在今年整理一套单片机单片机相关论文800余篇

论文制作思维导图

原理图+源代码+开题报告+正文+外文资料

想要的同学私信找我。

中断系统结构

中断系统结构见图。中断系统有5个中断请求源(简称中断源),2个中断优先级,可实现2级中断服务程序嵌套。每一中断源可用软件独立控制为允许中断或关闭中断状态;每一个中断源的优先级均可用软件设置。

中断请求源

由图,中断系统共有5个中断请求源,它们是:

(1)INT0*—外部中断请求0,外部中断请求信号(低电平或负跳变有效)由INT0*引脚输入,中断请求标志为IE0。

(2)INT1*—外部中断请求1,外部中断请求信号(低电平或负跳变有效)由INT1*引脚输入,中断请求标志为IE1。

(3)定时器/计数器T0计数溢出的中断请求,标志为TF0。

(4)定时器/计数器T1计数溢出的中断请求,标志为TF1。

(5)串行口中断请求,标志为发送中断TI或接收中断RI。

中断请求标志寄存器

5个中断请求源的中断请求标志分别由特殊功能寄存器TCON和SCON相应位锁存。

1.TCON寄存器

特殊功能寄存器TCON的格式为定时器/计数器的控制寄存器,字节地址为88H,可位寻址。既包括定时器/计数器T0、T1溢出中断请求标志位TF0和TF1,也包括两个外部中断请求的标志位IE1与IE0,还包括两个外部中断请求源的中断触发方式选择位。TCON格式见图。

TCON寄存器中与中断系统有关各标志位功能如下:

(1)TF1—定时器/计数器T1的溢出中断请求标志位。

当启动T1计数后,T1从初值开始加1计数,当最高位产生溢出时,硬件置TF1为“1”,向CPU申请中断,响应TF1中断时,TF1标志硬件自动清“0”,TF1也可由软件清“0”。

(2)TF0—定时器/计数器T0溢出中断请求标志位,与TF1类似。

(3)IE1—外部中断请求1中断请求标志位。

(4)IE0—外部中断请求0中断请求标志位,与IE1类似。

(5)IT1—选择外中断请求1为跳沿触发还是电平触发方式。

0--电平触发方式,加到INT0*脚上的外中断请求输入信号为低电平有效,并把IE1置“1”。转向中断服务程序时,则由硬件自动把IE1清“0”。

1--跳沿触发方式,加到INT1*脚上的外中断请求输入信号从高到低的负跳变有效,并把IE1置“1”。转向中断服务程序时,则由硬件自动把IE1清“0”。

(6)IT0—选择外中断请求0为跳沿触发方式还是电平触发方式,与IT1类似。

当AT89S51复位后,TCON被清“0”,5个中断源的中断请求标志均为0。 TR1(D6位)、TR0(D4位)这2位与中断系统无关,仅与定时器/计数器T1和T0有关,将在定时器/计数器中介绍。

2.SCON寄存器

串行口控制寄存器,字节地址为98H,可位寻址。SCON的低二位锁存串口的发送中断和接收中断的中断请求标志TI和RI,格式见图:

SCON标志位功能:

(1)TI—串口发送中断请求标志位。CPU将1字节的数据写入串口的发送缓冲器SBUF时,就启动一帧串行数据的发送,每发送完一帧串行数据后,硬件使TI自动置“1”。CPU响应串口发送中断时,并不清除TI中断请求标志,TI标志必须在中断服务程序中用指令对其清“0”。

(2)RI—串行口接收中断请求标志位。在串口接收完一个串行数据帧,硬件自动使RI中断请求标志置“1”。CPU在响应串口接收中断时,RI标志并不清“0”,须在中断服务程序中用指令对RI清“0”。

中断允许与中断优先级的控制

实现中断允许控制和中断优先级控制分别中断允许寄存器IE和中断优先级寄存器IP实现。下面介绍两个特殊功能寄存器。

中断允许寄存器IE

各中断源开放或屏蔽,是由片内中断允许寄存器IE控制。IE字节地址为A8H,可进行位寻址,格式见图。

IE对中断开放和关闭实现两级控制。两级控制就是有一个总的中断开关控制位EA(IE.7位),当EA=0,所有中断请求被屏蔽,CPU对任何中断请求都不接受;当EA=1时,CPU开中断,但5个中断源的中断请求是否允许,还要由IE中的低5位所对应的5个中断请求允许控制位的状态来决定。

IE中各位的功能如下:

(1)EA—中断允许总开关控制位。

EA=0,所有的中断请求被屏蔽。

EA=1,所有的中断请求被开放。

(2)ES—串行口中断允许位。

ES=0,禁止串行口中断。

ES=1,允许串行口中断。

(3)ET1—定时器/计数器T1溢出中断允许位。

ET1=0,禁止T1溢出中断。

ET1=1,允许T1溢出中断。

(4)EX1—外部中断1中断允许位。

EX1=0,禁止外部中断1中断。

EX1=1,允许外部中断1中断。

(5)ET0—定时器/计数器T0的溢出中断允许位。

ET0=0,禁止T0溢出中断。

ET0=1,允许T0溢出中断。

(6)EX0—外部中断0中断允许位。

EX0=0,禁止外部中断0中断。

EX0=1,允许外部中断0中断。

AT89S51复位后,IE被清“0”,所有中断请求被禁止。IE中与各个中断源相应位可用指令置“1”或清“0”,即可允许或禁止各中断源的中断申请。若使某一个中断源被允许中断,除了IE相应位被置“1”外,还必须使EA位置“1”。

可由位操作指令来实现,即:

SETB bit;

CLR bit。

例5-1若允许片内2个定时器/计数器中断,禁止其它中断源的中断请求。编写设置IE的相应程序段

(1)用位操作指令来编写如下程序段:

CLR ES;禁止串行口中断

CLR EX1;禁止外部中断1中断

CLR EX0;禁止外部中断0中断

SETB ET0;允许定时器/计数器T0中断

SETB ET1;允许定时器/计数器T1中断

SETB EA;CPU开中断

(2)用字节操作指令来编写:

MOV IE,#8AH或者用:

MOV 0A8H,#8AH;A8H为IE寄存器字节地址

5.3.2中断优先级寄存器IP

中断请求源有两个中断优先级,每一个中断请求源可由软件设置为高优先级中断或低优先级中断,也可实现两级中断嵌套。

所谓两级中断嵌套,就是AT89S51正在执行低优先级中断的服务程序时,可被高优先级中断请求所中断,待高优先级中断处理完毕后,再返回低优先级中断服务程序。两级中断嵌套见图:

各中断源的中断优先级关系,可归纳为下面两条基本规则:

(1)低优先级可被高优先级中断,高优先级不能被低优先级中断。

(2)任何一种中断(不管是高级还是低级)一旦得到响应,不会再被它的同级中断源所中断。如果某一中断源被设置为高优先级中断,在执行该中断源的中断服务程序时,则不能被任何其他的中断源的中断请求所中断。

AT89S51片内有一个中断优先级寄存器IP,字节地址为B8H,可位寻址。只要用程序改变其内容,即可进行各中断源中断优先级设置,IP寄存器格式见图。

中断优先级寄存器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—低级。

中断优先级控制寄存器IP各位都可由程序置“1”和清“0”,用位操作指令或字节操作指令可更新IP的内容,改变各中断源的中断优先级。AT89S51复位后,各中断源均为低优先级中断。IP内容为00。

下面介绍AT89S51的中断优先级结构。

中断系统有两个不可寻址的“优先级激活触发器”,其中一个指示某高优先级中断正在执行,所有后来中断均被阻止;另一个触发器指示某低优先级中断正在执行,所有同级中断都被阻止,但不阻断高优先级的中断请求。在同时收到几个同优先级的中断请求时,哪一个中断请求能优先得到响应,取决于内部查询顺序。这相当于在同一个优先级还存在另一辅助优先级结构,其查询顺序见表6-1。由表6-1,各中断源在同一优先级条件下,外部中断0中断优先权最高,串行口中断的优先权最低。

响应中断请求的条件

一个中断源中断请求被响应,须满足以下必要条件:

(1)总中断允许开关接通,即IE寄存器中的中断总允许位EA=1。

(2)该中断源发出中断请求,即该中断源对应的中断请求标志为“1”。

(3)该中断源的中断允许位=1,即该中断被允许。

(4)无同级或更高级中断正在被服务。

中断响应就是CPU对中断源提出的中断请求的接受,当查询到有效的中断请求时,满足上述条件时,紧接着就进行中断响应。

中断响应过程:首先由硬件自动生成一条长调用指令“LCALL addr16”。即程序存储区中相应的中断入口地址。例如,对于外部中断1的响应,硬件自动生成的长调用指令为:

LCALL 0013H

生成LCALL指令后,紧接着就由CPU执行该指令。首先将程序计数器PC内容压入堆栈以保护断点,再将中断入口地址装入PC,使程序转向响应中断请求的中断入口地址。各中断源服务程序入口地址是固定的,见表6-2。

其中两个中断入口间只相隔8字节,一般情况下难以安放一个完整的中断服务程序。

中断响应是有条件的,遇到下列三种情况之一时,中断响应被封锁:

(1)CPU正在处理同级的或更高优先级的中断。

(2)所查询的机器周期不是所当前正在执行指令的最后一个机器周期。只有在当前指令执行完毕后,才能进行中断响应。

(3)正在执行的指令是RETI或是访问IE或IP的指令。需要再去执行完一条指令,才能响应新的中断请求。

如果存在上述三种情况之一,CPU将丢弃中断查询结果,不能对中断进行响应。

外部中断的响应时间

外部中断的最短的响应时间为3个机器周期:

(1)中断请求标志位查询占1个机器周期。

(2)子程序调用指令LCALL转到相应的中断服务程序入口,需2个机器周期。

外部中断响应的最长时间为8个机器周期:

发生在CPU进行中断标志查询时,刚好是开始执行RETI或是访问IE或IP的指令,则需把当前指令执行完再继续执行一条指令后,才能响应中断,最长需2个机器周期。接着再执行一条指令,按最长指令(乘法指令MUL和除法指令DIV)来算,也只有4个机器周期。加上硬件子程序调用指令LCALL的执行,需要2个机器周期。所以,外部中断响应最长时间为8个机器周期。

如果已在处理同级或更高级中断,响应时间无法计算。在一个单一中断的系统里,MCS-51单片机对外部中断请求的响应的时间总是在3~8个机器周期之间。

外部中断的触发方式选择

两种触发方式:电平触发方式和跳沿触发方式。

电平触发方式

CPU在每个机器周期采样到的外部中断输入线的电平。在中断服务程序返回之前,外部中断请求输入必须无效(即变为高电平),否则CPU返回主程序后会再次响应中断。

适于外中断以低电平输入且中断服务程序能清除外部中断请求(即外部中断输入电平又变为高电平)的情况。

跳沿触发方式

连续两次采样,一个机器周期采样到外部中断输入为高,下一个机器周期采样为低,则置“1”中断请求标志,直到CPU响应此中断时,该标志才清0。这样不会丢失中断,但输入的负脉冲宽度至少保持1个机器周期。

中断请求的撤消

1.定时器/计数器中断请求的撤消

中断请求被响应后。硬件会自动清TF0或TF1。

2.外部中断请求的撤销

(1)跳沿方式外部中断请求的撤消是自动撤消的。

(2)电平方式外部中断请求的撤消。

除了标志位清“0”之外,还需在中断响应后把中断请求


关键字:51单片机  中断系统 引用地址:51单片机的中断系统扫盲行动

上一篇:89C51单片机弹TruE
下一篇:单片机数码管显示0~9?

推荐阅读最新更新时间:2026-03-22 18:52

51单片机:定时器与中断系统的运用
#include regx52.h void Delay(int time) { while(time--) //while循环一次需要10us { } } void Timer0Init(void) //1毫秒@11.0592MHz { TMOD &= 0xF0; //设置定时器模式 TMOD |= 0x01; //设置定时器模式 TL0 = 0x66; //设置定时初值 TH0 = 0xFC; //设置定时初值 TF0 = 0; //清除TF0标志 TR0 = 1; //定时器0开始计时 ET0 = 1; EA = 1;
[单片机]
<font color='red'>51单片机</font>:定时器与<font color='red'>中断系统</font>的运用
51单片机入门—中断系统和外部中断的基本使用
中断系统的基本概念 五个中断源及其基本结构 51单片机一共有五个中断源 按优先级从上到下 中断系统的结构 中断向量就是中断号,就是下图最左边的标号(在写中断服务函数的时候有用) 中断的处理函数 一般情况下,中断的处理函数有两个,其一为中断初始化函数,其二为中断服务函数。 中断服务函数的结构: 中断相关的4个寄存器 写程序的时候会用到 分为两个控制寄存器和两个中断请求标志 一个例题 代码如下: 方式一: #include reg52,h sbit L1=P0^0; sbit L2=P0^7; //中断系统的基本使用 void Delay(unsigned int t)//延时函数 { w
[单片机]
<font color='red'>51单片机</font>入门—<font color='red'>中断系统</font>和外部中断的基本使用
89C51单片机中的中断系统
对于在单片机中的学习,中断系统是一难点,如果中断系统没有理解透彻,51单片机的学习就算是失败的。 首先,举例说明下什么是中断。 eg.当你在家正在吃着爆米花,看着电视,突然门铃响了,这时你不得不停止吃爆米花看电视,起身去开门,这个过程就是中断。 中断概念: CPU在处理某一事件A时,发生了另一件事件B请求CPU马上去处理(中断发生) CPU暂时中断当前工作,转去处理事件B(中断响应和中断服务) 等待CPU把事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回), 这整个一个过程 称为中断 。 中断系统的概念: 引起CPU中断的根源,叫中断源 。 是中断源向CPU提出的中断请求。 CPU暂时中断原来
[单片机]
89C<font color='red'>51单片机</font>中的<font color='red'>中断系统</font>
51单片机——中断系统结构
1 什么是中断 在生活中经常会遇到这样的情况:正在书房看书时,突然客厅的电话响了,人们往往会停止看书,转而去接电话,接完电话后又回书房接着看书。这种停止当前工作,转而去做其他工作,做完后又返回来做先前工作的现象称为中断。 单片机也有类似的中断现象,当单片机正在执行某程序时,如果突然出现意外情况,它就需要停止当前正在执行的程序,转而去执行处理意外情况的程序(又称中断子程序),执行处理完后又接着执行原来的程序。 2 中断的基本概念 2.1 中断源 要让单片机的CPU中断当前正在执行的程序转而去执行中断子程序,需要向CPU发出中断请求信号。让CPU产生中断的信号源称为中断源(又称中断请求源)。 8051单片机有5个中断源,分
[单片机]
<font color='red'>51单片机</font>——<font color='red'>中断系统</font>结构
51单片机中断系统实验
一、实验内容 INT0端接单次脉冲发生器。按一次脉冲产生一次中断,CPU使P1.0状态发生一次反转,P1.0接LED灯,以查看信号反转。 根据实验内容编写一个程序,并在实验系统上调试和验证。 二、仿真图 三、代码 C语言实现: sbit LED=P1^0; void INT0_IN(); void main() { LED=0; INT0_IN(); while(1) ; } void INT0_IN() { EA=1;//总中断打开 EX0=1;//外部中断0 打开 IT0=0;//负边沿触发 } void exter0() interrupt 0 { IE0
[单片机]
<font color='red'>51单片机</font><font color='red'>中断系统</font>实验
51单片机系列知识6--中断系统(1)
中断系统 一、 几个概念 ① 中断:教材p51 ② 中断源:产生中断的请求源 ③ 中断级:根据中断源(所发出的时时事件)的轻重缓急,规定的优先级别 ④ 中断嵌套:CPU在处理一个中断源请求时候,响应了更高一级中断的请求,待处理完后,再继续执行原来的低级中断处理程序,这样的过程称为中断嵌套。 ⑤ 中断系统:实现中断功能的部件。 ⑥ 多级中断系统:能够实现中断嵌套的中断系统。 1、 中断源 51单片机有5个中断源:2个是INTO、INT1(P3.2、P3.3)上输入的外部中断源;3个内部中断源,定时器∕计数器T0、T1的溢出中断源和串行的发送、接受中断。 这些中断源分别所存在TCON、SCO
[单片机]
51单片机学习笔记(四)_中断系统
相关概念 中断源:引起中断的事件 中断请求:中断源向CPU提出处理的请求 断点:发生中断时被打断程序的暂停点 中断响应:CPU暂停现行程序而转为响应中断请求的过程 中断处理程序:处理中断源的程序 中断处理:CPU执行有关的中断处理程序 中断返回:返回断点的过程 中断与子程序的区别 调用有点相似、但两者是不同的概念。 源不同。中断是由外部中断源产生的、具有不可预测和随机性、比如抛异常。子程序是由主程序安排调用的。 响应不同。中断系统需要保护断点和现场、子程序只需保存断点。 功能不同。中断程序主要处理CPU外部异步事件、子程序调用是为主程序服务。 中断类型 外部中断源:外部硬件资源产生。上下
[单片机]
中断系统以及外部中断
一、中断相关的基础概念 内核与外设之间的主要交互方式有两种:轮询和中断。 轮询的方式貌似公平,但实际工作效率很低,且不能及时响应紧急事件;中断系统使得内核具备了应对突发事件的能力。 在执行CPU当前程序时,由于系统中出现了某种急需处理的情况,CPU暂停正在执行的程序,转而去执行另外一段特殊程序来处理出现的紧急事务,处理结束后,CPU自动返回到原来暂停的程序中去继续执行。 这种程序在执行过程中由于外界的原因而被中间打断的情况,称为中断。 两个重要的概念: 1 中断服务函数: 内核响应中断后执行的相应处理程序。 2 中断向量:中断服务程序的入口地址。每个中断源都对应一个固定的入口地址。当内核
[单片机]
<font color='red'>中断系统</font>以及外部中断
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved