0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STC8A8K64S4A12系列单片机中断原理详解

CHANBAEK 来源:百家号电子友人号 作者:百家号电子友人号 2023-11-15 17:10 次阅读

前言

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

一、关于中断的一些概念

  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的数值称为中断向量,是该中断源相对应的中断服务程序的起始地址。具体各中断源服务程序的入口地址就不一一列举了。

总结

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620840
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10442

    浏览量

    206564
  • 计数器
    +关注

    关注

    32

    文章

    2121

    浏览量

    92977
  • 中断
    +关注

    关注

    5

    文章

    884

    浏览量

    41023
  • 中断系统
    +关注

    关注

    1

    文章

    96

    浏览量

    60886
收藏 人收藏

    评论

    相关推荐

    请问哪位朋友有火龙电子FD51D_8STC8A8K64S4A12开发板)的资料呢?

    请问哪位朋友有火龙电子FD51D_8STC8A8K64S4A12开发板)的资料呢?如果方便的话请发邮箱252868106@qq.com非常感谢!
    发表于 12-19 13:03

    STC8A8K64S4A12串口通信

    宏晶 的51单片机STC8A8K64S4A12想用r422的串口通信方式,谁能发个原理图,r422芯片是TI的65HVD33。
    发表于 03-09 15:48

    STC8A8K64S4A12单片机VCC和GND内部短路了怎么解决?

    问题:STC8A8K64S4A12单片机VCC和GND内部短路了(也就是已经坏掉了),但我想不通为什么会出现这种问题?PCB电路是我自己画的,我只焊接了最小系统电路、LED灯电路和一个按钮,其余
    发表于 07-01 21:45

    STC8A8K64S4A12开发板学习资料

    `STC8A8K64S4A12系列单片机是宏晶公司(STC)2016年推出的宽电压工作范围的1T单片机,该
    发表于 01-06 10:25

    STC8A8K64S4A12单片机实现的“基于脉冲宽度调制(PWM)技术的智能温度控制器”

    STC8A8K64S4A12单片机,这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一
    发表于 07-14 07:57

    stc8系列单片机介绍

    stc8系列单片机介绍,成就更好的自己声明:这不是广告,只是发表看法和吐槽,不吹不擂;本文以STC8A8K64S4A12为例,简要分析一下STC8
    发表于 07-14 06:17

    浅析STC8A8K64S4A12开发板

    版权声明:本文为博主原创文章,转载请附上原文出处链接。文章目录前言一、STC8A8K64S4A12系列单片机介绍二、STC8A8K64S4A12开发板概述三、
    发表于 07-19 09:24

    如何对基于STC8A8K64S4A12单片机的ADC进行检测

    STC8系列单片机有哪些优点?与ADC相关的寄存器有哪些?如何对基于STC8A8K64S4A12单片机的ADC进行检测?
    发表于 08-03 07:30

    如何去实现一种基于STC8A8K64S4A12开发板的GPIO按键设计

    如何去实现一种基于STC8A8K64S4A12开发板的GPIO按键设计?如何对基于STC8A8K64S4A12开发板的GPIO按键进行实验检测?
    发表于 08-19 07:24

    STC8A8K64S4A12静态数码管驱动的方法是什么

    STC8A8K64S4A12静态数码管驱动的方法是什么
    发表于 02-09 06:11

    基于STC8A8K64S4A12智能车设计资料分享

    智能车进阶版文章目录基于STC8A8K64S4A12智能车设计一、板载外设二、功能三、实物:四、代码五、PCB和元件六、焊接基于STC8A8K64S4A12智能车设计一、板载外设1.1 红外接收头
    发表于 02-16 06:43

    STC8A8K64S4A12的命名规则是什么

    STC8A8K64S4A12的命名规则STC8 -- STC8系列A -- 子系列中的
    发表于 02-18 07:32

    如何使用STC8A8K64S4A12单片机实现简单的LED灯闪烁

    前几日,使用STC8A8K64S4A12单片机写了一个简单的LED灯闪烁,是在库函数里直接写的,生成的HEX有100多K,下载进入板子,本来设置的1秒延时突然变的有20秒的样子,检查一天都没有结果
    发表于 02-18 07:17

    基于STC8A8K64S4A12单片机设计的数字温度计

    描述基于微控制器的数字温度计本作品是一款基于STC8A8K64S4A12单片机设计的数字温度计,按键按下时可通过数码管显示当前环境温度。1.单片机芯片STC8A8K64S4A12(C8
    发表于 08-15 07:52

    STC8A8K64S4A12单片机怎么能掉电后保存数据?

    STC8A8K64S4A12单片机怎么才能做到掉电后把数据写到EEPROM通过哪些功能实现
    发表于 10-08 08:00