51单片机系列知识3--存储器(2)

来源:互联网 发布:mac上的输入法 编辑:程序博客网 时间:2024/05/29 03:42

3、 内部数据存储器的低128单元(00H~7FH)

51单片机的内部数据存储器总容量为256字节,地址由00H~FFH.这256字节的地址空间可以分成功能不同的低128字节单元和高128字节单元。

在256字节的内部数据存储器中,还有一个“位地址”空间(不是独立的)。其中一部分位在低128单元中,另一部分在高128单元中。所以内部数据存储器中有一些单元既可以对其执行按字节操作,也可以对该单元中的某一位单独进行为操作。

高128字节存放了特殊功能寄存器,但也有许多单元是空着的,这些单元是为51系类单片机的新型号保留的,一些已出现的新型号单片机因内部功能器件的增加而增加了不少特殊功能寄存器。为了使软件与新型单片机兼容,用户程序不要对空着的单元进行写操作。所以可以认为:低128单元是真正意义上的内部数据存储器,所以有时干脆称它为内部“RAM”。

按用途,又可以将其划分为工作寄存器区,位寻地址,用户RAM区三个区域。

① 工作寄存器区

51单片机的CPU中并没有如8086CPU中的AX,BX这样的寄存器。但这并不意着单片机在进行工作时不要寄存器。利用寄存器不仅有利于提高单片机的执行速度,还能提高程序编制的灵活性,简化程序设计。51单片机中的寄存器并不在CPU中,而是以内部数据器的某个单元的形式出现。

内部RAM的0~1FH区域有四组工作寄存器区,每个区有8个工作寄存器R0~R7,寄存器和RAM单元地址对应关系如教材P47.

CPU当前使用的工作寄存器是由程序状态字PSW的第三个第四位指示的,PSW中这两位状态和所使用的寄存器对应关系如下:

PSW.4(RS1) 

PSW.3(RS0)

当前使用的工作寄存四区R0~R7

0

0

0区(00~07H)

1

1

1区(08~0FH)

1

0

2区(10~17H)

1

1

3区(18~1FH)

CPU通过修改PSW中的RS1、RS0两位的状态,就能任选一个工作寄存区。这个特点提高了51单片机现场保护和现场恢复的速度?

② 位地址空间

在51单片机内部RAM中20H~2FH单元,以及特殊功能寄存器中地址为8的倍数SFR可以位寻址,它们构成了51单片机的位存贮器。这种位处理能力是51单片机的一个重要特点。这些单元既有一个字节地址(8位作为一个整体的地址),每一位又有一个位地址。这些单元的位地址编址见教材P49、P50。这种对位进行操作的(置位、清0、取反、测试)的功能提供了把逻辑式(组合逻辑)直接变为软件的简单明了的方法。不需要过多的数据传送,字节屏蔽和测试分支树,就能实现复杂的组合逻辑功能。

③ 用户RAM区

剩下80个单元没有做任何特殊规定,为供用户自由使用的RAM区,其地址为30H~70FH。一般应用中常把数据缓冲区和堆栈开辟在此区中。栈顶位置由堆栈指针SP所指出。进栈时,MCS—51的堆栈指针(SP)先加“1”,然后数据进栈(写入SP指出的栈区);而退栈时,先数据退栈(读出SP指出的单元内容),然后SP减“1”。因为复位后(SP)为07H,这意味着堆栈区设置在08H开始的RAM区域,而08H~1FH是工作寄存器区。一般应对SP初始化来具体设置堆栈区,如6FH→SP,则堆栈设置在70H开始区域。

其他区域可作为数据缓冲区使用,存放输入的数据或运算的结果。

3.内部数据存储器的高128单元

51单片机内部的CPU寄存器、I/O口所存器以及定时器、串行口、中断等各种控制寄存器和状态寄存器都作为特殊功能寄存器(SFR),51单片机基本的SFR有21个。21个SFR离散分离,地址并不连续。

这21个SFR与各控制功能不见的关系(当然有交叉):

