51寄存器表 51寄存器表

MCS-51单片机的特殊功能寄存器

符号

地址

功能介绍

B

F0H

B寄存器

ACC

E0H

累加器

PSW

D0H

程序状态字

TH2*

CDH

定时器/计数器2(高8位)

TL2*

CCH

定时器/计数器2(低8位)

RCAP2H*

CBH

外部输入(P1.1)计数器/自动再装入模式时初值寄存器高八位

RCAP2L*

CAH

外部输入(P1.1)计数器/自动再装入模式时初值寄存器低八位

T2CON*

C8H

T2定时器/计数器控制寄存器

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

T0、T1定时器/计数器方式控制寄存器

TCON

88H

T0、T1定时器/计数器控制寄存器

DPH

83H

数据地址指针(高8位)

DPL

82H

数据地址指针(低8位)

SP

81H

堆栈指针

P0

80H

P0口锁存器

PCON

87H

电源控制寄存器

寄存器一般使用格式

30H~7FH

一般数据或堆栈使用区

20H~28H

针对固定地址的区域

18H~1FH

寄存器组3

10H~17H

寄存器组2

08H~0FH

寄存器组1

00H~07H

寄存器组0

程序状态字  PSW D0H

D7

D6

D5

D4

D3

D2

D1

D0

CY

AC

F0

RS1

RS0

OV

P

P     :奇偶位;P=0表示A中1的个数是偶数,P=1表示A中1的个数是奇数。

OV   :益出位;OV=1表示运算时有益出产生。

RS0RS1:寄存器组选择位。

RS1

RS0

选择的寄存器组

0

0

寄存器组0

0

1

寄存器组1

1

0

寄存器组2

1

1

寄存器组3

F0    :用户自行设置位。

AC   :补助进位位;AC=1表示运算时较低4位有进位产生。

CY   :进位位;CY=1表示运算时有进位产生。

 

51寄存器表

图 中断系统结构图

3中断允许寄存器  IE A8H

 

D7

D6

D5

D4

D3

D2

D1

D0

EA

ET2

ES

ET1

EX1

ET0

EX0

EA    :整体中断允许位;EA=1允许中断。

ET2   :T2中断允许位;ET2=1允许中断(S52才有)。

ES    :串行中断允许位;ES=1允许中断。

ET1   :T1中断允许位;ET1=1允许中断。

EX1   :INT1中断允许位;EX1=1允许中断。

ET0   :T0中断允许位;ET0=1允许中断。

EX0   :INT0中断允许位;EX0=1允许中断。

入口地址(按优先级): 外中断003H,定时器00BH,外中断113H,定时器11BH,串口—23H

中断优先次序寄存器  IP B8H

D7

D6

D5

D4

D3

D2

D1

D0

PT2

PS

PT1

PX1

PT0

PX0

PT2:T2    PS:串行口    PT1:T1    PX1:INT1    PT0:T0    PX0:INT0

4计时器控制寄存器  TCON 88H

D7

D6

D5

D4

D3

D2

D1

D0

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

→            用于定时/计数器             ←   →               用于中断                ←

TF1  :TF1=1表示T1有中断产生。

TR1  :TR1=1表示T1开始运行。

TF0  :TF0=1表示T0有中断产生。

TR0  :TR0=1表示T0开始运行。

IE1   :IE1=1表示INT1有中断产生。

IT1   :IT1=1表示INT1为下降沿触发,IT1=0表示INT1为低电平触发。

IE0   :IE0=1表示INT0有中断产生。

IT0   :IT0=1表示INT0为下降沿(负跳变)触发,IT0=0表示INT0为低电平触发。

 

51寄存器表51寄存器表

51寄存器表51寄存器表

51寄存器表51寄存器表

51寄存器表51寄存器表

 

2计时器计数器寄存器  TL0 8AH),TH0 8CH),TL1 8BH),TH1 8DH

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

32768

16384

8192

4096

2048

1024

512

256

128

64

32

16

8

4

2

1

        →                TH0(1)                 ←                                      →             TL0(1)                 ←

同过设订两个寄存器中每位代表的数值来决定定时值和计数值。

例:TH=#3CH ,TL=#0B0H  等于15536,它的定时值就为50000。

 

1计时器模式寄存器  TMOD 89H

D7

D6

D5

D4

D3

D2

D1

D0

GATE

C/T

M1

M0

GATE

C/T

M1

M0

                                               →                计时器1                ←   →                计时器0               ←

GATE  :GATE=1时表示T0或T1必须在INT0或INT1是高点位时才会初始化。

C/T    :C/T=1由外引脚T0或T1做计数脉冲,C/T=0由TH和TL做定时数。

M1M0:用来选择计时计数器工作模式

M1

M0

工作模式

说明

0

0

0

13位计时计数器 (8192)

0

1

1

16位计时计数器 (65536)

1

0

2

