车用单片机原理(含实验与实训指导)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

一、数据存储器

8051单片机数据存储器包含片内数据存储器和片外数据存储器,如图2-4所示。

图2-4 8051单片机数据存储器

8051单片机片内数据存储器共有256B,其中低128B为数据存储区,地址范围是00H~7FH,按照用途又分为工作寄存器区、位寻址去、通用RAM区;高128B是特殊功能寄存器区,地址范围是80H~FFH。

8051单片机外部数据存储器共有64KB,地址范围是0000H~FFFFH。

(一)片内数据存储器

1.工作寄存器区

8051单片机片内00H~1FH单元为工作寄存器区,共32个单元分为4组,每组都有8个8位的寄存器,用R0~R7来表示,如图2-5所示。在单片机运行过程中,一个时刻只能有一组工作寄存器处于工作状态,由PSW中PSW.3(RS0)和PSW.4(RS1)位的状态来决定,其对应关系见表2-2。

当工作寄存器从一组换到另一组时,原有的工作寄存器组会被保存起来。这个特点使MCS-51单片机具有快速现场保护的功能,对于提高程序效率和响应中断的速度是很有利的。

2.位寻址区

8051单片机片内20H~2FH单元为位寻址区,一共16个单元,既可以位寻址也可以字节寻址,通常可以把各种程序状态标志、位控制变量存于位寻址区内。其128位位地址编址的范围为00H~7FH,位地址与字节地址的关系如图2-6所示。

3.通用RAM区

8051单片机片内30H~7FH为通用RAM区,共80个单元,只能进行字节寻址,可以作为数据缓冲区使用。在实际应用中,堆栈指针SP在此区域内开辟相应的存储空间,用于临时数据存放。

图2-5 工作寄存器区

表2-2 工作寄存器组的选择

图2-6 MCS-51单片机位寻址区

4.堆栈与堆栈指针

堆栈是在片内RAM中开辟一连续的区域,一般设在2FH地址单元之后的用户RAM区中,用于保存临时数据。堆栈数据存取按“先进后出”或“后进先出”的原则。8051单片机的SP是8位寄存器,堆栈为“向上生长型”,即栈顶地址总是大于栈底地址的。堆栈从栈底地址单元开始,向高端地址延伸,如图2-7所示。

图2-7 堆栈工作示意图

堆栈栈顶的位置由专用的堆栈指针寄存器SP指出。当单片机执行压栈操作时,先执行SP加1的操作,然后再把数据压入堆栈;当数据再次从堆栈取出之后,SP的值自动减1。51单片机复位后SP的初值为07H,堆栈实际上是从08H开始存放数据的。用户必须重新给SP赋值以规定其栈底位置。