一沙一世 发表于 2024-12-10 11:12

STC89C系列的单片机,如何控制其上电后是运行flash上的程序还是运行EEPROM上的程序

<p>STC89C系列的单片机,其程序可以烧录到flash上,也可以烧录其内在的EEPROM上,如何控制其上电后是运行flash上的程序还是运行EEPROM上的程序。</p>

<p>&nbsp;</p>

<p>还有一个问题是,如何控制程序是烧录到FLASH还是EEPROM上?</p>

<p>&nbsp;</p>

<p> &nbsp;</p>

tagetage 发表于 2024-12-10 12:52

<p>如何控制其上电后是运行flash上的程序还是运行EEPROM上的程序。-----这个不用控制,上电后运行的就是FLASH上的程序,EEPROM是存储区,就是存储一些数据用的。</p>

<p>还有一个问题是,如何控制程序是烧录到FLASH还是EEPROM上?-----程序是烧写到FLASH的,一些数据是烧写到EEPROM的。</p>

damiaa 发表于 2024-12-10 17:24

<p>STC89C系列的单片机的eeprom是模拟的,也就是都是flash。</p>

chunyang 发表于 2024-12-12 17:39

<p>在语言应用并不规范的所谓&ldquo;单片机&rdquo;领域中,所谓&ldquo;FLASH&rdquo;应该称作&ldquo;程序存储器&rdquo;,而&ldquo;EEPROM&rdquo;应该称为&ldquo;非易失数据存储器&rdquo;,应该明白了吧&hellip;&hellip;</p>

一沙一世 发表于 2024-12-13 15:44

本帖最后由 一沙一世 于 2024-12-13 16:13 编辑

<div class="quote">
<blockquote><font size="2"><a href="forum.php?mod=redirect&amp;goto=findpost&amp;pid=3380827&amp;ptid=1301375" target="_blank"><font color="#999999">chunyang 发表于 2024-12-12 17:39</font></a></font> 在语言应用并不规范的所谓&ldquo;单片机&rdquo;领域中,所谓&ldquo;FLASH&rdquo;应该称作&ldquo;程序存储器 ...</blockquote>
</div>

<p>谢谢。早期单片机的程序是写到EPROM或EEPROM中的。</p>

<p>&nbsp;</p>

huo_hu 发表于 2024-12-31 11:12

<p>89c的eeprom只是一个xdata,不能启动单片机</p>

<p>外扩的xcode启动是通过管脚上电时电平状态决定的哪个脚忘了</p>

一沙一世 发表于 2025-1-2 19:26

<div class='shownolgin' data-isdigest='no'>huo_hu 发表于 2024-12-31 11:12
89c的eeprom只是一个xdata,不能启动单片机

外扩的xcode启动是通过管脚上电时电平状态决定的哪个脚忘了
...

<p>感谢</p>
</div><script>showreplylogin();</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

maychang 发表于 2025-1-3 08:26

<div class='shownolgin' data-isdigest='no'> 本帖最后由 maychang 于 2025-1-3 08:36 编辑

<div class="quote">
<blockquote><font size="2"><a href="forum.php?mod=redirect&amp;goto=findpost&amp;pid=3381048&amp;ptid=1301375" target="_blank"><font color="#999999">一沙一世 发表于 2024-12-13 15:44</font></a></font> 谢谢。早期单片机的程序是写到EPROM或EEPROM中的。 &nbsp;</blockquote>
</div>

<p>【早期单片机】的程序有好几种存储介质,可能是写到片内掩模式存储器内的(由生产厂家写入,不能修改),可能是写到片外存储器(EPROM紫外擦除只读存储器)的,可能是写到片内EPROM的。</p>

<p>至于EEPROM(电擦除),当时还没有发明出来,当然也就用不上。</p>
</div><script>showreplylogin();</script>

maychang 发表于 2025-1-3 08:35

