文档介绍:MCS-51 单片机存储器结构 MCS-51 存储器可分为四类: 程序存储器一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器( ROM )。程序相当于给微处理器处理问题的一系列命令。其实程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中。 MCS-51 具有 64kB 程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。对于内部无 ROM 的8031 单片机,它的程序存储器必须外接,空间地址为 64kB ,此时单片机的端必须接地。强制 CPU 从外部程序存储器读取程序。对于内部有 ROM 的8051 等单片机,正常运行时, 则需接高电平,使 CPU 先从内部的程序存储中读取程序,当 PC值超过内部 ROM 的容量时,才会转向外部的程序存储器读取程序。 8051 片内有 4kB 的程序存储单元,其地址为 0000H —0FFFH ,单片机启动复位后,程序计数器的内容为 0000H ,所以系统将从 0000H 单元开始执行程序。但在程序存储中有些特殊的单元,这在使用中应加以注意: 其中一组特殊是 0000H —0002H 单元,系统复位后, PC为0000H ,单片机从 0000H 单元开始执行程序,如果程序不是从 0000H 单元开始,则应在这三个单元中存放一条无条件转移指令,让 CPU 直接去执行用户指定的程序。另一组特殊单元是 0003H —002AH ,这 40个单元各有用途,它们被均匀地分为五段,它们的定义如下: 0003H —000AH 外部中断 0中断地址区。 000BH —0012H 定时/计数器 0中断地址区。 0013H —001AH 外部中断 1中断地址区。 001BH —0022H 定时/计数器 1中断地址区。 0023H —002AH 串行中断地址区。可见以上的 40个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。因此以上地址单元不能用于存放程序的其他内容,只能存放中断服务程序。但是通常情况下,每段只有 8个地址单元是不能存下完整的中断服务程序的,因而一般也在中断响应的地址区安放一条无条件转移指令,指向程序存储器的其它真正存放中断服务程序的空间去执行,这样中断响应后,CPU 读到这条转移指令,便转向其他地方去继续执行中断服务程序。数据存储器数据存储器也称为随机存取数据存储器。MCS-51 单片机的数据存储器在物理上和逻辑上都分为两个地址空间,一个是内部数据存储区和一个外部数据存储区。 MCS-51 内部 RAM 有128 或256 个字节的用户数据存储(不同的型号有分别),它们是用于存放执行的中间结果和过程数据的。 MCS-5 1 的数据存储器均可读写,部分单元还可以位寻址。 8051 内部 RAM 共有 256 个单元,这256 个单元共分为两部分。其一是地址从 00H —7FH 单元(共 128 个字节)为用户数据 RAM 。从 80H —FFH 地址单元(也是 128 个字节)为特殊寄存器(SFR )单元。从图 1中可清楚地看出它们的结构分布。在00H —1FH 共32个