×
单片机 > 单片机程序设计 > 详情

8051单片机的串行接口结构及工作方式设置寄存器

发布时间:2020-08-25 发布时间:
|

8051单片机的串行接口结构 

8051单片机串行接口是一个可编程的全双工串行通信接口。它可用作异步通信方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工的8051多机系统也能通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O口。 

8051单片机通过管脚RXD(P3.0,串行数据接收端)和管脚TXD(P3.1,串行数据发送端)与外界通信。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。 

串行口的控制与状态寄存器 

串行口控制寄存器SCON 

它用于定义串行口的工作方式及实施接收和发送控制。字节地址为98H,其各位定义如下表: 

D7

D6


D5

D4


D3 

D2

D1

D0


SM0

SM1


SM2


REN

TB8


RB8

TI


RI



SM0、SM1:串行口工作方式选择位,其定义如下:


SM0、SM1


工作方式


功能描述

波特率

0 0

方式0

8位移位寄存器

Fosc/12


0 1


方式1

10位UART


可变


1 0


方式2


11位UART

Fosc/64或fosc/32


1 1

方式3

11位UART 

可变



其中fosc为晶体震荡器频率


SM2:多机通信控制位。在方式0时,SM2一定要等于0。在方式1中,当(SM2)=1则只有接收到有效停止位时,RI才置1。在方式2或方式3当(SM2)=1且接收到的第九位数据RB8=0时,RI才置1。


REN:接收允许控制位。由软件置位以允许接收,又由软件清0来禁止接收。

TB8: 是要发送数据的第9位。在方式2或方式3中,要发送的第9位数据,根据需要由软件置1或清0。例如,可约定作为奇偶校验位,或在多机通信中作为区别地址帧或数据帧的标志位。

RB8:接收到的数据的第9位。在方式0中不使用RB8。在方式1中,若(SM2)=0,RB8为接收到的停止位。在方式2或方式3中,RB8为接收到的第9位数据。 

TI:发送中断标志。在方式0中,第8位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。TI置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的办法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。TI必须用软件清0。


RI:接收中断标志位。在方式0,当接收完第8位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。RI置位表示一帧数据接收完毕,可用查询的办法获知或者用中断的办法获知。RI也必须用软件清0。


特殊功能寄存器PCON


PCON是为了在CHMOS的80C51单片机上实现电源控制而附加的。其中最高位是SMOD。


串行口的工作方式

8051单片机的全双工串行口可编程为4种工作方式,现分述如下:


方式0为移位寄存器输入/输出方式。可外接移位寄存器以扩展I/O口,也能外接同步输入/输出设备。8位串行数据者是从RXD输入或输出,TXD用来输出同步脉冲。


输出 串行数据从RXD管脚输出,TXD管脚输出移位脉冲。CPU将数据写入发送寄存器时,立即启动发送,将8位数据以fos/12的固定波特率从RXD输出,低位在前,高位在后。发送完一帧数据后,发送中断标志TI由硬件置位。 

输入 当串行口以方式0接收时,先置位允许接收控制位REN。此时,RXD为串行数据输入端,TXD仍为同步脉冲移位输出端。当(RI)=0和(REN)=1同时满足时,开始接收。当接收到第8位数据时,将数据移入接收寄存器,并由硬件置位RI。


下面两图分别是方式0扩展输出和输入的接线图。


常用波特率

Fosc(MHZ)


SMOD


TH1初值

19200


11.0592 

1


FDH


9600

11.0592


0

FDH 

4800


11.0592


0


FAH


2400

11.0592


0

F4h

1200


11.0592


0

E8h 





『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析