news 2026/4/5 0:37:53

51单片机——GPIO、按键、中断、定时器与PWM

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
51单片机——GPIO、按键、中断、定时器与PWM

目录

一、GPIO

1.1 核心概念

1.2 工作模式分类

1.2.1 输出模式:控制外设

1.2.2 输入模式:检测外设信号

二、独立按键

2.1 硬件连接原理

2.2 核心工作逻辑

2.3 消抖处理

三、中断系统

3.1 中断核心概念

3.2 中断源分类与关键参数

3.3 中断处理流程

3.4 中断相关寄存器

3.4.1 IE寄存器

3.4.2 TCON寄存器

四、定时器

4.1 基础知识

4.2 工作原理

4.3 定时器寄存器

4.3.1 TMOD寄存器

4.3.2 TCON寄存器

五、PWM

5.1 核心概念

5.2 蜂鸣器原理与分类

六、重点内容


一、GPIO

1.1 核心概念

GPIO(General Purpose Input Output)即通用输入输出,是单片机最基础的外设接口,本质是可灵活配置的引脚,能独立切换为输入或输出模式,实现 “发送控制信号” 和 “接收外部信号” 两大核心功能,是单片机与 LED、按键、传感器等外设通信的桥梁。

1.2 工作模式分类

1.2.1 输出模式:控制外设

输出模式下,单片机可主动输出高电平(VCC)或低电平(GND),驱动外设工作,主要分为 4 种类型:

  • 推挽输出:引脚可直接输出高 / 低电平,驱动能力强(如直接点亮 LED),是最常用的输出模式;
  • 开漏输出:仅能输出低电平,高电平需依赖外部上拉电阻实现,适合多设备总线通信(如 I2C 总线);
  • 复用开漏:引脚复用为外设功能(如串口 TX),同时保持开漏特性;
  • 复用推挽:引脚复用为外设功能(如定时器 PWM 输出),同时保持推挽驱动能力。

1.2.2 输入模式:检测外设信号

输入模式下,单片机被动检测引脚的电平状态,获取外部设备的信号,主要分为 4 种类型:

  • 上拉输入:引脚通过内部 / 外部上拉电阻接 VCC,未检测到信号时默认输出高电平(如按键未按下时);
  • 下拉输入:引脚通过内部 / 外部下拉电阻接 GND,未检测到信号时默认输出低电平;
  • 浮空输入:引脚不接上下拉电阻,电平状态完全由外部信号决定(易受干扰,适合高精度信号检测);
  • 模拟输入:引脚作为模拟信号通道,用于连接 ADC(模数转换器),检测连续变化的模拟量(如温度传感器信号)。

二、独立按键

2.1 硬件连接原理

51 单片机开发板的独立按键通常采用 “共地接法”,原理图如下:

  • 按键一端接 GPIO 引脚(如 P14、P15、P16),另一端直接接地(GND);
  • 引脚默认通过内部上拉电阻保持高电平(未按下时);
  • 当按键按下时,引脚与 GND 短路,电平变为低电平,单片机通过检测该低电平判断按键动作。

2.2 核心工作逻辑

  • 未按下状态:GPIO 引脚为高电平(上拉输入模式下);
  • 按下状态:GPIO 引脚与 GND 导通,变为低电平;
  • 检测方法:通过读取 GPIO 引脚的电平值,若为低电平则判定按键按下,否则未按下。

2.3 消抖处理

机械按键按下和松开时,触点会产生 “抖动”(约 10~20ms 的电平波动),直接检测会导致误触发。解决方法:延时消抖,即检测到低电平后,延时 10~20ms 再重新检测,确认电平仍为低电平时,才判定为有效按下。

三、中断系统

