mcs-51单片机内部RAM的各部分作用?
展开全部
MCS-51系列单片机片内RAM共有128字节,地址范围为00H~7FH。
在这128字节中,全部都可以按照字节地址进行操作(读、写或运算),直接或间接寻址方式皆可。
在这128字节中,按照使用特点,可以分成三类:工作寄存器区、位寻址区和通用数据区。
1.工作寄存器区
在MCS-51系列单片机的片内RAM中,有四个工作寄存器区,分别称为工作寄存器区0~工作寄存器区3。
每区有八个字节,除了可以用字节地址号码操作之外,还可以用R0、R1…R7为名称对其操作。用名称进行操作,称为寄存器寻址,指令代码较为简短。
其中R0、R1可以作为间接寻址寄存器,以其中内容作为地址,能够对片内RAM(或片外RAM的256字节)进行间接寻址。
在任何时刻,只能使用一个工作寄存器区。当前使用那个区,可以通过指令设置PSW中的RS1和RS0来决定。PSW称为程序状态字,是下面要介绍的特殊功能寄存器。
通过设置RS1和RS0,可以快速切换当前工作寄存器区,适合在不同的程序段中进行保护现场。当前没有使用的工作寄存器区,不能使用R0、R1…R7等名称,但可以按字节地址对其随意读写。
复位时RS1和RS0皆初始化为0,故此复位后将自动使用工作寄存器区0。
2.位寻址区
位寻址区共有16字节,字节地址为20H~2FH,每个字节中的8个“位”,都有一个“位地址”。共有128个位,“位地址”的范围为00H~7FH。
从表2中可以看到,前面问题所提到的“位地址4EH”,是在“字节地址29H”中,是第6位。
对位寻址区可以按照“位地址”来对某一个位单独进行操作,也可以按照“字节地址”进行操作,即同时对八个位地址的内容进行操作。
MCS-51系列单片机具有一套专用的“位操作”指令(又称为布尔指令),可对这些位地址进行“与”、“或”、“非”等操作。这是该系列单片机的特色之一。
3.通用数据区
通用数据区有80字节,只能按“字节地址”(直接或间接寻址)进行操作。
上面介绍了00H~7FH地址范围内的RAM,下面接着这个地址,继续向高地址方向介绍。
在片内80H~FFH地址范围内,离散的分布着21个特殊功能寄存器(SFR),寄存器名称与地址分布见表3。
8052系列单片机,在80H~FFH范围内,还有128字节的片内通用RAM,对其操作时,则必须采用“间址”寻址方式。
而对这片地址范围内的特殊功能寄存器只能采用“直接”寻址方式进行操作。
特殊功能寄存器中有11个还可以进行“位寻址”,表3中也列出了可以位寻址的寄存器以及位地址号码。
在表3中,如果位地址为空白,则说明该寄存器不能进行“位寻址”。
由表3可以看出规律:当字节地址可以被8整除时,该字节即可以按位寻址。其最低位的“位地址”与“字节地址”相同,其他位的位地址向高位依次加1。
单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。 程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。
可以参考: http://apps.hi.baidu.com/share/detail/17443237
在这128字节中,全部都可以按照字节地址进行操作(读、写或运算),直接或间接寻址方式皆可。
在这128字节中,按照使用特点,可以分成三类:工作寄存器区、位寻址区和通用数据区。
1.工作寄存器区
在MCS-51系列单片机的片内RAM中,有四个工作寄存器区,分别称为工作寄存器区0~工作寄存器区3。
每区有八个字节,除了可以用字节地址号码操作之外,还可以用R0、R1…R7为名称对其操作。用名称进行操作,称为寄存器寻址,指令代码较为简短。
其中R0、R1可以作为间接寻址寄存器,以其中内容作为地址,能够对片内RAM(或片外RAM的256字节)进行间接寻址。
在任何时刻,只能使用一个工作寄存器区。当前使用那个区,可以通过指令设置PSW中的RS1和RS0来决定。PSW称为程序状态字,是下面要介绍的特殊功能寄存器。
通过设置RS1和RS0,可以快速切换当前工作寄存器区,适合在不同的程序段中进行保护现场。当前没有使用的工作寄存器区,不能使用R0、R1…R7等名称,但可以按字节地址对其随意读写。
复位时RS1和RS0皆初始化为0,故此复位后将自动使用工作寄存器区0。
2.位寻址区
位寻址区共有16字节,字节地址为20H~2FH,每个字节中的8个“位”,都有一个“位地址”。共有128个位,“位地址”的范围为00H~7FH。
从表2中可以看到,前面问题所提到的“位地址4EH”,是在“字节地址29H”中,是第6位。
对位寻址区可以按照“位地址”来对某一个位单独进行操作,也可以按照“字节地址”进行操作,即同时对八个位地址的内容进行操作。
MCS-51系列单片机具有一套专用的“位操作”指令(又称为布尔指令),可对这些位地址进行“与”、“或”、“非”等操作。这是该系列单片机的特色之一。
3.通用数据区
通用数据区有80字节,只能按“字节地址”(直接或间接寻址)进行操作。
上面介绍了00H~7FH地址范围内的RAM,下面接着这个地址,继续向高地址方向介绍。
在片内80H~FFH地址范围内,离散的分布着21个特殊功能寄存器(SFR),寄存器名称与地址分布见表3。
8052系列单片机,在80H~FFH范围内,还有128字节的片内通用RAM,对其操作时,则必须采用“间址”寻址方式。
而对这片地址范围内的特殊功能寄存器只能采用“直接”寻址方式进行操作。
特殊功能寄存器中有11个还可以进行“位寻址”,表3中也列出了可以位寻址的寄存器以及位地址号码。
在表3中,如果位地址为空白,则说明该寄存器不能进行“位寻址”。
由表3可以看出规律:当字节地址可以被8整除时,该字节即可以按位寻址。其最低位的“位地址”与“字节地址”相同,其他位的位地址向高位依次加1。
单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。 程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。
可以参考: http://apps.hi.baidu.com/share/detail/17443237
参考资料: http://apps.hi.baidu.com/share/detail/17443237
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询