微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 89C51单片机内部结构深度解析三

89C51单片机内部结构深度解析三

时间:11-26 来源:互联网 点击:
89C51单片机内部结构深度解析三:单片机RAM地址空间



单片机的工作寄存器:00H~1FH

单片机在工作时需要处理大量的数据,这些数据有些要用来运算,有些要反复调用,有些用来比较检验,这时单片机就需要有这些位置暂时存放这些数据,以方便后面数据的处理,而单片机提供暂存数据的地方就是工作寄存器。工作寄存器有4组,每组都是8个工作寄存器R0~R7,通过PSW中的RS1、RS0两位来选择使用哪一组,如果不选,默认是选择第0组。
RS1RS0组合为00时,选中第0组工作寄存器,R0~R7地址为00H~07H;
RS1RS0组合为01时,选中第1组工作寄存器,R0~R7地址为08H~0FH;
RS1RS0组合为10时,选中第2组工作寄存器,R0~R7地址为10H~17H;
RS1RS0组合为11时,选中第3组工作寄存器,R0~R7地址为18H~1FH。

真正的RAM:20H~7FH

SFR:special function register,特殊功能寄存器的总称,是单片计算机中的一组特殊的临时存储区域,用于动态存放计算机运行过程的一些状态信息、并依此做相应的控制,总共21个。

地址

高位(MSB)位定义低位(LSB)

7

6

5

4

3

2

1

0

0xFF

0xFE

0xFD

0xFC

0xFB

*CCAP1H

0xFA

*CCAP0H

0xF9

*CH

0xF8

0xF7

0xF6

0xF5

0xF4

0xF3

*PCA_PWM1

0xF2

*PCA_PWM0

0xF1

0xF0

B(通用寄存器B,初值:0000 0000)

0

0

0

0

0

0

0

0

0xEF

0xEE

0xED

0xEC

0xEB

*CCAP1L

0xEA

*CCAP0L

0xE9

*CL

0xE8

0xE7

0xE6

0xE5

0xE4

0xE3

0xE2

0xE1

0xE0

ACC(累加器,初值:0000 0000)

0

0

0

0

0

0

0

0

0xDF

0xDE

0xDD

0xDC

0xDB

*CCAPM1

0xDA

*CCAPM0

0xD9

*CMOD

0xD8

*CCON

0xD7

0xD6

0xD5

0xD4

0xD3

0xD2

0xD1

0xD0

PSW(程序状态寄存器,初值:0000 0000)

CY

AC

F0

RS1

RS0

OV

F1

P

0xCF

*SPDAT

0xCE

*SPCTL

0xCD

*SPSTAT

0xCC

0xCB

0xCA

*P5M0

0xC9

*P5M1

0xC8

*P5

0xC7

*IAP_CONTR

0xC6

*IAP_TRIG

0xC5

*IAP_CMD

0xC4

*IAP_ADDRL

0xC3

*IAP_ADDRH

0xC2

*IAP_DATA

0xC1

*WDT_CONTR

0xC0

*P4

0xBF

0xBE

*ADC_RESL

0xBD

*ADC_RES

0xBC

*ADC_CONTR

0xBB

*P4SW

0xBA

0xB9

*SADEN

0xB8

IP(中断优先级寄存器,初值:0000 0000)

*PPCA

*PLVD

*PADC

PS

PT1

PX1

PT0

PX0

0xB7

*IPH

0xB6

*IP2H

0xB5

*IP2

0xB4

*P4M0

0xB3

*P4M1

0xB2

*P3M0

0xB1

*P3M1

0xB0

P3(I/O接口第3组,初值:1x11 1111)

P3.7

P3.6

P3.5

P3.4

P3.3

P3.2

P3.1

P3.0

0xAF

*IE2

0xAE

0xAD

0xAC

0xAB

0xAA

0xA9

*SADDR

0xA8

IE(中断控制寄存器,初值:0000 0000)

EA

*ELVD

*EADC

ES

ET1

EX1

ET0

EX0

0xA7

0xA6

0xA5

0xA4

0xA3

0xA2

*AUXR1

0xA1

*BUS_SPEED

0xA0

P2(I/O接口第2组,初值:1111 1111)

P2.7

P2.6

P2.5

P2.4

P2.3

P2.2

P2.1

P2.0

0x9F

0x9E

*P1ASF

0x9D

*BRT

0x9C

*S2BUF

0x9B

*S2CON

0x9A

0x99

SBUF(UART串口数据寄存器,初值:xxxx xxxx)

0

0

0

0

0

0

0

0

0x98

SCON(UART串口控制寄存器,初值:0000 0000)

SM0

SM1

SM2

REN

TB8

RB8

T1

R1

0x97

*CLK_div

0x96

*P2M0

0x95

*P2M1

0x94

*P0M0

0x93

*P0M1

0x92

*P1M0

0x91

*P1M1

0x90

P1(I/O接口第1组,初值:1111 1111)

P1.7

P1.6

P1.5

P1.4

P1.3

P1.2

P1.1

P1.0

0x8F

*WAKE_CLK0

0x8E

*AUXR

0x8D

TH1(T1定时/计数器16位寄存器高8位,初值:0000 0000)

0

0

0

0

0

0

0

0

0x8C

TH0(T0定时/计数器16位寄存器高8位,初值:0000 0000)

0

0

0

0

0

0

0

0

0x8B

TL1(T1定时/计数器16位寄存器低8位,初值:0000 0000)

0

0

0

0

0

0

0

0

0x8A

TL0(T0定时/计数器16位寄存器低8位,初值:0000 0000)

0

0

0

0

0

0

0

0

0x89

TMOD(定时/计数器方式控制寄存器,初值:0000 0000)

GATE

C/T

M1

M0

GATE

C/T

M1

M0

0x88

TCON(定时/计数器控制寄存器,初值:0000 0000)

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

0x87

PCON(电源控制寄存器,初值:0011 0000)

SMOD

SMOD0

*LVDF

POF

GF1

GF0

PD

IDL

0x86

0x85

0x84

0x83

DPH(通用16位指针高8位,初值:0000 0000)

0

0

0

0

0

0

0

0

0x82

DPL(通用16位指针低8位,初值:0000 0000)

0

0

0

0

0

0

0

0

0x81

SP(堆栈指针,初值:0000 0111)

0

0

0

0

0

1

1

1

0x80

P0(I/O接口第0组,初值:xxxx 1111)

P0.7

P0.6

P0.5

P0.4

P0.3

P0.2

P0.1

P0.0



Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top