ROM是一种写入信息后不易改写的存储器。断电后,ROM中的信息保留不变。用来存放固定的程序或数据,如系统监控程序、常数表格等。对ROM内容的设定(写入)称为编程。
ROM只能读数据,而不能往里面写数据。ROM是非易失性存储器,当存储器掉电后,存储器中的数据不会丢失。Mask ROM存储的内容无法被用户修改,所以它通常存储商品的信息。PROM(Pro- grammable ROM)用户可以对新买回来的可编程ROM器件进行编程,也就是固化数据到PROM中,一旦固化完成后,PROM就像一个Mask ROM一样,只能读取数据而不能再写入或更改数据。
EPROM(Erasable PROM)是可擦写PROM,可以在任何时候把上一次烧写的数据擦除掉,再往其中写入新的数据,是一种可以重复编程的ROM器件。高强度的紫外线照射到透明小窗口上大概20min,EPROM内的数据就会被擦除,存储单元使用的是NMOSFET场效应晶体管,照射的时间足够长,所有存储单元中场效应晶体管栅极上的电子都会被移除,数据都恢复到原来的1。
E2PROM(E2PROM/electrically erasable)电可擦写ROM,直接用电信号就能实现存储器中数据的擦除和写入。内部使用了与UV ERPOM相似的结构——栅极隔离且电荷状态代表数据状态,这种隔离的结构可以通过电信号来控制电荷是否充斥。
Flash存储器混合了EPROM和E2PROM的技术,对整块数据进行操作,可以进行电擦写。Flash存储器的存储单元由一个隔离栅极(或称为浮栅极)的场效应晶体管构成。常常使用多层存储单元的结构,能在一个存储单元中存储多于1位的数据。Flash存储器(NOR Flash)存储单元与标准的MOSFET场效应晶体管相似,但它有两个栅极——控制栅极(CG)和浮栅极(FG)。浮栅极被绝缘的氧化物层隔离着,一旦有电子经过,浮栅极就捕获电子,电子数量决定栅极电压阈值,电压阈值决定是否产生电流,数据的状态由电流的存在与否决定,从而实现信息的存储。多层存储单元结构中,每一个存储单元中存储多于1位的数据,电流的强度决定数据状态。NOR Flash的传输效率很高,但写入和擦除速度低。
程序经过成功汇编后,就会生成一个.HEX的文件(十六进制代码),十六进制代码很容易就转换成二进制代码,按一定的顺序(地址)下载到单片机的程序存储器中。除了使用Flash存储器作为程序存储器外,PROM、EPROM等存储器也用在一些单片机中。还有一些单片机甚至连程序存储器都没有,这种单片机称为ROMLess单片机,必须通过读取外部的程序存储器中的程序才能正常使用。
8051单片机与一般微机的存储器配置方式很不相同,并有各自的寻址机构和寻址方式,这种在物理结构上把程序存储器和数据存储器分开的结构形式称为哈佛结构。一般微机通常只有一个逻辑空间,可以随意安排ROM或RAM。
访问存储器时,同一地址对应唯一的存储单元,可以是ROM也可以是RAM,并使用同类访问指令。这种结构称为普林斯顿结构,如图1-33所示。(www.xing528.com)
程序存储器是用于存放程序代码的,单片机只认识由“0”和“1”代码构成的机器指令。如前述用助记符编写的命令MOV A,#20H,换成机器认识的代码74H、20H(写成二进制就是01110100B和00100000B),如图1-34所示。在单片机处理问题之前必须事先将编好的程序、表格、常数汇编成机器代码后存入单片机的存储器中。程序存储器可以放在片内或片外,亦可片内片外同时设置。由于PC程序计数器为16位,使得程序存储器可用16位二进制地址,因此,内外存储器的地址最大可从0000H到FFFFH。8051内部有4KB的ROM,就占用了由0000H到0FFFH的最低4KB,这时片外扩充的程序存储器地址编号应由1000H开始,如果将8051当作8031使用,不想利用片内4KB ROM,全用片外存储器,则地址编号仍可由0000H开始。不过,这时应使8051的第31脚(即EA脚)保持低电平。当EA为高电平时,用户在0000H至0FFFH范围内使用内部ROM,大于0FFFH后,单片机CPU自动访问外部程序存储器。
增强型单片机中通常还包含有一个片内E2PROM,能为数据的掉电保存提供服务。
图1-33 普林斯顿结构和哈佛结构
图1-34 主存储器的逻辑组成
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。