写入一个新的程序时,单片机里面的原有代码不删除是会被覆盖的,如需要不覆盖前一个程序,就需要清除,一般而言程序下载时会自动清除的,用编程器烧录时需要选择先清除,再写入。除此之外单片机还有替换程序的特性,一般的单片机程序在烧写的过程中。第一步是擦除原来的内容(通常代码都是存储在单片机的 flash 区域,对于 flash 来说,要写入新的内容第一步就是擦除)所以,只要你重新烧写单片机程序就是替换原来的程序了。而无论是覆盖还是替换都会影响新的程序,所以清除是非常重要的。
标准51是不能自己改写自身程序的,也就是不能删除内部程序的。
某些厂家对标准51进行了一些扩展,才可能实现对自身的程序进行改写,这个功能一般称作IAP,In Application Program,在应用编程。多用于程序的在线升级。
不知道你用的芯片是不是支持IAP功能,如果有这个功能,对应的手册会有详细介绍,如果没有,就不能改写自身程序。
单片机在出厂时有固化的初始程序,也就是导入程序。所以在你自己编写好程序,生成二进制文件后,只要通过下载软件,单片机就会自己擦除原来的程序,从新导入新程序。也就是重新擦写程序存储器。。。
这是一个存储原理,有一些存储器进行写 *** 作时只能将1变为0,而不能将0变为1。如此,擦出 *** 作就是为了将0变为1后再写入。STC51单片机就是这样的。
再者,每次写入程序大小也不相同,如果写入程序比以前程序小的话,就算是覆盖也有没有被覆盖完的地方,这样程序运行可能也会出错吧,比如程序跑飞!
以上就是关于单片机怎么不覆盖前一个程序全部的内容,包括:单片机怎么不覆盖前一个程序、51单片机怎样删内部程序、如果单片机里面有程序,再次下载时会不会自动擦除原有程序,如果不能的话是不是要先擦除,再写入!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)