51单片机中断系统

news/2025/3/20 3:34:58/

中断定义

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

  

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

  

  89C51/52的中断系统有5个中断源 ,2个优先级,可实现二级中断嵌套 。

   

  1、(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。

  2、(P3.3)可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。

   3、TF0(TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。

   4、TF1(TCON.7),片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。

  5、RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。

中断允许控制

  CPU对中断系统的所有中断以及某个中断源的开发和屏蔽是由中断允许寄存器IE控制的。

  

EA:中断允许总开关控制位。(1:所有中断请求被允许;0:所有中断请求被屏蔽)

ES:串行口中断允许控制位。(1:允许串口中断;0:禁止串口中断)

ET1:定时器/计数器T1的溢出中断允许控制位。(1:允许T1溢出中断;0:禁止T1溢出中断)

EX1:外部中断1中断允许位。(1:允许外部中断1中断;0:禁止外部中断1中断)

ET0:定时器/计数器T0的溢出中断允许控制位。(1:允许T1溢出中断;0:禁止T1溢出中断)

EX0:外部中断0中断允许位。(1:允许外部中断1中断;0:禁止外部中断1中断)

中断请求标志 

  TCON 的中断标志

  

  IT0(TCON.0),外部中断0触发方式控制位。

    当IT0=0时,为低电平触发方式。

    当IT0=1时,为边沿触发方式(下降沿有效)。

  IE0(TCON.1),外部中断0中断请求标志位。

  IT1(TCON.2),外部中断1触发方式控制位。

  IE1(TCON.3),外部中断1中断请求标志位。

  TF0(TCON.5),定时/计数器T0溢出中断请求标志位。

  TF1(TCON.7),定时/计数器T1溢出中断请求标志位。

 中断优先级

   

中断源

     

中断响应条件

  中断源有中断请求

  此中断源的中断允许位为1

  CPU开中断(EA=1)

使用中断,需要做什么?

  你想使用的中断是哪个?选择响应的终端号。

  你所希望的触发条件是什么?

  你希望在中断之后干什么?

 以外部中断0为例

主程序中需要有以下代码:

EA=1;//打开总中断开关
EX0=1;//开外部中断0
IT0=0/1;//设置外部中断的触发方式

中断服务函数:

void int0 () interrupt 0 using 1  // using 1 不用写也不用管{do anything that you want
}


http://www.ppmy.cn/news/123453.html

相关文章

中断控制器及驱动分析

说明: Kernel版本:4.14ARM64处理器,Contex-A53,双核使用工具:Source Insight 3.5, Visio 1. 概述 从这篇文章开始,来聊一聊中断子系统。 中断是处理器用于异步处理外围设备请求的一种机制&am…

程序的中断控制方式(3种)

1.return return值:将方法的运算结果返回给调用者并退出当前执行的代码块 return:告诉虚拟机运行到此处时退出当前执行的代码块 2.break和continue 在循环条件满足的情况下提前终止循环语句的执行 ps:若是循环嵌套的话是跳出最近的那次循…

Cortex-M0中断控制和系统控制

目录 1.NVIC和系统控制块特性2.中断使能和清除使能3.中断挂起和清除挂起4.中断优先级5.中断控制的通用汇编代码使能和禁止中断设置和清除中断挂起状态设置中断优先级 6.异常屏蔽寄存器(PRIMASK)7.中断输入和挂起行为8.中断等待9.系统异常的控制寄存器10.…

单片机的中断系统(单片机)

目录 一、中断系统的基本概念 二、中断系统的控制 三、中断系统应用举例 1.实现方法 2.程序设计 主要看注释 一、中断系统的基本概念 1、中断源 要让单片机停止当前的程序去做其他事情,需要向它发出请求信号,CPU接收到中断请求信号后才能产生中…

Linux中断(interrupt)子系统之三:中断流控处理层

1. 中断流控层简介 早期的内核版本中,几乎所有的中断都是由__do_IRQ函数进行处理,但是,因为各种中断请求的电气特性会有所不同,又或者中断控制器的特性也不同,这会导致以下这些处理也会有所不同: 何时对中…

中断控制器及中断控制

所有以ARM为内核的处理器的异常共分为7中,每一种异常对应一个异常向量,每个异常向量占4个字节,指出中断服务程序的入口地址。异常向量表从0x00000000~0x0000001F。 其中普通中断和快速中断的向量地址为0x00000018~0x0…

第七章-中断控制器

可编程中断控制器8259A 文章目录 可编程中断控制器8259A前言一、内部结构1、 对外信号2、内部寄存器(443) 二、工作过程及原理三、8259A的工作方式四、8259A初始化命令字五、8259A的操作命令字总结 前言 本博客仅做学习笔记,如有侵权&#x…

中断系统

引起中断的各种因素 1.人为设置的中断 2.程序性事故:溢出,除法非法,操作码不能识别 3.硬件故障 4.I/O设备 5.外部事件,键盘ESC退出 中断系统需要解决的问题 (1)各中断源怎么向CPU提出中断请求 &#xff…