目录
一、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) | P32 | 0003H | 0(最高) | EX0/EA | IE0 |
| 定时器 0(Timer0) | 无(内部触发) | 000BH | 1 | ET0/EA | TF0 |
| 外部中断 1(INT1) | P33 | 0013H | 2 | EX1/EA | IE1 |
| 定时器 1(Timer1) | 无(内部触发) | 001BH | 3 | ET1/EA | TF1 |
| 串口中断(UART) | P30(RX)、 P31(TX) | 0023H | 4(最低) | ES/EA | RI+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寄存器
定时器模式配置寄存器
- 将 TMOD 寄存器中的低 4 位清 0
- 将 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 占空比决定,占空比越大,驱动电流越大,音量越高。
六、重点内容
- GPIO的输入模式和输出模式
- 独立按键的工作原理
- 中断概念
- 中断源概念
- 中断源分类
- 中断处理流程
- 51单片机中有几个定时器
- 定时器是自增还是自减?
- 定时器工作原理
- PWM相关概念
- PWM周期
- PWM占空比
- 有源蜂鸣器和无源蜂鸣器的区别