您的位置 首页 新品

51单片机 RAM 数据存储区

1.RAMkeilC语言编程2.片内数据存储区(1)工作寄存器区工作寄存器区位于片内数据存储器中的00H~1FH单元,共32字节(如此说来每个单元…

1.RAM keil C言语编程

2.片内数据存储区

(1) 作业寄存器区

作业寄存器区坐落片内数据存储器中的00H~1FH单元,共32字节( 如此说来每个单元是一个字节了 ),分红四组。每组8个字节,别离记为R0~R7.

编号 起终地址 寄存器名 补白
1 其占有的物理地址为00H~07H 对应于指令中的R0~R7 0区作业寄存器组
2 其占有的物理地址为08H~0FH 对应于指令中的R0~R7 1区作业寄存器组
3 其占有的物理地址为10H~17H 对应于指令中的R0~R7 2区作业寄存器组
4 其占有的物理地址为18H~1FH 对应于指令中的R0~R7 3区作业寄存器组

程序默许在0区作业寄存器组寄存中心运算数据。等候中止来时,中止数据作业寄存器组由0区切换到其它区域。

挑选四组作业寄存器区的哪一组作为R0~R7由坐落PSW寄存器的两位RS1,RS0来确认.

RS1,RS0称为区开关或组开关,两位就可决议四种状况.

RS1 RS0 作业寄存器组
0 0 作业寄存器0组
0 1 作业寄存器1组
1

0

作业寄存器2组
1 1 作业寄存器3组

(2)位寻址区

用户存储区坐落片内数据存储器中的020H~02FH单元,共16个字节,共128位,每个字节单元的位都有一个独自的地址,别离为00H-07H,如020H.1一共020H单元的bit[1]位。020H~02FH单元可作为位寻址区。这个范围内的存储单元最大的用途便是能进行位操作,在C言语中,只能用位操作运算符(&、|、^、~、<<、>>)来对字节数据进行位操作运算。假如用汇编指令就能够直接对此片存储单片进行位操作。

如 SETB, 020H.1 就将020H的bit[1]置为了1.

除了RAM此片能进行位寻址的用户存储区以外,还有一些特别的功用寄存器( SFR )也能进行位寻址。

(3)数据缓冲区

51系列数据缓冲区地址为30H-7FH,共80字节。只能字节寻址,不能位寻址。我们作业寄存器和位寻址区,数据缓冲区是一致编址的,所以这三者都能够用作数据缓冲区。

(4)堆,栈

栈:由体系主动分配开释,存部分值。

堆:一般由程序员分配和开释(在C顶用malloc/free操作)。

栈指针SP:8位寄存器,栈最大可达128单元,只可在片内RAM中进行栈操作。

栈效果:用来保存地址、数据信息、具有先进后出特性,也是一种能寄存二进制数据的空间。

MC51栈选用满顶法向上生成的软件仓库。

软件栈:凭借SP进行操控操作。

栈向上成长:新压栈的数据成为栈顶。

栈向下成长:新压入的数据远离栈顶。

地址巨细还得看存储方法。

(5)专用寄存器区

专用寄存器区,也称特别功用寄存器区 SFR

SPECIAL FUNCTIONREGISTER

寻址地址离散地散布在80H~FFH,共128字节的空间.而实践有用的只要21个字节,即在这一空间里只要18个专用功用寄存器,其中有3个专用功用寄存器占用了两个字节.SFR首要用于片内硬件的办理,一般只能以字节为单位凭借于MOV指令直接寻址,但也有一些专用功用寄存器能够位寻址。

包括程序状况字PSW、数据指针寄存器DPTR、端口地址P0-P0、其它专用寄存器(累加器A、B)

3.片外数据存储区

片外RAM区:可寻空间为共64K 0000H~FFFFH,

总是运用MOVX类指令寻址

凭借于作业寄存器R0或R1直接寻址时,可寻256字节

从片外RAM区取数据:MOVX A,@Rii=0-1

向片外RAM区存数据:MOVX @Ri,A

凭借16位的数据指针DPTR直接寻址,可寻64K字节:

从片外RAM区取数据:MOVX A,@DPTR

向片外RAM区存数据:MOVX @DPTR,A

<此段摘录,防后会运用>

委任是拜访内部存储器仍是外部存储器地址靠指令来委任。

这儿,片内的存储区即常想念的“寄存器”,片外的ram存储区即指“体系内存”。

Note Over。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/263654.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部