51单片机内部RAM
单片机的这 512 字节的 RAM在地位上并不都是平等的,而是分块的,块与块之间在物理结构和用法上都是有区别的,因此形成51单片机内部ram和外部ram的区别。
一、从使用字节区别。标准 51单片机的片内 RAM 地址从 0x00H~0x7F 共 128 个字节。而现在我们用的 51 系列的单片机都是带扩展片内 RAM 的,即 RAM 是从 0x00~0xFF 共 256 个字节。而片外 RAM 最大可以扩展到 0x0000~0xFFFF 共 64K 字节。
二、从连接地址区别。片内 RAM 和片外 RAM 的地址不是连起来的,片内是从 0x00 开始,片外也是从 0x0000 开始的,分别形成data,即片内 RAM 从 0x00~0x7F;idata,即片内 RAM 从 0x00~0xFF;pdata,即片外 RAM 从 0x00~0xFF;xdata,即片外 RAM 从 0x0000~0xFFFF。
一般情况下,使用 data 区域,data 不够用了,就用 xdata,如果希望程序执行效率尽量高一点,就使用 pdata 关键字来定义。其它型号有更大的 RAM 的 51 系列单片机,如果要使用更大的 RAM,就必须得用 xdata 来访问了。
扩展资料:
51单片机对所有兼容Intel 8031指令系统的统称,8004单片机成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机属于基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。
51单片机的RAM用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据,ROM用以存放程序、一些原始数据和表格。四个8位并行I/O口,既可用作输入,也可用作输出。T/C包括两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式。
参考资料来源:百度百科-51单片机
内部RAM共256个单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。
前128单元具体分为:
1、工作寄存器区:共4个组,每组为8个存储单元,即00H-07H,08H-0FH,10H-17H,18H-1FH,具体选择哪一个由程序状态字(PSW)中的RS1和RS0的组合决定。
2、位寻址区:20H-2FH,共16个单元,每一位可以进行位寻址(16*8=128个位地址),就是每一个触发位,就是bit可以寻址。
3、便笺区:从30H-7FH,共80个单元,用于存放用户数据或作堆栈区使用。
4、从80H-FFH为专用寄存器占用,其中还离散的分布SFR(21个特殊功能寄存器)。
MCS-51单片机是一种集成的电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
在HMOS技术大发展的背景下,Intel公司在MCS-48系列的基础上,于1980年推出了8位MCS-51系列单片机。它与以前的机型相比,功能增强了许多,就其指令和运行速度而言,超过了INTEL8085的CPU和Z80的CPU,成为工业控制系统中较为理想的机种。较早的MCS-51典型时钟为12MHz,而目前与MCS-51单片机兼容的一些单片机的时钟频率达到40MHz甚至更高,现在已有400MHz的单片机问世。
1:如果片内只有128字节的RAM,则访问RAM使用直接或者间接寻址方式,地址为00H-7FH,在80H-FFH的空间分配给了SFR,只能使用直接寻址方式。
2:片内RAM为256字节时,低128字节(00H-7FH)的访问方式为直接和间接寻址方式,高128字节(地址80H-FFH)只能使用间接寻址方式。SFR的地址也为80H-FFH,但只能使用直接寻址方式。
如果还不清楚,那建议就不要看那些庸人出的单片机教材了,以免把自己弄糊涂。最好就是看51单片机的使用说明书(Datasheet),如AT89C51、AT89S52等,其中解释你的疑问的。
51单片机内部RAM具体要看产品配置。
分为两种情况:
1:如果片内只有128字节的RAM,则访问RAM使用直接或者间接寻址方式,地址为00H-7FH,在80H-FFH的空间分配给了SFR,只能使用直接寻址方式。
2:片内RAM为256字节时,低128字节(00H-7FH)的访问方式为直接和间接寻址方式,高128字节(地址80H-FFH)只能使用间接寻址方式。
SFR的地址也为80H-FFH,但只能使用直接寻址方式。
具体产品有详细的说明书。
80C51片内RAM共256B,低128B为用户RAM区,高128B为特殊功能寄存器区。
80C52是80C51的增强型,从地址0-127为用户RAM,从128-255为用户RAM和特殊功能寄存器地址重叠空间。
另外80C32是80C31的增强型,它的情况和80C52是相同的。
低128B的地址是00H~7FH -- 用户RAM
访问低128B,给出地址就行。
高128B的地址是80H~FFH -- 存放着SFR
访问高128B,给出地址或SFR都行
提这问题之前,你应该分清:RAM,和 片内 RAM。
答:RAM。地址范围:00H~7FH。其中,分成三个部分。00H~1FH,为四组工作寄存器。20H~2FH,为16字节的位寻址区,共有128个位地址。30H~7FH,共80字节,没有特色。--- 在51单片机中,高128字节称为SFR。必须直接寻址。地址范围包括了128字节(80H~FFH),但是只有21字节是有效的。
答:mcs-51单片机的内部RAM分为三个区:1、工作寄存器区,00H~1FH,分为4段,00H~07H,08H~0FH,10H~17H,18H~1FH;分别对应R0~R7.2、位寻址区,20H~2FH。3、用户寄存器区,30H~7FH。
答:片内RAM就是集成在51单片机的内部的,51单片机内部集成了128字节的RAM,片外存储器意思是单片机通过数据和地址总线扩展的外部存储器 ,基本上讲51单片机的书上都有讲的这章,可以具体的看看
答:你写的程序就是存放在这部分空间里面,但是程序中的数据表等一些不需要改变的数据也可以放在里面。这里面的数据掉电后部会丢失。就相当于电脑的硬盘,一般单片机在运行程序的时候,只能读里面的数据,而不能改里面的数据。要改变里面的数据需要一些特殊的手段,像用下载器向里面下载程序。RAM:数据存储器...
答:51单片机的具体存储器地址分配 数据存储器(RAM)为 256 字节, 地址范围为00H~FFH, 分为两大部分: 低 128 字节(00H~7FH)为真正的RAM区; 高 128 字节(80H~FFH)为特殊功能寄存器区SFR。程序存储器(ROM)的内部地址为 0000H~0FFFH, 共 4 KB; 外部地址为 1000H~FFFFH, 共 60 KB。 当...
答:8051单片机的内RAM容量取决于所使用的具体型号。标准51型号通常拥有128字节的RAM,地址范围为0-127,既可以直接访问也可以间接访问。而52型号则有所提升,拥有256字节的RAM,地址0-127同样可以直间接访问,但128-255地址区间的RAM只能通过间接访问方式访问。此外,51单片机还能访问外部的64K字节RAM,使用MOVX...
答:在MCS-51单片机内部RAM中,可进行位寻址的字节包括:累加器(ACC)、程序状态字(PSW)、中断控制寄存器(IP)、屏蔽中断控制寄存器(IE)、串行控制寄存器(SCON)、定时器模式寄存器(TMOD)、定时器控制寄存器(TCON)、I/O端口0(P0)、I/O端口1(P1)、I/O端口2(P2)和I/O端口3(P3)。位...
答:片内RAM的寻址的寻址方式有:立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址和位寻址。片外RAM的寻址方式只有间接寻址。访问片外RAM只有寄存器间接寻址,MOVX A,@DPTR,MOV A,@RI,MOV @DPTR.A,MOV @RI,A,只有这四个指令,其它就没有了。访问ROM(ROM不分片内片外)只有变址寻址了,MOVC A,@A...
答:内部ram:就是你存放数据的地方,你平时自己定义的变量的地址就是内部RAM 外部ram:相当于扩展的存放数据区,由于内部ram太小,有时候装不下我们要存放的数据,因此增加了外部RAM,它其实和内部RAM的功能一样,唯一的区别就是取值的方式不同.程序存储器:存放程序的空间,你所写的程序编译后的机器码都在那个...
答:mcs-51单片机片内的ram的寄存器区,共有32个单元。分成四个区,每个区都有8个单元,称为R0~R7。但是只有一个区,是当前工作区,才可以用R0~R7来寻址。