单片机学习4——中断的概念

中断的概念:

CPU在处理A事件的时候,发生了B事件,请求CPU迅速去处理。(中断产生)

CPU暂时中断当前的工作,转去处理B事件。(中断响应和中断服务)

待CPU将B事件处理完毕后,再回到原来A事件中断的地方继续处理A事件。(中断返回)

这个过程,就叫做中断。

 

引起CPU中断的根源叫作中断源,中断源向CPU的请求,叫作中断请求。CPU暂时中断原来的A事件,转去处理B事件。对B事件处理完毕后,再回到原来被中断的地方(即断点)。称为中断返回。实现上述中断功能的部件叫作中断系统(中断机构)。

随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下的特点:

1)分时操作:CPU可以分时为多个I/O设备服务。

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

3)可靠性高:CPU具有处理设备故障和掉电等突发性事件的能力。从而使系统的可靠性提高。

8051中断系统的结构:

8051中断系统有5个中断源,2个优先级,可实现二级中断嵌套。

第二个中断请求的优先级比第一个中断请求要高。

中断嵌套,也叫抢占。

抢占优先级的概念,优先级高的中断可以打断优先级低的中断执行,从而形成嵌套。

INT0、T0、INT1、T1、RXTX,一共是五个中断源。

外部中断源INT0和INT1;

T0和T1:片内定时器计数器;

RX和TX:数据传输中断请求。串行口。

当中断源满足条件产生中断请求的时候,中断请求标志位会置1,向CPU申请中断。

CPU响应中断的时候,TCON的中断请求标志位由硬件自动清除,则须为软件清零。

IT0外部中断0(INT0)触发方式选择位由软件设置。

1、低电平触发方式,INT0(P3.2)引脚上低电平可引起中断。

2、下降沿触发方式,INT0(P3.2)引脚上电平由高低负跳变可引起中断。

IT0 IT1

IE: 中断使能寄存器

EX0

ET0

EX1

ET1

ES

这是5个中断使能。

EA

中断总开关。

 reg51.h文件:

IP:中断优先级寄存器:

当把某一位设置为1的时候,这一位的优先级就比其他位的优先级高了。

设置为1的时候,表示高优先级;

设置为0的时候,表示低优先级。

下图中表示的是固有优先级(自然优先级),上面的优先级高于下面的优先级。这里的优先级不具有抢占性。

当多个中断同时存在的时候,就进行判断比较,或者叫仲裁。就是当中断使能的情况之后,突然同时多个中断请求响应,这个时候必须有先后的顺序,这就是非抢占式的作用。

抢占优先级和非抢占优先级的协同,可以使得单片机有条不紊地工作,既不会无休止地嵌套,又可以保证必要时紧急任务得到优先处理。在后面会大量地使用到中断系统。

 

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

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

相关文章

【数据结构初阶(5)】链式队列的基本操作实现

文章目录 队列的定义初始化队列队尾入队列队头出队列取队头元素取队尾元素获取队列有效元素个数判断队空销毁队列 因为队列比较简单,关于队列的概念就不过多赘述了,本文只讲链队的基本操作实现 队列的定义 定义队列结点结构 链队中的每个结点都应该包…

Go 数字类型

一、数字类型 1、Golang 数据类型介绍 Go 语言中数据类型分为:基本数据类型和复合数据类型基本数据类型有: 整型、浮点型、布尔型、字符串复合数据类型有: 数组、切片、结构体、函数、map、通道(channel)、接口 2、…

什么是 dropblock

大家好啊,我是董董灿。 之前介绍过 dropout 算法,它在训练神经网络中,可以随机丢弃神经元,是一种防止网络过拟合的方法。 但是在卷积神经网络中,dropout 的表现却不是很好,于是研究人员又搞了一个“结构化…

Python列表:操作与实例分析,你值得一看!

Python列表是一种重要的数据结构,它允许您存储和管理多个数据项。本文将深入探讨Python列表的操作,以及通过具体实例分析如何使用它们,以帮助您更好地理解和优化您的代码。 什么是Python列表? Python列表是一种有序、可变的数据结…

基于51单片机的全自动洗衣机proteus仿真设计

标题目录 💫51单片机全自动洗衣机proteus仿真设计💫设计介绍💫仿真图电动机驱动模块电路设计电源模块电路设计控制按键进水阀和排水阀控制继电器 💫程序设计main函数 💫设计报告💫资料清单&&下载链…

PC行内编辑

