通信原理第七章 串行通信.ppt

上传人:s****8 文档编号:69406893 上传时间:2023-01-03 格式:PPT 页数:90 大小:2.80MB
返回 下载 相关 举报
通信原理第七章 串行通信.ppt_第1页
第1页 / 共90页
通信原理第七章 串行通信.ppt_第2页
第2页 / 共90页
点击查看更多>>
资源描述

《通信原理第七章 串行通信.ppt》由会员分享,可在线阅读,更多相关《通信原理第七章 串行通信.ppt(90页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、7.1 串行通信的基本概念串行通信的基本概念计算机与外界的信息交换称为通信计算机与外界的信息交换称为通信。最基本的通信方法有。最基本的通信方法有串串行通信行通信和和并行通信并行通信两种两种。一次同时传送多位数据的通信方法叫做一次同时传送多位数据的通信方法叫做并行通信并行通信。特点:传输速度快特点:传输速度快,但在距离远、位数多时,通信线路复杂且但在距离远、位数多时,通信线路复杂且成本高。成本高。并行通信靠并行接口来实现并行通信靠并行接口来实现。数据一位接一位地顺序传送数据一位接一位地顺序传送的通信方法叫做的通信方法叫做串行通信串行通信。特点:通信线路简单特点:通信线路简单,只要一对传输线就可实

2、现通信只要一对传输线就可实现通信(如电话如电话线线),成本低,成本低,特别适用于远距离通信。特别适用于远距离通信。缺点缺点是传送速度慢。是传送速度慢。串行通信可通过串行接口来实现串行通信可通过串行接口来实现一般电脑都有两个外置的一般电脑都有两个外置的COM口,它们是串行接口。口,它们是串行接口。通信的两种基本方式(a)并行通信;(b)串行通信串行通信数据传输方式有三种:串行通信数据传输方式有三种:单工单工、半双工半双工和和全双工全双工。单工方式单工方式信号信号(不包括联络信号不包括联络信号)在信道中只能沿一个方向传送。在信道中只能沿一个方向传送。半双工方式半双工方式通信的双方均具有发送和接收信

3、息的能力通信的双方均具有发送和接收信息的能力,信道也具有双信道也具有双向传输性能,向传输性能,但在同一时间,信息只能沿某一个方向传送。但在同一时间,信息只能沿某一个方向传送。半半双工方式大多双工方式大多采用双线制采用双线制。全双工方式全双工方式信号在信号在通信双方之间可沿两个方向同时传送,在同一时刻任通信双方之间可沿两个方向同时传送,在同一时刻任何一方既能发送又能接收信息何一方既能发送又能接收信息。全双工串行通信需要两根线。全双工串行通信需要两根线。51单片机有一个全双工串口,单片机有一个全双工串口,TXD是它的发送端,是它的发送端,RXD是它的接收端。是它的接收端。在数据通信中,在数据通信中

4、,要保证发送的信号在接收端能被正确地要保证发送的信号在接收端能被正确地接收,接收,必须解决收发之间的必须解决收发之间的同步问题同步问题。常用的常用的同步技术有两种:同步技术有两种:同步传输同步传输也称同步字符同步方式也称同步字符同步方式异步传输异步传输也称起止同步方式也称起止同步方式它们对应就是它们对应就是同步通信同步通信和和异步通信异步通信方式。方式。1)同步通信方式同步通信方式将一大批数据分成几个数据块将一大批数据分成几个数据块,数据块之间用同步字符予以数据块之间用同步字符予以隔开隔开,而块内传输的而块内传输的各位二进制码之间没有间隔各位二进制码之间没有间隔。由于数据块传递开始要用同步字符

5、来指示,同时要求由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,由时钟来实现发送端与接收端之间的同步,发送与接收发送与接收时钟始终要保持严格同步,时钟始终要保持严格同步,故硬件较复杂。故硬件较复杂。基本特征基本特征:发送与接收时钟始终保持严格同步发送与接收时钟始终保持严格同步2)异步通信方式异步通信方式以字符为单位进行数据传输,每个字符都用起始位、停以字符为单位进行数据传输,每个字符都用起始位、停止位包装起来止位包装起来(起始位和停止位作为字符的开始和结束标志)(起始位和停止位作为字符的开始和结束标志),这样的一个字符信息又称一帧信息。,这样的一个字符信息又

6、称一帧信息。在字符间允许有长短在字符间允许有长短不一的间隙。不一的间隙。基本特征基本特征:以字符(以字符(帧)帧)为单位一个个地发送和接收,为单位一个个地发送和接收,数据在数据在线路上的传送不连续线路上的传送不连续。在单片机中使用的串行通信都是异步方式。在单片机中使用的串行通信都是异步方式。一个字符一个字符(帧)由帧)由起始位、数据位、奇偶校验位和停起始位、数据位、奇偶校验位和停止位止位4个部分组成。个部分组成。起始位为起始位为0信号信号,占占1位位;紧接着是;紧接着是数据位数据位(可以是可以是5位、位、6位、位、7位或位或8位位),传送时低位在先、高位在后传送时低位在先、高位在后;再后面为;

