51单片机中断基本概念

发布者:科技创新实践者最新更新时间:2023-01-12 来源: zhihu关键字:51单片机  中断  基本概念 手机看文章 扫描二维码
随时随地手机看文章

问题引入

在了解基本概念之前,先看三个问题:

1.你想使用的中断是哪个?

2.你所希望的触发条件是什么?

3.你希望在中断之后做什么?

可以边看边思考,文章最后给出答案


中断概念

为什么引入中断?

中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。

中断系统特点:

①分时操作。CPU 可以分时为多个 I/O 设备服务,提高了计算机的利用率;

②实时响应。CPU 能够及时处理应用系统的随机事件,系统的实时性大大增强;

③可靠性高。CPU 具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高

中断过程

对于单片机来讲,中断是指CPU在处理某一时间A时,发生了另一事件B请求CPU立刻去处理(中断发生或中断请求);CPU暂时停止当前的工作(中断响应),转而去处理事件B(中断服务),待CPU处理事件B完成后,再回到原来事件A被中断的地方继续处理事件A(中断返回)。这一过程称为中断,注意是整个过程,而不是单一的停止一件事的意思。

举例:你打开火,烧上一壶水。然后去洗衣服,在洗衣服的过程中,突然听到水壶发出水开的报警声,这时,你停止洗衣服动作,立即去关掉火,然后将开水灌入暖水瓶中,灌完开水后,你又回去继续洗衣服。这个过程中实际上就发生了一次中断。

对照图:

程序流程图

单片机在执行程序时,中断也随时有可能发生,但无论何时发生,只要一旦发生,单片机将立即暂停当前程序,赶去处理中断程序,处理完中断程序后再返回刚才暂停处接着执行原来的程序。


中断系统:实现中断过程

中断源:请示CPU中断的请求源。微型机的中断系统一般允许多个中断源,当几个中断源同时向 CPU 请求中断,要求为它服务的时候,这就存在CPU 优先响应哪一个中断源请求的问题。通常根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求源,即规定每一个中断源有一个优先级别。CPU 总是先响应优先级别最高的中断请求。

中断嵌套:当单片机正在执行中断请求时,又出现了一个比正在执行的优先级更高的中断请求,则先停止正在执行的中断请求,执行优先级高的中断请求,等执行完后再执行原来优先级较低的中断请求。

拥有中断嵌套的中断系统称为多级中断系统,没有嵌套功能的为单级中断系统。

中断结构

大多数单片机共提供8个中断请求源,但是一定有最基本的5个中断。

中断:

外部中断0(INTO)、外部中断 1(INT1)、外部中断 2(INT2)、外部中断 3(INT3)、定时器 0中断、定时器 1 中断、定时器 2 中断、串口(UART)中断。

基本中断:

INT0、INT1、定时器 0,定时器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 溢出中断请求标志位。

注:外部中断0和1(IT0和IT1)为0或1时是两种触发方式,低电平触发和边沿触发,是控制位不是标志位。


中断允许控制

CPU 对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE 控制的。

各中断的中断允许位:

EX0(IE.0),外部中断 0 允许位;

ET0(IE.1),定时/计数器 T0 中断允许位;

EX1(IE.2),外部中断 1允许位;

ET1(IE.3),定时/计数器 T1 中断允许位;

ES(IE.4),串行口中断允许位;

EA (IE.7), CPU 中断允许(总允许)位。

注意:总中断允许位就是是总开关一样,只有总允许位有效的前提下,其它中断置允许位才能使中断有效。


中断优先级

同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:

中断优先级三条原则:


首先响应高优先级的中断请求。

2.高优先级的中断请求可以打断低优先级的中断。

3.低优先级的中断请求不可以打断高优

先级及同优先级的中断。

中断号

中断号在编程时非常重要,当中断来临时,只有中断号正确才能进入中断。

中断响应条件

①中断源有中断请求;

②此中断源的中断允许位为 1;

③CPU 开中断(总允许位)(即 EA=1)。

