AT89S51单片机存储器结构的特点之一是将程序存储器和数据存储器分开(称为哈佛结构),并有各自的对这两个不同的存储器空间的访问指令。
AT89S51的存储器空间可划分为如下4类。
1.程序存储器空间
单片机能够按照一定的次序工作是由于程序存储器中存放了经调试正确的程序。程序存储器可以分为片内和片外两部分。
AT89Ssl单片机的片内程序存储器为4 KB的Flash存储器,编程和擦除完全是电气实现,且速度快。可使用通用的编程器对其编程,也可在线编程。
当AT89S51片内的4 KB的Flash存储器不够用时,用户可在片外扩展程序存储器,最多可扩展至64 KB。
2.数据存储器空间
数据存储器空间分为片内与片外两部分。
AT89S51单片机内部有128 B的RAM(增强型的52子系列为256 B),用来存放可读/写的数据。
当AT89S51的片内RAM不够用时,又给用户提供了在片外可扩展至64 KB RAM的功能。至于究竟扩展多少RAM,则根据用户实际需要来定。
3.特殊功能寄存器(SFR,Special Function Register)
特殊功能寄存器实际上是AT89S51片内各功能部件的控制寄存器及状态寄存器。SFR综合反映了整个单片机基本系统内部实际的工作状态及工作方式。
4.位地址空间
AT89S51单片机内共有211个可寻址位,构成了位地址空间。它们位于内部RAM(共128位)和特殊功能寄存器区(共83位)中。
程序存储器空间
程序存储器是只读存储器(ROM),用于存放程序和表格之类的固定常数。AT89S51单片机的片内程序存储器为4 KB的Flash存储器,地址范围为0000H~0FFFH。AT89S51有16位地址线,可外扩的程序存储器空间最大为64KB,地址范围为0000H~FFFFH。片内与片外扩展的程序存储器在使用时应注意以下问题:
(1)整个程序存储器空间可以分为片内和片外两部分,CPU究竟是访问片内的还是片外的程序存储器,可由EA(的反)引脚上所接的电平来确定。
EA(的反)引脚接高电平时,CPU从片内OOOOH开始取指令,当PC值没有超出OFFFH(0000H~0FFFH为片内4 KB的Flash存储器的地址范围)时,C