普中51单片机:中断系统与寄存器解析(六)

在这里插入图片描述

文章目录

  • 引言
  • 中断流程图
  • 中断优先级
  • 下降沿
  • 中断结构图
  • 中断相关寄存器
    • IE中断允许寄存器(可位寻址)
    • XICON辅助中断控制寄存器(可位寻址)
    • TCON标志控制寄存器
    • SCON串行口控制寄存器
  • 中断号
  • 中断响应条件
  • 中断函数代码模板
  • 电路图
  • 开发板IO连接图
  • 代码演示——外部中断0控制LED1

引言

中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力,它也是单片机最重要的功能之一。中断是指单片机在执行主程序时,遇到某些特定事件(如外部信号、定时器溢出等)时,暂时中止主程序,转而执行中断服务程序,处理完后再返回主程序继续执行。

中断流程图

在这里插入图片描述

中断优先级

在同一时刻,当有多个中断源出现,会根据中断源的优先级来判断先执行哪一个,其中TCON寄存器中的IT0位控制的是触发方式,是低电平触发还是下降沿触发,当为0时,是低电平触发,当为1时是下降沿触发
在这里插入图片描述

下降沿

在数字电路和信号处理中,上升沿触发和下降沿触发是指在时序逻辑中触发触发器或触发器器件(比如时钟触发器)的两种常见方式。

在数字电路中,想象一下时钟信号就像是一根线,它在高电平和低电平之间变化。这个变化的过程就像是上升和下降。当信号从低电平到高电平变化时,我们称之为上升沿;当信号从高电平到低电平变化时,我们称之为下降沿。上升沿触发和下降沿触发描述了在这些变化发生时触发电路动作或逻辑操作的方式。

  • 上升沿触发就像是当时钟信号从低电平到高电平变化时,我们说“现在触发”,进行某种操作或者执行一些任务。
  • 下降沿触发则是当时钟信号从高电平到低电平变化时,我们执行相应的任务或操作。

这些触发方式在数字电路设计中用于指导设备或芯片在特定时刻进行操作。在某些情况下,我们可能需要在信号变为高电平时执行某些操作;而在其他情况下,可能需要在信号变为低电平时执行相应的操作。这取决于特定设计的要求和需要。

中断结构图

在这里插入图片描述
STC89系列51单片机提供了8个中断请求源,分别是一个外部中断0(INT0),外部中断1(INT1),外部中断2(INT2),外部中断3(INT3)以及定时器0(TF0)、定时器1(TF1)和定时器2(TF2),外加串口中断,用于发送接收(UART)
在这里插入图片描述

注意:外部中断0(INT0),外部中断1(INT1),定时器0(TF0)、定时器1(TF1),串口中断,用于发送接收(UART)这五个中断是51单片机共有的中断源。

中断相关寄存器

在这里插入图片描述
上表中列出了与STC89C51RC/RD+系列单片机中断相关的所有寄存器。

IE中断允许寄存器(可位寻址)

中断允许控制是指通过设置中断允许位(Interrupt Enable Bits)来决定是否开启对特定中断源的响应。在单片机中,通常会有一个或多个寄存器用于控制不同中断源的允许状态。例如,在8051单片机中,有一个名为IE(Interrupt Enable)的寄存器,用于控制各种中断的允许状态。

  1. IE寄存器中的位:IE寄存器中的每一位对应一种中断源。如果某一位被设置为1,则表示允许该中断源的中断;如果被设置为0,则表示禁止该中断源的中断。
  2. 中断优先级:在某些单片机中,IE寄存器还可以设置中断优先级,确保高优先级的中断能够得到及时响应。

在这里插入图片描述

  • EA:CPU的总中断允许控制位,EA=1,CPU开放中断,EA=0,CPU屏蔽所有的中断申请。EA的作用是使中断允许形成两级控制。即各中断源首先收EA控制,其次还受各中断源自己的中断允许控制位控制。
  • ET2: 定时/计数器T2的溢出中断允许位。ET2=1,允许T2中断;ET2=0,禁止T2中断。
  • ES:串行口1中断允许位。ES=1,允许串行口1中断;ES=0,禁止串行口1中断。
  • ET1:定时/计数器T1的溢出中断允许位、ET1=1,允许T1中断;ET1=0,禁止T1中断。
  • EX1:外部中断1中断允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。
  • ET0:T0的溢出中断允许位。ET0=1。允许T0中断;ET0=0禁止T0中断。
  • EX0:外部中断0中断允许位。EX0=1,允许中断;EX0=0禁止中断

XICON辅助中断控制寄存器(可位寻址)

在这里插入图片描述

TCON标志控制寄存器

