单片机内部资源分配.docx
- 文档编号:9203060
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:10
- 大小:21.94KB
单片机内部资源分配.docx
《单片机内部资源分配.docx》由会员分享,可在线阅读,更多相关《单片机内部资源分配.docx(10页珍藏版)》请在冰豆网上搜索。
单片机内部资源分配
2.3单片机内部资源分配
2.3.1MCS-51存储器空间
MCS-51单片机在物理结构上有四个存储空间:
片内程序存储器(ROM)
片外程序存储器(外扩)
片内数据存储器(RAM)
片外数据存储器(外扩)
但在逻辑上,即从用户的角度上(地址分配),8051单片机有三个存储编址空间,即:
片内程序存储器、片外程序存储器统一编址的64KB(26*210=65536个单元)的程序存储器地址空间(C:
)、256B(8位地址)的片内数据存储器的地址空间(D:
)以及64KB(216)片外数据存储器的地址空间(X:
)。
在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号。
在MCS-51单片机的芯片内部,主要有RAM和ROM两类存储器,即所谓的片内RAM和片内ROM。
1、片内数据存储器区(RAM)
8051的内部RAM共有256个单元,通常把这256(28)个单元按其功能划分为两部分:
低128(0~127)单元(单元地址为00H~7FH)和高128(128~255)单元(单元地址为80H~FFH)。
表2.2所示为低128字节单元的配置情况。
低128单元是单片机的真正RAM存储器,按用途划分为工作寄存器区、位寻址区和用户RAM区三个区域。
表2.2低128字节单元的配置
30~7FH
数据缓冲区
20~2FH
位寻址区(00~7FH)
18~1FH
工作寄存器组3(R0~R7)
10~17H
工作寄存器组2(R0~R7)
08~0FH
工作寄存器组1(R0~R7)
00~07H
工作寄存器组0(R0~R7)
(1)工作寄存器区
8051共有4组工作寄存器,每组8个寄存单元,各组都以R0~R7作寄存单元名称。
工作寄存器常用于存放操作数中间结果等。
由于它们的功能及使用不作预先规定,因此称之为工作寄存器,有时也叫通用寄存器。
4组工作寄存器占据内部RAM的00H~1FH共32个单元地址。
在任何时刻,CPU只能使用其中的一组工作寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。
到底是哪一组,由程序状态字寄存器PSW中RS1(D4)、RS0(D3)位的状态组合来决定。
(2)位寻址区(只有位寻址区的位可单独访问,其余的单元均只能按字节为单位访问)
内部RAM的20H~2FH单元,既可作为一般RAM字节单元使用,也可以对单元中每
一位进行位操作,因此把该区称之为位寻址区。
位寻址区共有16个RAM单元,计128位,每一位都有独立的位地址,其范围为00H~7FH。
MCS-51具有布尔处理机功能,这个位寻址区可以构成布尔处理机的存储空间。
这种位寻址能力是MCS-51的一个重要特点。
表2.3为位寻址区的位地址。
表2.3片内RAM位寻址区的位地址
字节
地址
位地址
D7
D6
D5
D4
D3
D2
D1
D0
2FH
7F
7E
7D
7C
7B
7A
79
78
2EH
77
76
75
74
73
72
71
70
2DH
6F
6E
6D
6C
6B
6A
69
68
2CH
67
66
65
64
63
62
61
60
2BH
5F
5E
5D
5C
5B
5A
59
58
2AH
57
56
55
54
53
52
51
50
29H
4F
4E
4D
4C
4B
4A
49
48
28H
47
46
45
44
43
42
41
40
27H
3F
3E
3D
3C
3B
3A
39
38
26H
37
36
35
34
33
32
31
30
25H
2F
2E
2D
2C
2B
2A
29
28
24H
27
26
25
24
23
22
21
20
23H
1F
1E
1D
1C
1B
1A
19
18
22H
17
16
15
14
13
12
11
10
21H
0F
0E
0D
0C
0B
0A
09
08
20H
07
06
05
04
03
02
01
00
(3)用户RAM区
在内部RAM低128单元中,工作寄存器占去32个单元,位寻址区占去16个单元,剩下80个单元,就是供用户使用的一般RAM区,其单元地址为30H~7FH(堆栈区)。
2、特殊功能寄存器区(SFR)
内部RAM的高128单元是供给专用寄存器使用的,其单元地址为80H~0FFH。
因这些寄存器的功能已作专门规定,故称之为专用寄存器(SpecialFunctionRegister),也可称为特殊功能寄存器,简称为SFR。
在51系列单片机中,共有21个特殊功能寄存器,它们零散地分布在80H~0FFH的地址空间,如表2.4特殊功能寄存器
名称
位名称
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
单元地址
P0
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
80H(128)
SP
81H(129)
DPL
82H(130)
DPH
83H(131)
PCON
SMOD
87H(135)
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
88H(136)
TMOD
GATE
C/T
M1
M0
GATE
C/T
M1
M0
89H(137)
TL0
8AH(138)
TL1
8BH(139)
TH0
8CH(140)
TH1
8DH(141)
P1
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
90H(144)
SCON
RI
TI
98H(152)
SBUF
99H(153)
P2
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
0A0H(160)
IE
EA
-
ET2
ES
ET1
EX1
ET0
EX0
0A8H(168)
P3
RD
WR
T1
T0
INT1
INT0
TXD
RXD
0B0H(176)
IP
-
-
-
PS
PT1
PX1
PT0
PX0
0B8H(184)
PSW
CY
AC
F0
RS1
RS0
OV
-
P
0D0H(208)
ACC
0E0H(224)
B
0F0H(240)
在这21个特殊功能寄存器中,有些是可以位寻址的,凡是字节地址数能够被8整除的SFR均可位寻址,该寄存器第0位的位地址与寄存器地址相同,且位地址是是连续的。
单片机的21个特殊功能寄存器在单片机复位时(默认值),除SP的值为“07H”,P0、P1、P2及P3的值为“0FFH”(11111111B)外,其它寄存器的值基本上都是“0”,这点在使用时一定要注意。
软件是跟着硬件走的。
关于特殊功能寄存器的用法,在以后章节中陆续会介绍,这里只介绍几个关键的寄存器。
(1)程序状态字(PSW)。
程序状态字(programstateword)是一个8位寄存器,用于存放程序运行中的各种状态信息。
其中有些位的状态是根据程序执行情况,由硬件自动设置的,而有些位的状态则使用软件方法设定。
PSW的位状态可以用指令设置,也可以用指令读出。
一些条件转移指令将根据PSW中专用位的状态,进行条件转移。
PSW的各位定义如表2.5所示。
表2.5程序状态字PSW各位的名称
位序
D7
D6
D5
D4
D3
D2
D1
D0
位名称
CY
AC
F0
RS1
RS0
OV
-
P
除PSW.1位保留未用外,其余各位的定义及使用如下:
CY(PSW.7)——进位标志位。
CY是PSW中最常用的标志位。
其功能有二:
一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果的最高位有进位或借位时,CY由硬件置“1”,否则清“0”;二是在位操作中,作累加位使用。
如位传送、位运算及位判断等位操作。
AC(PSW.6)——辅助进位标志位。
在进行加减运算中,当低4位向高4位进位或借位时,AC由硬件置“1”,否则AC位被清“0”。
在BCD码调整中也要用到AC位。
F0(PSW.5)——用户标志位。
这是一个供用户定义的标志位,需要利用软件方法置位或复位,用以控制程序的转向。
RS1和RS0(PSW.4,PSW.3)——工作寄存器组选择位。
它们被用于选择CPU当前使用的工作寄存器组。
通用寄存器共有4组,其对应关系如表2.6所示:
表2.6当前寄存器组的设定
RS1
RS0
所选的4组寄存器
0
0
0组(内部RAM地址00H~07H)
0
1
1组(内部RAM地址08H~0FH)
1
0
2组(内部RAM地址10H~17H)
1
1
3组(内部RAM地址18H~1FH)
这两个选择位的状态是由软件设置的,被选中的寄存器组即为当前工作寄存器组。
但当单片机上电或复位后,RS1RS0=00。
OV(PSW.2)——溢出标志位。
在对有符号数进行加减运算中,OV=1表示算超出了累加器A所能表示的有符号数的范围(-128~+127),即产生了溢出,因此运算结果是错误的,否则,OV=0表示结果正确,即无溢出产生。
在乘法运算中,OV=1表示乘积超过255,即乘积分别在B与A中,否则,OV=0,表示乘积只放在A中。
在除法运算中,OV=1表示除数为0,除法不能进行,否则,OV=0,除数不为0,除法可正常进行。
P(PSW.0)——奇偶标志位。
表明累加器ACC中数据的奇偶性。
如果ACC中有奇数个“1”,则P置“1”,否则置“0”。
凡是改变累加器ACC中内容的指令均会影响P标志位。
此标志位对串行通信中的数据传输有重要的意义。
在串行通信中常采用奇偶校验的办法来校验数据传输的可靠性。
(2)堆栈指针(SP)。
(队列)(内容里的内容)
堆栈是一个特殊的存储区,用来暂存数据和地址,它是按“先进后出”的原则存取数据的。
堆栈共有两种操作:
进栈和出栈。
有序操作,即按地址序号进行操作。
每往栈区存放一个数,即进栈,SP会自动加1;每出一次栈,SP会自动减1。
进栈和出栈操作的单元就是由SP所指向的片内RAM单元。
由于MCS-51单片机的堆栈设在内部RAM中,因此SP是一个8位寄存器(地址)。
系统复位后,SP的内容为07H,从而使堆栈从08H单元开始。
但08H~1FH单元分别属于工作寄存器的1~3区,如程序要用到这些区,最好把SP值改为1FH或更大。
一般在内部RAM的30H~7FH单元中开辟堆栈。
SP的内容一经确定,堆栈的位置也就跟着确定下来,由于SP可以通过指令修改内容,因此堆栈位置是浮动的。
(3)程序计数器(PC)(程序指针)
计算机的工作过程就是执行程序的过程,我们每个人可能都有这种感觉:
在同一台计算机中,对于一个大的软件其执行速度会很“慢”而小的软件执行速度会很“快”,为什么?
原因在于:
计算机程序是由一条条指令组成的,而计算机是把程序分解成指令来执行的,即同一时刻只执行一条指令,而指令一般是在存储器中存放,却要在CPU中执行,这样就牵扯到在执行每条指令前,首先要将指令从存储器取到CPU中,这个过程称为“取指”,然后再执行。
在CPU中有个专门负责寻找所取指令单元地址的部件,称为PC,也叫程序指针,即PC中存放的是下一条将要执行的指令所在存储器单元的地址值,它的作用是用来找到所取指令的地址,以供CPU
(PSEN)读取,CPU每执行完一个指令,就会自动改变PC的值,即令PC=PC+1,从而使其指向下一条指令的地址。
在MCS-51单片机中,PC的长度是16位的,且是不可寻址的。
高速而有条不紊的按顺序一步步执行程序的。
(跳转例外)(选择,循环)
复位的本质即令PC=0。
(4)外部数据指针(DPTR)(a=*DPTR)
DPTR为16位地址寄存器,主要用于访问外部RAM单元(64KB),其中地址高8位存于DPH,地址低8位存于DPL。
所有的外部数据存储器都要由DPTR指引访问。
(5)累加器(ACC)
ACC是最常用的专用寄存器,在算术运算时用于提供被操作数和存放运算结果,直接与内部总线相连。
另外,单片机中的一般信息传递和交换都要通过ACC。
类似于a=a+b;
对专用寄存器问题作如下几点补充说明:
1)21个可字节寻址的专用寄存器是不连续地分散在内部RAM高128单元之中,尽管还余有许多空闲地址,但用户并不能使用。
2)程序计数器PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。
3)对专用寄存器只能使用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器名称。
2.3.2MCS-51片内程序存储器
MCS-51的程序存储器用于存放用户程序和表格常数。
8051片内有4KB的ROM,8751片内有4KB的EPROM,8031片内无程序存储器。
MCS-51的片外最多能扩展64KB程序存储器,且片内外的ROM是统一编址的。
二者主要由EA(31)引脚来进行区分的,如EA端外接高电平时,8051的程序计数器PC在0000H~0FFFH地址范围内(即前4KB地址)寻址,执行片内ROM中的程序,当PC在1000H~FFFFH地址范围时,自动执行片外程序存储器中的程序;当EA外接
低电平时,只能寻址外部程序存储器,片外存储器可以从0000H开始编址。
MCS-51的程序存储器中有些单元具有特殊功能,使用时应予以注意。
其中一组是0000H~0002H单元。
系统复位后,(PC)=0000H,单片机从0000H单元开始取指令执行程序,因此系统主程序一般要从0号单元入口。
如果主程序不是从0000H单元开始存放,应在0000H单元添加一条能够跳转到主程序所在位置的无条件转移指令,以便一开机就能执行到系统主程序。
还有一组特殊单元是0003H~002AH,共40个单元。
这40个单元被均匀地分为5段,作为单片机5个中断源的中断服务程序入口地址区。
0003H~000AH:
外部中断INT0中断地址区
000BH~0012H:
定时/计数器T0中断地址区
0013H~001AH:
外部中断INT1中断地址区
001BH~0022H:
定时/计数器T1中断地址区
0023H~002AH:
串行中断地址区
友情提示:
范文可能无法思考和涵盖全面,供参考!
最好找专业人士起草或审核后使用,感谢您的下载!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 内部 资源 分配