51单片机——GPIO 中断 定时器 PWM

一、GPIO概念与输入输出的分类

概念:Genral Purpose Input Output,通用输入输出,是与外界交互最基本的形式,可以独立的将

引脚配置为输入模式/输出模式。

分类:输出模式:控制引脚输出高电平/低电平(给定控制信号)

名称 功能
开漏输出 通过 PMOS 上拉管和 NMOS 下拉管交替导通,直接输出高低电平,驱动能力强
推挽输出 仅由 NMOS 下拉管构成,低电平直接导通,高电平需外接上拉电阻,支持线与功能。
复用开漏 引脚功能归属外设(如串口、SPI),由外设控制推挽结构输出对应电平信号
复用推挽 引脚功能归属外设,由外设控制开漏结构工作,高电平需依赖外部上拉电阻实现。

输入模式:检测引脚的电平(接收外部信号)

| 名称 | 功能 |
| 上拉输入 | 引脚内部接入上拉电阻,无外部信号时默认读取高电平,适配开关、按键等输入场景。 |
| 下拉输入 | 引脚内部接入下拉电阻,无外部信号时默认读取低电平,防止引脚悬空引入干扰。 |
| 浮空输入 | 引脚内部无上下拉电阻,电平状态完全由外部输入决定,多用于精准的外部信号采集。 |

模拟输入 引脚关闭数字电路,直接连接 ADC 采样模块,用于接收和转换连续变化的模拟电压信号。

二、独立按键

2.1原理图

2.2工作原理

采用上拉输入模式的按键电路,按键未按下时引脚默认高电平,按下时引脚与 GND 短路变为低电平,程序只需检测引脚是否为低电平即可判断按键是否按下

三、中断

3.1中断的概念

当CPU正在执行某个任务的时候,此时外界发生了一个紧急的事件,要求CPU能够暂停当前的任务,转而去执行这个更为紧急的事件,执行完这个紧急事件再回到刚才被打断的地方,继续执行,这个过程叫做中断。

3.2中断源

能够打断CPU执行当前任务的源头/事件

3.3中断的分类

外部中断:引脚电平的变化所引发的中断。

功能名称 对应引脚 功能说明
外部中断0 P32 低电平 / 下降沿触发中断
外部中断1 P33 低电平 / 下降沿触发中断,同 INT0 按键应用逻辑
定时器0 P34 定时器 / 计数器功能引脚,纯定时使用时无需外部接线
定时器1 P35 定时器 / 计数器功能引脚,串口波特率发生器常用,纯定时无需外部接线
串口通信 发送端 TX:P31 接收端 RX:P30 单片机串口收发核心引脚,一收一发完成串口数据通信

3.4 中断优先级

当CPU在执行一个任务的时候,此时可能有多个中断源同时发起中断请求,此时CPU

比较中断源的优先级,优先处理优先级高的中断

3.5中断嵌套

CPU在处理一个中断任务的时候,再去嵌套另外的一个中断任务(51单片机中最多允

许嵌套两层)

3.6中断处理流程

  • 中断源发出中断请求
  • 检查CPU是否允许中断及该中断源是否被屏蔽
  • 比较中断优先级
  • 保护现场
  • 执行中断处理函数(回调函数)
  • 恢复现场

3.7中断相关寄存器

(1)中断允许寄存器 IE寄存器

EA:

  • 置1:代表CPU允许所有中断请求
  • 置0:代表CPU屏蔽所有的中断请求

EX0:

  • 置1:允许外部中断0产生中断
  • 置0:禁止外部中断0产生中断

(2)定时器/计数器终端控制寄存器TCON寄存器

ITO:

  • 置1:代表外部中断0引脚(P32引脚)下降沿触发中断
  • 置0:代表外部中断0引脚(P32引脚)低电平触发中断

四、定时器

4.1定时器概念

  • 产生精准时间,不同外设对时间要求是精准的
  • 51单片机中有两个定时器,分别是Timer0和Timer1,是自增型定时器

4.2定时器工作原理

定时器内部有个16位的计数器,给定计数器一个初值,会按照1us的速率进行自增,加到65535溢出时向CPU发起中断请求,CPU响应定时器中断并执行中断处理函数

4.3定时寄存器

  • 将TMOD寄存器中的低4位清0
  • 将M0置1,M1清0,代表定时器0工作在16位定时器模式下

4.4 TCON定时控制寄存器

将TCON寄存器中的TR0这一位置1,代表打开定时器,开始计数。

将IE寄存器中的bit7和bit1置1,代表允许CPU响应所有中断 + 允许定时器0产生中断。

五、PWM

定义:脉冲宽度调制,能够让引脚产生一个方波,让引脚电平周期性的翻转。

周期:一个方波所经历的周期(从上升沿/下降沿到下一个上升沿/下降沿所经历的时间)。

占空比:高电平在一个PWM周期内所占的比例。

六、蜂鸣器

原理图

震荡源 声音(波)-> 音调 -> 波的频率发生了变化 -> 高音 (高频) 低音(低频)-> 音量 -> 振幅能量大小

  • 有源蜂鸣器:有源蜂鸣器内部有震荡源,上电后会持续发出一个固定频率的声音
  • 无源蜂鸣器:无源蜂鸣器内部没有震荡源,需要给定蜂鸣器一个震荡
相关推荐
深圳市九鼎创展科技19 小时前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算
辰哥单片机设计19 小时前
STM32项目分享:车辆防盗报警系统
stm32·单片机·嵌入式硬件
小龙报20 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
范纹杉想快点毕业20 小时前
嵌入式与单片机开发核心学习指南——从思维转变到第一性原理的深度实践
单片机·嵌入式硬件
Industio_触觉智能20 小时前
瑞芯微RK3566开发板规格书,详细参数配置,型号EVB3566-V1,基于RK3566核心板SOM3566邮票孔封装
嵌入式硬件·开发板·rk3568·rk3566·核心板·瑞芯微
czwxkn21 小时前
4STM32(stdl)TIM定时器
stm32·单片机·嵌入式硬件
Love Song残响21 小时前
NVIDIA显卡终极优化指南
stm32·单片机·嵌入式硬件
qq_6725927521 小时前
电源芯片为什么发热
单片机·嵌入式硬件
天天爱吃肉821821 小时前
【跨界封神|周杰伦×王传福(陶晶莹主持):音乐创作与新能源NVH测试,底层逻辑竟完全同源!(新人必看入行指南)】
python·嵌入式硬件·算法·汽车
国科安芯1 天前
抗辐照MCU在精密时频系统中的单粒子效应评估与可靠性验证
单片机·嵌入式硬件·架构·制造·安全性测试