7、再后面为1位位奇偶校验位奇偶校验位(可以不要可以不要),;最后是;最后是停止位停止位,停止位为信号停止位为信号1,可可以是以是1位、位、1位半或位半或2位位。两帧信息间可以无间隔两帧信息间可以无间隔,也可有间隔也可有间隔,间隔用空闲位间隔用空闲位“1”来填充。来填充。异步通信数据传送格式异步通信数据传送格式异步传送中,通信双方必须事先约定:异步传送中,通信双方必须事先约定:(1)字符格式字符格式。包括。包括字符的编码形式、奇偶校验形式及字符的编码形式、奇偶校验形式及起始位和停止位的规定起始位和停止位的规定。(2)波特率波特率(Baudrate)。波特率波特率是数据的传送速率是数据的传送速率,即

8、即每秒钟传送的二进制位每秒钟传送的二进制位数数,单位为:位,单位为:位/秒。秒。字符传送速率字符传送速率单位为:字符单位为:字符/秒。秒。波特率波特率=一个字符的二进制编码位数一个字符的二进制编码位数字符字符/秒秒异步通信异步通信要求发送端与接收端的波特率必须一致要求发送端与接收端的波特率必须一致。由于异步通信每帧都要加上由于异步通信每帧都要加上起始位、停止位,起始位、停止位,所以通所以通信速度比同步慢。信速度比同步慢。串行通信常用的标准波特率在串行通信常用的标准波特率在RS-232C标准中已有标准中已有规定,如波特率规定,如波特率600、1200、2400、4800、9600、19200等。

9、等。一般异步通信波特率为一般异步通信波特率为1109600,而同步通信波特,而同步通信波特率在率在56Kb以上。以上。在选择通信波特率时在选择通信波特率时,以满足数据传输要求为原以满足数据传输要求为原则,波特率越高,对发送、接收时钟信号频率的一致则,波特率越高,对发送、接收时钟信号频率的一致性要求就越高。性要求就越高。每一位数据传送的时间为波特率的倒数每一位数据传送的时间为波特率的倒数串行通信常用波特率衡量通信串行通信常用波特率衡量通信(数据传送数据传送)的快慢的快慢。例:采用串行异步通信方式传送字符例:采用串行异步通信方式传送字符5的的ASCII码,码,规定为规定为7位数据位,位数据位,1位

10、偶校验位,位偶校验位,1位停止位,无空闲位。位停止位,无空闲位。传送传送ASCII码字符码字符5的波形图的波形图起始位起始位校验位校验位001停止位停止位数据位数据位单片机内部单片机内部配置的串行口主要靠硬件解决通信配置的串行口主要靠硬件解决通信问题,问题,51内部有一个内部有一个采用采用通用异步接收和发送器通用异步接收和发送器(UART)工作方式的)工作方式的全双工的异步串行通信接口全双工的异步串行通信接口,可同时发送和接收数据。可同时发送和接收数据。它有它有4种工作方式种工作方式,可供不可供不同场合使用同场合使用。7.2MCS-51单片机串行口的功能与结构单片机串行口的功能与结构51单片机

11、单片机串行口的串行口的波特率用软件设置,由片内波特率用软件设置,由片内的定时的定时/计数器产生计数器产生,其,其接收和发送既可采用查询接收和发送既可采用查询方式控制也可采用中断方式方式控制也可采用中断方式,使用灵活。使用灵活。51的串行口除用于的串行口除用于数据通信数据通信外外,还可方便地还可方便地构成构成1个或多个并行输入个或多个并行输入/输出口输出口或作或作串并转换串并转换,用来驱动键盘与显示器等。用来驱动键盘与显示器等。7.2.151单片机串行口能实现的功能单片机串行口能实现的功能51串行口有串行口有4种工作方式,种工作方式,SM0SM1工作方式工作方式功功能能波波特特率率00方式方式0

12、移移位位寄寄存存器器方方式式,用用于于并并行行I/O扩展扩展fosc/1201方式方式18位通用异步接收器位通用异步接收器/发送器发送器可变可变10方式方式29位通用异步接收器位通用异步接收器/发送器发送器fosc/32或或fosc/6411方式方式39位通用异步接收器位通用异步接收器/发送器发送器可变可变方式方式2、方式、方式3的一帧信息由的一帧信息由11位组成,其中位组成,其中9位数位数据位,两方式的不同在于波特率的选择不同。据位,两方式的不同在于波特率的选择不同。方式方式2、方式方式3主要用于多机通信,也可用于双机通信主要用于多机通信,也可用于双机通信。其中其中,方式,方式0并不用于通信

