《(23)--7.3 MCS-51串行口的工作方式及波特率1-2.ppt》由会员分享,可在线阅读,更多相关《(23)--7.3 MCS-51串行口的工作方式及波特率1-2.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第7章 单片机串行口原理及应用7.3 MCS-51串行口的通信工作方式及波特率7.3.1 7.3.1 工作方式工作方式0 0MCS-51MCS-51单片机串行口的工作方式单片机串行口的工作方式0 0为为8 8位移位寄存器方式。既可以移位输入也可以移位移位寄存器方式。既可以移位输入也可以移位输出,并不是真正的数据通信方式,主要用于扩展外部并行位输出,并不是真正的数据通信方式,主要用于扩展外部并行I/OI/O口口。其中其中TXDTXD为移位脉冲的输出引脚,用来输出同步脉冲;为移位脉冲的输出引脚,用来输出同步脉冲;RXDRXD为数据移位输入或输出为数据移位输入或输出的引脚的引脚。一一帧信息有帧信息有
2、8 8位数据,低位在前,高位在后,没有起始位和停止位位数据,低位在前,高位在后,没有起始位和停止位。方式方式0 0的的帧格式帧格式如图所示:如图所示:D0D1D2D3D4D5D6D77.3 MCS-51串行口的通信工作方式及波特率TITXD(移位脉冲)RXD(数据)写SBUFALE机器周期S1S6S1S6D0 D1 D2 D3 D4 D5 D6 D77.3 MCS-51串行口的通信工作方式及波特率RITXD(移位脉冲)RXD(数据)写SCON,RI清零ALE机器周期S1S6S1S6D0 D1 D2 D3 D4 D5 D6 D77.3 MCS-51串行口的通信工作方式及波特率7.3.2 7.3.
3、2 工作方式工作方式1 1MCS-51MCS-51单片机串行口的工作方式单片机串行口的工作方式1 1用于数据的串行发送和接收。用于数据的串行发送和接收。TXDTXD与与RXDRXD分别为分别为数据的发送及接收端。方式数据的发送及接收端。方式1 1发送一帧数据为发送一帧数据为1010位,包含位,包含1 1个起始位(个起始位(0 0)、)、8 8个数据个数据位(低位在前)、位(低位在前)、1 1位停止位(位停止位(1 1)。这个帧格式如)。这个帧格式如图所图所示。示。起始位D0D1D2D3D4D5D6D7停止位7.3 MCS-51串行口的通信工作方式及波特率起始位 D0 D1 D2 D3 D4 D
4、5 D6 D7 停止位TITXD写SBUFTX时钟SNED7.3 MCS-51串行口的通信工作方式及波特率2.2.方式方式1 1的接收过程的接收过程串口方式串口方式1 1数据接收的数据接收的时序时序图如下图如下所所示。当示。当REN=1REN=1,串口允许接收,数据从,串口允许接收,数据从RXDRXD端输入。当端输入。当检测到起始位的负跳变时开始接收数据检测到起始位的负跳变时开始接收数据。接收接收时,控制信号有两种时,控制信号有两种。一。一种控制信号是接收移位时钟(种控制信号是接收移位时钟(RXRX时钟),另外一种为位检测时钟),另外一种为位检测器采样脉冲。其中,器采样脉冲。其中,RXRX时钟
5、的频率与数据发送的波特率相同,而位检测器采样脉冲的频率时钟的频率与数据发送的波特率相同,而位检测器采样脉冲的频率是是RXRX时钟的时钟的1616倍倍。也就是说也就是说,在,在1 1位数据期间,有位数据期间,有1616个采样脉冲以波特率的个采样脉冲以波特率的1616倍速率采样倍速率采样RXDRXD的引脚状态。当的引脚状态。当采样到采样到RXDRXD引脚从引脚从1 1到到0 0的跳变时启动检测器,接收的值是的跳变时启动检测器,接收的值是3 3次连续采样中两次相同的值(每次连续采样中两次相同的值(每位连续采样位连续采样1616次,这里为第次,这里为第7 7、8 8、9 9次采样结果),从而确认是否为
6、真正的起始位次采样结果),从而确认是否为真正的起始位。起始位 D0 D1 D2 D3 D4 D5 D6 D7 停止位RIRXDRX时钟位检测采样7.3 MCS-51串行口的通信工作方式及波特率2.2.方式方式1 1的接收的接收过程过程当确认起始位有效时,开始接收一帧数据信息。接收数据的采样检测方法当确认起始位有效时,开始接收一帧数据信息。接收数据的采样检测方法与起始位的采样检测方法相同,以确保接收到的数据位的准确性。当一帧与起始位的采样检测方法相同,以确保接收到的数据位的准确性。当一帧数据接收完毕,必须同时满足以下两个条件才能够说明这次接收过程有效:数据接收完毕,必须同时满足以下两个条件才能够
7、说明这次接收过程有效:(1 1)RI=0RI=0,即上一帧数据接收完毕,即上一帧数据接收完毕,CPUCPU已经响应了已经响应了RI=1RI=1发出的中断请发出的中断请求,求,SBUFSBUF中的数据已被取走,中的数据已被取走,“接收接收SBUFSBUF”已空;已空;(2 2)SM2=0SM2=0或者收到的停止位或者收到的停止位=1=1(停止位被装入(停止位被装入RB8RB8中),则将接收到的中),则将接收到的数据装入数据装入SBUFSBUF和和RB8RB8(装入停止位),且中断标志(装入停止位),且中断标志RIRI被置被置“1 1”,等待,等待CPUCPU响应并取走响应并取走SBUFSBUF中
8、的数据。中的数据。如果上述两个条件不能同时满足,则接收到的数据不能装入如果上述两个条件不能同时满足,则接收到的数据不能装入SBUFSBUF,意味着,意味着该帧数据将会被丢弃。该帧数据将会被丢弃。7.3 MCS-51串行口的通信工作方式及波特率7.3.3 7.3.3 工作方式工作方式2 2和工作方式和工作方式3 3 串行口串行口工作在方式工作在方式2 2和方式和方式3 3时为时为9 9位异步通信接口。位异步通信接口。TXDTXD和和RXDRXD分别为数据的发分别为数据的发送端和接收端。如送端和接收端。如图所图所示,这两种方式下单片机收发每帧数据为示,这两种方式下单片机收发每帧数据为1111位,包
9、含位,包含1 1位起始位起始位位“0 0”、8 8位数据位(低位在前)、位数据位(低位在前)、1 1个附加位(第个附加位(第9 9位)及一位停止位位)及一位停止位“1 1”。方式。方式2 2和方式和方式3 3的操作方法与数据格式几乎完全一样,仅波特率不同的操作方法与数据格式几乎完全一样,仅波特率不同。7.3 MCS-51串行口的通信工作方式及波特率1.1.方式方式2 2和方式和方式3 3的发送过程的发送过程 方式方式2 2和方式和方式3 3的数据发送时序如的数据发送时序如图所图所示。与方式示。与方式1 1相似,发送前先根据通信相似,发送前先根据通信协议由软件设置协议由软件设置TB8TB8,如可
10、将双机通信时的奇偶检验位或多机通信时的地,如可将双机通信时的奇偶检验位或多机通信时的地址址/数据标志位放置在数据标志位放置在TB8TB8中。然后将要发送的数据送入中。然后将要发送的数据送入SBUFSBUF,启动发送。,启动发送。同时,串行口自动取出同时,串行口自动取出TB8TB8中的数据装入到第中的数据装入到第9 9位数据的位置,将数据逐一位数据的位置,将数据逐一发送。发送完毕发送。发送完毕TITI将被置将被置“1 1”。起始位 D0 D1 D2 D3 D4 D5 D6 D7 D8 停止位TITXD写SBUFTX时钟SNED7.3 MCS-51串行口的通信工作方式及波特率2.2.方式方式2 2
11、和方式和方式3 3的接收过程的接收过程 方式方式2 2和方式和方式3 3的数据接收时序如的数据接收时序如图所图所示。当示。当RENREN为为1 1则允许数据接收。同样与方式则允许数据接收。同样与方式1 1类似,当位类似,当位检测逻辑采样到检测逻辑采样到RXDRXD引脚从引脚从1 1到到0 0的负跳变,并判断起始位有效时,开始接收一帧数据信息。在的负跳变,并判断起始位有效时,开始接收一帧数据信息。在接收完第接收完第9 9位数据后,也同样需要满足以下两个条件才能将接收到的数据放入接收缓冲器位数据后,也同样需要满足以下两个条件才能将接收到的数据放入接收缓冲器SBUFSBUF:(1 1)RI=0RI=
12、0,意味着接收,意味着接收SBUFSBUF已空;已空;(2 2)SM2=0SM2=0或者收到的第或者收到的第9 9位数据位数据RB8=1RB8=1。满足以上两个条件,接收到的数据放入接收缓冲器满足以上两个条件,接收到的数据放入接收缓冲器SBUFSBUF,第,第9 9位数据送入位数据送入RB8RB8,同时,同时RIRI被置被置“1 1”。否则数据将被丢弃。否则数据将被丢弃。起始位 D0 D1 D2 D3 D4 D5 D6 D7 RB8 停止位RIRXDRX时钟位检测采样7.3 MCS-51串行口的通信工作方式及波特率7.3.4 7.3.4 各个工作方式波特率的设定各个工作方式波特率的设定在串行通
13、信中,收发双发的波特率必须一致。通过设置特殊功能寄在串行通信中,收发双发的波特率必须一致。通过设置特殊功能寄存器存器SCONSCON可将串行口设定为不同的工作方式。其中,方式可将串行口设定为不同的工作方式。其中,方式0 0与方式与方式2 2的波特率是固定的,方式的波特率是固定的,方式1 1和方式和方式3 3的波特率由定时器的波特率由定时器T1T1的溢出率的溢出率来确定,是可变的。来确定,是可变的。7.3 MCS-51串行口的通信工作方式及波特率7.3 MCS-51串行口的通信工作方式及波特率7.3 MCS-51串行口的通信工作方式及波特率7.3 MCS-51串行口的通信工作方式及波特率7.3
14、MCS-51串行口的通信工作方式及波特率这种情况下,单片机的初始化程序应包含定时器的设置及串行口工这种情况下,单片机的初始化程序应包含定时器的设置及串行口工作方式的设置,具体过程如下:作方式的设置,具体过程如下:SerialSet:MOV TMOD,#20H ;SerialSet:MOV TMOD,#20H ;定时器定时器T1T1设置为方式设置为方式2 2 MOV MOV TH1,#0FAH ;TH1,#0FAH ;装入定时器初值,波特率为装入定时器初值,波特率为4800bit/s4800bit/s MOV MOV TL1,#0FAHTL1,#0FAH MOV MOV PCON,#00H ;P
15、CON,#00H ;设置设置SMODSMOD位为位为0 0 SETB SETB TR1 ;TR1 ;开定时器开定时器 MOV MOV SCON,#50H ;SCON,#50H ;设置串行口工作在方式设置串行口工作在方式1 1,允许接收,允许接收 MOV MOV IE,#90H ;IE,#90H ;允许总中断与串行口中断允许总中断与串行口中断 7.3 MCS-51串行口的通信工作方式及波特率在实际应用中,常用的波特率通常取在实际应用中,常用的波特率通常取12001200、24002400、48004800和和96009600等,若晶振频率采用等,若晶振频率采用12MHz12MHz和和6MHz6M
16、Hz,计算出的定时器初值将不是一个整数,取近似值易于产生波特率误,计算出的定时器初值将不是一个整数,取近似值易于产生波特率误差进而影响串行通信的同步性能。而当晶振频率为差进而影响串行通信的同步性能。而当晶振频率为11.0592MHz11.0592MHz时,定时器初值为整时,定时器初值为整数,更能够满足用户对于波特率精确性的要求数,更能够满足用户对于波特率精确性的要求。下下表列出表列出了串行口方式了串行口方式1 1或者方式或者方式3 3在几种常见参数设置下的初值及波特率的计算结果,供读者在几种常见参数设置下的初值及波特率的计算结果,供读者查询查询串行口相关参数串行口相关参数定时器定时器T1T1串行口工作方串行口工作方式式波特率(bit/s)晶振频率(MHz)SMOD工 作 模式定时器初值方式方式1 1和方式和方式3 31920011.0592102FDH方式方式1 1和方式和方式3 3960011.0592002FDH方式方式1 1和方式和方式3 3480011.0592002FAH方式方式1 1和方式和方式3 3240011.0592002F4H方式方式1 1和方式和方式3 3120011.0592002E8H