2.3.3 80C51单片机的特殊功能寄存器
80C51单片机中设置了与片内RAM统一编址的21个SFR,它们离散地分布在80 H~FFH的地址空间中。字节地址能被8整除的(即十六进制的地址码尾数为0或8的)单元是具有位地址的寄存器。在SFR地址空间中,有效位地址共有83个,如表2-5所示。访问SFR只允许使用直接寻址方式。
表2-5 80C51单片机特殊功能寄存器位地址及字节地址表
SFR每一位的定义和作用与单片机各部件直接相关。
1.与运算器相关的寄存器(3个)
累加器A(8位)。累加器A是80C51单片机中最频繁使用的寄存器,用于向ALU提供操作数,许多运算的结果也存放在累加器中。
寄存器B(8位)。寄存器B主要用于乘、除法运算,也可以作为RAM的一个单元使用。
程序状态字寄存器(8位)。它用来保存ALU运算结果的特征和处理器状态,其中RS1和RS0位用来设定当前工作寄存器组。
2.指针类寄存器(3个)
堆栈指针SP(8位)。它总是指向栈顶,复位初始值为07H。
数据指针DPTR(16位)。它用来存放16位的地址,由两个8位寄存器DPH和DPL组成,可对片外64KB范围的RAM或ROM数据进行间接寻址或变址寻址操作。
3.与口相关的寄存器(7个)
并行I/O端口P0、P1、P2、P3(均为8位)。通过对这4个寄存器的读/写操作,可以实现数据从相应并口的输入/输出。
串行口数据缓冲器(SBUF)。
串行口控制寄存器(SCON)。
串行通信波特率倍增寄存器(PCON)(该寄存器还与电源控制相关,所以又称为电源控制及波特率选择寄存器)。
4.与中断相关的寄存器(2个)
中断允许控制寄存器IE。
中断优先级控制寄存器IP。
5.与定时器/计数器相关的寄存器(6个)
定时器/计数器T0的两个8位计数初值寄存器TH0、TL0,它们可以构成16位的计数器,TH0存放高8位,TL0存放低8位。
定时器/计数器T1的两个8位计数初值寄存器TH1、TL1,它们可以构成16位的计数器,TH1存放高8位,TL1存放低8位。
定时器/计数器的工作方式选择寄存器TMOD。
定时器/计数器的控制寄存器TCON。