13、,而是通过外接移并不用于通信,而是通过外接移位寄存器芯片来实现位寄存器芯片来实现I/O口的扩展。口的扩展。利用这个功能,利用这个功能,可可实现扩展实现扩展2脚的串行脚的串行I/O到到8脚的并行脚的并行I/O口。口。该方式又称作移位寄存器方式该方式又称作移位寄存器方式。方式方式1、方式、方式2、方式、方式3都是异步通信方式。都是异步通信方式。方式方式1的一帧信息由的一帧信息由10位组成,其中位组成,其中8位数据位。位数据位。方式方式1主要用于双机串行通信主要用于双机串行通信。MCS-51单片机单片机串行口的工作原理:串行口的工作原理:发送时发送时,将将CPU送来的并行数据转换为一定送来的并行数据

14、转换为一定格式的串行数据,然后从引脚格式的串行数据,然后从引脚TXD按规定的波特按规定的波特率一位一位地发送出去。率一位一位地发送出去。接收时接收时,监测,监测引脚引脚RXD,一旦出现起始位,一旦出现起始位“0”,则开始接收外设送来的一定格式的串行,则开始接收外设送来的一定格式的串行数据,并将其转换为并行数据,等待数据,并将其转换为并行数据,等待CPU读入。读入。串行口主要由串行口主要由发送数据缓冲器发送数据缓冲器、发送控制器发送控制器、输出控制门输出控制门、接收数据缓冲器接收数据缓冲器、接收控制器接收控制器、输入移位寄存器输入移位寄存器等组成。等组成。7.2.251单片机串行口的结构单片机串

15、行口的结构一、串行口结构一、串行口结构波特率发生器用定波特率发生器用定时时/计数器计数器T1或或T2构成。构成。SCONCPU写入数据写入数据CPU读出数据读出数据发送发送接收接收接收缓冲器之前的移位接收缓冲器之前的移位寄存器,构成了串行寄存器,构成了串行接接收的双缓冲结构,收的双缓冲结构,可以可以避免在数据接收过程中避免在数据接收过程中出现帧重叠错误,出现帧重叠错误,二、与串行口有关的特殊功能寄存器二、与串行口有关的特殊功能寄存器1.数据缓冲器数据缓冲器SBUF(地址(地址99H)串串行行口口缓缓冲冲器器SBUF在在物物理理上上对对应应着着两两个个独独立立的的寄寄存存器器:发发送送寄寄存存器

16、器、接接收收寄寄存存器器。发发送送缓缓冲冲器器只只可可写写;接接收收缓缓冲冲器器只可读,只可读,所以,两者虽共用一个地址,但不会有误操作。所以,两者虽共用一个地址,但不会有误操作。51没有专门的启动发送的指令,没有专门的启动发送的指令,CPU将数据写入将数据写入SBUF时就开始发送,读取时就开始发送,读取SBUF就可获取串口接收的过程。就可获取串口接收的过程。接收缓冲器之前的移位寄存器构成了串行接收缓冲器之前的移位寄存器构成了串行接收的双缓冲接收的双缓冲结构结构,可避免在接收下一帧数据之前可避免在接收下一帧数据之前,CPU没能及时响应接没能及时响应接收器的中断把上一帧数据读走而产生两帧数据重叠

17、的问题。收器的中断把上一帧数据读走而产生两帧数据重叠的问题。2.串行口控制寄存器串行口控制寄存器SCONSCON用用于于设设定定串串行行通通信信的的方方式式、控控制制接接收收和和指指示示串串行行口的中断状态口的中断状态。其各位功能如下其各位功能如下:SM0、SM1:用于定义串行口的工作方式。用于定义串行口的工作方式。SM2:多机通信时的接收允许标志位。多机通信时的接收允许标志位。在方式在方式2和和3中中,若若SM2=1,则则仅当接收到的第仅当接收到的第9位位(RB8)为)为1时,才将接收到的前时,才将接收到的前8位数据送入位数据送入SBUF中中,并把并把RI置置1向向CPU申请中断;申请中断;

18、若接收到的第若接收到的第9位数位数据位为据位为0,则把,则把RI置置0,并将接收到的数据丢弃。,并将接收到的数据丢弃。在方式在方式1中中,若若SM2=1,只有接收到有效的停止位,只有接收到有效的停止位,接收中断接收中断RI才置才置1。在方式在方式0中中,SM2必须是必须是0。而而当当SM20时,则时,则不论接收到的笫不论接收到的笫9 9位数据位是位数据位是0 0 或或1 1,都将接收到的前,都将接收到的前8 8位数据装入位数据装入SBUFSBUF中,并申请中,并申请中断。中断。REN允许串行接收位允许串行接收位在通信协议中,常规定在通信协议中,常规定TB8作为奇偶校验位。在多机通作为奇偶校验位

