51单片机的外部中断的以及相关寄存器的讲解

中断系统

本文主要涉及8051单片机的中断系统的讲解与使用
其中包括中断相关寄存器的介绍与使用以及外部中断初始化的代码分析。

文章目录

  • 中断系统
    • 一、 中断的介绍
    • 二、 中断结构及相关寄存器
      • 2.1 中断源
    • 2.2 中断请求控制器
      • 2.2.1 TCON寄存器
      • 2.2.2 SCON寄存器
      • 2.2.3 中断允许寄存器IE
      • 2.2.4 中断优先级寄存器IP
    • 三、 外部中断代码
      • 3.1 中断的初始化
      • 3.2 中断服务函数

一、 中断的介绍

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

中断的定义
当中央处理机 CPU 正在处理某件事的时候外界发生了紧急事件请求,要求CPU 暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。

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

当 CPU 正在处理一个中断源请求的时候(执行相应的中断服务程序),发生了另外一个优先级比它还高的中断源请求。如果 CPU 能够暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断服务程序,这样的过程称为中断嵌套。这样的中断系统称为多级中断系统,没有中断嵌套功能的中断系统称为单级中断系统。

为什么要设置中断

    1. 提高CPU工作效率
    1. 具有实时处理功能
    1. 具有故障处理能力
    1. 实现分时操作

二、 中断结构及相关寄存器

在这里插入图片描述

2.1 中断源

51单片机总共有5个中断源,其中2个为外部中断源,3个为内部中断源。

(1)INT0*—外部中断请求0,中断请求信号由引脚输入,中断请求标志为IE0
(2)INT1*—外部中断请求1,中断请求信号由引脚输入,中断请求标志为IE1
(3)定时器/计数器T0-计数溢出发出的中断请求,中断请求标志为TF0
(4)定时器/计数器T1-计数溢出发出的中断请求,中断请求标志为TF1
(5)串行口中断请求,中断请求标志为发送中断TI或接收中断RI

2.2 中断请求控制器

80C51涉及的中断请求控制寄存器有2个。定时和外中断用TCON,串行中断用SCON。

2.2.1 TCON寄存器

字节地址为88H,可位寻址
该寄存器中既包括:

  • T0和T1的溢出中断请求标志位TF0和TF1,
  • 两个外部中断请求的标志位IE1与IE0,
  • 两个外部中断请求源的中断触发方式选择位

在这里插入图片描述

2.2.2 SCON寄存器

SCON为串行口控制寄存器,字节地址为98H,可位寻址
请求标志TI和RI,其格式如图5-4所示。
在这里插入图片描述

SCON中各标志位的功能如下:
(1)TI—串行口的发送中断请求标志位。CPU将一个字节的数据写入串行口的发送缓冲器SBUF时,就启动一帧串行数据的发送,每发送完一帧串行数据后,硬件使TI自动置“1”。

注:CPU响应串行口发送中断时,并不清除TI中断请求标志,TI标志必须在中断服务程序中用指令对其清“0”。
(2)RI—串行口接收中断请求标志位。在串行口接收完一个串行数据帧,硬件自动使RI中断请求标志置“1”。
注:CPU在响应串行口接收中断时,RI标志并不清“0”,必须在中断服务程序中用指令对RI清“0”。

2.2.3 中断允许寄存器IE

IE控制CPU对各中断源的开放或屏蔽,的字节地址为A8H,可进行位寻址,其格式如图5-5所示。

在这里插入图片描述

(1)EA—中断总允许开关控制位。
EA=0,所有中断被屏蔽。
EA=1,所有中断被开放。
只要有中断被允许,EA=1

(2)ES—串行口中断允许位。
ES=0,禁止串行口中断。
ES=1,允许串行口中断。

(3)ET1—定时器/计数器T1的溢出中断允许位。
ET1=0,禁止T1溢出中断。
ET1=1,允许T1溢出中断。

(4)EX1—外部中断1中断允许位。
EX1=0,禁止外部中断1中断。
EX1=1,允许外部中断1中断

(4)EX1—外部中断1中断允许位。
EX1=0,禁止外部中断1中断。
EX1=1,允许外部中断1中断。

(5)ET0—定时器/计数器T0的溢出中断允许位。
ET0=0,禁止T0溢出中断。
ET0=1,允许T0溢出中断。

(6)EX0—外部中断0中断允许位。
EX0=0,禁止外部中断0中断。
EX0=1,允许外部中断0中断。

