51单片机中断详解(上)

2023-11-19

一.中断的概念

  1. 中断发生
    CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理
  2. 中断响应和中断服务
    CPU暂时中断当前的工作,转去处理事件B
  3. 中断返回
    待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A
    这一过程称为中断

二.中断过程示意图

这里写图片描述

三.MCS51中断系统的结构

MCS51的中断系统有5个中断源(8052有 6个) ,2个优先级,可实现二级中断嵌套

中断编号 中断名 中断源
0 外部中断0 IE0(P3.2)
1 定时器0溢出中断 TF0
2 外部中断1 IE1(P3.3)
3 定时器1溢出中断 TF1
4 串行口中断 RI

四.中断寄存器

单片机有10个寄存器主要与中断程序的书写控制有关

  1. 中断允许控制寄存器IE
  2. 定时器控制寄存器TCON
  3. 串口控制寄存器SCON
  4. 中断优先控制寄存器IP
  5. 定时器工作方式控制寄存器TMOD
  6. 定时器初值赋予寄存器(TH0/TH1,TL0/TL1)

五.部分寄存器详解

1.中断允许控制寄存器(IE)
这里写图片描述
EX0:外部中断0允许位;
ET0:定时/计数器T0中断允许位;
EX1:外部中断1允许位;
ET1:定时/计数器T1中断允许位;
ES :串行口中断允许位;
EA :CPU中断允许(总允许)位。
2.定时器/计数器控制寄存器控制寄存器(TCON)
这里写图片描述
IT0:外部中断0触发方式控制位
当IT0=0时,为电平触发方式(低电平有效)
当IT0=1时,为边沿触发方式(下降沿有效)
IE0:外部中断0中断请求标志位
IT1:外部中断1触发方式控制位
IE1:外部中断1中断请求标志位
TF0:定时/计数器T0溢出中断请求标志位
TF1:定时/计数器T1溢出中断请求标志位
3.串行口控制寄存器(SCON)
这里写图片描述
RI:串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。注意,RI必须由软件清除。
TI:串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除。
4.中断优先级控制寄存器(IP)
这里写图片描述
PX0:外部中断0优先级设定位
PT0:定时/计数器T0优先级设定位
PX1:外部中断0优先级设定位
PT1:定时/计数器T1优先级设定位
PS :串行口优先级设定位
PT2:定时/计数器T2优先级设定位