19、。在多机通信中,信中,TB8=0用来表示数据帧;用来表示数据帧;TB8=1表示是地址帧。表示是地址帧。用软件置位清除。用软件置位清除。REN1时时,允许串行接收允许串行接收;REN0时,禁止串行接收时,禁止串行接收。用软件置位清除。用软件置位清除。TB8方式方式2和方式和方式3中要发送的第中要发送的第9位数据位数据RB8方式方式2和方式和方式3中接收到的第中接收到的第9位数据位数据在方式在方式1中,该位是接收到的停止位。方式中,该位是接收到的停止位。方式0中不使用这一位中不使用这一位。TI发送中断标志位发送中断标志位方式方式0中,中,TI在发送第在发送第8位末尾置位;在其它方式时,在位末尾置位

20、;在其它方式时,在发送停止位开始时设置。发送停止位开始时设置。注意:注意:TI由硬件置位,用软件清除由硬件置位,用软件清除。3.电源控制寄存器电源控制寄存器PCON(地址为(地址为87H,)特殊功能寄存器特殊功能寄存器PCON中中,只有一位(最高位)只有一位(最高位)SMOD与串行口的工作有关与串行口的工作有关,该位是串行口波特率系数的控制位该位是串行口波特率系数的控制位:SMOD=1时时,波特率加倍波特率加倍,否则不加倍。否则不加倍。注意注意:PCON不可位寻址不可位寻址,因此初始化时需要字节传送。因此初始化时需要字节传送。RI接收中断标志位接收中断标志位方式方式0中,在接收第中,在接收第8

21、位末尾置位,在其它方式下,在接位末尾置位,在其它方式下,在接收停止位中间设置。收停止位中间设置。注意:注意:RI由硬件置位由硬件置位,用软件清除用软件清除TI、RI均可共查询均可共查询。系统复位后系统复位后,SCON中所有位被清中所有位被清0串口中断控制串口中断控制:中断允许位中断允许位ES中断入口中断入口:0023H7.3.1方式方式0方式方式0为为同步移位寄存器方式同步移位寄存器方式,其其波特率固定波特率固定为为fosc/12。就是一个机器周期可以通过就是一个机器周期可以通过RXD发送或读入一位数据。发送或读入一位数据。方式方式0接收发送的是接收发送的是8位数据位数据,无起始位和停止位无起

22、始位和停止位。传。传输时低位在前。帧格式如下:输时低位在前。帧格式如下:D0D1D2D3D4D5D6D7由由RXD(P30)输入或输出数据,)输入或输出数据,由由TXD(P31)输出同步移位时钟,每个脉冲对应一个数)输出同步移位时钟,每个脉冲对应一个数据位。据位。发送过程:数据写入发送过程:数据写入SBUF,启动发送启动发送,一帧发送结束一帧发送结束,使使TI=1。接收过程:当接收过程:当REN=1且且RI=0,启动接收启动接收,一帧接收完毕一帧接收完毕,使使RI=1方式方式0工作时工作时,必须使必须使SM2位为位为“0”。方式方式0应用应用扩展单片机的并行扩展单片机的并行I/O口口方式方式0

23、时,串口本身在时,串口本身在发送状态相当于发送状态相当于“并入串出并入串出”的的移位寄存器移位寄存器,接收状态相当于接收状态相当于“串入并出串入并出”的移位寄存器的移位寄存器。注意注意:CPU在响应接收中断后要用软件清除在响应接收中断后要用软件清除RI标志标志,否则无否则无法启动下一次接收。法启动下一次接收。由于方式由于方式0不能自动插入和检出同步字符不能自动插入和检出同步字符,故故方式方式0不用不用于通信于通信,它的它的主要用途是主要用途是和外部同步移位寄存器配合为单和外部同步移位寄存器配合为单片机扩展并行片机扩展并行I/O口。口。将串行口作为并行输出口使用时,可采用如下图所示的方法。将串行

24、口作为并行输出口使用时,可采用如下图所示的方法。若串行口要作为并行口进行输入输出若串行口要作为并行口进行输入输出,必须设置必须设置“串入并出串入并出“或或”并入串出并入串出”的移位寄存器来配合使用的移位寄存器来配合使用(如如CD4094、74LS164或或CD4014、74LS165等等)。1 1、与、与“串入并出串入并出”芯片芯片74LS16474LS164配合,通过串行口配合,通过串行口扩展扩展MCS-51MCS-51的输出口。的输出口。连线图74LS164的串行数据输入端的串行数据输入端74LS164的移的移位脉冲位脉冲CLK74LS16474LS164为为8 8位串并转换移位寄存器,能

