第十五届蓝桥杯单片机组备赛——中断系统与外部中断应用

文章目录

  • 一、中断概念
  • 二、中断过程
  • 三、中断控制系统(类似STM32的NVIC)
  • 四、中断相关寄存器
    • 4.1 IE寄存器
    • 4.2 IP寄存器(不重要,我写了好几届省赛真题都没用到这个寄存器)
    • 4.3 TCON寄存器
    • 4.4 TMOD寄存器(只能字节寻址)
    • 4.5 SCON寄存器(串口设置相关)
  • 五、中断编写
    • 5.1 中断初始化&中断服务函数
    • 5.2 特殊编程格式
  • 六、外部中断应用

一、中断概念

  内核与外设之间的主要交互方式有两种:轮询中断
  轮询的方式貌似公平,但实际工作效率很低,且不能及时响应紧急事件;
  中断系统使得内核具备了应对突发事件的能力。在执行CPU当前程序时,由于系统中出现了某种急需处理的情况,CPU暂停正在执行的程序,转而去执行另外一段特殊程序来处理出现的紧急事务,处理结束后,CPU自动返回到原来暂停的程序中去继续执行。这种程序在执行过程中由于外界的原因而被中间打断的情况,称为中断。
  中断服务函数:内核响应中断后执行的相应处理程序。也就是中断发生后要做什么。
  中断向量:中断服务程序的入口地址。每个中断源都对应一个固定的入口地址。当内核响应中断请求时,就会暂停当前的程序执行,然后跳转到该入口地址执行代码。
  中断号:在C语言对51进行编程时,中断向量被映射为中断号,也就是我们不需要去背中断向量,只需要记住中断号对应哪个中断源就好。

✨记忆技巧:外部中断和定时中断交叉,先外部再定时器,先0后1,最后一个是串口。
第十五届蓝桥杯单片机组备赛——中断系统与外部中断应用_第1张图片

二、中断过程

第十五届蓝桥杯单片机组备赛——中断系统与外部中断应用_第2张图片

三、中断控制系统(类似STM32的NVIC)

51单片机的中断系统和STM32最大的区别51的中断不能嵌套,必须执行完当前中断服务函数才能执行下一个中断服务函数。

第十五届蓝桥杯单片机组备赛——中断系统与外部中断应用_第3张图片

使用这个中断系统时,用户需要明确每个中断源的功能,适当地设置优先级,编写对应的中断服务函数。根据应用的需要,用户可能还需要控制中断的使能和禁止,并在中断服务例程中恰当地处理中断标志位。

四、中断相关寄存器

第十五届蓝桥杯单片机组备赛——中断系统与外部中断应用_第4张图片

4.1 IE寄存器

在这里插入图片描述

4.2 IP寄存器(不重要,我写了好几届省赛真题都没用到这个寄存器)

在这里插入图片描述

4.3 TCON寄存器

第十五届蓝桥杯单片机组备赛——中断系统与外部中断应用_第5张图片

4.4 TMOD寄存器(只能字节寻址)

第十五届蓝桥杯单片机组备赛——中断系统与外部中断应用_第6张图片
什么叫做只能字节寻址?

举个例子就能明白,例如我们想控制TCON的外部中断0触发方式,我们可以直接IT0=0;
而我们想设置TMOD的GATE,我们不能直接GATE=0;,而必须TMOD=0x**;也就是不能直接对某一位进行操作,而必须对整个寄存器进行操作,所以我们一定要学会位操作

4.5 SCON寄存器(串口设置相关)

第十五届蓝桥杯单片机组备赛——中断系统与外部中断应用_第7张图片

五、中断编写

5.1 中断初始化&中断服务函数

推荐在写这两个函数的时候有一个自己的规范

例如:

void Init_IT0()						// 外部中断0初始化
{
	
}

void Interrupt_IT0() interrupt 0	// 外部中断0服务函数
{

}

5.2 特殊编程格式

A. 中断函数没有返回值,也不能带参数。
B. 函数名后面要跟一个关键字 interrupt,说明这是一个中断服务函数。
C. 在关键字 interrupt 后面要跟上中断号,说明这个中断服务函数是为那个中断源服务的。

六、外部中断应用

外部中断编写重点:
1.外部中断触发方式:高电平触发or下降沿触发
2.外部中断开关
3.总开关

编写中断服务函数的规则之一就是少做事情,一定不能在中断中进行延时操作

未完待续…

你可能感兴趣的:(蓝桥杯单片机,蓝桥杯,单片机)