【STC8A8K64S4A12开发板】—聊聊单片机中断原理

版权声明:本文为博主原创文章,转载请附上原文出处链接。


前言

今天来说说单机中断原理,概念搞清楚很重要!


一、关于中断的一些概念

  1. 中断的概念:当CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称之为中断。
  2. 中断系统:实现中断功能的部件称为中断系统,中断系统是为CPU具有对外界紧急事件的实时处理能力而设置的。
  3. 中断请求源:请示CPU中断的请求源即为中断请求源,简称中断源。
  4. 中断优先级:中断系统一般允许多个中断源,当几个中断源同时向CPU请求中断,那就诞生一个优先处理哪个中断源的问题,这样中断优先级便产生了。
  5. 中断嵌套:CPU按照中断源的中断优先级处理一个低优先级中断的时候,假如有另外一个更高优先级的中断源发出中断请求,那CPU需要暂停原来中断源的服务程序,转而去处理更高优先级的中断源,待处理结束后,再回到原低优先级的中断服务程序,这个过程就是中断嵌套。

二、STC8A8K64S4A12系列的中断请求源

■ STC8A8K64S4A12系列单片机有22个中断请求源。具体如下:

  • 5个外部中断:外部中断0/INT0、外部中断1/INT1、外部中断2/INT2、外部中断3/INT3、外部中断4/INT4 。
  • 5个定时器中断:定时器0中断、定时器1中断、定时器2中断、定时器3中断、定时器4中断 。
  • 4个串口中断:串口1中断、串口2中断、串口3中断、串口4中断 。
  • 1个A/D转换中断。
  • 1个低压检测(LVD)中断。
  • 1个CCP/PWM/PCA中断。
  • 1个SPI中断。
  • 1个比较器中断。
  • 1个PWM中断。
  • 1个PWM异常检测中断。
  • 1个I2C中断。

■ 比较常用的中断是:外部引脚中断、定时器中断、串行口(UART)中断。
■ 在讲到每一部分知识时,我们都会详细讲解相关的中断使用原理。
■ 下图是STC8A8K64S4A12系列的中断结构图,大家需要了解的是:

  • 所有中断使能的话都必须有个“总闸”控制,那就是总中断允许位EA。
  • 有多个中断一起触发时,如何仲裁以保证有序的先后执行顺序,那就存在中断优先级的问题。
  • 关于中断,有个不可回避的概念,那就是中断向量。

三、关于中断的一些概念STC8A8K64S4A12系列的中断结构图

在这里插入图片描述

四、STC8A8K64S4A12系列的中断优先级

STC8A8K64S4A12系列单片机自然优先级:手册里面称之为辅助优先级结构或者内部的查询次序。如下图。
在这里插入图片描述

在C语言编程时,中断查询次序号就是中断号,例如,针对外部中断0的中断服务函数:

 void INT0_Isr (void) interrupt  0
         {
               ;   //添加中断处理语句
           }	

STC8A8K64S4A12系列单片机中断优先级的设置: STC8A8K64S4A12系列单片机通过设置特殊功能寄存器(IP、IPH、IP2和IP2H)中的相应位,对有4个优先级中断的中断请求源进行编程。

在这里插入图片描述

仅有1个中断优先级(最低优先级0)的是:外部中断2/INT2、外部中断3/INT3、定时器2、定时器3、定时器4、串行口3、串行口4。(共7个)

STC8A8K64S4A12系列IP和IPH寄存器各位含义介绍如下:
在这里插入图片描述
STC8A8K64S4A12系列IP2和IP2H寄存器各位含义介绍如下:
在这里插入图片描述
STC8A8K64S4A12系列单片机中断嵌套: 中断优先级高的中断请求可以中断CPU正在处理的优先级低的中断服务程序,待完成了中断优先级高的中断服务程序后,再继续被打断的低优先级的中断服务程序。

下图描述了主程序和中断服务程序的示意图,也诠释了中断嵌套的含义。

在这里插入图片描述
中断比喻举例,以下情形:

  • 只有排长或者团长给士兵打电话;
  • 排长和团长同时给士兵打电话;
  • 士兵已在排长地里接到团长电话;
  • 士兵已在团长地里接到排长电话;
  • 士兵同时接到两个排长的电话;
  • 士兵同时接到两个团长的电话。

在这里插入图片描述
STC8A8K64S4A12系列单片机中断产生而且被CPU响应,主程序被中断,接下来将执行如下操作:

  • 当前正被执行的指令全部执行完毕。
  • PC值被压入栈。
  • 现场保护。
  • 阻止同级别或更低级别其他中断。
  • 将中断向量地址装载到程序计数器PC。
  • 执行响应的中断服务程序。

中断向量:当某中断被响应时,被装载到程序计数器PC的数值称为中断向量,是该中断源相对应的中断服务程序的起始地址。具体各中断源服务程序的入口地址就不一一列举了。

总结

不知道说的够不够清楚,望大家指正!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电子友人张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值