【51单片机中断】

目录

配置流程

1.在IE寄存器中开启总中断通道和需要的某中断通道

2.在TCON寄存器开启所用中断的触发方式

3.使用中断函数完成中断

4.若需要中断嵌套则在IP寄存器中配置

5.若需要使用串口的中断,则配置SCON寄存器

6.代码示例


配置流程

1.在IE寄存器中开启总中断通道和需要的某中断通道

置1为开启

2.在TCON寄存器开启所用中断的触发方式

置1为开启

没有加粗的内容在普通的中断配置流程中可以忽略

3.使用中断函数完成中断

关键字:interrupt

复制代码
void Function() interrupt n 
{
    
}

n是中断号,取值范围0~4,分别对应外部中断0、定时器0、外部中断1、定时器1、串口

4.若需要中断嵌套则在IP寄存器中配置

置1为高优先级

虽然手册上说在同优先级的情况下优先级的顺序为外部中断0、定时器0、外部中断1、定时器1、串口,但是实践中发现需要中断嵌套的情况下如果不在IP寄存器中配置优先级,则没有中断嵌套的现象

5.若需要使用串口的中断,则配置SCON寄存器

6.代码示例

复制代码
#include <REGX52.H>

void main()
{
  EA = 1;           //总中断允许
  EX0 = 1;          //外部中断0允许
  EX1 = 1;          //外部中断1允许
  
  IT0 = 1;          //外部中断0触发方式为下降沿
  IT1 = 1;          //外部中断1触发方式为下降沿
  
  PX0 = 1;          //外部中断0优先级高
  PX1 = 0;          //外部中断1优先级低

  while(1)
  {
    
  }
}


void Int0(void) interrupt 0    //外部中断0中断号为0
{

}
 
void Int1(void) interrupt 2    //外部中断1中断号为2
{

} 
相关推荐
永霖光电_UVLED2 小时前
意法半导体:华虹40nm代工生产的STM32 MCU开启交付
stm32·单片机·嵌入式硬件
冲,干,闯3 小时前
LVGL_按钮部件(LV_btn)
单片机
Zevalin爱灰灰4 小时前
零基础入门学用物联网(ESP8266) 第一部分 基础知识篇(六)
单片机·物联网·嵌入式·esp8266
爱喝纯牛奶的柠檬5 小时前
STM32红外遥控解码,NEC协议驱动
单片机·嵌入式硬件
羽获飞5 小时前
从零开始学嵌入式之STM32——30.使用触发输入和从模式测量PWM信号的占空比
stm32·单片机·嵌入式硬件
技术民工之路6 小时前
Keil MDK 5.40:STM32 工程编译 + 调试完整教程
stm32·单片机·嵌入式硬件
小马学嵌入式~6 小时前
linux开发深度学习-时钟
linux·arm开发·嵌入式硬件·学习
LCG元7 小时前
STM32嵌入式开发:基于STM32F103的智能语音识别系统
stm32·嵌入式硬件·语音识别
项目題供诗7 小时前
51单片机入门-直流电机(十四)
单片机·嵌入式硬件·51单片机
安庆平.Я8 小时前
STM32——FreeRTOS - 任务创建和删除 ~ 静态方法
stm32·单片机·嵌入式硬件