单片机系统复位(热启动之一)
STC单片机ISP/IAP控制寄存器在特殊的功能寄存器中的地址为E7H,不能为寻址,该寄存器用来管理和 ISP/IAP 相关功能的设定以及是否软件复位等。单片机复位时,该寄存器全部清零。
ISP/IAP寄存器
位序号
D7
D6
D5
D4
D3
D2
D1
D0
位符号
ISPEN
SWBS
SWRST
WT2
WT1
WT0
ISPEN -- ISP/IAP 功能允许位。0禁止允许ISP/iAP变成改变Flash
SWBS -- 软件选择从用用程序区启动,还是ISP程序区启动。要与SWRST直接配合才可以确定。
SWRSt -- 1 产生软件复位,硬件自动清零。0不操作。
WT2、WT1、WT0 -- ISP/IAP编程时间设定CPU等待的最长时间。ISP/IAP编程时间可对Flash进行读写操作,擦除操作,当进行这些操作时,时钟将被CPU锁定只进行这些操作,而不同的操作将会耗费不同的时间,如在设定时间内没有完成操作,数据将丢失或错误。
ISP/IAP编程CPU等待时间参考表P272;
SWBS与SWRST组合情况如下:
从用户应用程序区(AP区)软件复位并切换到用户应用程序区开始执行程序: ISP_CONTR = 00100000B
从系统ISP监控程序区软件复位并切换到用户应用程序区开始执行程序:ISP_CONTROL = 00100000B
从用户应用程序区软件复位并切换到系统监控程序区ISP开始执行程序:ISP_CONTROL = 01100000B
从系统ISP监控程序区软件复位并切换到系统监控程序区ISP开始执行程序:ISP_CONTROL = 01100000B
ISP监控程序区是指芯片出厂时就已经固化在芯片内部的一段程序,STC单片机可以进行ISP串行下载程序,这就是因为芯片在出厂时厂商已经在单片机内部固化了ISP引导码,程序首次上电会先从ISP区开始执行代码,体现在实际实验中时,就是在下载程序时,先要单击下载界面的下载,然后再开启单片机的电源,单片机检测到有下载程序的需要时,便启动ISP下载功能给单片机下载程序。若经过短暂时间么有检测到上位机有下载程序的需要时,便会从AP取开始执行程序。