以上三条同时满足时,CPU 才有可能响应中断

如图,为中断内部结构框图:

TCON为中断请求标志,其中外部中断0和外部中断1可选择控制方式低电平有效还是下降沿有效。

,IE为中断允许位,可以看到,只有EA等于1时,其他中断允许才可能有效。

从图中可以看出,一个中断过程:中断位(确定哪一个中断)->中断标志位->中断允许位->中断总允许位->中断执行功能。


问题引入及解答(中断应用举例)

回到上面的三个问题

1.你想使用的中断是哪个?

每一个中断都对应一个中断号,要想使用某一中断就选择对应的中断号。

2.你所希望的触发条件是什么?

外部中断的触发调件触发条件可分为低电平触发和下降沿触发,要明确触发条件。

3.你希望在中断之后做什么?

即中断服务函数,函数里要做什么,执行什么样的功能。

以外部中断0为例:

EA=1;//打开总中断开关

EX0=1;//开外部中断 0

IT0=0/1;//设置外部中断的触发方式


/*中断服务函数*/

void int0() interrupt 0 using 1//intterrupt表示中断,0表示中断号,using1可省略

{

//编写用户所需的功能代码

}


关键字:51单片机  中断  基本概念 引用地址:51单片机中断基本概念

上一篇:51单片机外部中断点亮LED
下一篇:51单片机8*8点阵原理及实现

推荐阅读最新更新时间:2024-11-08 05:44

