上QQ阅读APP看书,第一时间看更新
2.8.4 软件复位
STC单片机ISP/IAP控制寄存器(ISP_CONTR)在特殊的功能寄存器中的地址为E7H,该寄存器用来管理和ISP/IAP相关功能的设定以及是否实现软件复位等。单片机复位时,该寄存器全部清0。
ISP_CONTR寄存器的格式如图2-14所示。
图2-14 ISP_CONTR寄存器格式
ISPEN:ISP/IAP功能允许位。“0”禁止对FLASH、EEPROM进行读/写/擦除;“1”允许对FLASH、EEPROM进行读/写/擦除。
SWBS:软件选择从用户程序区启动,还是从ISP程序区启动。这要与SWRST直接配合才可以确定:当SWRST=1时,SWBS=1选择从ISP程序区启动,SWBS=0选择从用户程序区启动;当SWRST=0时,SWBS选择无效。
SWRST:“1”产生软件复位,复位后硬件自动清0;“0”不操作。
WT2、WT1、WT0:ISP/IAP编程时间设定(CPU等待的最长时间),见表2-8。ISP/IAP编程时间可对FLASH进行读/写/擦除操作,当进行这些操作时,不同的操作将会耗费不同的时间,如在设定时间内没有完成操作,数据将丢失或错误。
表2-8 ISP/IAP编程时间设置
ISP监控程序区是指芯片出厂时就已经固化在芯片内部的一段程序,STC单片机之所以可以进行ISP串行下载程序,就是因为芯片在出厂时厂商已经在单片机内部固化了ISP引导码,程序首次上电会先从ISP区开始执行代码,体现在实际实验中时,就是在下载程序时,先要单击下载界面的“下载”,然后再开启单片机的电源,单片机检测到有下载程序的需要时,便启动ISP下载功能给单片机下载程序。若经过短暂时间没有检测到上位机有下载程序的需要时,便会从ISP区开始执行程序。