单片机的存储结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机的存储结构
单片机的存储结构分为程序存储器ROM和数据存储器RAM。

程序存储器固化程序、常数和数据表格。

数据存储器存放程序运行中产生的各种数据、用作堆栈等。

MCS-51有4个存储空间,分别是:片内程序存储器和数据存储器,在片外可以扩展的程序存储器和数据存储器。

四个存储空间可以分为三类:片内数据存储空间(256B的RAM和128B的特殊功能寄存器)、片外数据空间(64KB)、片内和片外统一编制的程序存储空间(64KB)。

程序存储器结构
用于存放(固化或烧录)编好的程序、常数和数据表格。

CPU实用程序计数器PC中的地址从程序存储器中读取指令和数据。

每读一个字节,PC就自动加1。

单片机的存储器有16位地址,有存储空间64KB。

单片机执行指令时,对于低地址部分是从片内程序存储器去指令还是片外程序存储器去指令,决定于程序存储器选择引脚EA(低电平有效)。

单片机复位后,程序计数器PC值为0,即CPU从0000H地址开始执行,因此在存储单元0000H~0002H中存放的是上电复位后的引导程序,引导程序一般是一条无条件转移指令。

从0003H地址开始,每8个单元分配给一个中断使用。

基本型单片机可以管理5个中断,增强型可以管理6个中断。

片内数据存储结构
片内数据存储器按寻址方式可以分为:低128字节数据区、高128字节数据区和特殊功能寄存器区。

1·低128字节RAM
多种用途,使用最频繁。

寻址方式有两种直接寻址和寄存器间接寻址。

C语言中,使用关键字“data”和“idata”将变量定义在该区域。

这部分空间分为:工作寄存器区、位寻址区和通用数据区。

A·工作寄存器区:从00h到1fh,供32字节,分为4个组。

在某一时刻,只能使用4组当中的一组,使用哪一组,取决于程序状态字PSW的RS1和RS0位来决定,在C语言中,使用“using”来选择工作寄存器组。

B·位寻址区:地址从20H到2FH,共16字节,128位,位地址从00H到7FH。

C语言中,使用关键字“bit”定义在位变量在该区域,也可以使用关键字“bdata”将字节变量定义在该区域。

C·通用数据区:地址从30H到7FH,共80字节。

该区域用于堆栈、存放程序运行时的数据和中间结果。

2·高128字节RAM
地址从80H到FFH,其用途与低128字节中的30H到7FH完全一样,用于堆栈、存放
程序运行时的中间结果。

该区域使用间接寻址方式。

C语言中,使用关键字“idata”定义变量。

3·特殊功能寄存器
也成为专用寄存器。

起作用主要有三方面:控制单片机各个部件的运行、反映各部件的运行状态和存放数据或地址。

在片内数据存储器内特殊功能存储器和高128RAM的地址重合,所以使用直接寻址方式访问特殊功能寄存器,而使用间接寻址方式访问高128字节的RAM。

基本型单片机有21个寄存器,增强型有27个寄存器。

在特殊功能寄存器中,有11个(基本型)或12个(增强型)可以按位操作,具有位名和位地址。

他们的地址都能够被8整除,这些位名在汇编语言中可以识别。

在C语言中不能识别,为了在C语言中使用,必须先定义,部分的定义已经在“reg51.h”或“reg52.h”等头文件汇总定义,未定义的部分,使用时需要用户定义。

另外增强型单片机比基本型多6个特殊寄存器。

4·片外数据存储器
地址范围0000H~FFFFH,共64KB。

低256字节与片内数据存储器的地址重叠,区分两者用不同的指令“MOV”(片内数据存储器)和“MOVX”(片外数据存储器)。

使用“MOVX”时会自动产生读/写控制信号“RD(低电平)”、“WR(低电平)”,作用于片外RAM实现读/写操作。

C语言中,使用关键字“XDA TA”或“PDATA”将变量、数组、堆栈定义到片外RAM区。

片外RAM没哟划分区域,没有特别用途的区域。

片外RAM作通用RAM使用,主要存放大量的或接受的数据、运算的中间数据、最后结果、以及用作堆栈等。

相关文档
最新文档