1、内部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个特殊功能寄存器)

2、256B
其中00H~7FH
可分为3个区域:
00H~1FH 是通用寄存器区
20H~2FH 是位寻址区
30H~7FH 是用户RAM区

80H~FFH是特殊功能寄存器区

3、AT89S51单片机的ram,只有128字节,地址范围:00H~7FH。
SFR不是RAM,是特殊功能寄存器,地址范围:80H~FFH,SFR在其中离散分布着。

AT89S52单片机的ram,就有256字节,地址范围:00H~FFH。
SFR,特殊功能寄存器,仍然在地址范围:80H~FFH。
两者的地址重叠了,区别方法如下:
对80H~FFH直接寻址,就是读写SFR,特殊功能寄存器;
对80H~FFH间接寻址,就是读写RAM。

4、http://hi.baidu.com/efei789/blog/item/cf9afc0a12a4801994ca6bfb.html

先说说这几个词是什么意思:
1,DATA,51的内部RAM,只有128B(字节)大小,不管是最新的什么增强型单片机;

2,XDATA,外部RAM,只能使用MOVX寻址

3,CODE,代码区,即是你的代码的大小,AT89C51为4K,C52为8K等,增强型的有更多的选择。

然后说明一下,几种RAM的区别:
1,DATA,也是上面1提到的DATA RAM,占51的128B;
2,IDATA,大小也为128B,与DATA构成256字节的内存(如AT89C52)
3,PDATA,外部RAM的前256B(就是一个页的大小),是XDATA的一部分;
4,XDATA,外部RAM

所以你的那个单片机的1280B,其实组成为:
DATA :128B
IDATA:128B
XDATA:1024B

所以你的问题,“使用片内RAM”打勾只是软件仿真用的;你的XDATA用了758B,说明你特意用XDATA关键字定了这么大的内存,比如大数组或者内存模式时,使用了lager模式,那么编译器会自动把超出的部分放到XDATA里,我猜你应该是这里选择了lager模式,不过你的内容这么大,也只能选择lager模式。

以上为原创,如果想看更详细的介绍,可以看以下链接:

单片机C语言unsigned char code table[] code 是什么作用?

code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVC(好像是),因为C语言中没办法详细描述存入的是ROM还是RAM(寄存器),所以在软件中添加了这一个语句起到代替汇编指令的作用,对应的还有data是存入RAM的意思。

程序可以简单的分为code(程序)区,和data (数据)区,code区在运行的时候是不可以更改的,data区放全局变量和临时变量,是要不断的改变的,cpu从code区读取指令,对data区的数据进行运算处理,因此code区存储在什么介质上并不重要,象以前的计算机程序存储在卡片上,code区也可以放在rom里面,也可以放在ram里面,也可以放在flash里面(但是运行速度要慢很多,主要读flash比读ram要费时间),因此一般的做法是要将程序放到flash里面,然后load到 ram里面运行的;DATA区就没有什么选择了,肯定要放在RAM里面,放到rom里面改动不了。

单片机关于RAM的作用相关推荐

  1. RAM测试方法 C语言实现,有哪些常用单片机系统RAM测试方法?基于种子和逐位倒转的RAM故障测试法有什么优点?...

    在各种单片机应用系统中, 存储 器的正常与否直接关系到该系统的正常工作.为了提高系统的可靠性,对系统的可靠性进行 测试 是十分必要的.通过 测试 可以有效地发现并解决因 存储 器发生故障对系统带来的破 ...

  2. 单片机中RAM少,有哪几点原因?

    关注+星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | 嵌入式专栏 经典的AT89C51单片机,其内部只有128字节RAM(内存),同样经典的MSP430F149也只有 ...

  3. 单片机中psw的作用是什么?

    单片机中psw的作用是什么? PSW是一个8位寄存器.PSW的全称是Program Status Word,即程序状态字. 顺带一提.今年自己还录制了一套还比较系统的入门单片机教程,想要私信我就可以, ...

  4. 计算机主板和单片机的区别,单片机和工控机的作用和区别

    原标题:单片机和工控机的作用和区别 单片机,说白了就是芯片,可以处理一些简单的逻辑或其他的运算.我们俗称PLC,可编程控制器,你可以理解为它的CPU其实就是一枚单片机而已.单片机配合其他的,比如I/O ...

  5. 51单片机内部ram

    51单片机默认的内部RAM只有128字节,52单片机增加至256字节,STC89C54.55.58.516等增加到1280字节. 单片机内部RAM,共256个单元,用户使用前128个单元,用于存放可读 ...

  6. 单片机中RAM ROM区别,单片机与电脑的区别

    RAM运行内存 ROM存储内存 对于古老的单片机来说 它的ROM是用来固化一些程序的  写好了之后只能读取  所以ROM read only memory 叫做只读存储器 RAM是随机存储器  掉电之 ...

  7. AVR单片机外部RAM访问

    最近的一个项目中,体会了一下AVR单片机的外部RAM扩展,发文记录于此. 本文以ATMEGA64单片机为测试平台,外扩74HC573(资料上讲用AHC系列,但是我用HC系列在16M晶振下配置成最快速度 ...

  8. 一文看懂单片机排阻的作用!

    排阻的阻值读取 在三位数字中,从左至右的第一.第二位为有效数字,第三位表示前两位数字乘10的N次方(单位为Ω).如果阻值中有小数点,则用"R"表示,并占一位有效数字.例如:标示为& ...

  9. 分析STM32单片机的RAM和FLASH(一)

    1.导学 存储器是单片机结构的重要组成部分,存储器是用来存储编译好的程序代码和数据的,有了存储器单片机系统才具有记忆功能. 按照存储介质的特性,可以分"易失性存储器"和" ...

最新文章

  1. 使用OpenCV和Dlib的头部姿态估计
  2. java 写文件的三种方法比较
  3. BAC--Downtime 凌晨时段设定
  4. C#当中的BeginInvoke和EndInvoke
  5. eslint 保存自动格式化_ESLint一款可组装的JavaScript和JSX检查工具
  6. 爱,除了看怎么说,还要看怎么做 !
  7. java integer reverse_Leetcode7 Reverse Integer Java实现及分析
  8. MySQL之Variables(变量)
  9. 应用程序、虚拟目录、应用程序池
  10. VS2010 SP1 安装信息
  11. C++11 处理时间和日期的处理,以及chrono库介绍
  12. 使用ps制作旧羊皮纸
  13. neo4j︱Cypher 查询语言简单案例(二)
  14. python结构模式_Python程序中的观察者模式结构编写
  15. Android Framework源码阅读计划
  16. Ghost 备份、还原使用图解,带下载
  17. 三阶贝塞尔曲线选点_贝塞尔曲线
  18. 医疗行业用户容灾备份方案
  19. mysql2000数据库四合一_sql server 2000
  20. 苹果 python蚂蚁森林自动收能量_蚂蚁森林自动收能量的最新脚本

热门文章

  1. docker入门与实践之【05-Dockfile指令】
  2. c#泛型作为返回类型的写法
  3. mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式)
  4. Boost中的Timer的使用——计算时间流逝
  5. qemu-kvm部署虚拟机
  6. Postgres客户端编码问题
  7. ListBox实现拖拽排序功能
  8. 使用泛型实现单例提供者(原创翻译)
  9. 利用MATLAB进行系统时域分析,实验二 利用matlab进行系统的时域分析
  10. eth显卡算力2020最新排行_最新三大主流币IPFS比特币ETH挖矿全网算力动态速递单周报(12.3更新)...