stc-isp

stc单片机自动下载程序原理和代码实现

旧街凉风 提交于 2020-01-28 01:44:27
1/stc单片机下载程序的原理 首先我们要理解stc单片机下载程序的原理。在stc单片机中有两个程序区:用户程序区和ISP监控程序区。 这是stc89c52单片机数据手册中的内容。 根据数据手册,我们可以知道,当冷启动或者对ISP_CONTR寄存器送入60H产生复位以后,单片机会从ISP监控程序区开始执行程序。 如果这时候检测到合法的ISP下载命令流(后面会说什么是ISP的合法下载流),则ISP监控程序开始与ISP下载软件通信(如stc-isp),软件也会进入编程模式,向监控程序发送程序码,监控程序接收程序码,并将其写入用户程序区中。成功后,用户程序立即生效,开始运行用户程序。 如果这时候没有检测到合法的ISP下载命令流,单片机就会从用户程序区开始执行程序。 2/冷启动下载 我们刚开始接触stc单片机一般采用的都是冷启动来下载程序。但是这样做有一定的缺点。 首先,单片机频繁的上电掉电会影响单片机的寿命,且一些特殊的外围电路要求一直保持有电状态。 其次,也是我主要想说的一点是,市面上的USB转TTL模块质量参差不齐,绝大多数模块都没有做好隔离,导致电流会从模块的TX和RX倒灌进单片机,如果此时单片机上的电压高于单片机的上电复位检测门槛电压的话,就会导致单片机无法冷启动,进而无法成功下载程序。 我测量了市面上购买的两款USB转TTL模块(PL2303)