8位计时计数器,可自动重新载入计数值 (256)

1

1

3

当成两组独立的8位计时器(256,T0和T1不能同时用)

定时器T2

状态控制寄存器  T2CON C8H

D7

D6

D5

D4

D3

D2

D1

D0

TF2

EXF2

RCLK

TCLK

EXEN2

TR2

C/T2

CP/RL2

TF2  :T2中断益出标志;方式2,3置TF2,方式3不置。

EXF2 :T2外中断标志;EXF2=1,T2EX(P1.1)发生负跳变时置EXF2。

TCLK :串行口发送时钟选择标志。

RCLK :串行口接收时钟选择标志。

T2方式选择

 

RCLK或TCLK

CP/RL2

TR2

 

1

0

0

1

16位常数自动再装入方式

2

0

1

1

16位捕获方式

3

1

×

1

串行口波特率发生方式

4

×

×

×

停止

EXEN2 :T2外部允许标志;

EXEN2=1,T2为捕获方式,T2EX(P1.1)发生负跳变时,TL2和TH2的当前值自动捕获到RCAP2L和RCAP2H中,同时置中断标志EXF2。

          EXEN2=0,T2为自动装入方式,T2EX(P1.1)发生负跳变时,RCAP2L和RCAP2H自动装入TL2和TH2中,同时置中断标志EXF2。

C/T2   :外部计数器/定时器选择位;C/T2=1时为计数器,计数脉冲来自T2(P1.0);

                                  C/T2=0时为定时器,以震荡脉冲的十二分频信号为计数信号。

TR2    :T2计数控制位;TR2=1时允许计数/定时。

CP/RL2 :捕获和常数自动再装入方式选择位;CP/RL2=1工作于捕获方式,CP/RL2=0工作于自动再装入方式,RCLK或TCLK为1时CP/RL2被忽略。

 

 

串行口控制寄存器  SCON 98H

D7

D6

D5

D4

D3

D2

D1

D0

SM0

SM1

SM2

REN

TB8

TR8

TI

RI

工作方式选择位  SM0SM1

SM0

SM1

工作模式

说明

波特率

0

0

0

此时串行口为移位寄存器用

震荡频率/12

0

1

1

8位元UART

由T1和SMOD位决定

1

0

2

9位元UART

震荡频率/64 或 震荡频率/32

1

1

3

9位元UART

由T1和SMOD位决定

SM2 :对于方式0:SM2=0。

对于方式1:SM2=1,只有接到有效的停止位才**RI。

对于方式2和3为多机通信控制位;SM2=1,则接收的第9位数据为0时不**RI。

REN :REN=1允许接收数据。

TB8  :在模式2、3时为第9个发送位。

RB8  :在模式2、3时为第9个接收位。

        对于方式1:如SM2=1,RB8为接收的停止位。

TI   :TI=1表示UATR传送完成,产生中断。

RI   :RI=1表示UATR接收完成,产生中断。

附:串行口的四种工作方式

1.  模式 0    同步移位寄存器输入输出模式,可外接移位寄存器,以扩展I/O口。

      (1) 模式  0 输出状态。

51寄存器表

(2) 模式  0 输入状态。

当满足RI=0REN0时,就启动一次接收过程。

