51单片机——中断系统,小白讲解,相互学习

news2024/9/21 20:35:50

中断介绍

        中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。它也是单片机最重要的功能之一,是我们学些单片机必须要掌握的。

        为了更容易的理解中断概念,我们先来举一个生活中的例子:你打开火烧上一壶水,然后去洗衣服,在洗衣服的过程中,突然听到水壶发水开的报警声,这时,你停止洗衣服动作,立即去关掉火,然后将开水灌入暖水瓶中,灌完开水后,你又回去继续洗衣服。这个过程实际就发生了一次中断。如下图:

                                           

        对于单片机来讲,中断是指 CPU 在处理某一事件A时,发生了另一件事情B, 请求CPU迅速去处理(中断发生);CPU暂时停止当前的工作(中断响应),转去处理事件B(中断服务);待CPU将事件B处理完毕后,再回到原来事件 A 被中断的地方继续处理事件 A(中断返回),这一过程称为中断。

                                                       

        在来看生活事例,与单片机中断结合分析,主要任务事洗衣服,水开报警这时一个中断请求,这一时刻相当于断点处,你响应中断去关火,然后将开水灌入暖水瓶中,这一行动实际上就是处理中断程序,灌完开水后再回去继续洗衣服,相当于处理完中断程序后再返回主程序继续执行主程序。这里需要注意的是,水开是随时都有可能的,但是无论什么时候开,只要一开你将立即去处理它,处理完后再回来继续接着洗衣服。单片机再执行程序时,中断也是随时可能发生,但无论何时发生,只要一旦发生,单片机将立即暂停当前程序,赶去处理中断程序,处理完中断程序后再返回刚才暂停处接着执行原来的程序。

单片机再执行程序时其程序流程图如下:

        引起 CPU 中断的根源称为中断源。中断源向 CPU 提出中断请求,CPU 暂时 中断原来的事务 A,转去处理事件 B,对事件 B 处理完毕后,再回到原来被中断 的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。
        当中央处理机 CPU 正在处理某件事的时候外界发生了紧急事件请求,要求 CPU 暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中 断的地方,继续原来的工作,这样的过程称为中断。实现这种功能的部件称为中 断系统,请示 CPU 中断的请求源称为中断源。微型机的中断系统一般允许多个 中断源,当几个中断源同时向 CPU 请求中断,要求为它服务的时候,这就存在 CPU 优先响应哪一个中断源请求的问题。通常根据中断源的轻重缓急排队,优先 处理最紧急事件的中断请求源,即规定每一个中断源有一个优先级别。CPU 总是 先响应优先级别最高的中断请求。
        当 CPU 正在处理一个中断源请求的时候(执行相应的中断服务程序),发生 了另外一个优先级比它还高的中断源请求。如果 CPU 能够暂停对原来中断源的 服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中 断服务程序,这样的过程称为中断嵌套。这样的中断系统称为多级中断系统,没 有中断嵌套功能的中断系统称为单级中断系统。
        中断的开启与关闭、设置启用哪一个中断等都是由单片机内部的一些特殊功 能寄存器来决定的,在前面章节的学习中我们仅对单片机 IO 口操作过(实际上 操作 IO 口即操作 IO 口寄存器,只不过编译器已经帮我们把 IO 口寄存器封装好 直接操作 IO 即可,这些可在 51 单片机头文件内查看),从本章开始就会介绍单片机内部更多的特殊功能寄存器以及如何配置它实现相应的功能。
        随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速 I/O 设备的数据传送问题,而且还具有如下优点:
①分时操作。CPU 可以分时为多个 I/O 设备服务,提高了计算机的利用率;
②实时响应。CPU 能够及时处理应用系统的随机事件,系统的实时性大大增 强;
③可靠性高。CPU 具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高
中断结构
        STC89C5X 系列单片机提供了 8 个中断请求源,它们分别是:外部中断 O(INTO)、外部中断 1(INT1)、外部中断 2(INT2)、外部中断 3(INT3)、定时器 0 中断、定时器 1 中断、定时器 2 中断、串口(UART)中断。 注意:51 系列单片 机一定有基本的 5 个中断,但不全有 8 个中断,需要查看芯片手册,通常我 们使用的都是基本的 5 个中断:INT0、INT1、定时器 0/1,串口中断 。所有的 中断都具有四个中断优先级(基本型只有两个)。用户可以用关总中断允许位 (EA/IE.7)或相应中断的允许位来屏蔽所有的中断请求,也可以用打开相应的中 断允许位来使 CPU 响应相应的中断申请。其中有些中断源可以用软件独立地控 制为开中断或关中断状态。每一个中断的优先级别均可用软件设置。高优先级的 中断请求可以打断低优先级的中断,反之,低优先级的中断请求不可以打断高优 先级及同优先级的中断。当两个相同优先级的中断同时产生时,将由查询次序来 决定系统先响应哪个中断。
