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

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

中断

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

相关推荐
普中科技1 小时前
【普中STM32F1xx开发攻略--标准库版】-- 第 45 章 FSMC-外扩 SRAM 实验
stm32·单片机·嵌入式硬件·fsmc·普中科技·外扩sram·is62wv51216
xiaoyuchidayuma3 小时前
永磁同步发电机的线电压和直流母线电压的关系
嵌入式硬件
潜创微科技3 小时前
4K60 over IP 方案简介
网络·嵌入式硬件·网络协议·tcp/ip·音视频
rit84324994 小时前
基于C#的USB HID设备读取测试软件
嵌入式硬件
三佛科技-187366133974 小时前
FT32F103C8AT7兼容GD32F103C8T632 位通用微控制器MCU,替代性分析
单片机·嵌入式硬件
iCxhust4 小时前
8086汇编 word ptr
汇编·单片机·嵌入式硬件·微机原理·8088单板机
嵌入式ZYXC5 小时前
第3篇:《面试题:I2C为什么要加上拉电阻?阻值怎么选?》
stm32·单片机·嵌入式硬件·面试·职场和发展
leo__5205 小时前
C# 虚拟键盘(软键盘)实现
单片机·c#·计算机外设
你疯了抱抱我5 小时前
【STM32】使用 STM32CubeMX 生成项目,LED测试;上位机:STM32F411CEU6
stm32·单片机·嵌入式硬件