51寄存器表

        2. 模式  1

        串行口工作于模式  1 , 为波特率可变的  8 位异步通信接口。数据位由 P3.0 (RXD)端接收, P3.1(TXD)端发送。 传送一帧信息为 10 : 一位起始位(0,  8 位数据位(低位在前)和一位停止位(1)。波特率是可变的, 它取决于定时器 T1 的溢出速率及SMOD的状态。 

        (1) 模式  1 发送过程。 用软件清除 TI,   CPU执行任何一条以 SBUF为目标寄存器的指令, 就启动发送过程。数据由  TXD引脚输出, 此时的发送移位脉冲是由定时器  /计数器 T1 送来的溢出信号经过 16 32 分频而取得的。一帧信号发送完时, 将置位发送中断标志TI=1, CPU申请中断, 完成一次发送过程。

        (2) 模式  1 接收过程。

        用软件清除 RI, 当允许接收位  REN被置位  1 , 接收器以选定波特率的 16 倍的速率采样  RXD引脚上的电平, 即在一个数据位期间有 16 个检测脉冲, 并在第 789 个脉冲期间采样接收信号, 然后用三中取二的原则确定检测值, 以抑制干扰。 并且采样是在每个数据位的中间, 避免了信号边沿的波形失真造成的采样错误。当检测到有从10的负跳变时, 则启动接收过程, 在接收移位脉冲的控制下, 接收完一帧信息。 当最后一次移位脉冲产生时能满足下列两个条件

   ① RI=0; 

   ② 接收到的停止位为  1 或   SM2=0

        则停止位送入RB88位数据进入SBUF,并置RI1,完成一次接收过程。否则,所接收到的一桢信息将丢失,接收器复位,并从新开始检测负跳变,以便接收下一桢信息。

     注意:接收中断标志RI应由软件清除。

        3. 模式  2 和模式  3

       串行口工作于模式 2 和模式  3 , 被定义为  9 位异步通信接口。 它们的每帧数据结构是 11 位的: 最低位是起始位(0, 其后是  8 位数据位(低位在先), 10 位是用户定义位(SCON中的   TB8或  RB8, 最后一位是停止位(1)。模式  2 和模式3 工作原理相似, 唯一的差别是模式   2 的波特率是固定的, 即为 fOSC / 32fOSC / 64; 而模式 3的波特率是可变的, 与定时器 T1的溢出率有关。

        (1) 模式 2和模式 3的发送过程。

        发送过程是由执行任何一条 SBUF为目的寄存器的指令来启动的。 由写入SBUF信号把 8位数据装入 SBUF, 同时还把   TB8 装入发送移位寄存器的第  9 , 并通知发送控制器要求进行一次发送。发送开始, 把一个起始位(0)送到  TXD端。 移位后, 数据由移位寄存器送到TXD端。再过一位, 出现第一个移位脉冲。 第一次移位时, 把一个停止位1由控制器的停止位发生端送入移位寄存器的第 9 位。 此后, 每次移位时, 把  0 送入第 9 位。因此, TB8 的内容送到移位寄存器的输出位置时, 其左面一位是停止位1, 而再往左的所有位全为0。 这种状态由零检测器检测到后, 就通知发送控制器作最后一次移位, 然后置  TI=1, 请求申请中断。第 9 位数据(TB8)由软件置位或清零, 可以作为数据的奇偶校验位, 也可以作为多机通信中的地址、数据标志位。如把 TB8 作为奇偶校验位, 可以在发送程序中, 在数据写入 SBUF之前, 先将数据位写入  TB8。  

       (2) 模式2和模式3接收过程。

       与模式  1类似, 模式  2和模式  3接收过程始于在  RXD端检测到负跳变时,为此, CPU以波特率 16倍的采样速率对  RXD端不断采样。一检测到负跳变, 16分频计数器就立刻复位, 同时把1FFH写入输入移位寄存器。计数器的16个状态把一位时间等分成16, 在每一位的第789个状态时, 位检测器对  RXD端的值采样。如果所接收到的起始位无效(为1,则复位接收电路, 等待另一个负跳变的到来。 若起始位有效(为  0)则起始位移入移位寄存器, 并开始接收这一帧的其余位。 当起始位  0 移到最左面时, 通知接收控制器进行最后一次移位。 把  8 位数据装入接收缓冲器 SBUF, 第  9 位数据装入SCON中的  RB8, 并置中断标志RI=1

       装入 SBUF和  RB8以及置位 RI的信号只有在产生最后一个移位脉冲且同满足下列两个条件, 才会产生

  ①   RI=0; 

  ②  SM2 =0 或接收到的第 9 位数据为1。 

       上述两个条件中任一个不满足, 所接收的数据帧就会丢失, 不再恢复。 两者都满足时, 第  9 位数据装入  TB8, 前  8 位数据装入 SBUF。 

       请注意: 与模式  1 不同, 模式  2 和  3 中装入  RB8 的是第  9 位数据, 而不是停止位。所接收的停止位的值与SBUFRB8 RI都没有关系, 利用这一特点可用于多机通信中。

 

常用波特率表 (用11.0592M晶震)

波特率

TH1

SMOD

1200

TH1=E8H

0

2400

TH1=F4H

0

4800

TH1=FAH

0

9600

TH1=FDH

0

19200

TH1=FDH

1

波特率的计算

方式1: SMOD=0,   波特率=   1    ×        晶震频率   

                                                  32         12×(256—TH1)

        SMOD=1,    波特率=   1    ×        晶震频率   

                                              16         12×(256—TH1)

方式2: SMOD=0,   波特率=   1    ×        晶震频率   

                                                  32                 12

SMOD=1,   波特率=   1    ×        晶震频率   

                                     16                 12

方式3: 同方式1

波特率与电源管理寄存器  PCON 87H

D7

D6

D5

D4

D3

D2

D1

D0

SMOD

CF1

GF0

PD

IDL

SMOD :波特率倍增位 SMOD=1为16位,SMOD=0为32位。

CF1GF0:为一般用途标记。

PD    :停止运行控制位,PD=1时进入停止模式(在复位或外中断产生时恢复)。

IDL   :闲置模式控制位,IDL=1时进入闲置模式(在复位或重新上电时恢复)。

 

相关文章:

  • 2021-05-21
  • 2022-12-23
  • 2021-05-26
猜你喜欢
  • 2021-05-24
  • 2021-06-23
  • 2022-02-01
  • 2022-12-23
  • 2021-11-09
  • 2022-12-23
相关资源
相似解决方案