单片机中断

2023-05-16

                                 蓝桥杯单片机之中断

1、中断含义及过程

中断是指CPU在处理A事情时,发现B请求CPU立刻去处理(中断发生),于是CPU去处理B(中断服务), 处理完B后又再次回到A被中断的地方,继续处理A(中断返回)

2、中断源

51单片机有五个中断源,分为外部 中断源(2个),定时器/计数器 中断源(2个)、串行通信 中断(1个)

每个中断源都有固定的入口地址和中断号,学习时要注意中断源与中断号的对应关系

3、中断的处理函数

(1)中断初始化函数

(2)中断服务 函数     三个特点:<1>没有返回值也不能带参数

                                                       <2>函数后面跟一个关键字:interrupt

                                                        <3>在关键字interrupt后面跟一个中断号

4、与中断 相关的寄存器

一、TCON    低4位给外部中断请求源使用,高4位给内部中断系统寄存器

外部请求源(第四位)

<1>  IT0  :IT0 = 0时, INT0为低电平触发方式, IT0 = 1, INT0为负 跳变触发方式。总之是INT0触发方式控制位,可由软件进行置位和复位。

<2>IE0 :    INT0中断请求标志位,当有外部中断请求时,该位就置1(硬件来完成),在CPU响应中断后,硬件将IE0又清0

<3> IT1:   类似  不过是定时器1的相关位

<4>IE1:   SAME

内部 请求源(高四位)

<1>TF0:定时/计数器T0溢出中断标记。当T0产生溢出时,TF0置位,当CPU响应中断后,硬件再把TF0复位

<2>TR0 :T0的开关控制位, TR0 = 1  定时器计数器打开, TR0= 0   定时器计数器关闭

注:TF1、TR1 与TF0 和TR0相似 。只是一个是定时器0的,一个是定时器1的

二、SCON :低二位与串口中断相关

TI:串行口发送中断

RI :串行口接收中断

三、IE    中断允许寄存器

EA : 中断总控制位    EA =1 ,CPU开放所有中断   EA = 0, CPU禁止所有中断

ES:     串行口中断控制位 ES =1, 允许串行口中断, ES= 0, 屏蔽串行口中断

ET1:   定时/计数器TI中断控制位。ET1=1,允许T1中断;ET1=0,禁止T1中断

EX1:外部中断1中断控制位。EX1=1,允许外部中断1中断;EX1=0禁止外部中断1中断

ETO:定时/计数器T0中断控制位。ETO=1,允许T0中断;ETO=0,禁止T0中断

EXO:外部中断0中断控制位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0断。

四、IP  中断优先级寄存器

执行时先将高级优先级执行后才会执行低的

PS  :串行口中断优先级控制位

PT1:定时器1优先级控制位
PX1:外部中断1优先级控制位
PTO:定时器0优先级控制位
PX0:外部中断0优先级控制位

5、对于每一个外设,我们都需要写一个初始化函数和中断服务函数。

下面分别展示外部中断   定时器\计数器中断    串行借口中断的部分代码

6

6、单片机补充:

《1》三大外设:外部中断、定时/计数器、串行通信

《2》sfr P0 = 0x80    和 P0 = 0x02的区别        前者用SFR来找了P0口的地址,为0X80, 后者是把0x02赋给P0口

《3》INT0  和INT1是中断控制器里面的,称为外部中断申请输入端

在INT0 或INT1 输入一个信号(低电平或者是下降沿),就可以使单片机临时停下正在执行的事情, 转去执行B事情

《4》KEIL使用建工程:project---new uvison project---source group----add existing files to group.写完之后记得点魔术棒,生成Greate HEX Files

