STC8增强型单片机进阶开发--外部中断(EXTI)

知不足而奋进 望远山而前行


目录

文章目录

前言

目标

内容

STC8H中断外部中断

外部中断编写

外部中断测试

测试外部中断0

测试外部中断2、3或者4

PCB中断设计

总结



前言

在嵌入式系统开发中,外部中断是一种重要的事件处理机制,能够及时响应外部信号的变化。了解外部中断的触发机制、中断编写逻辑以及PCB中断设计注意事项对于开发人员来说至关重要。本次学习将重点探讨STC8H单片机中的外部中断机制,以及如何编写外部中断的代码逻辑。


目标

  1. 理解外部中断触发机制
  2. 掌握中断编写逻辑
  3. 了解PCB中断设计注意事项

内容

STC8H中断外部中断

|------|------|-------------|
| 外部中断 | 引脚 | 备注 |
| INT0 | P3.2 | 支持上升沿和下降沿中断 |
| INT1 | P3.3 | 支持上升沿和下降沿中断 |
| INT2 | P3.6 | 只支持下降沿中断 |
| INT3 | P3.7 | 只支持下降沿中断 |
| INT4 | P3.0 | 只支持下降沿中断 |

在数字电路中,信号的电平变化分为上升沿和下降沿。

上升沿指的是信号从低电平变为高电平的瞬间,下降沿指的是信号从高电平变为低电平的瞬间。

例如,当一个开关被按下时,电路中的信号从低电平变为高电平,此时发生了一个上升沿;当开关被松开时,信号从高电平变为低电平,此时发生了一个下降沿。在数字电路中,上升沿和下降沿往往会被用作时序控制和数据传输等方面的参考信号。

外部中断编写

  1. 引入外部中断库函数
    1. Exti.h``Exti.cExti_Isr.c
    2. NVIC.c NVIC.h
  1. 配置外部中断

    #include "Exti.h"
    #include "NVIC.h"

    /******************** INT配置 ********************/
    void Exti_config(void)
    {
    EXTI_InitTypeDef Exti_InitStructure; //结构定义

     Exti_InitStructure.EXTI_Mode      = EXT_MODE_RiseFall;//中断模式,   EXT_MODE_RiseFall,EXT_MODE_Fall
     Ext_Inilize(EXT_INT0,&Exti_InitStructure);				//初始化
     NVIC_INT0_Init(ENABLE,Priority_0);		//中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
    

    }
    void ext_int0_call(void) {
    // 当中断触发时的实现逻辑
    }

  2. 调用中断触发函数

    extern void ext_int0_call();
    //========================================================================
    // 函数: INT0_ISR_Handler
    // 描述: INT0中断函数.
    // 参数: none.
    // 返回: none.
    // 版本: V1.0, 2020-09-23
    //========================================================================
    void INT0_ISR_Handler (void) interrupt INT0_VECTOR //进中断时已经清除标志
    {
    ext_int0_call();
    }

外部中断测试

测试外部中断0

测试上升沿和下降沿中断

初始化EXT_INT0,并将P32设置为准双向或HighZ高阻输入模式(不设置默认也是HighZ)。

按下核心板上的P32按钮,编写中断函数,观察上升沿和下降沿对应日志

测试外部中断2、3或者4

案例设置:

  • 准备一个引脚(例如P53暂且叫做A引脚),初始化时为输出模式,并且为低电
  • 初始化中断引脚P3.6或者P3.7(暂且叫做B引脚),配置为下降沿触发,并且实现中断事件函数
  • 通过杜邦线将A引脚和B引脚连接
  • 准备串口,通过串口工具给串口发送指令
  • 串口接收到特定指令时,将A引脚拉高或拉低
  • 在中断事件函数中进行打印,观察打印结果

测试上升沿案例会发现无效,这个由芯片内部决定的。

PCB中断设计

要了解的一些情况:

  1. 芯片引脚支持触发类型,是上升沿触发还是下降沿触发。
  2. 外部中断发送者是否是可控的,是不是能控制高低电平。
    1. 能控制最好,芯片方的引脚只需要关注是不是外部中断引脚。
    2. 不能控制,要了解对方的触发方式,寻找芯片对应的触发类型引脚。
    3. 不能控制,芯片的外部中断引脚没有对应的触发方式了,电路设计时,做上拉或者下拉电阻。

总结

通过本次学习,我们深入了解了STC8H单片机中外部中断的相关知识,包括外部中断的触发方式、中断编写逻辑以及PCB中断设计的注意事项。在实际应用中,我们可以通过配置引脚和中断响应函数来实现外部中断的处理,从而实现对外部事件的及时响应和处理。掌握外部中断的知识可以帮助开发人员更好地设计和实现嵌入式系统,在提高系统的稳定性和可靠性方面发挥重要作用。在未来的项目中,我们可以根据具体需求灵活运用外部中断技术,提升产品的性能和可靠性。

相关推荐
scan16 小时前
单片机串口接收状态机STM32
stm32·单片机·串口·51·串口接收
Qingniu016 小时前
【青牛科技】应用方案 | RTC实时时钟芯片D8563和D1302
科技·单片机·嵌入式硬件·实时音视频·安防·工控·储能
深圳市青牛科技实业有限公司8 小时前
【青牛科技】应用方案|D2587A高压大电流DC-DC
人工智能·科技·单片机·嵌入式硬件·机器人·安防监控
Mr.谢尔比9 小时前
电赛入门之软件stm32keil+cubemx
stm32·单片机·嵌入式硬件·mcu·信息与通信·信号处理
LightningJie9 小时前
STM32中ARR(自动重装寄存器)为什么要减1
stm32·单片机·嵌入式硬件
西瓜籽@9 小时前
STM32——毕设基于单片机的多功能节能窗控制系统
stm32·单片机·课程设计
远翔调光芯片^1382879887212 小时前
远翔升压恒流芯片FP7209X与FP7209M什么区别?做以下应用市场摄影补光灯、便携灯、智能家居(调光)市场、太阳能、车灯、洗墙灯、舞台灯必看!
科技·单片机·智能家居·能源
极客小张13 小时前
基于STM32的智能充电桩:集成RTOS、MQTT与SQLite的先进管理系统设计思路
stm32·单片机·嵌入式硬件·mqtt·sqlite·毕业设计·智能充电桩
m0_7393128715 小时前
【STM32】项目实战——OV7725/OV2604摄像头颜色识别检测(开源)
stm32·单片机·嵌入式硬件
嵌入式小章16 小时前
基于STM32的实时时钟(RTC)教学
stm32·嵌入式硬件·实时音视频