返回首页
当前位置: 主页 > 串行口程序设计 >

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

时间:2009-03-05 12:57来源:未知 作者:牛牛 点击:
8051单片机的串行接口结构 8051单片机串行接口是一个可编程的全双工串行通信接口。它可用作异步通信方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工的8051多机系统也能通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O

8051单片机的串行接口结构

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

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

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

串行口控制寄存器SCON

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

D7 单片机

D6

单片机

D5 单片机

D4

内容来自单片机之家www.dpj100.com

D3 内容来自单片机之家www.dpj100.com

D2 内容来自单片机之家www.dpj100.com

D1 单片机

D0

单片机

SM0 单片机

SM1

单片机

SM2

单片机

REN 单片机

TB8

单片机

RB8 单片机

TI

单片机

RI

单片机

单片机

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

SM0、SM1

内容来自单片机之家www.dpj100.com

工作方式

内容来自单片机之家www.dpj100.com

功能描述 单片机

波特率 单片机

0 0 单片机

方式0 单片机

8位移位寄存器 单片机

Fosc/12

单片机

0 1

单片机

方式1 内容来自单片机之家www.dpj100.com

10位UART

单片机

可变

内容来自单片机之家www.dpj100.com

1 0

单片机

方式2

内容来自单片机之家www.dpj100.com

11位UART 单片机

Fosc/64或fosc/32

内容来自单片机之家www.dpj100.com

1 1 单片机

方式3 内容来自单片机之家www.dpj100.com

11位UART 内容来自单片机之家www.dpj100.com

可变

单片机

单片机

其中fosc为晶体震荡器频率

内容来自单片机之家www.dpj100.com

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

单片机

REN:接收允许控制位。由软件置位以允许接收,又由软件清0来禁止接收。 内容来自单片机之家www.dpj100.com

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

RB8:接收到的数据的第9位。在方式0中不使用RB8。在方式1中,若(SM2)=0,RB8为接收到的停止位。在方式2或方式3中,RB8为接收到的第9位数据。 内容来自单片机之家www.dpj100.com

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

单片机

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

内容来自单片机之家www.dpj100.com

特殊功能寄存器PCON

内容来自单片机之家www.dpj100.com

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

内容来自单片机之家www.dpj100.com

串行口的工作方式 单片机

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。

内容来自单片机之家www.dpj100.com

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

内容来自单片机之家www.dpj100.com

点此在新窗口浏览图片
<单片机串行口接线图>

内容来自单片机之家www.dpj100.com

方式1为波特率可变的10位异步通信接口方式。发送或接收一帧信息,包括1个起始位0,8个数据位和1个停止位1。

单片机

输出 当CPU执行一条指令将数据写入发送缓冲SBUF时,就启动发送。串行数据从TXD管脚输出,发送完一帧数据后,就由硬件置位TI。 内容来自单片机之家www.dpj100.com

输入 在(REN)=1时,串行口采样RXD管脚,当采样到1至0的跳变时,确认是开始位0,就开始接收一帧数据。只有当(RI)=0且停止位为1或者(SM2)=0时,停止位才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;不然信息丢失。所以在方式1接收时,应先用软件清零RI和SM2标志。 单片机

方式2 内容来自单片机之家www.dpj100.com

方式月为固定波特率的11位UART方式。它比方式1增加了一位可程控为1或0的第9位数据。 单片机

输出: 发送的串行数据由TXD端输出一帧信息为11位,附加的第9位来自SCON寄存器的TB8位,用软件置位或复位。它可作为多机通信中地址/数据信息的标志位,也能作为数据的奇偶校验位。当CPU执行一条数据写入SUBF的指令时,就启动发送器发送。发送一帧信息后,置位中断标志TI。 内容来自单片机之家www.dpj100.com

输入: 在(REN)=1时,串行口采样RXD管脚,当采样到1至0的跳变时,确认是开始位0,就开始接收一帧数据。在接收到附加的第9位数据后,当(RI)=0或者(SM2)=0时,第9位数据才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;不然信息丢失。且不置位RI。再过一位时间后,不管上述条件时否满足,接收电路即行复位,并重新检测RXD上从1到0的跳变。 内容来自单片机之家www.dpj100.com

工作方式3 内容来自单片机之家www.dpj100.com

方式3为波特率可变的11位UART方式。除波特率外,其余与方式2相同。

单片机

波特率选择 单片机

如前所述,在串行通信中,收发双方的数据传送率(波特率)要有一定的约定。在8051串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。

内容来自单片机之家www.dpj100.com

方式0 内容来自单片机之家www.dpj100.com

方式0的波特率固定为主振频率的1/12。 内容来自单片机之家www.dpj100.com

方式2

内容来自单片机之家www.dpj100.com

方式2的波特率由PCON中的选择位SMOD来决定,可由下式表示:

单片机

波特率=2的SMOD次方除以64再乘一个fosc,也就是当SMOD=1时,波特率为1/32fosc,当SMOD=0时,波特率为1/64fosc

单片机

3.方式1和方式3

单片机

定时器T1作为波特率发生器,其公式如下:

单片机

波特率=点此在新窗口浏览图片定时器T1溢出率

单片机

T1溢出率= T1计数率/产生溢出所需的周期数 单片机

式中T1计数率取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,T1计数率为fosc/12;当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于fosc/24。产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。

单片机

定时器T1工作于方式0:溢出所需周期数=8192-x

单片机

定时器T1工作于方式1:溢出所需周期数=65536-x

内容来自单片机之家www.dpj100.com

定时器T1工作于方式2:溢出所需周期数=256-x

单片机

因为方式2为自动重装入初值的8位定时器/计数器模式,所以用它来做波特率发生器最恰当。 内容来自单片机之家www.dpj100.com

当时钟频率选用11.0592MHZ时,取易获得标准的波特率,所以很多单片机系统选用这个看起来“怪”的晶体震荡器就是这个道理。

内容来自单片机之家www.dpj100.com

下表列出了定时器T1工作于方式2常用波特率及初值。 内容来自单片机之家www.dpj100.com

常用波特率 内容来自单片机之家www.dpj100.com

Fosc(MHZ)

单片机

SMOD

内容来自单片机之家www.dpj100.com

TH1初值 内容来自单片机之家www.dpj100.com

19200

内容来自单片机之家www.dpj100.com

11.0592 内容来自单片机之家www.dpj100.com

1

单片机

FDH

单片机

9600 内容来自单片机之家www.dpj100.com

11.0592

单片机

0 单片机

FDH 单片机

4800

单片机

11.0592

单片机

0

单片机

FAH

单片机

2400 单片机

11.0592

单片机

0 单片机

F4h 单片机

1200

单片机

11.0592

单片机

0 单片机

E8h 单片机

单片机

顶一下
(7)
77.8%
踩一下
(2)
22.2%
------分隔线----------------------------
推荐内容