51单片机寄存器详解

  • 格式:pdf
  • 大小:101.83 KB
  • 文档页数:5

51单片机寄存器详解

符号 地址 功能介绍

B F0H B寄存器

ACC E0H 累加器

PSW D0H 程序状态字

IP B8H 中断优先级控制寄存器

P3 B0H P3口锁存器

IE A8H 中断允许控制寄存器

P2 A0H P2口锁存器

SBUF 99H 串行口锁存器

SCON 98H 串行口控制寄存器

P1 90H P1口锁存器

TH1 8DH 定时器/计数器1(高8位)

TH0 8CH 定时器/计数器1(低8位)

TL1 8BH 定时器/计数器0(高8位)

TL0 8AH 定时器/计数器0(低8位)

TMOD 89H 定时器/计数器方式控制寄存器

TCON 88H 定时器/计数器控制寄存器

DPH 83H 数据地址指针(高8位)

DPL 82H 数据地址指针(低8位)

SP 81H 堆栈指针

P0 80H P0口锁存器

PCON 87H 电源控制寄存器

PSW_7 PSW_6 PSW_5 PSW_4 PSW_3 PSW_2 PSW_1 PSW_0

CY AC F0 RS1 RS0 OV USR P

状态寄存器:PSW

CY 进位标志位

AC 辅助进位标志位 F0 通用标志位

RS1 寄存器组选择位高位

RS0 寄存器组选择位低位

OV 溢出标志位

USR 用户定义标志位

P 奇偶标志位

PCON_7 PCON_6 PCON_5 PCON_4 PCON_3 PCON_2 PCON_1 PCON_0

SMOD - - - GF1 GF0 PDWN IDLE

电源控制寄存器:PCON

SMOD 串行口通信波特率

控制位置位使波特率翻倍

- 保留

- 保留

- 保留

GF1 通用标志位

GF0 通用标志位

PDWN 低功耗标志位置位进入

低功耗模式

IDLE 空闲标志位置位进入

空闲模式

IP_7 IP_6 IP_5 IP_4 IP_3 IP_2 IP_1 IP_0

- - PT2 PS PT1 PX1 PT0 PX0

中断优先级寄存器:IP

- 保留

- 保留

PT2 定时器2 中断优先级

PS 串行通信中断优先级

PT1 定时器1 中断优先级

PX1 外部中断1 优先级

PT0 定时器0 中断优先级

PX0 外部中断0 优先级 处理器的状态保存在状态寄存器PSW 中,状态

字中包括进位位,用于BCD 码处理的辅助进位位,

奇偶标志位,溢出标志位,还有前面提到的用于

寄存器组选择的RS0 和RS1。0组从地址00H开始,

1组从地址08H开始,2组从地址10H开始,3组从地

址18H开始。这些地址都可通过直接或间接方式进

行寻址。

设置电源控制寄存器PCON 的相应位来进入节电方式,

置位IDLE 进入空闲模式,空闲模式将停止程序执行,RAM 中

的数据仍然保持,晶振继续工作,但与CPU 断开。定时器和

串行口继续工作。发生中断将退出中断模式。执行完中断程

序后,将从程序停止的地方继续指令的执行。通过置位PDWN

位来进入低功耗模式,低功耗模式中晶振将停止工作,因此

定时器和串行口都将停止工作。至少有两伏的电压加在芯片

上,因此,RAM 中的数据仍将保存。退出低功耗模式只有两

种方式,上电或复位。SMOD 位可控制串行通信的波特率,

将使由定时器1 的溢出率或晶振频率产生的波特率翻倍。置

位SMOD 可使工作于方式1,2,3 定时器产生的波特率翻倍。

当使用定时器2 产生波特率时SMOD 将不影响波特率。

每个中断源都可通过设置中断优先级寄存器

IP 来单独设置中断优先级。如果每个中断源的相

应位被置位则该中断源的优先级为高。如果相应

的位被复位则该中断源的优先级为低。 EA_7 EA_6 EA_5 EA_4 EA_3 EA_2 EA_1 EA_0

EA - ET2 ES ET1 EX1 ET0 EX0

中断使能寄存器:EA

EA 使能标志,位置位则所有中断使能,复位则禁止所有中断

- 保留

ET2 定时器2 中断使能

ES 串行通信中断使能

ET1 定时器1 中断使能

EX1 外部中断1 使能

ET0 定时器0 中断使能

EX0 外部中断0 使能

TCON_7 TCON_6 TCON_5 TCON_4 TCON_3 TCON_2 TCON_1 TCON_0

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

定时器控制寄存器:TCON

TF1 定时器1 溢出中断标志响应中断后由处理器清零

TR1 定时器1 控制位置位时定时器1 工作复位时定时器1 停止工作

TF0 定时器0 溢出标志位定时器0 溢出时置位处理器响应中断后清除该位

