<meta name="keywords" content="必胜时时彩开户,keywords" /> 21课:单片机串行口简介 联系我们

21课:单片机串行口简介

简介:串行口是单片机与外界阻拦信息交流的工具。

8051单片机的通讯要领有两种:

并行通讯:数据的列位同时发送或吸收。  串行通讯:数据一名一名序次发送或吸收。参看下图:

串行通讯的要领:

异步通讯:它用一个肇端位体现字符的泉源,用阻拦位体现字符的阻拦。其每帧的名堂以下:

在一帧名堂中,先是一个肇端位0,然后是8个数据位,划定低位在前,高位在后,接上去是奇偶校验位(能省略),最后是阻拦位1。用这类名堂体现字符,则字符能一个接一个地传送。

在异步通讯中,CPU与外设之间必须有两项划定,即字符名堂和波特率。字符名堂的划定是双方能够在对统一种0和1的串明确成统一种意义。准绳上字符名堂能由通讯的双方自在制订,但从通用、便利的角度出发,浅易还是应用一些尺度为好,如接纳ASCII尺度。

波特率即数据传送的速率,其界说是每秒钟传送的二进制数的位数。例如,数据传送的速率是120字符/s,而每个字符如上述划定网罗10数位,则传送波特率为1200波特。

同步通讯:在同步通讯中,每个字符要用肇端位和阻拦位作为字符泉源和阻拦的标志,占用了时间;以是在数据块转达时,为了前进速率,常去掉落落这些标志,接纳同步传送。由于数据块转达泉源要用同步字符来指导,同时请求由时钟来完成发送端与吸收端之间的同步,故硬件较严重年夜。

通讯偏向:在串行通讯中,把通讯接口只能发送或吸收的单向传送措施叫单工传送;而把数据在甲乙两机之间的双向转达,称之为双工传送。在双工传送要领中又分为半双工传送和全双工传送。半双工传送是两机之间不克不及同时阻拦发送和吸收,任一时该,只能发或许只能收信息。

2.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扩年夜输入和输入的接线图。


<单片机串行口接线图>

要领1为波特率可变的10位异步通讯接口要领。发送或吸收一帧信息,网罗1个肇端位0,8个数据位和1个阻拦位1。

输入 当CPU推行一条指令将数据写入发送缓冲SBUF时,就启动发送。串行数据从TXD管脚输入,发送完一帧数据后,就由硬件置位TI。

输入 在(REN)=1时,串行口采样RXD管脚,当采样到1至0的跳变时,确认是泉源位0,就泉源吸收一帧数据。只需当(RI)=0且阻拦位为1或许(SM2)=0时,阻拦位才进入RB8,8位数据才干进入吸收存放器,并由硬件置位中止标志RI;否则信息损掉落。以是在要领1吸收时,应先用软件清零RI和SM2标志。

要领2

要领月为结实波特率的11位UART要领。它比要领1增添了一名可程控为1或0的第9位数据。

输入: 发送的串行数据由TXD端输入一帧信息为11位,附加的第9位来自SCON存放器的TB8位,用软件置位或复位。它可作为多机通讯中地址/数据信息的标志位,也能作为数据的奇偶校验位。当CPU推行一条数据写入SUBF的指令时,就启动发送器发送。发送一帧信息后,置位中止标志TI。

输入: 在(REN)=1时,串行口采样RXD管脚,当采样到1至0的跳变时,确认是泉源位0,就泉源吸收一帧数据。在吸收到附加的第9位数据后,当(RI)=0或许(SM2)=0时,第9位数据才进入RB8,8位数据才干进入吸收存放器,并由硬件置位中止标志RI;否则信息损掉落。且不置位RI。再过一名时间后,岂论上述条件时否知足,吸收电路即行复位,着重新检测RXD上从1到0的跳变。

使命要领3

要领3为波特率可变的11位UART要领。除波特率外,其他与要领2类似。

波特率选择

如前所述,在串行通讯中,收发双方的数据传送率(波特率)要有一定的商定。在8051串行口的四种使命要领中,要领0和2的波特率是结实的,而要领1和3的波特率是可变的,由准时器T1的溢出率控制。

要领0

要领0的波特率结实为主振频率的1/12。

要领2

要领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

准时器T1使命于要领2:溢出所需周期数=256-x

由于要领2为自动重装入初值的8位准时器/计数器形式,以是用它来做波特率发生器最适当。

其时钟频率选用11.0592MHZ时,取易取得尺度的波特率,以是许多单片机系统选用这个看起来“怪”的晶体震惊器就是这个事理。

下表列出了准时器T1使命于要领2经常应用波特率及初值。

经常应用波特率
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