25、实现位串并转换移位寄存器,能实现将串行输入数据并行输出的功能。将串行输入数据并行输出的功能。并行数据并行数据输出引脚输出引脚例例1 1:用用74LS164与串口配合扩展的并行输出口接与串口配合扩展的并行输出口接8只只LEDLED,利用它,利用它的串入并出功能,依次点亮的串入并出功能,依次点亮LEDLED,并不断循环之。电路设计见下图。,并不断循环之。电路设计见下图。用用P1.0接接74LS164的的CLR端,端,这样这样可控制可控制74LS164的数据接收和清除的数据接收和清除设置设置SCON因为因为,方式式方式式0时时,SM2、RB8、TB8均不用,故都设为均不用,故都设为0,初始,初始TI

26、、RI也应为也应为0,做输出口所以禁止接收,做输出口所以禁止接收,REN=0故故SCON设为:设为:00H#includesbitMR=P10;voiddelay()unsignedinti;for(i=0;i20000;i+);采用查询方式控制传送采用查询方式控制传送voidmain()unsignedcharj;unsignedcharLED;ES=0;/禁止响应串行口中断禁止响应串行口中断SCON=0;/初始化串口初始化串口,方式方式0工作,做输出,禁止接收工作,做输出,禁止接收while(1)MR=1;/74LS164的的CLR1,允许输入数据,允许输入数据LED=0 xfe;/控制控

27、制LED点亮的初始控制码,点亮的初始控制码,for(j=0;j8;j+)SBUF=LED;/控制码写入串口发送数据缓冲器控制码写入串口发送数据缓冲器dowhile(!TI);/通过查询通过查询TI判别数据是否输出结束判别数据是否输出结束LED=(LED1)|1);/修改控制码修改控制码delay();/轮显间隔轮显间隔TI=0;2 2、与、与“并入串出并入串出”芯片芯片74LS16574LS165配合,通过串行口扩配合,通过串行口扩展展MCS-51MCS-51的输入口的输入口扩展并行输入口连接图扩展并行输入口连接图74LS165串行数据输出端串行数据输出端74LS165的移位脉冲的移位脉冲CL

28、K74LS165并行输入锁并行输入锁存存/串行移位串行移位控制端控制端74LS165还还可串入串可串入串出出74LS165并行数据输入端并行数据输入端例例1 1:用用74LS164与串口配合扩展的并行输出口接与串口配合扩展的并行输出口接8只只LEDLED,利用它,利用它的串入并出功能,依次点亮的串入并出功能,依次点亮LEDLED,并不断循环之。电路设计见下图。,并不断循环之。电路设计见下图。用用P1.0接接74LS164的的CLR端,端,这样这样可控制可控制74LS164的数据接收和清除的数据接收和清除设置设置SCON因为因为,方式式方式式0时时,SM2、RB8、TB8均不用,故都设为均不用,

29、故都设为0,初始,初始TI、RI也应为也应为0,做输出口所以禁止接收,做输出口所以禁止接收,REN=0故故SCON设为:设为:00H#includesbitMR=P10;voiddelay()unsignedinti;for(i=0;i20000;i+);采用查询方式控制传送采用查询方式控制传送voidmain()unsignedcharj;unsignedcharLED;ES=0;/禁止响应串行口中断禁止响应串行口中断SCON=0;/初始化串口初始化串口,方式方式0工作,做输出,禁止接收工作,做输出,禁止接收while(1)MR=1;/74LS164的的CLR1,允许输入数据,允许输入数据L

30、ED=0 xfe;/控制控制LED点亮的初始控制码,点亮的初始控制码,for(j=0;j8;j+)SBUF=LED;/控制码写入串口发送数据缓冲器控制码写入串口发送数据缓冲器dowhile(!TI);/通过查询通过查询TI判别数据是否输出结束判别数据是否输出结束LED=(LED1)|1);/修改控制码修改控制码delay();/轮显间隔轮显间隔TI=0;2 2、与、与“并入串出并入串出”芯片芯片74LS16574LS165配合,通过串行口扩配合,通过串行口扩展展MCS-51MCS-51的输入口的输入口扩展并行输入口连接图扩展并行输入口连接图74LS165串行数据输出端串行数据输出端74LS16

31、5的移位脉冲的移位脉冲CLK74LS165并行输入锁并行输入锁存存/串行移位串行移位控制端控制端74LS165还还可串入串可串入串出出74LS165并行数据输入端并行数据输入端7.3.3 7.3.3 方式方式2 2和方式和方式3 39 9位数据异步通信方式位数据异步通信方式1 1.一帧为一帧为1111位:位:9 9位数据,位数据,1 1位起始位位起始位(0)(0),1 1位停止位位停止位(1)(1)。第。第9 9位数据位在位数据位在TB8/RB8TB8/RB8中,常用作校验位和多机通信标识位。中,常用作校验位和多机通信标识位。2 2.RXD.RXD:接收数据端,:接收数据端,TXDTXD:发送