TR0 定时器0 控制位置位时定时器0 工作复位时定时器0 停止工作

IE1 外部中断1 触发标志位当检测到P3.3 有从高到低的跳变电平时置位处

理器响应中断后由硬件清除该位

IT1 中断1 触发方式控制位置位时为跳变触发复位时为低电平触发

IE0 外部中断1 触发标志位当检测到P3.3 有从高到低的跳变电平时置位处

理器响应中断后由硬件清除该位

IT0 中断1 触发方式控制位置位时为跳变触发复位时为低电平触发

TMOD_7 TMOD_6 TMOD_5 TMOD_4 TMOD_3 TMOD_2 TMOD_1 TMOD_0

GATE C/T M1 MO GATE C/T M1 MO

定时器1 定时器0

定时器工作模式寄存器:TMOD

GATE 当GATE 置位时定时器仅当TR=1 并且INT=1 时才工作如果GATE=0

置位TR 定时器就开始工作

C/T 定时器方式选择如果C/T=1 定时器以计数方式工作C/T=0 时以

定时方式工作

M1 模式选择位高位

M0 模式选择位低位

通过设置中断使能寄存器IE

的EA,位使能所有中断,每个中断

源都有单独的使能位,可通过软件

设置IE 中相应的使能位在任何时

候使能或禁能中断。

可通过C/T 位的设置来选择定时器的时钟源。C/T=1,定时器以

计数方式工作对(I/0,引脚脉冲计数),C/T=0 时,以定时方式工

作对(内部时钟脉冲计数)。当定时器用来对内部时钟脉冲计数时,

可通过硬件或软件来控制。GATE=0 为软件控制,置位TR 定时器就

开始工作,GATE=1 为硬件控制,当TR=1 并且INT=1 时定时器才工

作。当INT 脚给出低电平时定时器将停止工作。这在测量INT 脚的

脉冲宽度时十分有用,当然,INT 脚不作为外部中断使用。 T2CON_7 T2CON_6 T2CON_5 T2CON_4 T2CON_3 T2CON_2 T2CON_1 T2CON_0

TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2

定时器2控制寄存器:T2CON

TF2 定时器2 溢出标志位.定时器2 溢出时将置位.当TCLK 或RCLK 为1 时,将不会置位

EXF2 定时器2 外部标志,当EXEN2=1, 并在引脚T2EX 检测到负跳变时置位.如果定时器2

中断被允许,将产生中断.

RCLK 接收时钟标志,当串行口以方式1 或3 工作时,将使用定时器2 的溢出率作为串行

口接收时钟频率

TCLK 发送时钟标志,位当串行口以方式1 或3 工作时,将使用定时器2的溢出率作为串行

口接收时钟频率

EXEN2 定时器2 外部允许标志,当EXEN2=1 时,在T2EX 引脚出现负跳变时将造成定时器2

捕捉或重装,并置位EXF2,产生中断

TR2 定时器运行控制位,置位时,定时器2 将开始工作,否则定时器2 停止工作

C/T2 定时器计数方式选择位,如果C/T2=1,定时器2 将作为外部事件计数器,否则对内部

时钟脉冲计数

CP/RL2 捕捉/重装标志位,当EXEN2=1,时如果CP/RL2=1,T2EX 引脚的负跳变将造成捕捉,

如果CP/RL2=0 ,T2EX 引脚的负跳变将造成重装

定时器工作方式0 和方式1

定时器通过软件控制有四种工作方式,方式0为十三位定时/计数器方式,定时器溢出时置位TF0

或TF1,并产生中断.方式1 将以十六位定时/计数器方式工作,除此之外和方式0 一样.

定时器工作方式2

方式2 为8 位自动重装工作方式.定时器的低8 位TL0 或TL1 用来计数,高8位(TH0或TH1)用来存

放重装数值.当定时器溢出时,TH 中的数值被装入TL中.定时器0 和定时器1 在方式2 时是同样的,定

时器1 常用此方式来产生波特率.

定时器工作方式3

方式3 时,定时器0 成为两个8 位定时/计数器(TH0 和TL0 ).TH0 对应于TMOD 中定时器0 的控

制位,而TL0 占据了TMOD 中定时器1 的控制位.这样定时器1 将不能产生溢出中断了,但可用于其它

不需产生中断的场合,如作为波特率发生器或作为定时计数器被软件查询.当系统需要用定时器1 来

产生波特率,而又同时需要两个定时/计数器时,这种工作方式十分有用.当定时器1 设置为工作方式3

时,将停止工作.

SCON_7 SCON_6 SCON_5 SCON_4 SCON_3 SCON_2 SCON_1 SCON_0

SM0 SM1 SM2 REN TB8 RB8 TI RI

串行控制器:SCON

SM0 串行模式选择

SM1 串行模式选择