3.1 中断核心概念

  • 中断:CPU 正在执行任务时,外部 / 内部紧急事件触发 CPU 暂停当前任务,转去执行事件处理程序,完成后返回原任务继续执行的过程;
  • 中断源:触发中断的 “事件源头”(如按键电平变化、定时器溢出);
  • 中断优先级:多个中断同时触发时,CPU 优先处理优先级高的中断;
  • 中断嵌套:CPU在处理一个中断任务的时候,再去嵌套另外的一个中断任务(51单片机中最多允许嵌套两层)。

3.2 中断源分类与关键参数

中断源对应引脚中断向量地址优先级查询次序中断允许位中断标志位
外部中断 0(INT0)P320003H0(最高)EX0/EAIE0
定时器 0(Timer0)无(内部触发)000BH1ET0/EATF0
外部中断 1(INT1)P330013H2EX1/EAIE1
定时器 1(Timer1)无(内部触发)001BH3ET1/EATF1
串口中断(UART)

P30(RX)、

P31(TX)

0023H4(最低)ES/EARI+TI

3.3 中断处理流程

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

3.4 中断相关寄存器

3.4.1 IE寄存器

3.4.2 TCON寄存器

四、定时器

4.1 基础知识

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

4.2 工作原理

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

4.3 定时器寄存器

4.3.1 TMOD寄存器

定时器模式配置寄存器

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

4.3.2 TCON寄存器

定时器控制寄存器

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

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

五、PWM

5.1 核心概念

  • PWM 周期:一个完整方波的时间(从上升沿到下一个上升沿),决定信号的频率(频率 = 1 / 周期);
  • PWM 占空比:高电平在一个周期内所占的时间比例(如占空比 50% 表示高电平与低电平时间相等);
  • 核心作用:通过调整占空比模拟 “渐变” 效果(如 LED 亮度调节),通过调整周期改变信号频率(如蜂鸣器音调)。

5.2 蜂鸣器原理与分类

蜂鸣器原理图:

51 单片机开发板常用蜂鸣器为 NPN 三极管驱动(连接引脚如 P11),分为两种类型:

类型核心特性驱动方式
有源蜂鸣器内置震荡源,上电即发声给引脚输出持续高 / 低电平即可驱动
无源蜂鸣器无内置震荡源,需外部方波通过 PWM 信号(周期性电平翻转)驱动

关键说明:

  • 音调:由 PWM 频率决定,高频对应高音,低频对应低音;
  • 音量:由 PWM 占空比决定,占空比越大,驱动电流越大,音量越高。

六、重点内容

  1. GPIO的输入模式和输出模式
  2. 独立按键的工作原理
  3. 中断概念
  4. 中断源概念
  5. 中断源分类
  6. 中断处理流程
  7. 51单片机中有几个定时器
  8. 定时器是自增还是自减?
  9. 定时器工作原理
  10. PWM相关概念
  11. PWM周期
  12. PWM占空比
  13. 有源蜂鸣器和无源蜂鸣器的区别
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 5:14:31

机器人系统ros2期末速通4

一、16. 调试工具链(CLI rqt RViz2)1. 核心概念(系统里的实际样子)CLI(命令行工具):你在终端敲的 ROS 指令,是调试的 “基础武器”,比如查话题、查节点、查 TF 都靠它。…

作者头像 李华
网站建设 2026/3/27 17:31:29

机器人系统ros2期末速通3

一、11. Composition(组件化节点)1. 核心概念(先懂 “人话”)进程:可以理解为 “一个独立的程序窗口”,比如你开的微信是一个进程,浏览器是另一个进程。组件化:把原本要开多个 “程序…

作者头像 李华
网站建设 2026/4/1 21:38:01

从机械傀儡到具身智能:机器人控制模型的演变实录

大众往往容易被波士顿动力早期的机器人视频误导,认为机器人技术的进步主要源于液压系统或机械结构的优化。这种观点忽略了问题的本质。机器人进化的核心始终在于控制算法的迭代,即“大脑”的处理逻辑如何从简单的指令执行转变为对物理世界的复杂理解。 确…

作者头像 李华