32、数据端。:发送数据端。3 3.波特率:波特率:方式方式2 2:波特率:波特率=(2=(2SMODSMOD/64)/64)fosc fosc 可选可选方式方式3 3:波特率:波特率=(2=(2SMODSMOD/32)/32)T1T1溢出率溢出率 可变可变起始D0D1D2D3D4D5D6D7D8停止方式方式2 2与方式与方式3 3的不同仅在于:的不同仅在于:方式方式2 2的波特率是两个固定的波特率是两个固定值,而方式值,而方式3 3的波特率是可变的。的波特率是可变的。4 4.发送:发送:由软件先装入由软件先装入TB8TB8,再将待发送数据写入,再将待发送数据写入SBUFSBUF,即,即启动发送,发

33、送结束,启动发送,发送结束,TI=1TI=1。接收接收:与方式:与方式1 1的接收类似。的接收类似。接收完一帧,若接收完一帧,若RI=0RI=0且第且第9 9位位为为1(1(或或SM2=0)SM2=0),才将接收数据装入接收,才将接收数据装入接收SBUFSBUF,第,第9 9位装入位装入RB8RB8,并使,并使RI=1RI=1;否则丢弃接收数据,不置位;否则丢弃接收数据,不置位RIRI。方式方式0 0为固定波特率为固定波特率:波特率波特率=fosc/12=fosc/12方式方式2 2可选两种波特率可选两种波特率:波特率波特率=(2=(2SMOD SMOD/64)/64)fosc fosc 7.

34、3.4串行口的波特率发生器及波特率设置串行口的波特率发生器及波特率设置方式方式1 1、3 3为可变波特率为可变波特率,用用T1T1或或T2T2作波特率发生器作波特率发生器,波波特率由定时器特率由定时器T1(或(或T2)的溢出率和的溢出率和SMOD确定。确定。用用T1定时定时工作工作做波特率做波特率发生器发生器时时:波特率波特率=(2=(2SMODSMOD/32)/32)T1T1溢出率溢出率SMOD=0时时,波特率为波特率为(1/64)fOSC;SMOD=1,波特率为(波特率为(1/32)fOSC。T1的溢出率与它的工作方式有关:的溢出率与它的工作方式有关:T1方式方式0、方式、方式1时时:L要

35、要保证定时器产生频率固定的脉冲,需在定时中断后重新保证定时器产生频率固定的脉冲,需在定时中断后重新对定时器置初值,所以,要考虑这些工作附加的时间,上式中对定时器置初值,所以,要考虑这些工作附加的时间,上式中的的X是中断服务程序的机器周期数。是中断服务程序的机器周期数。T1方式方式2工作时工作时:方式方式2是是8位可重装的方式位可重装的方式,无需对定时器置数,没有中断引,无需对定时器置数,没有中断引起的误差,起的误差,此时,此时,应禁止定时器应禁止定时器T1T1中断中断。溢出率溢出率=f fosc11228-(TH1)X表表定时器定时器T1产生的常用波特率产生的常用波特率一、一、串行口的编程串行

36、口的编程串串行行口口需需初初始始化化后后,才才能能按按要要求求完完成成数数据据的的输输入入、输输出出。其其初初始化过程如下始化过程如下:(1)按要求的串口的工作方式设定按要求的串口的工作方式设定SCON的的SM0、SM1两位两位(2)对对于于方方式式2或或3,应应根根据据需需要要在在TB8中中写写入入待待发发送送的的第第9位数据。位数据。(3)若选定的方式不是方式若选定的方式不是方式0,还需设定接收还需设定接收/发送的波特率。发送的波特率。设定设定SMOD的状态的状态,以控制波特率是否加倍。以控制波特率是否加倍。若选定方式若选定方式1或或3,则应对则应对T1进行初始化以设定其溢出率。进行初始化

37、以设定其溢出率。7.4 MCS-51单片机串行口应用单片机串行口应用 7.4.1利用方式利用方式0实现串行扩展实现串行扩展利用串口的工作方式利用串口的工作方式0加上串入并出移位寄存加上串入并出移位寄存器器74LS164、并入串出移位寄存器、并入串出移位寄存器74LS165等外围等外围芯片,可以实现芯片,可以实现I/O口的串行扩充。口的串行扩充。利用外围芯片的特性及串行口方式利用外围芯片的特性及串行口方式0本身的特本身的特点,用点,用74LS164可以方便的将两位的串口扩展成多可以方便的将两位的串口扩展成多个个8位的并行输出口。位的并行输出口。而用而用74LS165可以方便的接收多个可以方便的接

38、收多个8路的并行路的并行信号,然后转化为串行信号,送入单片机处理。信号,然后转化为串行信号,送入单片机处理。7.4.2方式方式1应用举例应用举例将单片机的将单片机的TXDTXD接接RXDRXD,实现串口数据自发自收,接收的数,实现串口数据自发自收,接收的数据通过据通过P1P1口输出到发光二极管口输出到发光二极管,控制控制8 8个发光二极管奇、偶位交替个发光二极管奇、偶位交替点亮。若点亮。若fosc为为11.0592MHz,11.0592MHz,要求:自发自收的波特率为要求:自发自收的波特率为24002400波波特特,串行口工作在方式串行口工作在方式1 1。电路设计电路设计要求串口方式要求串口方

39、式1:编程分析:编程分析:1)先初始化串行通信控制寄存器)先初始化串行通信控制寄存器SCON和和T1。按照题目要求:设定串口工作在方式按照题目要求:设定串口工作在方式1,允许接收允许接收由于方式由于方式1的波特率要通过的波特率要通过T1来设定实现,因此,将来设定实现,因此,将T1设置设置为方式为方式2、定时,、定时,根据需要的波特率要求,计算根据需要的波特率要求,计算T1的定时初值。的定时初值。50HSCON20H=2400写入写入T1的计数初值为的计数初值为:F4H(244)将将SMOD设为设为0,不倍增即可满足波特率要求不倍增即可满足波特率要求#include#defineucharuns

