单片机端是如何实现下载程序的?电脑端(STC_ISP软件端)是如何实现程序下载的?
这个问题我们分两部分来说,一部分是单片机端是如何实现的,另一部分是电脑端是如何实现的,下面我们慢慢BB
一、单片机端是如何实现下载程序的?
要说清这个问题,就需要说说STC单片机的存储器,STC单片机的存储器包含数据存储器SRAM,程序存储区ROMEEPROM电脑编程软件下载免费下载ISP程序监控区,以下以STC15w448s4为例说明:
A. 数据存储器SRAM4K大小,内部RAM256字节,内部扩展的3840字节,这部分就是用来给我定义变量,常量的区域。
B. 程序存储区ROM48K大小,今天的重点,程序下载后就是存在这部分区域里了。
C. EEPROM13K大小,此部分就是类似于24C02这样的芯片,掉电存储区,用于保存密码等一些掉电后不能丢失的数据。
D. ISP程序监控区:STC官方在芯片出厂前就通过特殊方式固化了程序在内部,我们用户是
没法操作和使用本区域的。
ISP程序监控区的作用:
ISP监控区里,STC官方出厂芯片的时候就已经烧写进去一段特殊的代码,我们用户是没法修改和查看的,这里说的烧写也不是我们给单片机下载程序这样简单的烧写,是通过特殊的方式特殊的接口写进特殊的程序,总之不要想着去搞懂它,要懂的接下来我们慢慢说。
STC单片机在上电的很短一段时间内是不去执行我们用户的程序的,单片机是首选去执行ISP监控区域的代码,此时这里面的代码只干一件事,就是不断去检测P30引脚上的数据。
a、如果P30引脚上的数据是连续的合法的下载命令,那ISP监控区域内的程序就去擦除程序存储区ROM内的我们上一次烧写进去的代码,再把我们当前这次需要下载的程序存储到程序存储区ROM内,最后在复位PC指针,使得PC=0000H。完成这些后,CPU就不断的通过PC指针去读取我们刚才烧写进去程序存储区ROM内的代码来执行,到这里一次完整的程序下载(烧写)就完成了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。