复位以后,IE被清“0”,所有的中断请求被禁止

2.2.4 中断优先级寄存器IP

中断请求源有两个中断优先级,每一中断请求源可由软件设置为高优先级中断或低优先级中断。

中断嵌套,就是单片机正在执行低优先级中断的服务程序时,可被高优先级中断请求所中断,待高优先级中断处理完毕后,再返回低优先级中断服务程序。
在这里插入图片描述

关于各中断源的中断优先级关系,可归纳为下面两条基本规则:
(1)低优先级可被高优先级中断,高优先级不能低优先级中断。
(2)任何一种中断(不管是高级还是低级),一旦得到响应,不会再被它的同级中断源所中断。

中断优先级寄存器IP,其字节地址为B8H,可位寻址。IP寄存器的格式如图5-7所示。
在这里插入图片描述

中断优先级寄存器IP各位的含义如下:
(1)PS—串行口中断优先级控制位
PS=1,串行口中断为高优先级
PS=0,串行口中断为低优先级

(2)PT1—定时器T1中断优先级控制位
PT1=1,定时器T1中断为高优先级
PT1=0,定时器T1中断为低优先级

(3)PX1—外部中断1中断优先级控制位
PX1=1,外部中断1中断为高优先级
PX1=0,外部中断1中断为低优先级

(4)PT0—定时器T0中断优先级控制位
PT0=1,定时器T0中断为高优先级
PT0=0,定时器T0中断为低优先级

(5)PX0—外部中断0中断优先级控制位
PX0=1,外部中断0中断为高优先级
PX0=0,外部中断0中断为低优先级

复位以后,IP的内容为0,各个中断源均为低优先级中断.

在同时收到几个同一优先级的中断请求时,哪一个中断请求能优先得到响应,取决于内部的查询顺序。这相当于在同一个优先级内,还同时存在另一个辅助优先级结构,其查询顺序如表5-1所示。
在这里插入图片描述

由此可见,各中断源在同一个优先级的条件下,外部中断0的中断优先权最高,串行口中断的优先权最低

三、 外部中断代码

3.1 中断的初始化

void init_exit0()
{EA=1//打开总中断开关EX0=1//开外部中断 0IT0=1//设置外部中断的触发方式0-电平触发 1-边沿触发
}
void init_exit1()
{EA=1//打开总中断开关EX1=1//开外部中断 0IT1=0//设置外部中断的触发方式
}

3.2 中断服务函数

中断号
在这里插入图片描述