40、ignedchar#defineuintunsignedintmain()ES=0;ET1=0;/禁止响应串口中断、定时器禁止响应串口中断、定时器T1中断中断uchari=0 x55;/奇数位亮控制码送奇数位亮控制码送uintj=0;/延时循环控制变量延时循环控制变量TMOD=0 x20;/设置定时器设置定时器1工作在模式工作在模式2TL1=0 xF4;TH1=0 xF4;/根据波特率要求设置定时器根据波特率要求设置定时器1初值初值PCON=0 x00;/波特率不倍增波特率不倍增SCON=0 x50;/串口工作方式串口工作方式1,允许接收,允许接收TR1=1;/启动定时器启动定时器1按查询方式

41、编程RI=0;/清除接收中断标志位清除接收中断标志位RITI=0;/清除发送中断标志位清除发送中断标志位TIi=SBUF;/读取接收数据读取接收数据P1=i;/送入送入P1口显示口显示i=i;/将发送数取反将发送数取反for(j=0;j12500;j+);/点亮间隔时间点亮间隔时间while(1)SBUF=i;/发送数据发送数据dowhile(!RI);/等待发送数据被接收完毕产生接收中断标志等待发送数据被接收完毕产生接收中断标志 利用串口方式利用串口方式2 2工作,发送一个字符串,采用偶校验工作,发送一个字符串,采用偶校验#include#includesbitp=PSW0;chars=MS

42、C-51SerialCommunicationBus;voidmain(viod)chara,i=0;ES=0;SCON=0 x90;/串行口方式串行口方式2,允许接收,允许接收PCON=0 x80;/波特率倍频波特率倍频a=strlen(s);/求出字符串长度求出字符串长度for(;ia;i+)/循环控制发送串中所有字符循环控制发送串中所有字符ACC=si;/字符送字符送A,为获取为获取P标志状态标志状态TB8=p;/置奇偶校验位(第置奇偶校验位(第9位数)位数)SBUF=si;/写入写入SBUF启动发送启动发送while(!TI);/等待一个字符发送完等待一个字符发送完TI=0;/清除发送

43、标志清除发送标志方式方式2的波特率的波特率7.4.3方式方式2应用举例应用举例要求:利用串口方式要求:利用串口方式3 3,接收,接收1616个数据个数据,并将它们存入并将它们存入片内数据存储器。设晶振为片内数据存储器。设晶振为11.059MHz11.059MHz,波特率为,波特率为2400b/s2400b/s。编程分析编程分析方式方式3 3为为9 9位数据的异步通信方式,波特率取决于位数据的异步通信方式,波特率取决于T1T1的溢出率,设的溢出率,设T1T1工作在可自动重装载的方式工作在可自动重装载的方式2 2。晶振。晶振为为11.059MHz11.059MHz,波特率要求,波特率要求2400b

44、/s2400b/s时,波特率倍增,时,波特率倍增,故故 SMOD=1SMOD=1,由此计算出,由此计算出 TL0=TH0=F4TL0=TH0=F4。禁止。禁止T1T1中断中断7.4.4方式方式3应用举例应用举例接收数据时,发送的接收数据时,发送的8 8位数据从接收位数据从接收SBUFSBUF获得,获得,而发送的校验位从而发送的校验位从RB8RB8读取。读取。SCON:D0HTMOD:20H#include#includesbitp=PSW0;chars15;voidmain(viod)chart,i;SCON=0 xD0;TMOD=0 x20;TL1=0 xF4;TH1=0 xF4;PCON=

