
一、GPIO 通用输入输出引脚定义GPIO 全称 General Purpose Input/Output即通用输入输出引脚是单片机和外部硬件交互的基础通道分为输出模式、输入模式两种工作模式输出模式功能单片机主动控制引脚输出高 / 低电平向外输出电信号典型应用LED 指示灯、数码管、有源蜂鸣器控制、传感器起始信号发送实操示例传感器通信时单片机输出 500ms 高电平 40us 低电平作为数据起始信号输入模式功能单片机被动检测外部引脚电平变化读取外部信号典型应用独立按键检测、传感器 DATA 数据读取、ADC 模拟信号采集硬件接线规范传感器通用单片机 VCC 接传感器供电正极、DATA 接单片机 GPIO 引脚、GND 共地实现供电与信号传输二、独立按键原理与驱动硬件接线按键一端接地 GND另一端连接单片机 GPIO 引脚电平逻辑松开状态引脚无接地通路为高电平按下状态引脚与 GND 短路引脚变为低电平以此判定按键触发配套基础函数key_init(void)按键初始化将对应 GPIO 引脚默认置高电平key_press(void)按键扫描检测函数返回按键是否按下的状态三、中断系统核心概念定义CPU 正在执行主任务时被外部紧急事件打断优先处理紧急事件处理完成后返回原任务继续执行该机制即为中断核心术语中断源触发中断的事件 / 信号源头中断向量表本质数组数组内存储所有中断服务函数的入口地址中断向量中断向量表内的索引标号通过标号匹配对应中断处理函数中断服务函数专门处理对应中断事件的回调函数51 单片机全部中断源中断类型对应引脚 / 外设默认优先级编号外部中断 0INT0P3.20最高定时器 0 中断Timer0定时器外设1外部中断 1INT1P3.32定时器 1 中断Timer1定时器外设3串口 UART 中断串口通信外设4最低外部中断触发方式文档示例INT0P3.2采用下降沿触发引脚电平由高变低时触发中断中断优先级与中断嵌套优先级规则编号越小优先级越高CPU 优先处理高优先级中断中断嵌套CPU 处理低优先级中断时可被更高优先级中断打断51 单片机最多支持两层中断嵌套完整中断响应处理流程中断源产生中断请求检查两级中断开关总中断开关CPU 全局中断允许、对应中断源子开关对比中断优先级判断是否立即响应保护现场保存当前 CPU 寄存器、变量数据执行中断服务函数处理紧急任务恢复现场还原保存的寄存器与变量返回主程序断点处继续执行原有代码四、16 位定时器 Timer 原理与定时计算定时器基础参数Timer0、Timer1 均为16 位自增计数器变量类型unsigned short计数范围 0~65535计数器组成TH计数高 8 位、TL计数低 8 位溢出逻辑计数器数值达到 65535 后再加 1 会触发溢出向 CPU 发送定时器中断请求精准定时实现逻辑定时总时长由两个因素决定定时器初始计数值、单片机机器周期频率1机器周期换算规则51 单片机标准晶振分频系数为 12机器周期 晶振周期 × 1212MHz 晶振机器频率 12M/121MHz单个机器周期 1μs11.0592MHz 晶振机器频率≈0.9MHz单个机器周期≈1.1μs21ms 定时计算案例需求1ms 精准定时1000μs12MHz 晶振需要计数次数1000μs ÷ 1μs 1000 次定时器初值65535 - 1000 64535拆分高低 8 位64535 拆分存入 TH、TL 寄存器工作流程装载初值→开启计数器→持续自增→溢出触发中断8 位自动重装计数器补充仅 0~255 计数范围多用于串口 UART 波特率配置不适合长定时。五、PWM 脉冲宽度调制定义脉冲宽度调制控制引脚周期性输出高低电平组成的方波通过调整电平占比实现模拟效果两大核心参数PWM 周期完整一个方波的总时长两次相邻上升沿 / 下降沿间隔占空比单个周期内高电平持续时间占总周期的比例无源蜂鸣器 PWM 计算示例无源蜂鸣器无内置震荡源必须输入指定频率方波才能发声以 200Hz、50% 占空比为例周期总时长1/200Hz 0.005s高低电平各占一半单次电平定时 0.0025s12MHz 晶振机器周期 1μs需要计数 2500 次定时器初值65535 - 2500 63035 若分频 0.00125s计数 1250 次初值 64285有源 / 无源蜂鸣器区分有源蜂鸣器自带震荡源通电直接输出固定频率声音无需 PWM无源蜂鸣器无内置震荡依靠 PWM 方波驱动可自由切换 200/400/600/800/1000Hz 不同音调