STC-ICP主要是将用户的程序代码与相关的选项设置打包成为一个可以直接对目标芯片进行下载编程的超级简单的用户自己界面的可执行文件。stc-isp.exe其实就是给STC单片机下载程序的。STC没有ISP功能,以前的STC芯片会把用户编程区的地址给出来,但是后来硬件上用类似屏蔽的方法禁止用户自编程了,如果想用ISP功能就要用STC自己的编程器才可以。STC虽然没有了ISP功能但是他们用IAP代替了,STC有专门的IAP功能芯片,其实就是用了一个很大的EEPROM,分了三个区,一区是用户程序区,二区是IAP程序搬移区,三区是新程序区。
使用方法
单片机出厂时的缺省设置是“P1.0/P1.1”与下载无关,P3.0/RxD,P3.1/TxD通过RS-232转换器连接到电脑的普通RS-232串口就可以下载/编程用户应用程序到单片机内部用户应用程序区了。如果单片机在正常工作时P3.0/RxD外接的是RS-485/RS-232等通信电路,推荐选择步骤4中:下次冷启动“P1.0/P1.1”等于“0/0”才可以下载程序。单片机冷启动后(先没有电,后上电)首先运行的是单片机系统ISP监控程序。系统ISP监控程序首先判断是否需要“P1.0/P1.1”等于“0/0”才可以继续执行系统ISP监控程序。如果用户设置了下次冷启动后“P1.0/P1.1”等于“0/0”才可以下载程序,而下次冷启动后“P1.0/P1.1”不同时为“0/0”,则单片机立即结束运行系统ISP监控程序,软复位到用户应用程序区执行用户应用程序。如果用户设置了下次冷启动后“P1.0/P1.1”等于“0/0”才可以下载程序,冷启动后如“P1.0/P1.1”同时为“0/0”,则单片机会去判断P3.0/RxD口有无合法下载命令流(有几百个字节)。如果有合法下载命令流,则下载用户应用程序。如果没有合法下载命令流,则单片机立即结束运行单片机系统 ISP 监控程序,软复位到用户应用程序区执行用户应用程序。
如果冷启动后P3.0/RxD口有很多“乱码”进入P3.0串口,虽然系统ISP监控程序能正确地判断是不合法的命令,但是较多的“乱码”会使单片机从“运行系统ISP监控程序状态”变为“运行用户应用程序状态”的时间拉长,造成用户误认为是复位时间过长。设置下次冷启动后“P1.0/P1.1”等于“0/0”才可以下载用户应用程序的好处是:将单片机从“运行系统ISP监控程序状态”变为“运行用户应用程序状态”的时间缩短到50微秒以内,此时间可忽略不计,因为 R/C 阻容复位电路的时间误差是毫秒级的。