2024年4月25日发(作者:芒艳)
21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,
地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,
但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一
个技巧:其地址能被8整除的都可以位寻址)。
在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、
P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数
器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元
是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。这样的特殊功能寄存器51单
片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存
器):
MCS-51单片机的特殊功能寄存器
符号
B
ACC
PSW
TH2*
TL2*
地址
F0H
E0H
D0H
功能介绍
B寄存器
累加器
程序状态字
定时器/计数器2(高8位)
定时器/计数器2(低8位)
外部输入(P1.1)计数器/自动再装入模式时初值寄存器高八位
外部输入(P1.1)计数器/自动再装入模式时初值寄存器低八位
T2定时器/计数器控制寄存器
B8H
B0H
A8H
A0H
99H
中断优先级控制寄存器
P3口锁存器
中断允许控制寄存器
P2口锁存器
串行口锁存器
CDH
CCH
RCAP2H* CBH
RCAP2L*
T2CON*
IP
P3
IE
P2
SBUF
SCO
N
CAH
C8H
98H
串行口控制寄存器
P1
TH1
TH0
TL1
TL0
TMO
D
TCO
N
DPH
DPL
SP
P0
PCO
N
90H
8DH
8CH
8BH
8AH
P1口锁存器
定时器/计数器1(高8位)
定时器/计数器1(低8位)
定时器/计数器0(高8位)
定时器/计数器0(低8位)
89H
T0、T1定时器/计数器方式控制寄存器
88H
T0、T1定时器/计数器控制寄存器
83H
82H
81H
80H
数据地址指针(高8位)
数据地址指针(低8位)
堆栈指针
P0口锁存器
87H
电源控制寄存器
分别说明如下:
1、ACC---是累加器,通常用A表示
这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的
东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在
ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,
所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。
该标志常用作程序分枝转移的判断条件。
2、B--一个寄存器
在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3、PSW-----程序状态字。
2024年4月25日发(作者:芒艳)
21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,
地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,
但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一
个技巧:其地址能被8整除的都可以位寻址)。
在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、
P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数
器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元
是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。这样的特殊功能寄存器51单
片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存
器):
MCS-51单片机的特殊功能寄存器
符号
B
ACC
PSW
TH2*
TL2*
地址
F0H
E0H
D0H
功能介绍
B寄存器
累加器
程序状态字
定时器/计数器2(高8位)
定时器/计数器2(低8位)
外部输入(P1.1)计数器/自动再装入模式时初值寄存器高八位
外部输入(P1.1)计数器/自动再装入模式时初值寄存器低八位
T2定时器/计数器控制寄存器
B8H
B0H
A8H
A0H
99H
中断优先级控制寄存器
P3口锁存器
中断允许控制寄存器
P2口锁存器
串行口锁存器
CDH
CCH
RCAP2H* CBH
RCAP2L*
T2CON*
IP
P3
IE
P2
SBUF
SCO
N
CAH
C8H
98H
串行口控制寄存器
P1
TH1
TH0
TL1
TL0
TMO
D
TCO
N
DPH
DPL
SP
P0
PCO
N
90H
8DH
8CH
8BH
8AH
P1口锁存器
定时器/计数器1(高8位)
定时器/计数器1(低8位)
定时器/计数器0(高8位)
定时器/计数器0(低8位)
89H
T0、T1定时器/计数器方式控制寄存器
88H
T0、T1定时器/计数器控制寄存器
83H
82H
81H
80H
数据地址指针(高8位)
数据地址指针(低8位)
堆栈指针
P0口锁存器
87H
电源控制寄存器
分别说明如下:
1、ACC---是累加器,通常用A表示
这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的
东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在
ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,
所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。
该标志常用作程序分枝转移的判断条件。
2、B--一个寄存器
在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3、PSW-----程序状态字。