80C51单片机片内RAM的地址空间80H~FFH为特殊功能寄存器(SFR)区,有21个特殊功能寄存器,它们离散地分布在80H~FFH的RAM空间中。访问特殊功能寄存器只允许使用直接寻址方式,这些特殊功能寄存器见表2-4所示。
在表2-4中,有21个特殊功能寄存器,有些特殊功能寄存器的符号地址上标有“※”号,它表示该特殊功能寄存器既可以位寻址也可以字节寻址。表中有10个寄存器是既可以
表2-4 80C51单片机特殊功能寄存器表
位寻址也可以字节寻址,特征是它们的字节地址正好能被8整除,其地址分布见表2-5。下面介绍部分特殊功能寄存器,其余将在后续章节中讲述。
表2-5 特殊功能寄存器地址表
(续)
1)累加器ACC是80C51单片机最常用的8位特殊功能寄存器;在执行运算指令时,许多指令的操作数取自于ACC,许多运算中间结果也存放于ACC中。在指令系统中用A作为累加器ACC的助记符。
2)寄存器B在乘、除指令中使用最多。乘法指令的两个操作数分别取自A和B,乘积存于B和A两个8位寄存器中。详见乘除法指令,在其他指令中,B可作为一般通用寄存器或一个RAM单元使用。
3)程序状态字寄存器PSW,它的8位包含了程序执行后的状态信息,供程序查询和判断之用。其各位含义如下:(www.xing528.com)
CY:进位、借位标志位,有进位、借位时CY=1,否则CY=0。
AC:辅助进位、借位标志位,当高半字节与低半字节间有进位或借位时AC=1,否则AC=0。
F0:用户标志位,由用户自己定义。
RS1、RS0:当前工作寄存器组选择位,工作寄存器地址表见表2-2。
OV:溢出标志位,有溢出时OV=1,否则OV=0。
P:奇偶标志位,存于ACC中的运算结果有奇数个1时P=1,否则P=0。
4)8位堆栈指针寄存器SP,它总是指向栈顶。80C51单片机的堆栈通常设在30H~7FH这一段RAM中。在系统上电或复位时,SP的初始值为07H,可以在初始化程序中重新设置。
80C51单片机堆栈操作遵循“先进后出,后进先出”的原则:入栈操作时,首先执行SP加1操作,然后数据入栈存入SP指向的单元;出栈操作时,先将SP指向单元的数据弹出,然后执行SP减1操作,这时SP指向的单元是新的栈顶。由此可见,80C51单片机的堆栈区是向地址增大的方向生成的。
5)16位数据指针寄存器DPTR,通常作为地址寄存器使用,用于存放16位地址,也可以分成两个8位寄存器DPH和DPL使用。可以对片外64KB范围的RAM/ROM数据进行间接寻址或变址寻址操作。
6)并行I/O端口锁存器P0~P3,它们都可以进行位寻址和字节寻址。每一条I/O线均可以作为输入和输出使用,输出时可以锁存数据,输入时可以进行数据缓冲。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。