单片机-外部中断

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

1、中断结构

|-------|-----------|-----|---------|
| 中断源 | 对应的管脚 | 中断号 | 中断允许标志位 |
| INT0 | P3.2 | 0 | EX0 |
| T0 | P3.3 | 1 | ET0 |
| INT1 | P3.4 | 2 | EX1 |
| T1 | P3.5 | 3 | ET1 |
| RI、TI | P3.0 P3.1 | 4 | |

2、中断相关寄存器

(1)中断允许控制

EA:中断总开关

(2)中断请求标志 TCON

IT0/IT1=0,电平触发;IT0/IT1=1,下降沿触发

(T0,T1)定时器中断0/1:TF0,TF1 ------中断请求控制位 ET0,ET1------中断允许标志位

(INT0,INT1)外部中断0/1:IT0,IT1------中断请求控制位 EX0,EX1------中断允许标志位

3、外部中断配置

51 单片机发生中断必须要满足以下3个条件

①中断源有中断请求;

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

③CPU 开中断(即 EA=1)。

比如我们配置外部中断 0,对应的配置程序如下:

EA=1;//打开总中断开关

EX0=1;//开外部中断 0

IT0=0/1;//设置外部中断的触发方式 0------电平触发 1------下降沿触发
void exti0_init(void)

{

IT0=1;//跳变沿触发方式(下降沿)

EX0=1;//打开 INT0 的中断允许

EA=1;//打开总中断

}

当触发中断后即会进入中断服务函数,外部中断 0 中断服务函数如下:

void exti0() interrupt 0 //外部中断 0 中断函数

{

//执行所需的功能

}

注:interrupt 是一个关键字,表示 51 单片机中断,后面的"0"是中断号

外部中断实验: 使用独立按键 K3 控制D6指示灯亮灭

#include "reg52.h"

typedef unsigned int u16;

typedef unsigned char u8;

void delay_10us(u16 ten_us){

while(ten_us--);

}

sbit KEY3=P3^2;

sbit LED6=P2^5;

//外部中断0的配置函数

void exti0_init(){

EA=1;//打开总开关

EX0=1;//中断允许位 EX0---外部中断0允许位 EX1---外部中断1允许位

IT0=1;//下降沿触发有效

}

void main(){

while(1){

exti0_init();

}

}

//外部中断0的服务函数

void exti0() interrupt 0{

delay_10us(1000); //按键消抖

if(KEY3==0){

LED6=!LED6;

}

}

相关推荐
t13970182 小时前
MPPT 和 PWM 有什么区别?小功率太阳能供电到底该选哪个
嵌入式硬件·物联网
en.en..3 小时前
STM32入门最佳学习顺序(寄存器→标准库→HAL库)
单片机·嵌入式硬件
Good白10194 小时前
嵌入式:1.嵌入式入门|初识嵌入式、处理器、ARM与STM32
arm开发·stm32·嵌入式硬件
二本咕咕-机械转码4 小时前
FreeRTOS深入解析(八)IPC机制之FromISR详解
数据结构·单片机·链表
小李不想当小白5 小时前
HAL库之UART(STM32 HAL库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
Dev_XH5 小时前
【成品设计】基于物联网的旅游生态农业互动系统
stm32·单片机·嵌入式硬件·物联网·旅游
Industio_触觉智能18 小时前
RK3506 Buildroot系统目录地图-上|7个关键符号链接与构建产物全解析
嵌入式硬件·sdk·智能硬件·固件·瑞芯微·系统编译·rk3506
lzj_pxxw21 小时前
STM32移植FreeRTOS(Cmake+CubeMX)
vscode·stm32·嵌入式硬件
Zwawa1 天前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
c语言·单片机·嵌入式
물の韜1 天前
ZYNQ/FMQL系列Linux之I2C开发实战
linux·arm开发·嵌入式硬件·设备树·iic·zynq