l CPU:A、B、PSW、PPH、DPL(组成DPTR)、SP;

l 定时器/计数器:TH0、TL0(组成T0)、TH1、TL1(组成T1)TM0D、TCON;

l 中断系统:IE、IP;

l 并行口:PO、P1、P2、P3;

l 串行口:SCON、PCON、SBUF。

注意:⑴单片机内部还有一个寄存器,就程序计数器PC。虽然它的功能也很特殊(存放下一条将被执行的指令的地址),但它不同于这里所讲的寄存器,PC没有地址,在物理上是独立的。因此PC没有被列在SFR中。

      ⑵位空间与内部RAM和SFR重叠,而且每一个可以未处理的位也有一个位地址,在形式上和单元地址空间相似(如有08单元,也有08H位),因此这就要依靠指令的性质判断这个地址是单元地址还是位地址。

      如果是字节操作指令,如“MOVA、08H”则08H是单元地址

      如果是位操作指令,如“MOVC、08H”则08H是位地址

 

 

FFH

80H

7FH                         位寻地址00H~7FH

30H                                            除实际需要的工作

2FH                                            寄存四区,数目和

20H                         工作寄存四区       位标志数目外,多

1FH                           R0~R7           余单元都可作为数

18H                                             据缓冲器或堆栈

17H

10H

0FH

08H

07H

00H

数据存储器

 

 

 

 

FFFFH

 

 

 

FFH                            FFH          FFH

 

80H                            80H

7FH                            7FH          80H

 

00H           0000H           00H

          

  51系列                          52系列

 

4、外部数据存储器

51单片机的数据存储器在物理和罗技上都分为两个独立的地址空间:一个内部和一个外部数据存储空间,分别单独编址。访问内部数据存储器用MOV指令;访问外部数据存储器,用MOVX指令。

52系列单片机有256字节的RAM和128字节的SFR。RAM的高128字节与SFR的地址重叠,但由于访问指令不同,并不会引起混乱。片外RAM一般采用16位编址。

外部RAM最低位的128个地址和片内数据存储器地址重叠,同时51单片机对外部RAM和I∕O接口进行统一编址,如果同时扩展外部RAM和I∕O接口要注意地址分配问题。即用户在应用系统设计时,所有外围借口地址均占用外部RAM的地址单元。CPU对外部RAM和I∕O操作用相同的指令。


By:霜月孤鸟

2016.2.21

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 wow dk老拉嘲讽怎么办 4k屏幕字体太小怎么办 车被冰雹打了怎么办 玩3d游戏头晕怎么办 dnf黑龙大会秒杀怎么办 黑曼巴c挂不上弦怎么办 费效比超过100%怎么办 入职体检不报销怎么办 入职体检过不了怎么办 入职体检血糖高怎么办 入职体检没过怎么办 入职体检血压高怎么办 看病没带医保卡怎么办 孕妇8个月血压高怎么办 怀孕3个月血压高怎么办 怀孕3个月血压低怎么办 38周孕妇血压高怎么办 孕前检查后怀孕怎么办 精子a加b成活率底怎么办 怀孕五周孕酮低怎么办 怀孕38天孕酮低怎么办 刚怀孕了孕酮低怎么办 怀孕2个月孕酮低怎么办 怀孕七周孕酮低怎么办 孕前检查孕酮低怎么办 甘油三酯偏高7.2怎么办 入职体检来例假怎么办 6激素检查喝水了怎么办 抽血前吃了东西怎么办 怀孕一个月孕酮低怎么办 怀孕了老是有痰怎么办 孕妇有很多白痰怎么办 血糖高怎么办吃什么好 5年糖尿病血糖高怎么办 血糖高引起的视力模糊怎么办 谷丙转氨酶和谷草转氨酶高怎么办 产检血糖有点高怎么办 孕期餐后血糖高怎么办 怀孕12周血糖高怎么办 怀孕2个月血糖高怎么办 怀孕7个月血糖高怎么办