![单片机原理实用教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/900/679900/b_679900.jpg)
1.2 8051单片机的存储器结构
图1.5所示为8051系列单片机的存储器结构图。在物理上它有4个存储器空间:片内程序存储器和片外程序存储器;片内数据存储器和片外数据存储器。在访问这几个不同的存储器时应采用不同形式的指令。
8051系列单片机的程序存储器ROM地址空间为64 KB,其中带片内ROM型单片机具有4 KB的片内ROM。CPU的控制器专门提供一个控制信号来区分片内ROM和片外ROM的公用地址区:当
接高电平时,单片机从片内ROM的4 KB存储器区取指令,当指令地址超过0FFFH后,就自动地转向片外ROM取指令;当
接低电平时,所有的取指操作均对片外程序存储器进行,这时片外程序存储器的地址范围为0000H~0FFFFH。
目前一些新型的8051单片机已经可以将64 KB的ROM存储器全部集成到芯片内部,使用时将接高电平,可以减少外部辐射干扰。对于无ROM型的单片机,
端必须接地。程序存储器中有些单元是保留给系统使用的:0000H~0002H单元是所有执行程序的入口地址,复位后CPU总是从0000H单元开始执行指令;0003H~002AH单元均匀地分为五段,用于5个中断服务程序的入口。
![](https://epubservercos.yuewen.com/2F7F9A/3590440904654601/epubprivate/OEBPS/Images/figure_0014_0001.jpg?sign=1738854263-uGHFK328P9nL4bpMePbevyBZxq4dr3L1-0-9c6da700b54e02e07c579659a6f03abc)
图1.5 8051系列单片机存储器结构图
8051系列单片机的片外数据存储器RAM也有64 KB的寻址区,在地址上是与ROM重叠的。8051单片机通过不同的信号来选通ROM或RAM。当从外部ROM中取指令时,用选通信号,而从外部RAM中读/写数据时则采用读/写信号
或
来选通,因此不会因地址重叠而发生混乱。在某些特殊应用场合,如单片机的开发系统等,需要执行存放在数据存储器RAM内的程序,这时可采用将
和
信号作逻辑与的方法,将8051单片机的外部程序存储器和数据存储器合并为一个64 KB的存储器空间,
和
信号逻辑与的结果产生一个低电平有效的读选通信号,用于合并的存储器空间寻址。
8051 系列单片机的片内数据存储器RAM有256字节,其中00H~7FH地址空间是直接寻址区,该区域内00H~1FH地址为工作寄存器区,安排了4组工作寄存器,每组占用8个地址单元,记为R0~R7,在某一时刻,CPU只能使用其中任意一组工作寄存器,究竟选择哪一组工作寄存器由程序状态字寄存器PSW中RS0和RS1的状态决定,见表1.1。片内RAM的20H~2FH地址单元为位寻址区,共16字节,每个字节的每一位都规定了位地址,该区域内每个地址单元除了可以进行字节操作之外,还可进行位操作,图1.6所示为片内RAM的位地址分配。
![](https://epubservercos.yuewen.com/2F7F9A/3590440904654601/epubprivate/OEBPS/Images/figure_0014_0009.jpg?sign=1738854263-FbmHnvPXLM4HjAd5rVNAQiYiriVBSVMx-0-252355d49f068faa96455a2f3b36c305)
图1.6 8051单片机片内RAM的位地址分配
片内RAM的80H~FFH地址空间是特殊功能寄存器(SFR)区,8051子系列单片机只在该区域内安排了21个特殊功能寄存器,8052子系列单片机则在该区域内安排了26个特殊功能寄器,同时扩展了128字节的间接寻址片内RAM,地址也为80H~FFH,与SFR区地址重叠,但在使用时,可通过指令加以区别。表1.2所示为8051单片机特殊功能寄存器地址及符号表,表中带*号的为可位寻址的特殊功能寄存器。
内部RAM中的各个单元,都可以通过其地址来寻找,而对于工作寄存器,一般使用R0~R7表示,对于特殊功能寄存器,也是直接用其符号名较为方便。需要指出的是,8051单片机的堆栈必须使用片内RAM,而片内RAM空间十分有限,因此要仔细安排堆栈指针SP的值,以保证不会发生堆栈溢出而导致系统崩溃。
表1.2 8051单片机特殊功能寄存器地址及符号表
![](https://epubservercos.yuewen.com/2F7F9A/3590440904654601/epubprivate/OEBPS/Images/figure_0015_0001.jpg?sign=1738854263-pgyg87dijjyPI0WFTs4vbqdyuWPUgbwP-0-1348e4fdc8ceb6bd0d0f934ca9acc13d)