8051单片机常用的一些寄存器

更新时间:2023-07-21 20:31:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

8051单片机常用的一些寄存器

1.程序计数器(PC)

程序计数器PC在物理上是独立的,不属于SFR之列。PC字长16位,是专门用来控制指令 行顺序的寄存器。单片机上电或复位后,PC=0000H, 制单片机从程序的零单元开始 行程序。

2.累加器(ACC)

累 器ACC是8051单片机内部最常用的寄存器,也可写作A。常用于存放参 算术或逻辑运算的 作数及运算结果。

3.B寄存器

B寄存器在乘法和除法运算中须与累 器A配合使用。MUL AB指令把累 器A和寄存器B中的8位无符号数相乘,所得的16位乘积的低字节存放在A中,高字节存放在B中。DIV AB指令用B除以A,整数商存放在A中,余数存放在B中。寄存器B还可以用作通用暂存寄存器。

4.程序状态字(PSW)寄存器

SFR nameAddressPSW

D0H

bitname

B7CY

B6AC

B5F0

B4RS1

B3RS0

B2OV

B1F1

B0P

CY : 标志位。进行 法运算时,当最高位即B7位有进位,或 行减法运算最高位有借位时,

CY为1;反之为0AC : 进位辅助位。进行 法运算时,当B3位有进位,或 行减法运算B3有借位时,AC为1;

反之为0。设置辅助进位标志AC的目的是为了便于BCD码 法、减法运算的调整。F0 : 用户标志位0。

RS1、RS0: 工作寄存器组的选择位。RS1、RS0: 工作寄存器组的选择位。如下表

OV : 溢出标志位.F0 : 用户标志位1。B1 : 保留位

P : 奇偶标志位。该标志位始终体现累 器ACC中1的个数的奇偶性。如果累 器ACC中1的个数为奇数,则P置1;当累 器ACC中的个数为偶数(包括0个)时,P位为0

5.堆栈指针(SP)

堆栈指 是一个8位专用寄存器。它指示出堆栈顶部在内部RAM块中的位置。系统复位后,SP初始化位07H,使得堆栈事实上由08H单元开始,考虑08H~1FH单元分别属于工作寄存器组1~3,若在程序设计中用到这些区,则最好把SP 改变为80H或更大的 为宜。STC12C5A60S2系列单片机的堆栈是向上生长的,即将数据压入堆栈后,SP内容增大。

6.数据指针(DPTR)

数据指 (DPTR)是一个16位专用寄存器,由DPL(低8位)和DPH(高8位)组成,地址是82H(DPL,低字节)和83H(DPH,高字节)。DPTR是传统8051机中唯一可以直接进行16位 作的寄存器也可分别对DPL河DPH按字节进行 作。STC12C5A60S2系列单片机有两个16位的数据指 DPRT0和DPTR1.这两个数据指 共用同一个地址空间,可通过设置DPS/AUXR1.0来选择具体被使用的数据指 。

12C5A60PWM/AD/S2 系列8051 单片机 双数据指 特殊功能寄存器

DPSDPS

DPTR registers select bit. DPTR 寄存器选择位0: DPTR0 is selectedDPTR0被选择1: DPTR1 is selectedDPTR1被选择

此系列单片机有两个16-bit数椐指 ,DPTR0,DPTR1.当DPS选择位为0时,选择DPTR0, 当DPS选择位为1时,选择DPTR1.

AUXR1特殊功能寄存器,位于A2H单元,其中的位不可用布尔指令快速访问.但由于DPS位位于bit0,故对AUXR1寄存器用INC指令,DPS位便会反转,由0变成1或由1变成0,即可实现双数椐指 的快速切换.

应用示例供参考:

;新增特殊功能寄存器定义

AUXR1 DATA 0A2HMOV AUXR1, #0

MOV MOV MOVX MOV MOV MOVX

DPTR, #1FFH A, #55H@DPTR, A DPTR, #2FFH A, #0AAH@DPTR, A

;此时DPS为0,DPTR0有效;置DPTR0为1FFH;将1FFH单元置为55H;置DPTR0为2FFH;将2FFH单元置为0AAH

INC MOV MOVX INC MOVX INC AUXR1 ; 此时DPS为1,DPTR1有效DPTR, #1FFH ; 置DPTR1为1FFHA, @DPTR ;读DPTR1数椐指 指向的1FFH单元的内容,累 器A变为55H.AUXR1 ; 此时DPS为0,DPTR0有效A, @DPTR ;读DPTR0数椐指 指向的2FFH单元的内容,累 器A变为0AAH.AUXR1 ; 此时DPS为1,DPTR1有效MOVX A, INC AUXR1 MOVX

A, @DPTR ; 读DPTR1数椐指 指向的1FFH单元的内容,累 器A变为55H.; 此时DPS为0,DPTR0有效@DPTR ;读DPTR0数椐指 指向的2FFH单元的内容,累 器A变为0AAH.

本文来源:https://www.bwwdw.com/article/7ecm.html

Top