stc某些单片机里既有eeprom也有flash,各有什么用处??

如题,
网上有很多的帖子区分eeprom和flash,但是我还是不大明白,在单片机里面为什么这两种ROM介质同时存在,并且还存在这么多容量上的差距(我用的这个片子flash有60K,eeprom才2K),这两者之间从读写条件\作用\或者其他方面究竟有什么不同,请高手详细解答下,不胜感激

乱粘贴一大段文字的勿扰~!!!

一般来说任何单片机如果同时有FLASH和EEPROM的话,用法是差不多的。现在我来说明一下这两种非易失性储存器各有什么用处。
1. Flash一般是用来储存程序的。就是你用汇编语言或者C语言开发的源程序,经过编译软件编译以后,成为一串“0”和“1”的组合。一般是十六进制的.HEX文件。然后通过编程器或者下载线烧录到单片机里。这个一般就是放在单片机的Flash中的。掉电以后flash里面的内容不会消失,一般重新上电以后,程序从00h开始运行。(就是从头开始运行)
2. EEPROM一般是用来储存某些表格,常数数据的。它的读写一般是通过FLASH中的某些指令进行的。如果程序中没有相应的指令给它,EEPROM中的数据是不会被改变的。即使掉电以后数据也不会消失。你也许会奇怪为什么会有EEPROM,直接存在FLASH中不就是了吗?为什么要存在EEPROM中呢?举个例子说明吧。比如你有一个表格要存入单片机中。如果你存在flash中那么每次上电时程序从头开始运行,也就是你的表格中的数据,每次都是一样的了。不能被更改。只能被读出。而如果你存在EEPROM中就不一样了。数据既不会丢失。而且只有当你有相应的指令运行过去EEPROM中的数据才会被修改。否则是不会修改的。当你有相应的指令运行过去,里面的数据也会别读出。
那么为什么flash空间远远大于EEPROM空间呢?我个人认为理由很简单。EEPROM的价格也比FLASH贵的多了。其实你的这个片子EEPROM有2K之多。所以可以储存2K个字节的常数或者表格之类的东西。因为你是8位单片机。每个字节又能储存8位二进制数据。相当于你有2K个盒子,每个盒子能放8位二进制数据。这个EEPROM已经算是比较大的了。顺便说一句你的这个片子FLASH有60K也算是比较大的了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-01-28
怎么都在说STC的?STC的课一点都不好用,而且毫无代表性啊!STC只不过是将部分程序存储器的Flash ROM当做EEPROM使用,那稳定性就无法保证了,而且操作过程复杂,很不适合使用。

LZ可以研究一下AVR单片机或者PIC单片机中的EEPROM使用。

Flash能5V读写或者3V读写,但是其成本低,工艺简单,所以能在单片机中能有64K、128K或者更高容量,这就是为设计大型程序、减少存储器扩展的成本所需要的。而EEPROM是充当了RAM使用,能够被程序读写操作。当然,EEPROM的结构复杂,在单片机中也没必要使用那么大的容量(只是保存若干个参数),如果真的需要很大容量的EEPROM,那可以外部扩这28系列的或者24系列的芯片来实现。

单片机自身也可以对Flash进行写操作,但那时单片机处于自编程状态,像STC的引导代码、AVR单片机的Bootloader就是这样。而Winbond的W78E516单片机有两块FlashROM,一块为64K,主程序使用;另外一块为4K,为引导代码使用。本回答被提问者和网友采纳
第2个回答  2010-01-27
其实flash也就是eeprom,只不过前者在STC单片机里是用来装程序的;后者是给用户可以使用用来存放备份自己的一些数据的。

本人曾为STC上海办事处工程师
第3个回答  2010-01-27
STC的单片机一般都分为eerpom和flash两种内存储器,我用的是老款的89系列的,就是EEPROM可读写,FLASH只读的类型。

STC单片机的程序代码是写在FALSH中的,并且STC规定对FLASH的程序区写操作只能通过STC自己的编程器来完成(后续系列IAP/或者FLASH和EEPROM统一编址的型号FLASH是可以自己改写的,这里可以改写自己程序代码的STC单片机型号等于是不区分FALSH和EEPROM,只有一块存储区,并且这款存储区是可读写的)。

读写条件:
89系列的STC单片机FALSH的读写条件是首先检测是否满足STC自己规定的ISP串口下载数据流,满足便进行读写操作,不满足的话就直接跑FALSH中原有程序代码(即程序代码更新失败)。
而STC的EEPROM是只要通过设定寄存器(看STC的数据手册定义)便可以进行读写操作的带记忆性存储器。