TCON寄存器是专门用于控制定时器和计数器的寄存器。在8051单片机中,TCON寄存器包含多个位,每个位控制不同的定时器或计数器功能,以及相关的中断请求标志。

  • 定时器/计数器运行控制位:TCON寄存器中的某些位用于启动或停止定时器/计数器的运行。例如,TR0和TR1位用于控制定时器0和定时器1的运行。
  • 中断请求标志:TCON寄存器中的TF0和TF1位分别用于指示定时器0和定时器1是否已经溢出,即是否需要产生中断请求。当中断请求发生时,这些位会被硬件自动设置为1。
  • 重置中断请求标志:当中断服务例程处理完中断请求后,软件需要手动清除TF0和TF1位,以便定时器准备下一次的中断请求。

在这里插入图片描述

SCON串行口控制寄存器

在这里插入图片描述

中断号

在单片机(Microcontroller)中,中断号是用于标识不同中断源的唯一数字,它使得单片机能够区分并响应多个同时发生的中断请求。
在这里插入图片描述

中断响应条件

  1. 中断源有中断请求。
  2. 中断源的中断允许位为1,通过设置对应寄存器。
  3. CPU开启总中断(即EA=1)。

中断函数代码模板

中断函数通常使用关键字interrupt和中断号来声明,例如:

void External0_ISR(void) interrupt 0
{// 中断处理代码
}

这表示当外部中断0发生时,将调用External0_ISR函数进行处理 。其他中断类似。

电路图

在这里插入图片描述由图可以看出外部中断0和1分别是P3_2和P3_3引脚

开发板IO连接图

请添加图片描述
由图可知KEY3按键连接在P3_2上,P3_2是外部中断0

代码演示——外部中断0控制LED1

将外部中断0和1设置为下降沿的触发方式,当按键按下的时候,电平状态由高到低,就会触发中断,将对应按键连接到P3_2引脚,当对应按键按下的时候,对应的指示灯通过中断函数点亮。

