一、程序烧录/下载失败高频问题
最高频问题,90%是没有冷启动上电
Q1 STC-ISP提示:串口超时/未检测到单片机
- 严格执行标准烧录流程:先点下载,再断电重新上电,仅复位无法进入下载模式
- 设备管理器确认真实COM口号,禁止自动匹配错误串口
- 检查TX/RX必须交叉:电脑TX接单片机P3.1,电脑RX接单片机P3.0
- 修复CH340驱动感叹号、驱动冲突、USB口供电不足
- 更换USB口(优先台式机后置USB),杜绝拓展坞、集线器
Q2 烧录进度卡在0%、一直不动,无报错
- 核对STC-ISP芯片型号,必须和实物完全一致
- 关闭串口助手、Proteus、串口调试工具,释放串口资源
- 彻底断电2秒以上再上电,避免芯片缓存未清空
- 检查下载座、杜邦线是否松动、氧化、接触不良
Q3 烧录成功,但上电程序不运行、无任何反应
- 检查Keil编译是否生成HEX文件,有无编译警告/错误
- 确认Keil工程配置勾选"生成HEX文件"
- 程序开头必须初始化IO口,避免上电随机电平导致卡死
- 重新烧录覆盖程序,排除芯片残留旧程序干扰
Q4 多次烧录后偶尔烧录失败、时好时坏
- 重启电脑释放串口资源、更换USB线
- 单片机降温后再烧录
- 固定下载接线
二、程序运行异常类(仿真正常、实物异常)
仿真与实物的差异性问题
Q5 Proteus仿真完全正常,开发板实物运行错乱
- 所有IO口上电必须初始化,LED、按键、数码管端口提前赋值
- 严格使用标准实延时,禁止过短延时导致数码扫描异常
- 按键、传感器必须软件消抖,未使用输入引脚尽量拉高或拉低
- 禁止IO口浮空输入
Q6 程序运行几秒后卡死、自动重启、跑飞
- 禁止多层死循环嵌套、禁止无限制中断嵌套
- 子程序及时返回,避免堆栈溢出
- 优化延时与扫描时序,保证主循环通畅
- 检查5V供电是否稳定,避免电压跌落重启
Q7 上电偶尔正常、偶尔乱跳、灯光乱闪
程序第一行统一初始化所有功能端口,LED、蜂鸣器、数码管全部初始关闭,杜绝上电随机状态。
三、按键模块常见故障
按键输入相关问题
Q8 按键按下无反应、按键失灵
- 输入端口初始化为高电平
- 增加10ms软件消抖
- 检查引脚是否被数码管、串口、其他模块占用
- 确认按键扫描循环不被阻塞
Q9 按键按一次触发多次、乱跳、误触发
标准三步扫描:检测按键按下→延时消抖→确认按键→等待松开,严格按照规范代码编写。
四、LED/灯光模块常见故障
LED控制相关问题
Q10 LED常亮不灭、无法熄灭
共阳LED默认初始化#0FFH全部熄灭,控制电平严格遵循"0亮1灭"。
Q11 流水灯跑动卡顿、闪烁不均匀
使用标准精准延时,主循环轻量化,禁止长时间阻塞程序。
五、数码管显示故障(最高频实训问题)
数码管显示相关问题
Q12 数码管全亮、不显示数字
- 核对硬件位选、段选引脚
- 确认译码芯片工作正常
- 使用对应共阴/共阳段码表
Q13 数码管闪烁严重、残影严重
固定1ms单管扫描延时,8位循环刷新,保证视觉暂留稳定。
Q14 数码管乱码、数字错乱
- 单独封装数码管显示子程序
- 禁止其他模块占用P0、P2端口
- 规范时序
六、蜂鸣器常见故障
蜂鸣器控制相关问题
Q15 蜂鸣器一直响、无法关闭
上电初始化关闭蜂鸣器,避免程序死循环持续翻转电平。
Q16 蜂鸣器完全不响
必须电平翻转+延时配合,固定200ms间隔间歇发声。
七、串口/74LS164通信故障
串口通信相关问题
Q17 串口发送乱码、接收异常
- 严格匹配波特率、晶振频率
- 每次发送手动清零TI、接收清零RI
Q18 74LS164无输出、IO拓展无效
SCON=0x00配置移位模式,发送完成必须CLR TI,循环刷新数据。
八、传感器类故障(DS18B20/红外)
传感器相关问题
Q19 DS18B20读取数据固定不变、读取失败
严格按照500us拉低、60us等待时序编写代码,禁止随意修改微妙延时。
Q20 红外接收无响应、接收乱码
避开强光直射,优化红外解码时序,保证实时轮询检测。
九、Keil软件编译与工程报错
Keil开发环境相关问题
Q21 Keil编译无报错,但不生成HEX文件
Options→Target→Output勾选Create HEX File,重启工程重新编译。
Q22 Keil中文乱码、编译警告过多
工程路径全英文、无中文、无空格、无特殊符号,注释规范。
十、硬件保护性故障(杜绝烧板)
硬件安全相关问题
Q23 单片机发烫、模块不工作
- 立即断电
- 排查GND与5V是否短接
- 杜邦线是否错接
- 禁止带电接线路
Q24 开发板上电指示灯不亮
- 检查USB供电、保险丝、供电开关
- 更换数据线
- 排查主板虚焊
十一、实训"玄学问题"终极总结(学生高频)
99%问题的根本原因总结
仿真正常实物必异常:99%是缺少初始化、时序不标准、无消抖。
烧录失败:90%是没有冷启动上电。
程序乱跑、乱闪:全部是IO口未初始化、浮空电平干扰。
数码管闪烁乱码:扫描延时不标准、循环刷新不及时。
按键误触发:未做软件消抖、未等待按键松开。
按键误触发:未做软件消抖、未等待按键松开。
十二、通用标准排查流程(万能排错步骤)
遇到任何故障,按以下顺序排查
检查供电是否稳定
指示灯是否正常,USB线是否插牢,更换USB口测试
检查接线是否错接
虚接、短接、引脚冲突,对照原理图逐一核对
检查Keil是否正常生成HEX
有无编译警告,确认HEX文件存在
重新冷启动烧录
覆盖旧程序,排除芯片残留代码干扰
核对程序初始化、延时、时序、消抖
检查主循环是否被阻塞,IO口是否初始化,消抖是否完善
对比仿真逻辑,修正实物硬件适配代码
仿真与实物存在差异,根据实际硬件调整时序和电平