MCS—51单片机有两种存储器:程序存储器和数据存储器。程序存储器用来储存编入的程序;而数据存储器用来存放单片机工作时用到的一些临时数据。
从物理地址空间看,MCS—51有4个存储器地址空间,即片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。
单片机编程时,一般先在计算机中用软件编写程序,再通过烧录器(编程器)将编好的程序写入程序存储器中,单片机通过执行程序存储器中的程序来实现控制目的。
MCS—51单片机在一般情况下使用内部程序存储器。当内部存储空间不够时,需要使用外部程序存储器,其使用受 端外接电平的控制。
当 (接地时),单片机只能使用外部程序存储器
当 (接+5V电源时),单片机先使用内部程序存储器,容量不够时自动使用外部程序存储器
89C51系列单片机内部有4KB的程序存储器,存储单元的地址编号是0000~0FFFH,当扩展外接60KB程序存储器时,外部程序存储器的地址编号是1000H~FFFFH。
MCS—51单片机上电复位后程序计数器PC的内容为0000H,因此系统从0000H单元开始取指令并执行程序。
MCS—51单片机的数据存储器分为两个地址空间;一个为内部数据存储器,另一个为外部数据存储器,需采用不同的方法进行访问。
内部数据存储器有256B存储空间,地址编号为00H~FFH;外部数据存储器的地址编号为0000H~FFFFH,有64KB存储空间。最常用的是内部数据存储器,其结构如图3-13所示。从图中可以看出,内部数据存储器分为四个区:工作寄存器区、位寻址区、数据缓冲区和特殊功能寄存器区。
图3-13 MCS—51单片机内部数据存储器的结构
如果采用汇编语言来设计单片机应用程序,就必须熟练掌握内部数据存储器的结构和地址;但如果采用C语言来开发单片机,几乎用不到工作寄存器区、位寻址区和数据缓存区的结构和地址,因而本书不对此进行详细介绍。但需要了解以下内容。
工作寄存器区分为4(0~3)组,每组有8个存储单元。应用时默认第0组寄存器工作。
表3-2所列各特殊功能寄存器的名字和功能在应用时非常重要,其使用方法将在后文逐步介绍。
表3-2 特殊功能寄存器