#include <REGX52.H>sbit LED1 = P2^0;void DelayXms(unsigned int xms)	//@12.000MHz
{unsigned char data i, j;while(xms){i = 2;j = 239;do{while (--j);} while (--i);xms--;}
}void External0_ISR(void) interrupt 0
{// 中断处理代码DelayXms(10);//消抖处理if(P3_2 == 0){LED1 = ~LED1;IE0 = 0;	}}void Init_Port()
{LED1 = 0;//默认熄灭EA = 1;//打开总中断EX0 = 1;//打开外部中断1IT0 = 1;//设置为下降沿触发方式
}void main()
{Init_Port();while(1){}
}

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

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

相关文章

局域网远程共享桌面如何实现

在局域网内实现远程共享桌面&#xff0c;可以通过以下几种方法&#xff1a; 一、使用Windows自带的远程桌面功能&#xff1a; 首先&#xff0c;在需要被控制的电脑上右键点击“此电脑”&#xff0c;选择“属性”。 进入计算机属性界面后&#xff0c;点击“高级系统设置”&am…

DNS--

1.DNS作用 -互联网中的114查号台/导航员 全球13台DNS根服务器分布&#xff1a; 美国VeriSign公司 2台 网络管理组织IANA(Internet Assigned Number Authority) 1台 欧洲网络管理组织RIPE-NCC(Resource IP Europeens Network Coordination Centre) 1台 美国PSINet公司 1台…

suricata7 rule加载(三)加载options

suricata7.0.5 加载options (msg:“HTTP Request Example”; flow:established,to_server; http.method; content:“POST”; http.uri; content:“query.php”; bsize:>9; http.protocol; content:“HTTP/1.1”; bsize:8; http.host; content:“360”; bsize:>3; class…

代理详解之静态代理、动态代理、SpringAOP实现

1、代理介绍 代理是指一个对象A通过持有另一个对象B&#xff0c;可以具有B同样的行为的模式。为了对外开放协议&#xff0c;B往往实现了一个接口&#xff0c;A也会去实现接口。但是B是“真正”实现类&#xff0c;A则比较“虚”&#xff0c;他借用了B的方法去实现接口的方法。A…

vue3 + element-plus 表格行内编辑,如何实现表单校验?

问题描述&#xff1a; 当使用table实现行内编辑时&#xff0c;往往需要对必填项增加校验以及错误高度&#xff0c; 预期实现效果如下&#xff1a; 实现思路&#xff1a; 使用el-form表单自身的校验功能&#xff1a;通过el-from绑定对应表格行的prop&#xff0c; 实现校验 页面…

数据结构基础--------【二叉树题型】

1、前提(待补充) 1.**DFS&#xff08;Depth First Search&#xff09;&#x1f617;*递归法得到最终的数组&#xff08;深度优先算法&#xff09; 其过程简要来说是对每一个可能的分支路径深入到不能再深入为止&#xff0c;如果遇到死路就往回退&#xff0c;回退过程中如果遇…

OAuth2.0登录的四种方式

OAuth登录的四种方式 1. 授权码 授权码&#xff08;authorization code&#xff09;方式&#xff0c;指的是第三方应用先申请一个授权码&#xff0c;然后再用该码获取令牌。 这种方式是最常用的流程&#xff0c;安全性也最高&#xff0c;它适用于那些有后端的 Web 应用。授权…

点亿点计划Web3.0广告平台即将发射Clicks科力币

点亿点计划Web3.0广告平台即将发射Clicks科力币 我们很高兴地宣布&#xff0c;点亿点计划Web3.0广告平台即将发射Clicks科力币&#xff01;科力币&#xff08;Clicks&#xff09;是Clicks X Web3.0多功能应用的治理代币&#xff0c;未来将为代币持有人带来巨大的广告收入。 …

计算机的错误计算(二十六)

摘要 结合计算机的错误计算&#xff08;二十四&#xff09;中的 Maple 环境下的计算过程&#xff0c;&#xff08;二十五&#xff09;讨论了&#xff08;不&#xff09;停机问题。事实上&#xff0c;其它数学软件比如 Mathematica 也存在该问题。 &#xff08;不&#xff09;停…

《植物大战僵尸杂交版》2.2版本:全新内容与下载指南

《植物大战僵尸杂交版》2.2版本已经火热更新&#xff0c;带来了一系列令人兴奋的新玩法和调整&#xff0c;为这款经典的塔防游戏注入了新的活力。如果你是《植物大战僵尸》系列的忠实粉丝&#xff0c;那么这个版本绝对值得你一探究竟。 2.2版本更新亮点 新增看星星玩法 这个新…

Linux学习——Linux中无法使用ifconfg命令

Linux学习——Linux中无法使用ifconfg命令&#xff1f; &#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅…

【Python基础篇】条件判断和循环判断

文章目录 1. 条件判断1.1 单分支1.2 双分支1.3 多分支 2. 循环判断2.1 while2.2 for2.3 break2.4 continue 1. 条件判断 1.1 单分支 前面学习了打印&#xff0c;但是有时候我们在打印时会面临选择&#xff0c;例如&#xff1a;一个网吧&#xff0c;未满18&#xff0c;禁止进入…

力扣喜刷刷--day1

1.无重复字符的最长子串 知识点&#xff1a;滑动窗口 基本概念 窗口&#xff1a;窗口是一个连续的子序列&#xff0c;可以是固定长度或可变长度。滑动&#xff1a;窗口在数据序列上移动&#xff0c;可以是向左或向右。边界&#xff1a;窗口的起始和结束位置。 应用场景 字符…

OpenAI与Thrive Global推出Thrive AI Health:AI驱动的健康教练应用

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

JAVA之开发神器——IntelliJ IDEA的下载与安装

一、IDEA是什么&#xff1f; IEAD是JetBrains公司开发的专用于java开发的一款集成开发环境。由于其功能强大且符合人体工程学&#xff08;就是更懂你&#xff09;的优点&#xff0c;深受java开发人员的喜爱。目前在java开发工具中占比3/4。如果你要走java开发方向&#xff0c;那…

python+pygame实现五子棋人机对战之一

五子棋起源于中国&#xff0c;是全国智力运动会竞技项目之一&#xff0c;是一种两人对弈的纯策略型棋类游戏。双方分别使用黑白两色的棋子&#xff0c;下在棋盘直线与横线的交叉点上&#xff0c;先形成五子连珠者获胜。 本内容仅仅涉及到人机对战版&#xff0c;人人对战版后续…

【大模型LLM面试合集】大语言模型架构_MoE论文

1.MoE论文 参考文章&#xff1a; Mixture of Experts-IntroductionUnderstanding the Mixture-of-Experts Model in Deep Learning 论文相关&#xff1a; 论文名称&#xff1a;Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer论文地址&a…

秋招突击——7/9——复习{Java实现——LRU,Java实现——搜索插入位置}——新作{二分查找——搜索二维矩阵}

文章目录 引言复习Java实现——LRU缓存对照实现 Java实现——搜索插入位置java实现知识补充 新作搜索二维矩阵个人实现参考实现 总结 引言 以后都要向使用Java刷算法进行过滤了&#xff0c;所以今天主要是复习为主&#xff0c;复习两道之前做过的题目&#xff0c;然后做两道新…

如何在 Microsoft Edge 上使用开发人员工具

Microsoft Edge 提供了一套强大的开发人员工具&#xff0c;可帮助 Web 开发人员检查、调试和优化他们的网站或 Web 应用程序。 无论您是经验丰富的 Web 开发人员还是刚刚起步&#xff0c;了解如何有效地使用这些工具都可以对开发过程产生重大影响。 在本文中&#xff0c;我们…

Java版Flink使用指南——分流导出

大纲 新建工程编码Pom.xml自定义无界流分流 测试工程代码 在之前的案例中&#xff0c;我们一直使用的是单个Sink来做数据的输出。实际上&#xff0c;Flink是支持多个输出流的。本文我们就来讲解如何在Flink数据输出时做分流处理。 我们将基于《Java版Flink使用指南——自定义无…