GPIO(通用输入输出口)
作用 :单片机最基础的引脚,用于控制硬件(输出)或读取外部信号(输入)
1. 输出模式(给定引脚电平,控制引脚高低电平的变化)
- 推挽输出:可直接输出强高 / 低电平,驱动能力强(常用:LED、继电器)
- 开漏输出 :需外部上拉电阻才能输出高电平,支持电平转换、线与功能(常用:I2C 通信)
- 复用推挽:引脚作为外设功能(串口 / PWM)的推挽输出
- 复用开漏:引脚作为外设功能的开漏输出
2. 输入模式(读取引脚电平)检测引脚电平变化
- 上拉输入 :内部接高电平,默认读取高电平 1
- 下拉输入 :内部接低电平,默认读取低电平 0
- 浮空输入 :无上下拉,电平不确定,只用于读取外部明确信号
- 模拟输入 :用于ADC 采集电压(读取模拟量,非数字 0/1)
中断系统
1. 中断定义
当 CPU 正在执行程序时,外部紧急事件触发请求 ,CPU 暂停当前任务,转去处理事件,处理完毕后返回原位置继续执行 ,这个过程叫中断。
2. 中断源(51 单片机标准 5 个)
打断 CPU 运行的事件来源:
- 外部中断 0(INT0)
- 外部中断 1(INT1)
- 定时器 0 中断(T0)
- 定时器 1 中断(T1)
- 串口中断(UART)
3. 外部中断
由引脚电平变化 / 下降沿触发的中断(如按键按下触发)
4. 中断优先级
多个中断同时请求时,CPU优先响应优先级更高的中断
5. 中断处理流程(标准流程)
- 中断源发出中断请求
- CPU 检查是否响应、中断是否开启
- 比较中断优先级
- 保护现场(保存当前寄存器 / 地址)
- 执行中断服务函数(处理事件)
- 恢复现场
- 返回主程序继续执行
6. 中断向量表 + 中断向量
- 中断向量表 :本质是一个数组,存放所有中断服务函数入口地址的固定存储区域
- 中断向量::本质是一个标号,可以通过标号在中断向量表中找到中断服务函数的入口地址
- 作用:让 CPU 快速找到该执行哪个中断函数
定时器 / 计数器
1. 定时器
- 作用:实现精准延时、定时触发任务
- 原理:对内部时钟脉冲计数,计时精准
2. 计数器
- 作用:统计外部引脚脉冲个数
3. 51 单片机定时器
- Timer0(定时器 / 计数器 0)
- Timer1(定时器 / 计数器 1)
PWM 脉冲宽度调制
PWM( Pulse Width Modulation )
- 本质:让单片机引脚快速、周期性输出高低电平,形成连续方波
- 核心作用:模拟输出电压、控制亮度 / 转速 / 音调(LED 调光、电机调速、蜂鸣器发声)
关键参数
-
PWM 周期一个完整方波的时间(从一个上升沿 → 下一个上升沿)周期越短,频率越高
-
PWM 占空比 一个周期内,高电平持续时间占总周期的比例
- 占空比越大 → 高电平时间越长 → 平均电压越高
- 占空比越小 → 高电平时间越短 → 平均电压越低
蜂鸣器(区分有源 / 无源)
1. 有源蜂鸣器
- 内部自带震荡源
- 只要 通电(给高低电平) 就响
- 声音频率固定,不能调节音调
- 优点:使用简单
2. 无源蜂鸣器
- 内部没有震荡源
- 只给直流电不会响
- 必须输入 PWM 方波(交替高低电平)*才能发声
- 优点:可以调节音调、频率