单片机本身相当于一个运算器和一个控制器,在一个单片机中最为重要的片外结构就是存储器了。
存储器
存储器有两种结构,普林斯顿结构和哈佛结构。如下图所示。
普林斯顿结构的特点是只有一个地址空间,ROM和RAM安排在这一地址空间的不同区域,一个地址对应唯一的一个存储器单元,CPU访问ROM和访问RAM使用相同的访问指令。如8086、奔腾等微型计算机采用这种结构。
哈佛结构的特点是微机的ROM和RAM分别安排在两个不同的地址空间,ROM和RAM可以有相同的地址,CPU访问ROM和RAM存储器用不同的指令访问。
ROM用来存放程序、表格和始终要保留的常数,单片机中称其为程序存储器;RAM通常用来存储程序运行中所需的数据(常数或变量)或运算的结果,单片机中称其为数据存储器。
51单片机采用哈佛结构。
从物理地址空间看,8XX51有4个存储器地址空间,即片内ROM、片外ROM、片内RAM、片外RAM。其中片内ROM和片外ROM共用一个寻址空间,由引脚EA来控制。
例如:
当 EA=1 时, 内部ROM占用 0000H - 0FFFH
外部ROM占用 1FFFH - FFFFH
当 EA=0 时, 内部ROM被屏蔽
外部ROM占用 0000H - FFFFH
由于片内、片外程序存储器统一编址,因此从逻辑上看,8XX51有3个存储器地址空间,即片内RAM、片外RAM、片内片外统一编址的程序存储器(ROM)。
程序计数器PC
51单片机执行时,由程序计数器PC指示指令地址,复位后的PC内容为0000H。程序存储器中的某些地址被用于中断服务程序的入口地址。例如:
复位时, PC = 0000H
外部中断0时, PC = 0003H
串行IO中断时, PC = 0023H
由于两入口地址之间的存储器空间有限,在这些地址处通常放一些跳转指令,跳到中断服务程序例程的地址。