void exit0()    interrupt 0 //外部中断0的中断服务函数
{//中断响应后要做的事情}void exit1() interrupt 2 //外部中断1的中断服务函数
{//中断1响应后需要做的事情
}

原理图中 K3 键是连接在单片机 P3.2 口(外部中断 0),K4 按键是连接在 P3.3 口(外部中断 1)。

在这里插入图片描述

所以中断的触发是通过这两个按键来实现的,使用中断时需要注意。

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

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

相关文章

【每日一题】【12.15】2415.反转二叉树的奇数层

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 2415. 反转二叉树的奇数层https://leetcode.cn/problems/reverse-odd-levels-of-binary-tree/ 今天终于碰到了一个mid题目&#x…

数据库常用分库分表方案

为什么需要分库分表 分库分表是因应数据库处理大规模数据时所面临的挑战而出现的解决方案. // 提高性能 单个数据库在数据量增加时容易出现性能瓶颈。分库分表可以减轻单个数据库的负担,提高系统的读写性能和响应速度. // 提高并发能力 大量用户同时访问数据库可能…

N-Channel Trench Power MOSFET FMA30H150SL

FMA30H150SL N-Channel Trench Power MOSFET FMA30H150SL Application :  LCD TV  Notebook  Elevator  Inductive heating  Power tools  Broadband FMA30H150SL Features :  30V,150A  RDS(ON)2.4mΩ (Typ.) VGS 10V …

若依 ruoyi-vue3 集成aj-captcha实现滑块、文字点选验证码

目录 0. 前言0.1 说明 1. 后端部分1.1 添加依赖1.2. 修改 application.yml1.3. 新增 CaptchaRedisService 类1.4. 添加必须文件1.5. 移除不需要的类1.6. 修改登录方法1.7. 新增验证码开关获取接口1.8. 允许匿名访问 2. 前端部分(Vue3)2.1. 新增依赖 cryp…

“一键调整尺寸,轻松完成视频批量剪辑:批量放大视频尺寸“

你是否曾经遇到过需要批量调整视频尺寸的情况?无论是为了适应不同的播放平台,还是为了满足客户的特定需求,批量调整视频尺寸都是一项繁琐而耗时的工作。但是,现在有一种方法可以让你轻松完成这项任务,那就是使用我们的…

linux系统检测是否受到ddos攻击

在Linux系统上,有一些方法可以帮助检测是否遭受了DDoS攻击。以下是一些常见的方法: 网络流量分析:使用网络分析工具,如tcpdump、Wireshark等,可以捕获网络流量并分析数据包。通过观察数据包的来源、目标、流量等特征&a…

pta单身狗

“单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。 输入格式: 输入第一行给出一个正整数 N(≤50000),是已知夫妻/伴侣的对数;随后 N 行&#xff0c…

『CV学习笔记』轻量化卷积神经网络MobileNet从V1到V3

轻量化卷积神经网络MobileNet从V1到V3 文章目录 一. 预备知识1.1. 深度可分离卷积(Depthwise Separable Convolution,就是深度卷积+逐点卷积)1.1.1. 标准卷积(Standard convolutional)1.1.2. 深度卷积(Depthwise Convolution)1.1.3. 逐点卷积(Pointwise Convolution,就是11卷…

11-二分-索引二分-第一个错误的版本

这是索引二分的第十一篇算法,来个简单题缓一下,力扣链接 你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的…

Excel高效办公:文秘与行政办公的智能化革新

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台🤟 代理 IP 推荐:👉品易 HTTP 代理 IP 💅 想寻找共同学习交流的小伙伴&#xff0c…

分发饼干(贪心算法)

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j]…

超声波清洗机怎么买不会踩坑?减少踩坑机会超声波清洗机推荐

在当今快节奏的生活中,超声波清洗机已经成为了我们生活中不可或缺的助手。无论是清洗餐具、首饰,还是清洗医疗设备、实验室仪器,超声波清洗机都能以其高效、便捷的特性,帮助我们解决各种清洁难题。然而,面对市场上琳琅…

12.14每日一题(备战蓝桥杯归并排序)

12.14每日一题(备战蓝桥杯归并排序) 题目 归并排序 给定你一个长度为 n 的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数&…

ZeroSSL-ip证书配置

1.申请证书 Free SSL Certificates and SSL Tools - ZeroSSL 2.填入公网 IP 地址 3.选择90天免费 SSL 4.自动生成CSR 5.选择文件验证方式 使用80端口,建立对应的文件并进行访问测试 6. 进行认证 7.下载证书并进行配置 8.合并ssl证书 对于 Nginx 服务器,需要将 ca_bundle.crt…

ARM KEIL 安装

根据设备类型安装开发工具及环境 Arm,Cortex ----> MDK-Arm 8051 ----> C51 80251 ----> C251 C166,XC166,XC2000 MCU设备 ----> C155 填写信息提交后下载 点击MDK539.EXE下载 : MDK539.EXE 双击MDK539安装 点击Next 默认安装路径,点击Ne…

MySQL运维5-Mycat配置

一、schema.xml 1.1 简介 schema.xml作为Mycat中最重要的配置文件之一,涵盖了Mycat的逻辑库、逻辑表、分片规则、分片节点即数据源的配置。主要包括一下三组标签 schema标签 datanode标签 datahost标签 1.2 schema标签 用于定于Mycat实例中的逻辑库,一个…

FPGA - 1、Simulink HDL coder模型例化到FPGA

Simulink HDL coder模型例化到FPGA 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右…

匿名内部类与Lambda表达式

深入了解Java的匿名内部类 Java作为一种面向对象的编程语言,提供了许多灵活的特性,其中之一就是匿名内部类。匿名内部类是一种没有名字的局部内部类,通常用于创建只需在一个地方使用的类的实例。 什么是匿名内部类? 匿名内部类是…

Android12编译kernel4.9解决:scripts/gcc-wrapper.py, line 79, in run_gcc(一百六十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

CLIP 改进工作串讲(上)【论文精读·42】

大家好,今天这个串讲其实是主要想说一下在过去一年中,大家是怎么把 CLIP 这个模型或者 CLIP 这个思想应用到其他领域中去的。本来是想先做一下这个多模态的串讲的,但是就在前几天看到了 CLICK puzzle 这篇论文,获得了这个今年 c G…