TMOD、TCON、SCON、PCON、SBUF寄存器说明

TMOD:定时器/计数器工作方式寄存器


 TCON:定时器/计数器控制寄存器

       


SCON:串行口控制寄存器

串行口控制寄存器SCON决定串行口通信工作方式,控制数据的接收和发送,并标示串行口的工作状态等,其位格式为:

SMO、SM1:串行口工作方式控制位,对应4种工作方式,如表7-1所示(fosc是晶振频率)。

SM2

多机通信控制位,主要用于工作方式2和工作方式3。

若SM2=1,则允许多机通信。

多机通信规定:第9位数据位为1 (即TB8=1),说明本帧数据为地址帧:第9位数据为0(即TB8=0),则本帧数据为数据帧。

当从机接收到的第9位数据(在RB8中)为1时,数据才装入接收缓冲器SBUF,并置RI=1向CPU申请中断;如果接收到的第9位数据(在RB8中)为0,则不置位中断标志RL信息丢失。

当SM2=0时,则不管接收到第9位数据是否为1,都产生中断标志RI,并将接收到的数据装入SBUF。应用这一特点可以实现多机通信。

串行口工作在方式0时,SM2必须设置为0;工作在方式1时,如SM2=1,则只有接收到有效的停止位时才会激活RI。

REN:允许接收控制位。当REN=1时,允许接收;当REN=0时,禁止接收。此位由软件置1或清零。

TB8:在方式2和方式3中,此位为发送数据的第9位,在多机通信中作为发送地址帧或数据帧的标志。TB8=1,说明该发送帧为地址帧;TB8=0,说明该发送帧为数据帧。在许多通信协议中,它可作为奇偶校验             位。此位由软件置1或清零。在方式0和方式1中,此位未使用。

RB8:  接收数据的第9位。在方式2和方式3中,接收到的第9位数据放在RB8中。它或是约定的奇/偶校验位,或是约定的地址/数据标志位。在方式2和方式3多机通信中,若SM2=1且RB8=1,说明接收到的数                据为地址帧。

TI:   发送中断标志位。在一帧数据发送完时置位。TI=1,申请中断,说明发送缓冲器SBUF已空,CPU可以发送下一帧数据。中断被响应后,TI不能自动清零,必须由软件清零。 ,

RI:   接收中断标志位。在接收到一帧有效数据后,由硬件置位。RI=1.申请中断,表示一帧数据接收结束,并已装入接收缓冲器SBUF中,CPU响应中断,取走数据。RI不能自动清零,必须由软件清零。

           串行口发送中断标志TI和接收中断标志RI共为一个中断源。因此,CPU接收到中断请求后,不知道是发送中断TI还是接收中断RI,必须用软件来判别。单片机复位后,控制寄存器SCON的各位均清零。


PCON:电源控制及波特率选择寄存器

电源控制寄存器PCON中只有一位SMOD与串行口工作有关,

SMOD:波特率倍增位。串行口工作在方式1、方式2、方式3时,若SMOD=1,则波特率提高一倍;
若SMOD=0,则波特率不提高一倍。单片机复位时,SMOD=0。


SBUF:串行数据缓冲器

串行口中有两个缓冲寄存器SBUF,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的。它们都是字节寻址的寄存器,字节地址均为99H。这个重叠的地址靠读/写指令区分:串行发送时,CPU向SBUF写入数据,此时99H表示发送SBUF;串行接收时,CPU从SBUF读出数据,此时99H表示接收SBUF。

SBUF是指串行口中的两个缓冲寄存器,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的,但地址是重叠的。它们都是字节寻址的寄存器,字节地址均为99H。只要在编写程序时,用不同指令即可操作两个寄存器。
        比如,SBUF=A;这个是指将A的数据移入发送寄存器,然后发送寄存器再把数据发送出去。A=SBUF;则是指将接受寄存器中的数据赋值给A。

猜你喜欢

转载自blog.csdn.net/weixin_44643510/article/details/112262766