在断电状态下单击下载,然后再上电  程序就自动下载到芯片了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单片机中断 的相关文章

  • Mybatis:Reader entry: ���� 4 乱码问题之解决方法

    问题 xff1a 小编在使用MyBatis进行测试时 xff0c Reader entry xfffd xfffd xfffd xfffd 4 xff0c 这是因为使用Maven xff0c 缺少相应的依赖 xff0c 导入即可 xff1a
  • Setting autocommit to false on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@54227100]之解决方法

    错误 xff1a 使用Mybatis插入数据到Mysql数据库时 xff0c 程序运行没有报错但是数据并没有插入到Mysql数据库中去 xff0c 查看运行结果 xff0c 好像是事务没有提交 xff1a 解决方法 xff1a 使用工厂生产
  • C语言实现任意栈之间的进制转换

    题目 xff1a 利用栈 xff0c 将十进制数字N转换为D进制 xff08 D 61 2 8 16 xff09 xff0c 其中16进制对应的符号是0 9 xff0c A F 要求 xff1a 十进制数字和N进制从键盘输入获得 xff0c
  • 防止C语言头文件被重复包含

    文章目录 方法一 xff1a 使用宏保护防止C语言头文件被重复包含 xff08 很常用 xff09 方法二 xff1a pragma once 在头文件的最开始加入 比较常用 xff09 参考链接 xff1a https blog csdn
  • 栈的应用之括号匹配算法

    算法思路 xff1a 初始化一个栈 xff0c 命名为s 依次遍历待匹配的字符串 如果当前字符为左括号 xff08 即 39 39 39 39 39 39 中的任意一个 xff09 xff0c 则将其入栈 如果当前字符为右括号 xff08
  • jsp页面在浏览器中显示乱码( 没有账号?)

    错误 xff1a jsp页面在浏览器显示乱码 xff0c 如下图所示 xff1a 解决方法 xff1a 主要是因为浏览器使用的编码格式与自己开发文件存储内容的编码不一致导致的 xff0c 所以需要在jsp页面中添加如下代码 xff0c 问题
  • 队列的应用之打印杨辉三角形

    题目 xff1a 利用队列打印杨辉三角形 特点 xff1a 杨辉三角除第一行为两个1以外 xff0c 从第二行开始 xff0c 每一行的首尾都为1 xff0c 中间位置的数为上一行中与之相邻的两个数之和 xff0c 可以使用我们学过的队列问
  • 栈和队列的应用之停车问题

    题目 xff1a 设停车场是一个可停放n辆汽车的狭长通道 xff0c 且只有一个大门可供汽车进出 汽车在停车场内按车辆到达时间的先后顺序 xff0c 依次由北向南排列 xff08 大门在最南端 xff0c 最先到达的第一辆车停放在停车场的最
  • Jupyter Notebook 安装与使用教程

    一 什么是Jupyter Notebook xff1f 1 简介 Jupyter Notebook是基于网页的用于交互计算的应用程序 其可被应用于全过程计算 xff1a 开发 文档编写 运行代码和展示结果 Jupyter Notebook官
  • java.lang.NoSuchMethodError: org.springframework.core.type.AnnotationMetadata.introspect之解决方法

    错误 xff1a idea中使用spring整合mybatis报错 xff1a java lang NoSuchMethodError org springframework core type AnnotationMetadata int
  • 栈和队列的应用之回文数判断

    题目 xff1a 采用栈和队列的方法检测并输出一个单词是否为回文 代码 xff1a include lt stdio h gt include lt malloc h gt define SIZE 20 using namespace st
  • 二叉链表树的遍历

    题目 xff1a 使用二叉链表树创建算法Status CreatBiTree BiTree amp T 和其他代码 二叉树的遍历有三种 xff1a 前序遍历 xff1a 先访问根节点 xff0c 再遍历左子树 xff0c 最后遍历右子树 x
  • opencv的框架与各模块功能介绍

    记录一下自己的所学知识 xff0c 便于日后回顾与整理 文中内容多为摘录 xff0c 具体链接如下 xff1a 摘录自 xff1a https zhuanlan zhihu com p 33008701 xff08 框架介绍 xff09 h
  • Android调用C/C++库

    AndroidStudio版本2021 1 1 一 AndroidStudio将C C 43 43 库打包成so库过程 AndroidStudio新建NativeC 43 43 工程 xff1b 在Tools gt SDK Manager里
  • SocketCan 应用编程

    SocketCan 应用编程 由于 Linux 系统将 CAN 设备作为网络设备进行管理 xff0c 因此在 CAN 总线应用开发方面 xff0c Linux 提供了SocketCAN 应用编程接口 xff0c 使得 CAN 总线通信近似于
  • QT开发笔记(继承 QObject 的线程 )

    继承 QObject 的线程 在第 10 章章节开头已经说过 xff0c 继承 QThread 类是创建线程的一种方法 xff0c 另一种就是继承 QObject 类 继承 QObject 类更加灵活 它通过 QObject moveToT
  • CoppeliaSim:视觉传感器的使用与属性参数

    视觉传感器类型 http www coppeliarobotics com helpFiles index html Orthographic projection type the field of view of orthographi
  • 华为Atlas200DK环境配置指南(版本20.0.0)

    官方参考文档 https support huaweicloud com usermanual A200dk 3000 atlas200dk 02 0024 html 务必保证配置时版本 20 0 0 一致 1 配置开发环境 自己电脑 若不
  • PX4 QGC地面站自定义参数

    QGC地面站自定义参数 xff08 新手操作 xff09 v1 8 2 QGC以往版本下载地址 htps github com mavlink qgroundcontrol tags 最终的添加结果如下 xff1a 具体步骤如下 xff1a
  • Linux网络编程----UDP编程基础知识

    UDP概述 UDP 是 User Datagram Protocol 的简称 xff0c 中文名是用户数据报协议 xff0c 是一个简单的面向数据报的传输层协议 xff0c 在网络中用于处理数据包 xff0c 是一种无连接的协议 UDP 不

