51单片机内部ram,外部ram的区别

内部ram,外部ram,程序存储器,数据存储器,
mov movx 指令的区别
我有点混要了,请各个说明一下之间的区别。
谢谢。

单片机的这 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单片机

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26
典型的51单片机内部RAM是256B,8根地址线(8位),这256B共分为高128位和低128位,用户使用的区域是低128位(即00H~7FH),通过程序计数器PC寻址。

51单片机的外部RAM可扩展到64KB,16根地址线(16位),使用DPTR作为外部RAM的寻址指针。

程序存储器:也就是ROM,是存放用户程序(如汇编程序或C程序)的地方,典型的51单片机内部ROM为4KB,若是使用外部ROM可以扩展到64KB。

数据存储器:是存放用户程序运行过程中的中间结果或者运算结果,也就是内部RAM或外部RAM。

MOV: 单片机内部RAM的数据传送指令

MOVX: 单片机外部RAM的数据传送指令本回答被提问者采纳
第2个回答  2008-11-25
内部ram:就是你存放数据的地方,你平时自己定义的变量的地址就是内部RAM
外部ram:相当于扩展的存放数据区,由于内部ram太小,有时候装不下我们要存放的数据,因此增加了外部RAM,它其实和内部RAM的功能一样,唯一的区别就是取值的方式不同.
程序存储器:存放程序的空间,你所写的程序编译后的机器码都在那个空间,我们执行程序的时候也是在那里实现,程序存储器也可以存放数据.
数据存储器:就是内部ram和外部ram
mov,movx两个指令的区别就是一个取内部RAM空间的值而movx取外部ram空间的值
第3个回答  2008-11-25
mov 操作内部数据存储器(ram)
movx 操作外部数据存储器(ram),外部总线地址等
movc 程序存储器(ROM或者Flash)
最简单的理解了吧?!

PS:懒人记忆法:
movc中的“c”相当于“code”代码
movx中的“x”相当于“extern”外部的
mov 既没有“c”也没有“x”相当于内部的
第4个回答  2022-07-01
你花几块钱,买一块 51 单片机芯片,如 STC89C52。
在这块芯片中,就有了:内部 RAM、程序存储器、SFR、定时计数器、... 。
在这些部分,你可以使用 MOV 指令操作。
如果,你想使用 MOVX 指令对外部 RAM 操作,你就得再买一块芯片了。
以上,就是内部、外部的区别。
相似回答