51单片机内部ram

51单片机默认的内部RAM只有128字节,52单片机增加至256字节,STC89C54、55、58、516等增加到1280字节。

单片机内部RAM,共256个单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。现在新出的51单片机都在内部扩展了外部RAM,通常的情况是256B+1024B的RAM组合,不过在芯片内部之所以还叫外部RAM是因为是用外部总线连接的,访问方式还是MOVX。

51单片机内部ram分配如下:

地址

 


0x80~0xff




高128字节,用于SFR




0x30~0x7f



数据缓冲区



0x20~0x2f


16个字节(28位)可位寻址bdata区

0x1f

第四组寄存器R0~R7

0x10~0x17

第三组寄存器R0~R7

0x08~0x0f

第二组寄存器R0~R7

0x00~0x07

第一组寄存器R0~R7

可位寻址bdata区unsigned char bdata test;

                              sbit test0=test^0;就可以单独使用test的第0位

数据缓冲区unsigned char data test;

外部存储区A=XBYTE[0x8100];从地址8100H读一个字节

              B=*((char xdata *)0x0000);从地址0000H读一个字节

 


在keil->option->Target->MemoryMode中有三种存储器模式:small、compact、large。


Small:变量存储在内部的RAM。

Large:变量存储在外部RAM里。

一般都使用small来存储变量,单片机优先把变量存储在内部RAM,如果内部RAM不够再到外部RAM里,而Large则先将变量存储到外部RAM。

采用small方式,unsigned char xdata a;指定变量a存储在外部ram

                        Unsigned char a;变量默认存储在内部ram里

采用large方式,unsigned char xdata a;变量存储在外部ram

                        Unsigned char a;变量默认存储在外部ram

 

 本文档下载地址:http://download.csdn.net/detail/luckywang1103/598254

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luckywang1103

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值