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

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

中断

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作用在蜂鸣器上相当于外加了一个震荡源,通过更改定时器时间,改变震荡源频率,实现对于蜂鸣器的控制

相关推荐
蹊黎7 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
无敌贵点大王10 小时前
从寄存器层面重学STM32(6)——串口USART实战部分
stm32·单片机·嵌入式硬件
庙堂龙吟奈我何10 小时前
二进制和十六进制
stm32·单片机
国科安芯12 小时前
长期在轨的计算底座:商业空间站与在轨服务飞行器健康管理中的抗辐射MCU—— 面向可维护空间平台的分层容错与安全通信综述
人工智能·单片机·嵌入式硬件·安全·低轨卫星·抗辐射
不昀14 小时前
RMII切到10Mbps,50MHz参考时钟也要降到5MHz吗?
单片机·嵌入式硬件·硬件设计·以太网接口
路上有只喵15 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇6
单片机·嵌入式硬件
国科安芯15 小时前
核电站蒸汽发生器传热管在役无损检测模拟前端的低噪声供电研究
嵌入式硬件·ldo·低压差线性稳压器·无损检测·核电站·蒸汽发生器·传热管
集芯微电科技有限公司16 小时前
40V/24A高频率增强型GaN HEMT功率开关管/高频DC转换/电动工具/GaN充电器 方案首选
人工智能·科技·单片机·嵌入式硬件·深度学习·神经网络·生成对抗网络
十八岁牛爷爷17 小时前
STM32H7 长时间运行后 HTTP 断连:从“串口还活着”到 TX 描述符错账
stm32·单片机·嵌入式硬件
Lxx_Zw17 小时前
串口命令如何从字符串长成协议:帧头、长度、校验和与状态机
c语言·stm32·单片机·嵌入式硬件