单片机在线演绎《当幸福来敲门》------ 中断机制

首先我们来了解一下什么是中断:

中断

1.基本概念

1中断系统:

  • 当中央处理器CPU正在处理某件事的时候,外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完之后,再回到原来被中断的地方,继续原来的工作

2 中断源:

  • 打断CPU执行当前任务的源头或事件

3常见的五个中断源:

  1. 外部中断0
  2. 外部中断1
  3. 定时器中断0
  4. 定时器中断1
  5. 串口UART中断

2.外部中断

1.基本概念:

  • 引脚的电平变化所引发的中断(外部中断0:P3_2,外部中断1:P3_3)

2.实现形式:

  • 当外部中断的某个引脚发生了由高电平->低电平的变化时,实现中断(下降沿中断)
  • 某个引脚指的是控制外部中断0,1 的P3_2 与 P3_3

3.中断优先级概念:

  • CPU去执行中断任务时,会去比较多个任务的优先级,优先去执行优先级较高的中断

4.中断嵌套:

  • 在中断中再去中断一次(不推荐,51单片机中最多嵌套两次)

5.中断处理流程:

  1. 中断源发出中断请求;
  2. 检查CPU是否允许响应中断,以及该中断源是否被屏蔽(需要自行配置)
  3. 比较中断优先级
  4. 保护现场(会将当前执行到的地址保存在栈区)
  5. 执行中断服务函数((void (*fun)(void) interrupt x)
  6. 恢复现场(回到之前保存的地址)

6.实现函数流程:

中断向量表:

中断所执行的函数都是通过中断向量表去查找的,中断向量表本质上就是一个数组,存放中断服务函数入口地址

中断向量:

本质上是一个标号,可以通过标号在中断向量表中查找到中断服务函数的入口地址:

3.定时器中断

定时器中断可以通过计算实现精准的定时:

  • timer 0 :计数器 0 16位模式定时器 ,65535 自增型定时器
  • timer 1 : 计数器1 8位自动重装载定时器,

单片机晶振为 12Mhz

芯片系统中存在分频器:

分频之后:12Mhz / 12 = 1Mhz

1 / 1Mhz = 1 us

利用timer0 实现 1ms 定时

计时器加一次所需要的时间为 1us

1ms = 1000us

1000us / 1us = 1000;

将1000 装载进定时器计时的16位模式定时器中

定时器加到65535 会溢出触发定时器中断,之后需要手动重新装载数据,

函数操作流程如图:

4常见功能实现

利用PWM实现蜂鸣器控制:

1.PWM:

PWM 概念:

  • 脉冲宽度调试
  • 能使引脚电平变化产生一个方波
  • PWM可以让引脚电平周期性翻转

PWM周期

  • 一个PWM方波所经历的时间(从上升沿或下降沿->下一个上升沿或者下降沿)

PWM占空比:

  • 高电平在一个周期内所占的比例

2.蜂鸣器:

1.有源头蜂鸣器:

  • 内部存在一个震荡源,上电后蜂鸣器会发出固定频率的声音

2无源蜂鸣器:

  • 内部无震荡源,上电后不发出声音,需要外加震荡才能发生

3.震荡源:

  • 频率->音调不同 高音高频,低音低频
  • 振幅->音量不同

通过定时器中断,在中断执行函数中更改P2寄存器的电平可以实现PWM的生成,PWM作用在蜂鸣器上相当于外加了一个震荡源,通过更改定时器时间,改变震荡源频率,实现对于蜂鸣器的控制

相关推荐
LCG元11 小时前
STM32项目实战:基于STM32F103的智能农业监控系统
stm32·单片机·嵌入式硬件
ACP广源盛1392462567311 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
一起搞IT吧12 小时前
Android性能系列专题理论之十:systrace/perfetto相关指标知识点细节含义总结
android·嵌入式硬件·智能手机·性能优化
Truffle7电子13 小时前
STM32CubeIDE/Programmer/Touch GFX 应用
stm32·单片机·嵌入式硬件
constant_LDX14 小时前
步进电机开发(一、硬件设计)
单片机·嵌入式硬件
北山有鸟14 小时前
修改源码法和插件法
嵌入式硬件·学习
richxu2025100114 小时前
嵌入式学习之路->stm32篇->(14)通用定时器(上)
stm32·单片机·嵌入式硬件·学习
Deitymoon14 小时前
STM32——串口通信(USART)
单片机·嵌入式硬件
iCxhust14 小时前
微机原理实践教程(C语言篇)---A002流水灯
c语言·开发语言·单片机·嵌入式硬件·51单片机·课程设计·微机原理
Deitymoon16 小时前
STM32——外部中断按键控制led
stm32·单片机·嵌入式硬件