随机推荐

  • get 命令汇总

    get 命令汇总 git config 配置 Git 的相关参数 Git 一共有3个配置文件 xff1a 1 仓库级的配置文件 xff1a 在仓库的 git gitconfig xff0c 该配置文件只对所在的仓库有效 2 全局配置文件 x
  • c++ socket简单封装

    简单封装 并不实际应用 框架图 Mysocket 主要是定义TCP和UDP的一些相同的操作 xff0c 需要的他们各自去实现 Mysocket h ifndef MYSOCKET H define MYSOCKET H class MySo
  • pixhawk2飞控接头型号

    BM04B GHS TBT BM05B GHS TBT BM06B GHS TBT
  • 多种视觉SLAM方案对比

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 本文转自 新机器视觉 在SLAM研究中 xff0c 我们通常需要在各数据集上测试各个方案的性能情况 如下主要对表1中6个视觉SLAM方
  • 激光雷达核心技术及行业格局梳理

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 引言 xff1a 车载摄像头是ADAS 的核心传感器 车载摄像头搭载颗数稳步提升 根据 Yole 数据 xff0c 2018 年全球平
  • 2 ROS1通讯编程基础(2)

    2 ROS1通讯编程基础 2 3 配置文件的解读2 3 1 CMakeList txt解读2 3 1 1 find package的配置2 3 1 2 messages services and actions的配置2 3 1 3 动态重配
  • Rviz 使用Arbotix控制机器人运动

    需求 控制机器人模型在 rviz 中做圆周运动 实现流程 安装 Arbotix创建新功能包 xff0c 准备机器人 urdf xacro 文件添加 Arbotix 配置文件编写 launch 文件配置 Arbotix启动 launch 文件
  • VINS问题整理

    VINS的初始化过程 xff1f 首先进行纯视觉SfM xff1a 把滑窗填满 xff0c 然后选择枢纽帧 xff08 和最后一帧有足够的视野重叠保证计算的位姿精度 xff0c 并且和最后一帧有足够的视差保证三角化地图点的精度 xff09
  • 两台ubuntu电脑如何搭建局域网以及通信

    两台ubuntu电脑如何搭建局域网以及通信 功能 xff1a 用自己的电脑代替设备中的电脑进行数据处理 xff0c 以及将最后的结果传给设备电脑 需要做的内容的 xff1a 首先用网线将自己的pc与设备连接起来 1 将自己的笔记本ip地址手
  • PC偏振控制器、锁模激光器技术、AOM声光调制器、相位噪声、锁相环、光耦合器类型

    1 PC 偏振控制器 xff08 1 xff09 什么叫做偏振光 xff1f polarized light 光是一种电磁波 xff0c 电磁波是横波 xff0c 它具有偏振性 xff0c 具有偏振性的光则称为偏振光 具体体现 xff1a
  • 小梅哥——38译码器

    三八译码器 xff0c 即是 3 种输入状态翻译成 8 种输出状态 真值表 代码展示 module decoder 3 8 a b c out input a 输入端口a input b 输入端口b input c 输入端口c output
  • 基本RS触发器(SR锁存器)

    一 前言 SR锁存器 Set Reset Latch 是静态存储单元当中最基本 xff0c 也是电路结构最简单的一种 xff0c 通常由两个或非门或者与非门组成 其中S表示Set xff0c R表示Reset 则S D称为置位端或置1输入端
  • 01-RTOS

    对于裸机而言 xff0c 对于RTOS而言 即 xff1a 对于裸机 xff0c 打游戏意味着不能回消息 回消息意味着不能打游戏 对于RTOS 打游戏和裸机的切换只需要一个时间片节拍 1ms 从宏观来看 就是同时进行的两件事 xff08 但
  • uORB笔记

    不同的类调用同一函数orb subscribe ORB ID vehicle gps position xff0c 来订阅GPS信息是 xff0c 该函数返回的值不同 xff0c 也就是说每个订阅者针对同一主题 xff0c 在调用函数orb
  • STM32 SystemInit()函数学习总结

    拿到程序后如何看系统时钟 xff1f User文件夹 system stm32f4xx程序 xff0c 先找systemcoreclock 系统时钟 xff09 但是这里这么多个系统时钟应该如何选择 点击魔法棒 xff0c 然后点击C C
  • FPGA IP核之PLL四种输出模式的理解

    一 源同步模式 使得进入管脚时的数据和上升沿的相位关系与到达芯片内部第一级寄存器时数据和上升沿的相位关系保持不变 xff08 通过调整内部的布局布线延时做到的 xff0c 用于数据接口 xff0c 特别是高速的情况下 xff09 详细理解
  • FPGA_边沿监测理解

    一 简易频率计设计中为什么一定要获取下降沿 gate a 实际闸门信号 gate a stand 将实际闸门信号打一拍之后的信号 gate a fall s 下降沿标志信号 cnt clk stand Y值 xff0c 即在实际闸门信号下
  • HAL库 STM32 串口通信

    一 实验条件 将STM32的PA9复用为串口1的TX xff0c PA10复用为串口1的RX STM32芯片的输出TX和接收RX与CH340的接收RX和发送TX相连 xff08 收发交叉且PCB上默认没有相连 xff0c 所以需要用P3跳线
  • 全局变量和局部变量

    一 C语言由四种地方可以定义变量 在函数外部定义的是全局变量 xff08 这里的函数包括main函数 xff09 在头文件中定义的是全局变量 在函数或语句块内部定义的是局部变量 函数的参数是该函数的局部变量 全局变量 xff0c 在定义位置
  • 单片机中断

    蓝桥杯单片机之中断 1 中断含义及过程 中断是指CPU在处理A事情时 xff0c 发现B请求CPU立刻去处理 xff08 中断发生 xff09 xff0c 于是CPU去处理B xff08 中断服务 xff09 xff0c 处理完B后又再次回