程序设计完成后写到存储器中,在单片机运行时程序只需从存储器中读取出来运行。用来存放程序的存储器,我们称之为程序存储器(只读存储器),简称ROM。而在单片机运行时,数据将随着程序的运行发生变化,我们将存放数据的存储器称为数据存储器(随机存储器),简称RAM。
单片机的存储器又可分为片内和片外存储器。片内存储器是在单片机内部的存储器,通常容量有限。当单片机程序很大,同时单片机运行时的数据较大,片内存储器容量不够,就需要对单片机扩展外部存储器,这就是片外存储器。
综上所述,51单片机有两种存储器:程序存储器和数据存储器。51单片机同时拥有4个存储空间(物理结构上):片内ROM、片外ROM、片内RAM和片外RAM。图2-1所示为51单片机存储器地址空间,其中使用最频繁的是片内数据存储器,应重点掌握。
程序存储器
程序存储器用于存放用户程序、数据和表格等信息,其存储单元只能读不能写。51单片机程序存储器有16位地址,可寻址的范围为64KB,因此片外程序存储器最大容量为64KB,而片内程序存储器容量为4KB。程序存储器在物理结构上分为片内程序存储器和片外程序存储器两个部分,在逻辑结构上(即用户使用角度)为一个部分,采用同一指令(MOVC指令)进行数据读取,用外部引脚进行区分低4KB空间使用的是片内程序存储器还是片外程序存储器。
对于8031单片机来说,它的内部没有ROM,因此,在实际使用时,必须对它扩展外部程序存储器,最大可扩展空间地址为64KB,此时8031单片机的端必须接地,强制CPU从外部程序存储器读取程序。对于内部有ROM的8051,8751,89C51,89S51等单片机,正常运行时,则需接高电平,使CPU先读内部程序存储器中的程序,当PC值超过内部ROM的容量时,才会转而读外部程序存储器中的程序。
1