51单片机编程技巧整理
1.定义的变量不要太多。低128位为用户定义变量的存放区域(默认时),也可以把变量放在高128位,但容易出错,尽量少放,最好不放。通过*.M51可以查看内存变量的存放,最好不要超过110个字节,否则程序无法运行或出错。 2.如一个变量多处使用可定义为全局变量。例如循环变量i、j,尽量减少参数传递。 3.静态变量最好放在程序存储区,用code定义。 4.变量应定义为无符号数,像标志位等仅占一位的变量应定义为bit。 5.子程序在main()主程序之后的应事先声明,放在前面的不用声明。 6.变量、子程序定义但没使用,系统给出警告。 7.虽然局部变量和全局变量不同名,但运行时可能被全局变量改变。 8.程序在编译后,有可能产
[单片机]
LPC2478中断控制器以及串口详解
LPC2478的中断系统 LPC2478使用的是ARM PrimeCell向量中断控制器,一共支持32个中断向量,处于AHB空间便于系统快速访问,在中断向量的硬件优先级上还有一层可以用户自己设计的软件优先级, 由于是ARM7内核,所以,2478的中断有两种,分别是FIQ中断和IRQ中断,IRQ有多个中断通道,FIQ的中断通道却只有一个,中断系统框图如下 当FIQ中断进入时,会经历多个中断想或的过程,得到的中断状态不管是不是使能了中断,都会存放至RAWINT里面,然后判断中断使能,被使能的中断写入到FIQSTATUS,并向系统发出快速中断请求,系统响应中断的模式则是自动读取FIQSTATUS判断哪个中断发生,并直接跳转到
[单片机]
LPC2478<font color='red'>中断</font>控制器以及串口详解
基于51单片机的室内甲醛测试系统
甲醛是一种具有刺激气味的无色气体,也是一种潜在的致癌物质,对人体健康有较大的危害,许多疾病的诱发都与甲醛有关,如哮喘,白血病等。甲醛浓度在每立方米空气中达到0.06-0.07mg/m3时,儿童就会发生轻微气喘。当室内空气中甲醛含量为0.1mg/m3时,就有异味和不适感。达到0.5mg/m3时,可刺激眼睛,引起流泪,它对人体健康的危害不容忽视。单片机具有通用性强、体积小、价格低、稳定可靠等突出优点,在智能产品、测控系统等领域得到广泛的应用。本文设计的测试仪可现场可直接显示甲醛浓度值。当其浓度值小于国家规定的标准值(可按键修改)时绿灯亮,可以入住,当超过规定的室内居住标准值时红灯亮开始报警提醒人们暂时不要入住。 1 硬件介绍
[单片机]
基于<font color='red'>51单片机</font>的室内甲醛测试系统
P10点阵屏C51单片机程序
P10点阵屏C51程序 1/4扫描,四扫下行,1路16行,数据低OE高(04-P16-08) 适用于HUB12接口单色P10 串口模式0,普通左移,亮度速度可调,6个IO口,用的STC8F1K08,最多231个字 制作出来的实物图如下: 单片机源程序如下: #include STC8.H #include intrins.h #include string.h #define DATA P30 // #define CLOCK P31 //↑ ↓ #define ADDR_A P32 //↑ #de
[单片机]
P10点阵屏C<font color='red'>51单片机</font>程序
AVR单片机入门系列(27)AVR AD转换中断
系统功能 大部分AVR内部带有AD,本节以使用ATMEGA16的内部AD为例,给出AD转换中断程序。 硬件设计 AVR主控电路原理图 软件设计 //目标系统: 基于AVR单片机 //应用软件: ICC AVR /*01010101010101010101010101010101010101010101010101010101010101010101 ---------------------------------------------------------------------- 实验内容: 使用中断检测AD0口,使用PB/PD口的LED指示AD读到的数据。 -----------------------
[单片机]
ARM S3C4510B系统中异常中断的功能及特点
本文介绍A了RM S3C4510B系统的异常中断机制,包括异常中断的分类,响应与返回;中断处理程序的安装与调用;SWI, IRQ 中断的实例与关键代码。 引言 随着人们对于电子产品的要求越来越高,以80C51系列为代表的8位处理器系统开始面临越来越多的局限和挑战,人们对于高性能芯片和嵌入式功能的呼声也越来越高。16/32 位的处理器系统得到了前所未有的关注和重视。32位ARM体系系列处理器便是其中的代表。S3C4510B处理器是基于ARM7体系16/32位RISC处理器,内部集成了8KB的CACHE/SDRAM,内嵌EARTHNET控制器,拥有7种处理器模式和内部多线程和外部多处理器的处理器结构。在嵌入式系统
[单片机]
ARM S3C4510B系统中异常<font color='red'>中断</font>的功能及特点
51单片机入门之五:数码管显示(动态)
单片机轻松入门之五数码管的动态显示 上次说了数码管的静态显示,这次介绍动态显示。动态显示是每隔一段很小的时间依次点亮一个数码管,再利用人视觉的暂留效应,从而看起来数码管显示是连续的。相对而言,动态显示的电路、程序稍微复杂,但是可以节约单片机的接口资源。动态显示涉及位选和段选。位选就是选通显示的数码管,段选就是控制该片数码管所要显示的内容。 本次实验让4片数码管显示“1234”,实验中用到了74LS373锁存器。 实验原理图如下: 实验程序如下: #include reg52.h #define uchar unsigned char; #define uint unsigned int; sbit du=P2^0; //位定义
[单片机]
<font color='red'>51单片机</font>入门之五:数码管显示(动态)
51单片机中断响应及撤销
中断响应 中断响应就是单片机CPU对中断源提出的中断请求的接受。中断请求被响应后,再经过一系列的操作,而后转向中断服务程序,完成中断所要求的处理任务。下面简要说明80c51的中断响应过程: 1.外中断采样和内中断置位 1.1外中断采样 要想知道外中断是否有请求发生,需要对外中断进行采样。 当通过软件将寄存器TCON的IT0(或IT1)位设置为0时,/INT0(或/INT1)为电平触发方式,CPU在每个机器周期的S5P2(第五个状态第2拍节)期间对/INT0(或/INT1)采样,一旦在P3.2(或P3.3)上检测到低电平时,则认为有外部中断申请,随即由硬件使TCON的IE0(或IE1)位置1,向CPU申请中断。在中断响应完
[单片机]
<font color='red'>51单片机</font>的<font color='red'>中断</font>响应及撤销
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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