单片机系列知识3--存储器(2)
2016-02-21 13:55
288 查看
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中这两位状态和所使用的寄存器对应关系如下:
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
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) |
② 位地址空间
在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
相关文章推荐
- return 语句
- 3.4变量与常量
- 【Java学习笔记】集合
- memset的使用
- BestCoder Round #73(div.2)
- oracle SQL优化之高效的函数调用
- hrbust 哈理工oj 1352 中间的球【floyd递推关系过】
- 如何让minicom换行
- 如何让minicom换行
- 我的小感
- 快速掌握Lua 5.3 —— 字符串库 (2)
- 如何让minicom换行
- hadoop1.2.1三种模式配置
- Android 一键打造仿IOS右滑退出Activity,非常简单的集成方式(SwipeFinishLayout)
- Educational Codeforces Round 8 D. Magic Numbers 数位DP
- AnguarJS 第一天----Hello World
- 颜色代码
- 单片机系列知识2--存储器(1)
- 【BZOJ 1036】【ZJOI 2008】树的统计 树链剖分模板题
- 验证码及验证码透明的背景