单片机内部资源分配
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.3 单片机内部资源分配
2.3.1 MCS-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。因这些寄存器的功能已作专门规定,故称之为专用寄存器(Special Function Register),也可称为特殊功能寄存器,简称为SFR。在51系列单片机中,共有21个特殊功能寄存器,它们零散地分布在80H~0FFH的地址空间,如
表2.4 特殊功能寄存器
名称位名称单元地址
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)