45、0 x80;ES=0;ET1=0;TR1=1;for(i=0;i+3V逻辑逻辑”1”电平电平:-3V计算机中常用的计算机中常用的9针针RS232C接口引脚排列规定如右表接口引脚排列规定如右表引脚号引脚号符号符号I/O方方向向 功能描述功能描述1DCD I数据载波检测数据载波检测2RXD I接收数据接收数据3TXD 0发送数据发送数据4DTR 0数据终端就绪数据终端就绪5GND_信号地信号地6DSR I数据设备就绪数据设备就绪7RTS 0请求发送请求发送8CTS I允许发送允许发送9RI I振铃指示振铃指示25芯芯D型插座型插座RS-232C接口信号名称及主要信号流向;接口信号名称及主要信号流向

46、;二、二、串行通信的硬件连接串行通信的硬件连接最简单的双机通信实现:将一方的发送最简单的双机通信实现:将一方的发送TXD引脚引脚接另一方的接收接另一方的接收RXD引脚,同时,还需要将两个单片引脚,同时,还需要将两个单片机系统的地线相连,保证两个系统共地(最简单的机系统的地线相连,保证两个系统共地(最简单的“三线制三线制”的连接)。的连接)。上图连接方法只适用于两机距离很近、干扰小的上图连接方法只适用于两机距离很近、干扰小的情况。情况。GNDTXDRXDGNDRXDTXDGND 通信距离较远时,可以利用通信距离较远时,可以利用RS-232CRS-232C接口芯片延长通信距离接口芯片延长通信距离

47、由于单片机引脚的逻辑是接近于由于单片机引脚的逻辑是接近于TTLTTL的电平的电平,若要转若要转换为换为RS232RS232的电平的电平,需要专用的电路需要专用的电路,目前,串口电平转目前,串口电平转换最常用的芯片有换最常用的芯片有Maxim公司的公司的MAX232MAX232。MAX232MAX232是一款可实现是一款可实现EIA-EIA-232232接口的低功耗电平转换接口的低功耗电平转换芯片,是低功耗、单电源双芯片,是低功耗、单电源双路路RS-232RS-232发送发送/接收器,接收器,可可完成完成TTLTTL和和RS-232RS-232串行双向串行双向电平的转换电平的转换。2、通过通过R

48、S232接口连接。接口连接。MAX232集成了两组电平集成了两组电平转换器,可完成转换器,可完成TTL和和RS-232串行双向电平的转串行双向电平的转换换。其内的电压转换器可把输入的其内的电压转换器可把输入的+5V电压转换为电压转换为RS232端端口所需的口所需的10V电压电压。尤其适合没有。尤其适合没有12V的单电源系统,所的单电源系统,所以,在单片机应用系统中使用广泛。以,在单片机应用系统中使用广泛。入入电平输出电平输出TTLTTL 通过通过MAX232MAX232的的TTLTTL和和RS-232RS-232输入输入/输出口,可自动输出口,可自动调节调节TTLTTL和和RS232RS232

49、串行通信信号的电平匹配,数据传串行通信信号的电平匹配,数据传输速率可达到输速率可达到250kbps250kbps。其引脚功能如:。其引脚功能如:MAX232引脚引脚(1)计算机与单片机串行口的连接)计算机与单片机串行口的连接例:单片机从例:单片机从P0P0口输出从计算机串口发送口输出从计算机串口发送来的数据,点亮对应的发光二极管。电路来的数据,点亮对应的发光二极管。电路设计如下:设计如下:(2 2)单片机之间远距离串行通信的接口电路设计)单片机之间远距离串行通信的接口电路设计 经过经过MAX232MAX232实现单片机之间远距离通信时,其中一端实现单片机之间远距离通信时,其中一端的接口电路图如

50、下所示,另一端接口电路与此相同。的接口电路图如下所示,另一端接口电路与此相同。图图 MAX232MAX232接口电路接口电路R1OUT和和T1IN分别与分别与单片机的单片机的RXD(P3.0和和TXD(P3.1)相连相连T1OUT和和R1IN通过通过DB9专用串行通信接插件和另外专用串行通信接插件和另外一个单片机相连。正常情况下,一个单片机相连。正常情况下,DB9使用使用2、3脚进行脚进行串行通信。串行通信。注意:通信双方连接时是一方的注意:通信双方连接时是一方的T1OUT与另一方的与另一方的R1IN相连,相连,即双方即双方DB9插插件的件的2、3脚脚交叉连接。交叉连接。例:设计实现两个单片机

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com