关于 STC 单片机软复位下载 AUTO ISP
前面资料介绍了 STC 单片机在板 ISP 下载程序的方法,依靠冷启动进入 ISP 程序去,这是大家最常
用的一种下载程序的方法。由于冷启动需要断电,必须手动按下电源开关按键,这在反复调试程序的过
程中,还是一件很辛苦的事情,有没有更方便的办法呢,当然有,请跟我学:软复位 ISP。
首先看 STC 单片机 ISP 原理:在 STC 单片机内部,有两块(ROM)程序空间:ISP 程序和用户程序,
单片机出厂时已经带有 ISP 程序,每次加电启动都会进入该程序空间执行 ISP 程序,在执行 ISP 程序时,
如果刚好上位机正在执行程序下载,单片机接受上位机代码并把它写入用户程序区,完成程序下载校验
后会自动转入用户程序区执行用户程序。
软复位 ISP 刚好是要从用户程序跳转到 ISP 程序区,STC 单片机提供相关命令 ISP_CONTR 寄存器,
往此寄存器写入命令可以完成跳转操作。该寄存器更详细的操作请参考《STC 单片机使用手册》,见附
件。由此可见,在执行用户程序过程中,可以直接跳转到 ISP 程序区,这为软复位 ISP 提供了物理基础。
剩下的工作就是在用户程序中嵌入启动代码,该代码能够接受上位机的命令自动进入 ISP 程序区,运行
ISP 程序完成下载。参考 STC ISP 软件“自定义下载”,如图所示。
从图中可以看出,软件默认从串口发送 16 字节特殊代码(密钥),这串代码在常规串口通信程序中