作用:
老款的STC单片机FLASH就是代码区,EEPROM可以做重要数据备份区。
新款的STC单片机(IAP系列/或者FALSH和EEPROM统一编址的),FLASH就是EEPROM,可以通过寄存器的设定来读写(即可以完成用户自己的ISP程序,实现用户应用程序代码升级跟新)。

可以参看我自己写的一篇博客
http://hi.baidu.com/%B0%A2%DF%BF%B8%C1%B5%BBhoney/blog/item/1c13b1fb98b2d715a8d31108.html

stc某些单片机里既有eeprom也有flash,各有什么用处??
1. Flash一般是用来储存程序的。就是你用汇编语言或者C语言开发的源程序,经过编译软件编译以后,成为一串“0”和“1”的组合。一般是十六进制的.HEX文件。然后通过编程器或者下载线烧录到单片机里。这个一般就是放在单片机的Flash中的。掉电以后flash里面的内容不会消失,一般重新上电以后,程序从00h开始...

STC单片机之内部EEPROM有什么用?
优势吧,可以省掉了外加EEPROM芯片的外围电路。EEPROM起到掉电保存数据的作用。STC单片机内部EEPROM使用的C程序我有,想要可以CALL我。(其实STC相应单片机的数据手册上都有教怎么使用的,简单)

单片机中程序已经下到flash中了,请问eeprom的作用是什么??
确实现在单片机eeprom和flash都差不多,象STC的单片机eeprom就 是flash的一部分,只不过有的是单独作为一个存储空间,有的是和程序存储器共用的,程序存储器用不完空间都 可以当EEPROM,存储速度当然和flash一样,只不过这种EEPROM和传统EEPROM相比就 是不能按字节擦除,只能按扇区擦除 所以有人称STC的EEPROM是...

STC单片机的FLASH程序存储器、SRAM字节、EEPROM有什么区别与联系?
EEPROM是掉电也不丢数据的存储器,一般都用来存设置的。你可以一字节一字节的把每字节的8位1任意编写成0。但这片一般是按扇区为单位,一擦除就是全成1。STC有的片FLASH也能在跑程序的时候由程序控制擦写。

stc单片机的数据eeprom可以当作程序区执行么?
STC的芯片比较特殊,理论上它的EEPROM实际就是程序存储器,而使用的IAP实现的EEPROM。类似与NXP的89LPC系列,不过STC烧写软件有限制不主动将程序写到这个空间去,而且还不排除它本身的ISP程序做了某写配置来限制用户这么使用。所以理论上是可以实现的,但实际操作可能有些不便。

...一半存储在EEPROM中?为什么不都存储在FLASH中?
一般来说应该是存放在FLASH里的吧,如果CODE区域用完了才会去找EEPROM写代码。我觉得就好像STC说他们的芯片有ISP系统升级功能一样,其实没有,ISP区是有的,但是没有向外开放给用户(我记得以前的STC芯片好像是开放的),所以想用ISP功能实现系统代码升级维护只能用STC自己的编程器。楼主问的联系要是说的...

单片机 RAM,FLASH,EEPROM区别是什么?我知道的就不用再说了,说点我不...
也有的单片机内部扩展的外部存储RAM,比如STC12系列的就内嵌了大小不等的扩展RAM。FLASH,一般用于存储程序,也就是做ROM来使用,但是FLASH作为可擦写的存储器,也可以用来保存用户数据。也就是作为数据RAM来使用。EEPROM,也有两种用途,即作为ROM来保存程序,作为RAM来保存数据。

...rom同时存放数据和程序?是不是分成ISP区,应用程序区,数据flash...
数据Flash有两种情况,一种是伪EEPROM,就是拿一部分的Flash当EEPROM用,这种情况下的数据Flash在程序正常运行中是可以随时修改的;另一种就是普通的数据Flash,就像我定义的那个数组,在你下载程序的时候烧进Flash,在程序正常运行中,不能修改;应用程序区就是普通的程序代码;至于 在STC的单片机是怎么...

你好STC单片机的数据如何存储?
而EEPROM是掉电也不丢数据的存储器,一般都用来存设置的。你可以一字节一字节的把每字节的8位1任意编写成0。但这片一般是按扇区为单位,一擦除就是全成1。一般来说应该是存放在FLASH里的吧,如果CODE区域用完了才会去找EEPROM写代码。ISP功能实现系统代码升级维护只能用STC自己的编程器 STC有的片...

stc11l32xe单片机的flash和eeprom是相互独立的吗,资料上将他们的地址...
单片机的flash和eeprom是相互独立的,有的单片机 内部还带有 扩展RAM,一般地址都是从0000H开始,flash 为程序存储器,RAM 是数据存储器,eeprom 也是数据存储器。读取的方法不同。

相似回答