虽然断断续续写了几个程序,但是对单片机的很多基础知识了解还不是很透彻,所以今天彻底对存储器百度了一下,有了很多新的发现。
单片机的存储空间有两种基本结构。一种是普林斯顿结构(Princeton),将程序和数据合用一个存储器空间,即ROM和RAM的地址同在一个空间里分配不同的地址。CPU访问存储器时,一个地址对应惟一的一个存储单元,可以是ROM,也可以是RAM,用同类的访问指令。另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,称为哈佛(Harvard)结构。CPU用不同的指令访问不同的存储器空间。由于单片机实际应用中“面向控制”的特点,一般需要较大的程序存储器。目前,包括MCS-51和80C51系列的单片机均采用程序存储器和数据存储器截然分开的哈佛结构。
① 数据存储器(RAM)
在单片机中,用随机存取的存储器(RAM)来存储数据,暂存运行期间的数据、中间结果、缓冲和标志位等,所以称之为数据存储器。一般在单片机内部设置一定容量(64B~256B)的RAM,并以高速RAM的形式集成在单片机内,以加快单片机的运行速度。同时,单片机内还把专用的寄存器和通用的寄存器放在同一片内RAM统一编址,以利于运行速度的提高。对于某些应用系统,还可以外部扩展数据存储器。
② 程序存储器(ROM)
单片机的应用中常常将开发调试成功后的应用程序存储在程序存储器中,因为不再改变,所以这种存储器都采用只读存储器ROM的形式。
单片机内部的程序存储器常有以下几种形式:
l 掩膜ROM(Mask ROM) 它是由半导体厂家在芯片生产封装时,将用户的应用程序代码通过掩膜工艺制作到单片机的ROM区中,一旦写入后用户则不能修改。所以它适合于程序已定型,并大批量使用的场合。8051就是采用掩膜ROM的单片机型号。
l EPROM 此种芯片带有透明窗口,可通过紫外线擦除程序存储器的内容。应用程序可通过专门的写入器脱机写入到单片机中,需要更改时可通过紫外线擦除后重新写入。8751就是采用EPROM的单片机型号。
l ROMLESS 这种单片机内部没有程序存储器,使用时必须在外部并行扩展一片EPROM作为程序存储器。8031就是ROMLESS型的单片机。
l OTP(one time programmable)ROM 这是用户一次性编程写入的程序存储器。用户可通过专用的写入器将应用程序写入OTPROM中,但只允许写入一次。
l Flash ROM(MTP ROM)闪速存储器 这是一种可由用户多次编程写入的程序存储器。它不需紫外线擦除,编程与擦除完全用电实现,数据不易挥发,可保存10年。编程/擦除速度快,4KB编程只需数秒,擦除只需10ms。例如AT89系列单片机,可实现在线编程,也可下载。这是目前大力发展的一种ROM,大有取代EPROM型产品之势。