六.中断响应条件

  1. 中断源有中断请求
  2. 此中断源的中断允许位为1
  3. 开中断(即EA=1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

51单片机中断详解(上) 的相关文章

随机推荐

  • MySQL性能分析工具的使用

    1 数据库服务器的优化步骤 当我们遇到数据库调优问题的时候 该如何思考呢 这里把思考的流程整理成下面这张图 整个流程划分成了 观察 Show status 和 行动 Action 两个部分 字母 S 的部分代表观察 会使用相应的分析工具 字
  • AngularJS API

    AngularJS提供了如下的一下常用函数 API名称 描述 anguler lowercase 转换为小写字母 anguler uppercase 转换为大写字母 angular isString 是否为字符串 isNumber 是否为数
  • 常用的转义字符 C语言

    转义字符 转义字符是一种特殊的字符常量 以反斜线 开头 后跟字符 具有特定的含义 不同于字符原有的含义 故称 转义 字符 上表 转义字符 含义 n 回车换行 光标移到下一行的行首 r 回车 光标移到当前行的行首 把当前行前面全部删掉 t 制
  • 【pyqt5学习】——菜单栏(QMenu())、工具栏QToolBar学习

    目录 1 菜单栏 QMenu 一般在窗口顶部 1 创建菜单栏步骤 2 信号与方法 3 实操 2 工具栏 一般在菜单栏下方 1 创建步骤 2 方法与信号 信号 方法 3 实操示例 3 状态栏QStateBar 用于显示状态信息 一般在窗口底部
  • 微信开放平台接入问题

    1 errcode 40163 errmsg code been used rid xxxxx 原因 获取token时 使用的code码被二次使用 2 errcode 40249 errmsg this template msg has b
  • python中的unicode

    Python s Unicode string type stores characters from the Unicode character set In this set each distinct character has it
  • 怎么样不使用python做到图片爬虫呢?试试这个神奇软件吧

    1 首先在 主题 选项 选择你需要搜索的内容 2 填写需要下载的文件数量 这个需要留意 如果没有更改保存地址 那么会覆盖以前的文件 3 任意选择一个你想保存的地址 链接 https pan baidu com s 16yKPdUEC355j
  • Eureka迁移到Nacos之服务名称大小问题解决

    我们应用往Eureka中注册使用的名称以及应用内部通过Feign调用 使用的服务名称都是小写 如user service 但是注册到Eureka中后 应用的名称全部都是以大写的形式存储及展现 由于Eureka客户端对大小写的支持都是一样的
  • 前端工程化:模块化、包管理工具、打包工具(Webpack基本使用和优化)、前端性能监控

    目录 1 模块化 1 CommonJS AMD CMD 1 1 背景 1 2 CommonJS规范的核心变量 1 3 exports module exports 和require本质 1 4 exports和module exports的
  • 为什么有些Buck-Boost芯片没有输出负压?

    大家好 这里是大话硬件 今天分享一篇和Buck Boost拓扑相关的问题 也是在最开始接触Buck Boost芯片时 就在内心产生了疑问 在开始学习DC DC拓扑时 很多资料都说 非隔离型的DC DC拓扑常见的有3种 分别是Buck Boo
  • 破解sqlyog 30天试用限制

    安装sqlyog后 进入注册表编辑器 进入 HEYK CURRENT USER Software 找到以 括起来的那项 最新10 XX版本的是 8E919370 318F 4E5E 9EbE 9147B1DB66C9 不用去关注里面的值 右
  • ‘Web\xxx\node_modules\.bin\‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。internal/modules/cjs/loader.js:905throw err

    运行 npm run serve 报上面的错误 错误原因 文件夹名称中不能有
  • Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示

    一 当我们用Python matplot时作图时 一些数据需要以百分比显示 以更方便地对比模型的性能提升百分比 二 借助matplotlib ticker FuncFormatter 将坐标轴格式化 例子 encoding utf 8 im
  • C语言:整型在内存中的存储及表示形式(附习题)

    我们都知道 一个变量的创建是要在内存中开辟空间的 而空间的大小是根据不同的类型而决定的 那么数据在开辟空间中是如何存储的呢 首先我们先了解以下概念 一 整数的表示形式 原码 反码 补码 计算机中的整数有三种表示方法 即原码 反码和补码 三种
  • Unity 使用LineRenderer连接2个物体

    1 在Hierarchy面板中创建2个GameObject A和B 这就是希望连接的2个物体 2 同理创建1个EmptyObject C 挂上LineRenderer组件 记得给Materials赋值 3 创建1个新的C 脚本LineMan
  • jenkins解决不能打印springboot启动日志问题

    背景 已经可以在jenkins打包部署 但不能显示springboot启动日志 导致springboot启动报错时 并不知道具体原因 还需要登录linux系统去查看原因 主要步骤 1 开启远程服务器日志 2 利用sed命令 结束tail命令
  • String类

    下面是关于String类1相关的知识点 关于Java JDK 中内置的一个类 java lang String 1 String表示字符串类型 属于引用数据类型 不属于基本数据类型 2 在java 中随便使用双引号括起来的都是String对
  • 计算机领域中随处可见的抽象

    想要管理多种具体的东西 那么需要遵守每种东西的规范 如果想要提供一种通用模式来对这些具体的东西统一管理 需要使用一种古老的技术 抽象 抽象是将多种具体的东西 管理时需要遵守的规范 的共同点抽取出来 放入到更高一层的抽象层 在抽象层不定义或少
  • unix环境高级编程——文件IO

    本期主题 unix环境高级编程 文件IO 文件IO 0 引言 1 文件描述符 2 IO编程中常用的API接口 1 open函数 2 close函数 3 read函数 4 write函数 5 lseek函数 3 函数sync fsync和fd
  • 51单片机中断详解(上)

    一 中断的概念 中断发生 CPU在处理某一事件A时 发生了另一事件B请求CPU迅速去处理 中断响应和中断服务 CPU暂时中断当前的工作 转去处理事件B 中断返回 待CPU将事件B处理完毕后 再回到原来事件A被中断的地方继续处理事件A 这一过