理论教育 单片机存储器结构优化建议:探究单片机存储器结构

单片机存储器结构优化建议:探究单片机存储器结构

时间:2023-06-25 理论教育 版权反馈
【摘要】:MCS-51单片机存储器结构的特点之一是将程序存储器和数据存储器分开,并用各自的指令对这两个不同的存储器空间进行访问。图4-3单片机存储器结构图用户程序一般从0030H处开始,而在0000H处放置一条跳转指令,这样单片机复位后能从0000H处跳转到用户的主程序。

单片机存储器结构优化建议:探究单片机存储器结构

MCS-51单片机存储器结构的特点之一是将程序存储器和数据存储器分开(称为“哈佛结构”),并用各自的指令对这两个不同的存储器空间进行访问。对存储器的划分在物理上分为4个空间,片内ROM、片外ROM、片内RAM和片外RAM,其结构示意图如图4-3所示。

其中,ROM存储器地址空间有片内ROM和片外ROM,其地址范围为0000H~FFFFH,片内RAM地址空间的地址范围为OOH~FFH,片外RAM地址空间的地址范围为0000H~FFFFH。

4.2.3.1 程序存储器ROM

程序设计人员编写的程序就存放在程序存储器中。

单片机重新启动后,程序计数器PC的内容为0000H,所以系统将从程序存储器地址为0000H的单元处开始执行程序。但是考虑到中断系统的应用,用户程序一般不是从0000H处开始连续存放,因为接下来的一段程序区要用来存放中断向量表,所以用户不能占用。要求地址分配如下:

0000H 存放转移指令,跳转到主程序。

0003H 外部中断0的中断地址区。

000BH 定时/计数器0中断地址区。

0013H 外部中断1的中断地址区。

001BH 定时/计数器1中断地址区。

0023H 串行通信中断地址区。

图4-3 单片机存储器结构图

用户程序一般从0030H处开始,而在0000H处放置一条跳转指令,这样单片机复位后能从0000H处跳转到用户的主程序。

另外,当单片机的引脚接地时,程序存储器全部使用片外的ROM,单片机的引脚接高电平时,CPU先从内部的程序存储器中读取程序,当程序计数器PC值超过内部ROM的容量时,才转向外部的程序存储器读取程序。

4.2.3.2 片内RAM

MCS-51的片内RAM存储器共有128字节,可分为4个区域,具体为工作寄存器区、位寻址区、用户区、特殊功能寄存器区。

(1)工作寄存器区。

从00H~1FH为4组工作寄存器区,每组占用8个RAM字节,记为R0~R7。工作寄存器组的选择由程序状态字PSW中的RS1~RSO位确定。

(2)位寻址区。

从20H~2FH为位寻址区,16个字节的128位可以单独操作,可对每一位进行读取或写操作。每一位都有其自身位地址00H~7FH与之对应。位单元与其地址对应关系参见表4-6。

(3)用户区。

用户区共80个RAM单元,用于存放用户数据或作为堆栈区。用户区中的存储区按字节进行存取。

表4-6 位单元与其地址对应关系

(4)特殊功能寄存器。(www.daowen.com)

MCS-51有21个特殊功能寄存器SFR(Special Function Register),每个RAM地址占用一个RAM单元,离散地分布在80H~FFH地址中。这些寄存的功能已做了专门的规定,用户不能修改其结构。表4-7是特殊功能寄存器分布一览表。

1)ALU相关SFR。

累加器A(Accumulator)。累加器A是最常用的寄存器,专门用来存放操作数或运算结果,大部分的数据操作都要通过累加器A进行。

通用寄存器B。通用寄存器B是专门为乘法和除法设置的寄存器,为8位二进制寄存器。

③程序状态字PSW。该寄存器中保存了程序的运行状态。

2)指针相关SFR。

①SP(Stack Pointer)。SP为程序的堆栈指针,指向栈顶元素,在操作堆栈时需要用到。

②数据指针DPTR。数据指针DPTR是一个16位寄存器,由两个8位寄存器DPH和DPL组成。其中DPH为高8位,DPL为低8位。

3)中断相关SFR。

IE(Interrupt Enable)中断允许位寄存器:用来设置全局、定时器、串行口以及外部中断。

IP(Interrupt Priority)中断优先级寄存器:用来设置各种中断的优先级,各中断源可以设置为高优先级或低优先级。

4)端口相关SFR。

P0、P1、P2、P3:可以通过端口寄存器对端口进行读或写操作。

PCON(电源控制及波特率选择寄存器):用来设置电源工作方式以及串行通信口中的比特率

SCON(串口控制寄存器):用来控制串口工作模式、数据格式、发送及接收中断标志等。

SBUF(串行数据缓冲寄存器):是为接收或发送数据而设置的,为8位二进制寄存器,通过移位操作进行数据的接收或发送。

5)定时/计数器相关SFR。

TCON(定时/计数器控制寄存器):用来设置中断请求方式、定时模式。设置定时/计数器的启动停止等。

TMOD(定时/计数器工作方式寄存器):定时/计数器有4种工作模式,通过设置TMOD来决定工作方式。

TL0、TH0、TL1、TH1在设置定时器初值时要用到TL和TH,TL为数据低8位,TH为数据高8位,也可以直接访问16位寄存器T0或T1。

另外,对于特殊功能寄存器SFR,当其末位地址为0或8时可以进行位寻址。比如P1的地址为90H,可以进行位寻址,而SP的地址为81H,不能进行位寻址。

表4-7 特殊功能寄存器一览表

4.2.3.3 片外RAM

如果片内RAM容量太小,不能满足系统需求,则可以外接RAM,但外部RAM大小不能超过64 KB,因为8051的寻址范围为64 KB。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