点击编辑,行内编辑输入框出现,给列表的每条数据定义编辑标记,最后一定记得 v-model双向绑定,使数据回显。 步骤: 1、给行数据定义编辑标记 2、点击行编辑标记(isedit) 3、插槽根据标记渲染表单 …

探究Kafka原理-6.CAP理论实践

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码、Kafka原理🔥如果感觉博主的文章还不错的话,请&#x1f44…

Transformer中的多头注意力机制-为什么需要多头?

Transformer为什么使用多头注意力机制呢? 多头可以学习到不同维度的特征和信息。为什么可以学习到不同维度的信息呢? 答案是:多头注意力机制的组成是有单个的self attention,由于self attention通过产生QKV矩阵来学习数据特征&a…

leetCode 1026. 节点与其祖先之间的最大差值 + 递归

1026. 节点与其祖先之间的最大差值 - 力扣(LeetCode) 给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值 V,其中 V |A.val - B.val|,且 A 是 B 的祖先。(如果 A 的任何子节点之一为 B&am…

网络和Linux网络_5(应用层)HTTP协议(方法+报头+状态码)

目录 1. HTTP协议介绍 1.1 URL介绍 1.2 urlencode和urldecode 1.3 HTTP协议格式 1.4 HTTP的方法和报头和状态码 2. 代码验证HTTP协议格式 HttpServer.hpp 2.2 html正式测试 Util.hpp index.html 2.3 再看HTTP方法和报头和状态码 2.3.1 方法_GET和POST等 2.3.2 报头…

SpringBoot——国际化

优质博文:IT-BLOG-CN 一、Spring 编写国际化时的步骤 【1】编写国际化配置文件; 【2】使用ResourceBundleMessageSource管理国际化资源文件; 【3】在页面使用ftp:message取出国际化内容; 二、SpringBoot编写国际化步骤 【1】创…

软件工程期末复习(选择+填空+判断)

文章目录 软件工程期末复习一、 选择题 软件工程期末复习 一、 选择题 1.“软件危机”的表现不包括:(c) A、软件产品不能按期交付 B、用户对“已完成的”软件产品时常不满意 C、程序员越来越供不应求 D、软件项目难以管理,维护困…

东胜物流软件 SQL注入漏洞复现

0x01 产品简介 东胜物流软件是一款致力于为客户提供IT支撑的 SOP, 帮助客户大幅提高工作效率,降低各个环节潜在风险的物流软件。 0x02 漏洞概述 东胜物流软件 TCodeVoynoAdapter.aspx、/TruckMng/MsWlDriver/GetDataList、/MvcShipping/MsBaseInfo/Sav…

CSS3制作3D爱心动画

1、什么是CSS css,即层叠样式表的简称,是一种标记语言,有浏览器解释执行用来使页面变得更美观。 2、选择器 css3中新增了一些选择器,如下: 3、新样式 边框 css3新增了三个边框属性,分别是: bo…

linux之下安装 nacos

1 下载地址 也可使用在线下载wget https://github.com/alibaba/nacos/releases/download/1.4.6/nacos-server-1.4.6.tar.gzTags alibaba/nacos GitHuban easy-to-use dynamic service discovery, configuration and service management platform for building cloud nativ…

android trace文件的抓取与查看方法

本地手机抓取trace 解压android trace文件的抓取与查看方法 找到config.pbtx文件,连接手机push进去 # push config.pbtx ,/data/local/tmp/为自定义push到的目录 adb push config.pbtx /data/local/tmp/ adb shell # 抓取trace, /data/loc…

【MyBatisPlus】通俗易懂 快速入门 详细教程

目录 学习目标 一、MyBatisPlus简介 1. 入门案例 问题导入 1.1 SpringBoot整合MyBatisPlus入门程序 ①:创建新模块,选择Spring初始化,并配置模块相关基础信息 ②:选择当前模块需要使用的技术集(仅保留JDBC&…

bodymovin:AE动画导出为JSONforMac/win中文版下载

对于动画制作爱好者和专业设计师来说,Adobe After Effects(AE)是一个强大的工具,可以创造出惊人的动画效果。然而,将这些动画导出为可交互的格式一直是一个挑战。现在,有了bodymovin,你可以轻松…

[原创][1]探究C#多线程开发细节-“Thread类的简单使用“

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XXQQ: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi…

搜索百度可以直接生成代码拉

先看效果图: 使用示例: 比如我要搜索“JS取一个数在两个数更近”的方法,直接搜“JS取一个数在两个数更近”,点击百度一下,就会出现想要的代码,如上图。