STC89C5X 系列单片机的各个中断查询次序表如下图 所示:
        通过设置新增加的特殊功能寄存器 IPH 中的相应位,可将中断优先级设为 四级,如果只设置 IP 或 XICON,那么中断优先级就只有两级,与传统 8051 单 片机两级中断优先级完全兼容。上图中的中断查询次序即为中断号,这个中断号 在编程时非常重要,当中断来临时,只有中断号正确才能进入中断。
        下面我们以 51 单片机均有的 5 个中断来介绍,其内部结构框图如下所示:

 

        ①INT0 对应的是 P3.2 口的附加功能,可由 IT0(TCON.0)选择其为低电平有 效还是下降沿有效。当 CPU 检测到 P3.2 引脚上出现有效的中断信号时,中断标 志 IE0(TCON.1)置 1,向 CPU 申请中断。
        ②INT1 对应的是 P3.3 口的附加功能,可由 IT1(TCON.2)选择其为低电平有 效还是下降沿有效。当 CPU 检测到 P3.3 引脚上出现有效的中断信号时,中断标 志 IE1(TCON.3)置 1,向 CPU 申请中断。
        ③T0 对应的是 P3.4 口的附加功能,TF0(TCON.5),片内定时/计数器 T0 溢 出中断请求标志。当定时/计数器 T0 发生溢出时,置位 TF0,并向 CPU 申请中断。
        ④T1 对应的是 P3.5 口的附加功能,TF1(TCON.7),片内定时/计数器 T1 溢出中断请求标志。当定时/计数器 T1 发生溢出时,置位 TF1,并向 CPU 申请中 断。
        ⑤RXD 和 TXD 对应的是 P3.0 和 P3.1 口的附加功能,RI(SCON.0)或 T(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位 RI 或 当串行口发送完一帧串行数据时置位 TI,向 CPU 申请中断。

中断相关寄存器

(1)中断允许控制
        CPU 对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器 IE 控制的。
EX0(IE.0),外部中断 0 允许位;
ET0(IE.1),定时/计数器 T0 中断允许位;
EX1(IE.2),外部中断 0 允许位;
ET1(IE.3),定时/计数器 T1 中断允许位;
ES(IE.4),串行口中断允许位;
EA (IE.7), CPU 中断允许(总允许)位。
(2)中断请求标志 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 溢出中断请求标志位。
(3)中断优先级

        同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先 级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:
(4)中断号
(5)中断响应条件
①中断源有中断请求;
②此中断源的中断允许位为 1;
③CPU 开中断(即 EA=1)。
以上三条同时满足时,CPU 才有可能响应中断。在使用中断时我们需要做什么呢?
①你想使用的中断是哪个?选择相应的中断号;
②你所希望的触发条件是什么?
③你希望在中断之后干什么?
我们以外部中断 0 为例,如下:
主程序中需要有以下代码:
EA=1;//打开总中断开关
EX0=1;//开外部中断 0
IT0=0/1;//设置外部中断的触发方式
中断服务函数:
void int0() interrupt 0 using 1
{
//编写用户所需的功能代码
}
在中断函数中 int0 是函数名,可自定义,但必须符合 C 语言标识符定义规 则,interrupt 是一个关键字,表示 51 单片机中断。后面的“0”是中断号,外 部中断 0 中断号为 0,这个可参考前面的内容。后面的 using 1 可省略不写。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/343348.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法思想 - 动态规划算法

动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问…

哈希表题目:判断路径是否相交

文章目录题目标题和出处难度题目描述要求示例数据范围解法一思路和算法代码复杂度分析解法二思路和算法代码复杂度分析题目 标题和出处 标题:判断路径是否相交 出处:1496. 判断路径是否相交 难度 3 级 题目描述 要求 给你一个字符串 path\texttt…

【软考系统架构设计师】2022下案例分析历年真题

【软考系统架构设计师】2022下案例分析历年真题 【软考系统架构设计师】2022下案例分析历年真题【软考系统架构设计师】2022下案例分析历年真题2022下案例分析历年真题第一题(25分)2022下案例分析历年真题第二题(25分)2022下案例分…

使用纹理(Textures)

当物体表面并非是纯色的时候,比如带波点,斑纹或者表面有刮痕或被裂纹等,这些效果该如何实现呢? 这里我们需要提到一个概念是贴图(Maps)。Maps是覆盖在游戏物体上的2D图片,用来设置表面的颜色、s…

大数据-学习实践-1相关Linux

大数据-学习实践-1相关Linux (大数据系列) 文章目录大数据-学习实践-1相关Linux1知识点2具体内容2.1安装、使用2.2高级命令2.2.1文件2.2.2日期2.2.3进程2.2.4三剑客 (grep、sed、awk)2.3高级配置2.3.1分配IP:静态IP设置2.3.2起名(hostname)&…

工程经验:残差连接对网络训练的巨大影响

文章目录1、没有使用残差连接的网络难以训练2、loss 不下降的原因3、使用了残差连接的网络可以高效训练1、没有使用残差连接的网络难以训练 经典的 SegNet 网络结构如下: 在使用上图所示的 SegNet 作为噪声预测网络训练扩散模型(DDPM)时&…

Elasticsearch汉字补全和智能纠错使用详解

1 使用ES实现的效果 汉字补全 拼写纠错

Python自动化测试【软件测试最全教程(附笔记、学习路线)】,看完即就业

最近看到很多粉丝在后台私信我,叫我做一期Python自动化测试的教程,其实关于这个问题,我也早就在着手准备了,我录制了一整套完整的Python自动化测试的教程,上传到网盘里了,大家有兴趣的可以去文末交流群免费…

[架构之路-107]-《软考-系统架构设计师》-0-系统分析师与系统架构设计师简介与官网介绍

官网链接:https://www.ruankao.org.cn/index/ind计算机技术与软件专业技术资格(水平)考试简介计算机技术与软件专业技术资格(水平)考试(以下简称计算机软件资格考试)是原中国计算机软件专业技术…

化学试剂Glutaric Acid-PEG-Glutaric Acid,GA-PEG-GA,戊二酸-聚乙二醇-戊二酸

一:产品描述 1、名称 英文:Glutaric Acid-PEG-Glutaric Acid,GA-PEG-GA 中文:戊二酸-聚乙二醇-戊二酸 2、CAS编号:N/A 3、所属分类:Carboxylic acid PEG 4、分子量:可定制, 戊…

如果网站的 Cookie 特别多特别大,会发生什么(一)

有没有想过&#xff0c;如果网站的 Cookie 特别多特别大&#xff0c;会发生什么情况&#xff1f; 不多说&#xff0c;马上来试验一下&#xff1a; for (i 0; i < 20; i) document.cookie i X.repeat(2000) 什么&#xff0c;网站居然报错了&#xff1f; 众所周知&am…

【Unity VR开发】结合VRTK4.0:自身移动(滑动)

语录&#xff1a; 依山傍水房树间&#xff0c;行也安然&#xff0c;住也安然&#xff1b; 一条耕牛半顷田&#xff0c;收也凭天&#xff0c;荒也凭天&#xff1b; 雨过天晴驾小船&#xff0c;鱼在一边&#xff0c;酒在一边&#xff1b; 夜晚妻子话灯前&#xff0c;今也谈谈…

考研复试机试 | C++

目录1.盛水最多的容器<11>题目代码&#xff1a;2.整数转罗马数字题目&#xff1a;代码&#xff1a;3. 清华大学机试题 abc题目题解4.清华大学机试题 反序数题目描述代码对称平方数题目代码&#xff1a;5. 杭电上机题 叠筐题目&#xff1a;代码pass&#xff1a;关于清华大…

Windows server——部署DNS服务(3)

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.管理DNS服务 1.子域 案例 2. 委派 案例 1&#xff09;添加主机记录 …

替代AG9300|替代NCS8823|CS5260 Type-C转VGA视频转换方案

替代AG9300|替代NCS8823|CS5260 Type-C转VGA视频转换方案 CS5260是一款是一款实现USB TYPE-C到VGA视频转换的单片机解决方案转换器。CS5260支持USB Type-C显示端口交替模式&#xff0c;CS5260可以将视频和音频流从USB Type-C接口传输到VGA端口。在CS5260芯片中&#xff0c;显示…

01设计模式相关理论

设计模式git代码地址 设计模式分类 创建型模式 用于描述“怎样创建对象”&#xff0c;它的主要特点是“将对象的创建与使用分离”。GoF&#xff08;四人组&#xff09;书中提供了单例、原型、工厂方法、抽象工厂、建造者等 5 种创建型模式。结构型模式 用于描述如何将类或对象…

SQL注入Getshell的奇思妙想(下)

前言 由于笔者发现大量的hr面试官都喜欢从SQL注入开始询问&#xff0c;所以留心了一下关于SQL注入的问题的频率。结果非常amazing啊&#xff01;不出意外的是–os- shell名列榜首。 但是啊由于我们不能被面试官所引导&#xff0c;这样太被动啦&#xff01;我们应该引导hr问我们…

某财税集团:使用进步的技术,对业务降本提效

文 / OceanBase解决方案架构师 韩冰 该企业成立于 1999 年&#xff0c;是国内领先的财税信息化综合服务提供商&#xff0c;主要为税务机关提供税务系统开发与运维&#xff0c;为纳税企业和财税中介提供互联网财税综合服务。 经过多年发展&#xff0c;为了更好地支撑用户业务需…

10- SVM支持向量机 (SVC) (机器学习)

支持向量机&#xff08;support vector machines,SVM&#xff09;是一种二分类算法&#xff0c;它的目的是寻找一个超平面来对样本进行分割&#xff0c;分割的原则是间隔最大化&#xff0c;如果对应的样本特征少&#xff0c;一个普通的 SVM 就是一条线将样本分隔开&#xff0c;…

小红书穿搭博主推广费用是多少?

小红书作为一个种草属性非常强的平台&#xff0c;商业价值是有目共睹的。很多爱美的女性都会在小红书上被种草某个商品&#xff0c;所以很多服装品牌都会在小红书上布局推广。 穿搭作为小红书的顶梁柱类目&#xff0c;刷小红书就能总是看到好看的穿搭博主分享美美的衣服&#…