8051单片机有几个存储器地址空间?画出它的存储器结构图
8051中有三个存储器地址分别为:程序存储器ROM(CODE空间)、片内数据存储器ROM(IDATA和DATA空间)、片外数据存储器RAN(XDATA空间)。
片内数据存储器RAM(IDATA和DATA空间)
8051单片机片内数据存储器RAM空间最大为:256B,用于存放程序执行过程的各种变量及临时数据,在整个片内RAM地址范围00H-FFH称为IDATA空间。片内低128个字节(00h-7FH)称为DATA空间,既可用直接寻址访问,也可用间接寻址访问,而片内RAM高128个字节(80H-FFH)只能采用间接寻址访问。片内RAM中00H-1FH地址范围称为工作寄存器区,平均分为4组,每组都有8个工作寄存器R0-R7,在某一时刻,CPU只能使用其中的一组工作寄存器(由程序状态字寄存器PSW中RS0和RS1的状态决定),片内RAM中20H-2FH地址范围称为位寻址区(又称BDATA区),其中每个存储器单元的每一位称为一个bit。8051单片机在与IDATA空间高128个字节(80H~FFH地址范围)安排了一个重叠空间称为特殊功能寄存器区。8051单片机的堆栈必须使用片内RAM。
程序存储器ROM。
8051单片机程序存储器ROM空间大小为64KB(实际地址16位),地址范围为你0000H-FFFFH,用于存放程序代码和一些表格常数,称为CODE空间。专门提供一个引脚EA来区分片内ROM和片外ROM,引脚接高电平时,单片机从片内ROM中读取指令,当指令地址超过片内ROM空间范围后,就自动地转向片外ROM读取指令;当引脚接低电平时,所有的取指操作均对片外ROM操作。程序存储系统的某些地址单元是保留给系统使用的:0000H-0002H单元是所有执行程序的入口地址,复位后CPU总是从0000H地址开始执行程序;0003H~002BH单元均匀的分为五段,用于5个中断服务程序的入口。
片外数据存储器RAM
8051单片机片外数据存储器RAM空间大小为64KB,地址范围为0000H~FFFFH,称为XDATA空间。
所谓“哈佛”结构的存储器配置,即在物理上具有独立的ROM存储器和片外RAM数据存储器,而在逻辑上则采用相同的地址空间,其地址范围都是0000H~FFFFH,但是需要采用不同的指令和寻址方式来进行访问。