<div class='shownolgin' data-isdigest='no'>一沙一世 发表于 2024-12-13 15:44
谢谢。早期单片机的程序是写到EPROM或EEPROM中的。

&nbsp;

<p>单片机的地址,MCS48和MCS51采用程序存储和数据存储分在两个空间的结构,也称哈佛结构;MCS96采用程序和数据同一空间的结构,也称普林斯顿结构。日常使用的PC机,是普林斯顿结构,即程序和数据使用统一地址。</p>

<p>你首帖的问题,是问STC89系列单片机是使用哈佛结构(程序和数据各使用一块地址)还是使用普林斯顿结构(程序和数据统一编址)。</p>

<p>4楼chunyang说的是:现在说FLASH,是指程序存储器,说EEPROM,是指非易失数据存储器。</p>
</div><script>showreplylogin();</script>

maychang 发表于 2025-1-3 11:22

<div class='shownolgin' data-isdigest='no'>一沙一世 发表于 2024-12-13 15:44
谢谢。早期单片机的程序是写到EPROM或EEPROM中的。

&nbsp;

<p>所谓FLASH,EPROM&hellip;&hellip;是存储器按照物理结构和生产工艺分类,所谓程序存储器,数据存储器&hellip;&hellip;是按照功能分类。这是两种不同的分类方法,不能混为一谈。</p>

<p>前面说过,PC机(包括台式机和笔记本)是程序存储器和数据存储器统一编址的普林斯顿结构,PC机内就没有什么FLASH也没有EPROM,程序是放在RAM里面,数据也是放在RAM里面。开机后要从硬盘(硬盘之前是软盘)将操作系统装入内存机器才能够工作,工作时产生的或者要用到的数据也是放在内存中。英特尔公司的16位单片机MCS96也是这种结构。</p>
</div><script>showreplylogin();</script>

maychang 发表于 2025-1-3 11:26

<div class='shownolgin' data-isdigest='no'>一沙一世 发表于 2024-12-13 15:44
谢谢。早期单片机的程序是写到EPROM或EEPROM中的。

&nbsp;

<p>但是,多数单片机是程序存储器和数据存储器分开的。所以,你首帖的问题根本就不是问题,因为STC89系列单片机上电后一定运行程序存储器里面的程序,不可能运行数据存储器里面的内容,不可能把数据存储器的内容当操作码运行,也没有什么地方可以控制运行哪里的程序。</p>
</div><script>showreplylogin();</script>

maychang 发表于 2025-1-3 11:29

<div class='shownolgin' data-isdigest='no'>一沙一世 发表于 2024-12-13 15:44
谢谢。早期单片机的程序是写到EPROM或EEPROM中的。

&nbsp;

<p>【我学单片机比你早那么一丢丢,我学的时候单片机的程序是写到EPROM或EEPROM中的】</p>

<p>你可把自己学单片机的时间估计得太早了,把chunyang老师估计得太晚了。</p>
</div><script>showreplylogin();</script>

zhukun 发表于 2025-1-11 15:29

<div class='shownolgin' data-isdigest='no'><p>51系列的单片机(包括兼容的),代码和数据是分别放在不同的地址空间里,程序代码只能放在代码区,上电后,也只能跑代码;当然,通过 /EA 可以选择上电后是运行片内的代码, 还是运行片外的扩展代码;现在也有部分芯片,已经扩展了片上的代码容量,但这扩展部分,占用了原来的片外地址空间,只是做在片子内,我们还是把它当作片外扩展。建议题主花点时间读读51单片机的DS。我们之前使用EPROM扩展代码区,也有复杂的系统,同时扩张外部SRAM数据区,使用MOVX 指令操做;代码区要与 MOVC 指令操作</p>
</div><script>showreplylogin();</script>
页: [1]
查看完整版本: STC89C系列的单片机,如何控制其上电后是运行flash上的程序还是运行EEPROM上的程序