普中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;//打开外部中断1
	IT0 = 1;//设置为下降沿触发方式
}

void main()
{
	Init_Port();
	while(1)
	{
		
	}
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spin Image(旋转图像)

Spin Image特征描述子原理 Spin Image是Johnson于1999年提出&#xff0c;Lazebnik于2005年完善的基于点云空间分布的特征描述方法&#xff0c;其思想是将一定区域的点云分布转换成二维的Spin Image&#xff0c;然后对场景和模型的Spin Image进行相似性度量。Spin Image方法与通…

OJhelper一款帮助你获取各大oj信息的软件

项目地址 应用功能 目前应用支持&#xff1a;查询、自定义、收藏各大oj比赛信息&#xff0c;跳转比赛界面。查询各大oj的Rating分以及题量&#xff0c;查看题量饼状图。 应用环境 windows和安卓端 应用预览&#xff1a; 维护概况 后期会提供持续更新&#xff0c;具体可以…

无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。【解决办法】

问题描述 新建好一台windows虚拟机&#xff0c;两台设备网络是互通的&#xff0c;但是物理机在访问虚拟机的网络共享文件资源时&#xff0c;出现图下所示的报错&#xff1a;XXX无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。用户…

在FPGA程序中Handshake(握手)和Register(寄存器)区别

在FPGA程序中&#xff0c;Handshake&#xff08;握手&#xff09;和Register&#xff08;寄存器&#xff09;是两种不同的通信和数据传输机制。它们各有特点和适用场景。以下是它们的区别和应用场景的详细解释&#xff1a; Register&#xff08;寄存器&#xff09; 特点&#…

RFID智能锁控系统在物流安全运输中的应用与效益分析

一、物流锁控系统现状与挑战 1.1 传统锁控系统的局限性 安全性不足&#xff1a;机械锁容易被撬开或钥匙被复制&#xff0c;导致货物在运输过程中面临被盗风险。 无法实时追踪&#xff1a;一旦货物离开发货点&#xff0c;物流公司无法实时监控货物状态&#xff0c;增加了货物…

全终端自动化测试框架wyTest

突然有一些觉悟&#xff0c;程序猿不能只会吭哧吭哧的低头做事&#xff0c;应该学会怎么去展示自己&#xff0c;怎么去宣传自己&#xff0c;怎么把自己想做的事表述清楚。 于是&#xff0c;这两天一直在整理自己的作品&#xff0c;也为接下来的找工作多做点准备。接下来…

初始化线程的4种方式

1. 继承Thread 缺点&#xff1a;无法获取线程的运算结果。 public class ThreadTest{public static void main(String[] args){Thread01 thread new Thread01();thread.start();}public static class Thread01 extends Thread{public void run(){System.out.println("当前…

基于蓝牙iBeacon定位技术的商场3D楼层导视软件功能详解与实施效益

在现代商场的繁华与复杂中&#xff0c;寻找目的地往往令人头疼。维小帮3D楼层导视软件以其创新技术&#xff0c;为顾客带来无缝、直观的跨楼层导航体验&#xff0c;让每一次商场消费都成为享受。 商场3D楼层导视软件功能服务 3D多楼层导视地图&#xff0c;商场布局一览无遗 …

数字经济时代,你有数商吗?

引言&#xff1a;随着科技的飞速发展&#xff0c;我们正步入一个全新的数字经济时代。在这个时代里&#xff0c;数据成为了新的石油&#xff0c;是推动经济增长和社会进步的关键要素。而在这个数据洪流中&#xff0c;一个新兴的概念——“数商”&#xff0c;正逐渐进入公众的视…

C#创建windows服务程序

步骤 1: 创建Windows服务项目 打开Visual Studio。选择“创建新项目”。在项目类型中搜索“Windows Service”并选择一个C#模板&#xff08;如“Windows Service (.NET Framework)”&#xff09;&#xff0c;点击下一步。输入项目名称、位置和其他选项&#xff0c;然后点击“创…

C#中简单Socket编程

C#中简单Socket编程 Socket分为面向连接的套接字(TCP套接字)和面向消息的套接字(UDP 套接字)。我们平时的网络编程是对Socket进行操作。 接下来&#xff0c;我用C#语言来进行简单的TCP通信和UDP通信。 一、TCP通信 新建项目SocketTest&#xff0c;首先添加TCP通信的客户端代…

6.MkDocs附录

安装插件 在 MkDocs 中&#xff0c;插件通常是通过 pip​ 工具安装的。你可以使用以下步骤来安装和配置 MkDocs 插件。 1.使用 pip​ 命令安装你需要的插件。例如 pip install pymdown-extensions‍ 2.更新 mkdocs.yml​ 文件。 ‍ 3.使用 mkdocs serve​ 命令本地预览你…

H265码率解析

概述 H.265技术的应用 编码技术主要运用于视频播放设备、软件应用以及拍摄、录制视频的设备。人们最熟悉的莫过于PPS网络视频播放器。在PC屏客户端产品上面&#xff0c;PPS已经于2013年初推出了基于H.265标准的高清视频&#xff0c;并命名“臻高清”为自己的高清品牌。同时 P…

mirthConnect 常用示例和语法整理

mirthConnect 常用示例和语法整理 1、jolt json常用语法 https://please.blog.csdn.net/article/details/140137463 2、常用方法 2.1 WinningDateUtils 所有的时间工具在WinningDateUtils里面 获取当前时间&#xff1a;var nowStrWinningDateUtils.getStandardNowStr()获取…

JVM是如何创建一个对象的?

哈喽&#xff0c;大家好&#x1f389;&#xff0c;我是世杰。 本文我为大家介绍面试官经常考察的**「Java对象创建流程」** 照例在开头留一些面试考察内容~~ 面试连环call Java对象创建的流程是什么样?JVM执行new关键字时都有哪些操作?JVM在频繁创建对象时&#xff0c;如何…

The First项目报告:引领L2解决方案新纪元的模块化协议AltLayer

在区块链演进中&#xff0c;可扩展性与定制化成为开发者核心诉求。ZK Rollups与Optimistic Rollups虽显著提升以太坊等区块链性能&#xff0c;却面临访问性、定制难、中心化风险及流动性分散等挑战。AltLayer以Rollups-as-a-Service创新模式&#xff0c;赋予开发者直接管理roll…

爆破器材期刊

《爆破器材》简介   《爆破器材》自1958年创刊以来&#xff0c;深受广大读者喜爱&#xff0c;是中国兵工学会主办的中央级技术刊物&#xff0c;在国内外公开发行&#xff0c;近几年已发行到10个国家和地区。《爆破器材》杂志被美国著名检索机构《化学文摘》&#xff08;CA&a…

【Linux】System V信号量详解以及semget()、semctl()和semop()函数讲解

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

2018-2022 年份微博签到数据集

前阵子接到一个实验室老师的需求&#xff0c;采集五年前&#xff08;2024-52019&#xff09;过年前后的北京微博签到数据。 前两年采集的深圳签到数据是 2022 年是当年的尚可&#xff0c;这次虽然时间跨度只有两个月&#xff0c;但是由于时间太过久远&#xff0c;但是颇费了一…

JAVA从入门到精通之入门初阶(一)

1. 认识变量 一、 首先变量名要遵循如下命名规则&#xff1a; 1. 变量名只能由字母、数字和下划线组成 2. 变量名必须以字母或下划线开头 3. 变量名大小写敏感 4. 变量名不能使用关键字&#xff0c;如const、static等 5. 变量名应具有描述性&#xff0c;以便于代码的可读性…