《单片机第七章串行通信精.ppt》由会员分享,可在线阅读,更多相关《单片机第七章串行通信精.ppt(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机第七章串行通单片机第七章串行通信信第1页,本讲稿共67页7.1 串行通信的基本知识串行通信的基本知识1 1、通信方式、通信方式、通信方式、通信方式1 1)并行通信)并行通信)并行通信)并行通信各各各各数数数数据据据据位位位位同同同同时时时时传传传传送送送送,其其其其传传传传送送送送速速速速度度度度快快快快、效效效效率率率率高高高高。但但但但并并并并行行行行数数数数据据据据传传传传送送送送有有有有多多多多少少少少数数数数据据据据位位位位就就就就需需需需要要要要多多多多少少少少根数据线,成本高,比较适合近距离通信。根数据线,成本高,比较适合近距离通信。根数据线,成本高,比较适合近距离通信。根
2、数据线,成本高,比较适合近距离通信。2 2)串行通信)串行通信)串行通信)串行通信则则则则是是是是数数数数据据据据传传传传送送送送按按按按位位位位顺顺顺顺序序序序进进进进行行行行,最最最最少少少少只只只只需需需需一一一一根根根根传传传传输输输输线线线线即即即即可可可可,成成成成本本本本低低低低、速速速速度度度度慢慢慢慢。计计计计算算算算机机机机与与与与远远远远程程程程终终终终端端端端或或或或终终终终端端端端与与与与终终终终端端端端之之之之间间间间的的的的数数数数据据据据传传传传送送送送通通通通常常常常部部部部是是是是串串串串行行行行的的的的。图图图图7-17-1所所所所示示示示为为为为两两两两
3、种种种种通通通通信信信信方方方方式式式式示示示示意意意意图。图。图。图。第2页,本讲稿共67页(1)并行通信(2)串行通信第3页,本讲稿共67页2 2、异步、异步、异步、异步通信与同步通信方式通信与同步通信方式通信与同步通信方式通信与同步通信方式异步通信异步通信是指通信的是指通信的发发送与接收送与接收设备设备使用各自的使用各自的时钟时钟控控制数据的制数据的发发送和接收送和接收过过程。程。为为使双方的收使双方的收发协调发协调,要求,要求发发送和接收送和接收设备设备的的时钟时钟尽可能一致。尽可能一致。同步通信同步通信时要建立发送方时钟对接收方时钟的直接控制,时要建立发送方时钟对接收方时钟的直接控制
4、,使双方达到完全同步。此时,传输数据的位之间的距离使双方达到完全同步。此时,传输数据的位之间的距离均为均为“位间隔位间隔”的整数倍,同时传送的字符间不留间隙,的整数倍,同时传送的字符间不留间隙,即即保持位同步保持位同步关系,关系,也保持字符同步也保持字符同步关系。发送方对接关系。发送方对接收方的同步可以通过这两种方法实现。收方的同步可以通过这两种方法实现。第4页,本讲稿共67页异步通信是异步通信是以字符(构成的帧)为单位进行传输以字符(构成的帧)为单位进行传输,字符与字符之,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定间的间隙(时间间隔)是任意的,但每个字符中的各位是以
5、固定的时间传送的,即的时间传送的,即字符之间是异步的字符之间是异步的(字符之间不一定有(字符之间不一定有“位间位间隔隔”的整数倍的关系),但的整数倍的关系),但同一字符内的各位是同步的同一字符内的各位是同步的(各位(各位之间的距离均为之间的距离均为“位间隔位间隔”的整数倍)。的整数倍)。第5页,本讲稿共67页异步传送的字符帧格式如图所示。一帧字符格式包括异步传送的字符帧格式如图所示。一帧字符格式包括1位位起始位、起始位、58位数据位、奇偶校验位和位数据位、奇偶校验位和1位停止位。起位停止位。起始位为始位为0,用于表示一个字符的开始。起始位之后传送,用于表示一个字符的开始。起始位之后传送数据位。
6、在数据位中,低位在前(左),高位在后数据位。在数据位中,低位在前(左),高位在后(右)。数据位可以是(右)。数据位可以是5、6、7或或8位。奇偶校验位用位。奇偶校验位用于对字符传送作正确性检查。有于对字符传送作正确性检查。有3种可能供选择:奇校种可能供选择:奇校验、偶校验和无校验。由用户根据需要选定。停止位验、偶校验和无校验。由用户根据需要选定。停止位在最后,用以标志一个字符传送的结束,它对应于在最后,用以标志一个字符传送的结束,它对应于1状状态。停止位可能是态。停止位可能是1、1.5或或2位,在实际使用根据需要位,在实际使用根据需要确定。确定。异步传送可以是连续的,也可以是断续的,且间隔时间
7、异步传送可以是连续的,也可以是断续的,且间隔时间可任意改变,间隔用空闲位可任意改变,间隔用空闲位1填充。在填充。在89S51单片机系单片机系统中,第九位数据统中,第九位数据D8可以用作奇偶校验位,也可以用可以用作奇偶校验位,也可以用作地址作地址/数据帧标志。数据帧标志。第6页,本讲稿共67页图7-2 串行异步通信字符帧格式异步通信有固定的字符帧,通信双方只需按约定的帧格式进行发送和接收数据,硬件结构比较简单。当平时不发送数据时,发送端应保持为1。数据接收端将不断检测接收的数据,若连续检测到1之后检测到0,则为新发送来的数据,应立即接收。在同步串行通信中,每一数据块开头时发送1至2个同步字符,使
8、发送方与接收方保持同步。数据块的各个字符间去掉了起始位和停止位,其通信速度比较高,但其硬件结构也比较复杂。同步通信时,如果发送的数据块之间有间隔时间,则发送同步字符填充 第7页,本讲稿共67页2.2.数据传送方向数据传送方向数据传送方向数据传送方向1、单工单工是指数据传输仅能沿一个方向,不能实现反向传输。2、半双工半双工是指数据传输可以沿两个方向,但需要分时进行。3、全双工全双工是指数据可以同时进行双向传输。第8页,本讲稿共67页4、串行通信的传送速率串行通信的传送速率比特率是每秒钟传输二进制代码的位数,单位是:位秒(bps)。如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1
9、个停止位、8个数据位),这时的比特率为:10位240个/秒=2400 bps波特率表示每秒钟调制信号变化的次数,单位是:波特(Baud)。)。)。波特率和比特率不总是相同的,对于将数字信号1或0直接用两种不同电压表示的所谓基带传输,比特率和波特率是相同的。所以,我们也经常用波特率表示数据的传输速率。第9页,本讲稿共67页在串行通信中,数据位的发送和接收分别由发送在串行通信中,数据位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制。时钟时钟脉冲和接收时钟脉冲进行定时控制。时钟频率高,则波特率也高,通信速度就快;反之,频率高,则波特率也高,通信速度就快;反之,时钟频率低,则波特率也低,通信
10、速度就慢。时钟频率低,则波特率也低,通信速度就慢。第10页,本讲稿共67页7.2 MCS-51单片机串行口的单片机串行口的结构与工作原理结构与工作原理1 1、串行口的结构串行口的结构串行口的结构串行口的结构 MCS-51单片机内部的串行接口是全双工的,即它能单片机内部的串行接口是全双工的,即它能同时发送和接收数据。发送缓冲器只能写入不能读出,接同时发送和接收数据。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入。串行口还有接收缓冲作用,收缓冲器只能读出不能写入。串行口还有接收缓冲作用,即从接收寄存器中读出前一个已收到的字节之前就能开始即从接收寄存器中读出前一个已收到的字节之前就能开始接收
11、第二字节。接收第二字节。两个串行口数据缓冲器(实际上是两个寄存器)通过特两个串行口数据缓冲器(实际上是两个寄存器)通过特殊功能寄存器殊功能寄存器SBUF来访问。写入来访问。写入SBUF的数据储存在发送的数据储存在发送缓冲器,用于串行发送;从缓冲器,用于串行发送;从SBUF读出的数据来自接收缓冲读出的数据来自接收缓冲器。两个缓冲器共用一个地址器。两个缓冲器共用一个地址99H(特殊功能寄存器(特殊功能寄存器SBUF的地址)。的地址)。第11页,本讲稿共67页在在在在串串串串行行行行口口口口发发发发送送送送数数数数据据据据时时时时,将将将将CPUCPU送送送送来来来来的的的的并并并并行行行行数数数数
12、据据据据转转转转换换换换成成成成一一一一定定定定格格格格式式式式的的的的串串串串行行行行数数数数据据据据,从从从从引引引引脚脚脚脚TXDTXD(P3.1P3.1)上上上上按按按按规规规规定定定定的的的的波波波波特特特特率率率率逐逐逐逐位位位位输输输输出出出出;接接接接收收收收数数数数据据据据时时时时,外外外外部部部部信信信信号号号号通通通通过过过过引引引引脚脚脚脚RXDRXD(P3.0P3.0)输输输输入入入入,再再再再将将将将发发发发送送送送来来来来的的的的串串串串行行行行数数数数据据据据转转转转换换换换成成成成并并并并行行行行数数数数据据据据,等等等等待待待待CPUCPU读读读读入入入入。
13、它它它它的的的的帧帧帧帧格格格格式式式式有有有有8 8位位位位、1010位位位位和和和和1111位位位位,可可可可以以以以设设设设置置置置为为为为固固固固定定定定波波波波特特特特率率率率和和和和可可可可变变变变波波波波特特特特率率率率,给给给给使使使使用用用用者者者者带带带带来来来来很很很很大大大大的的的的灵灵灵灵活活活活性性性性。在在在在单单单单片片片片机机机机中中中中,主主主主要要要要适适适适用用用用异异异异步步步步传传传传送送送送方式方式方式方式 第12页,本讲稿共67页图7-3 串行口结构框图第13页,本讲稿共67页7.3 7.3 串行口控制寄存器串行口控制寄存器串行口控制寄存器串行口
14、控制寄存器SCONSCON和电源控制寄存器和电源控制寄存器和电源控制寄存器和电源控制寄存器PCONPCON1 1、串行口控制寄存器串行口控制寄存器串行口控制寄存器串行口控制寄存器SCONSCON串行口控制寄存器串行口控制寄存器串行口控制寄存器串行口控制寄存器SCONSCON决定串行口通信工作方式,控决定串行口通信工作方式,控决定串行口通信工作方式,控决定串行口通信工作方式,控制数据的接收和发送,并标示串行口的工作状态等。其位制数据的接收和发送,并标示串行口的工作状态等。其位制数据的接收和发送,并标示串行口的工作状态等。其位制数据的接收和发送,并标示串行口的工作状态等。其位格式为:格式为:格式为
15、:格式为:第14页,本讲稿共67页(1 1)SM0SM0、SM1SM1:串行口工作方式控制位,两位对应四种:串行口工作方式控制位,两位对应四种:串行口工作方式控制位,两位对应四种:串行口工作方式控制位,两位对应四种工作方式,如表工作方式,如表工作方式,如表工作方式,如表7-17-1所示(所示(所示(所示(foscfosc是晶振频率)。是晶振频率)。是晶振频率)。是晶振频率)。第15页,本讲稿共67页(2)SM2多机通信控制位多机通信控制位因多机通信是在方式因多机通信是在方式2和方式和方式3下进行,因此下进行,因此SM2位主要用于位主要用于方式方式2和方式和方式3 SM21RB81将接收到的前8
16、位数据送SBUF,并置位RI产生中断请求;SM21RB80将接收到的前8位数据丢弃。SM20RB81都将前8位数据装入SBUF中,并产生中断请求。SM20RB80都将前8位数据装入SBUF中,并产生中断请求。当串行口以方式2或方式3接收时,如果SM21,则只有当接收到的第九位数据(RB8)为1,才将接收到的前8位数据送SBUF,并置位RI产生中断请求;否则,将接收到的前8位数据丢弃。而当SM20,则不论第九位数据为0还是1,都将前8位数据装入SBUF中,并产生中断请求。在方式1时,当处于接收时,若SM21,则只有收到有效的停止位时,RI才置1。在方式0时,SM2必须为0。第16页,本讲稿共67
17、页(3)REN允许串行口接收位允许串行口接收位REN0,禁止串行口接收数据,禁止串行口接收数据REN1,允许串行口接收数据,允许串行口接收数据该位由软件置位或复位。该位由软件置位或复位。(4)TB8发送数据第发送数据第9位位在方式在方式2和方式和方式3时,时,TB8的内容是要发送的第的内容是要发送的第9位数据。位数据。在双机通信时,在双机通信时,TB8一般作为奇偶校验位使用;在多一般作为奇偶校验位使用;在多机通信中,以机通信中,以TB8位的状态表示主机发送的是地址帧位的状态表示主机发送的是地址帧还是数据帧,且一般约定:还是数据帧,且一般约定:TB80为数据帧,为数据帧,TB81为地址帧。该位由
18、软件置位或复位。为地址帧。该位由软件置位或复位。(5)RB8接收数据位接收数据位8在方式在方式2或方式或方式3时,时,RB8存放接收到的第存放接收到的第9位数据,代表位数据,代表着接收数据的某种特征(与着接收数据的某种特征(与TB8的功能类似),故应的功能类似),故应根据其状态对接收数据进行操作。根据其状态对接收数据进行操作。第17页,本讲稿共67页6)TI发送中断标志发送中断标志当方式当方式0时,发送完第时,发送完第8位数据后,该位由硬件置位。在位数据后,该位由硬件置位。在其它方式下,于发送停止位之前,该位由硬件置位。其它方式下,于发送停止位之前,该位由硬件置位。因此因此TI1,表示帧发送结
19、束。其状态既可供软件查询,表示帧发送结束。其状态既可供软件查询使用,也可请求中断。使用,也可请求中断。TI位须由软件清位须由软件清0。(7)RI接收中断标志接收中断标志 当方式当方式0时,接收完第时,接收完第8位数据后,该位由硬件置位。位数据后,该位由硬件置位。在其它方式下,当接收到停止位时,该位由硬件置位。在其它方式下,当接收到停止位时,该位由硬件置位。因此因此RI1,表示帧接收结束。其状态既可供软件查询,表示帧接收结束。其状态既可供软件查询使用,也可以请求中断。使用,也可以请求中断。RI须由软件清须由软件清0。第18页,本讲稿共67页2 2、电源控制寄存器电源控制寄存器电源控制寄存器电源控
20、制寄存器PCONPCON电电电电源源源源控控控控制制制制寄寄寄寄存存存存器器器器PCONPCON中中中中只只只只有有有有一一一一位位位位SMODSMOD与与与与串串串串行行行行口口口口工作有关,它的位格式为:工作有关,它的位格式为:工作有关,它的位格式为:工作有关,它的位格式为:SMODSMOD:波波波波特特特特率率率率倍倍倍倍增增增增位位位位。串串串串行行行行口口口口工工工工作作作作在在在在方方方方式式式式1 1、方方方方式式式式2 2、方方方方式式式式3 3时时时时,若若若若SMOD=1SMOD=1,则则则则波波波波特特特特率率率率提提提提高高高高一一一一倍倍倍倍;若若若若SMOD=0SM
21、OD=0,则则则则波波波波特特特特率率率率不不不不提提提提高高高高一一一一倍倍倍倍。单单单单片片片片机机机机复复复复位位位位时时时时,SMOD=0SMOD=0。第19页,本讲稿共67页7.4 7.4 串行口工作方式串行口工作方式串行口工作方式串行口工作方式89S51/S5289S51/S52单片机中的异步通信串行接口能方便地与其他单片机中的异步通信串行接口能方便地与其他单片机中的异步通信串行接口能方便地与其他单片机中的异步通信串行接口能方便地与其他计算机或传送信息的外围设备(如串行打印机、计算机或传送信息的外围设备(如串行打印机、计算机或传送信息的外围设备(如串行打印机、计算机或传送信息的外围
22、设备(如串行打印机、CPUCPU终端等)实现双机、多机通信。单片机的串行口共有终端等)实现双机、多机通信。单片机的串行口共有终端等)实现双机、多机通信。单片机的串行口共有终端等)实现双机、多机通信。单片机的串行口共有4 4种工作方式。种工作方式。种工作方式。种工作方式。工作方式工作方式工作方式工作方式0 0移位寄存器方式,可以通过外接移位寄存器芯移位寄存器方式,可以通过外接移位寄存器芯移位寄存器方式,可以通过外接移位寄存器芯移位寄存器方式,可以通过外接移位寄存器芯片实现扩展并行片实现扩展并行片实现扩展并行片实现扩展并行I/OI/O接口的功能。工作方式接口的功能。工作方式接口的功能。工作方式接口
23、的功能。工作方式1 1、工作方、工作方、工作方、工作方式式式式2 2、工作方式、工作方式、工作方式、工作方式3 3都是异步通信方式。都是异步通信方式。都是异步通信方式。都是异步通信方式。工作方式工作方式工作方式工作方式1 1是是是是8 8位异步通信接口。一帧信息由位异步通信接口。一帧信息由位异步通信接口。一帧信息由位异步通信接口。一帧信息由1010位组成,位组成,位组成,位组成,用于双机串行通信。工作方式用于双机串行通信。工作方式用于双机串行通信。工作方式用于双机串行通信。工作方式2 2、工作方式、工作方式、工作方式、工作方式3 3都是都是都是都是9 9位异位异位异位异步通信接口、一帧信息中包
24、括步通信接口、一帧信息中包括步通信接口、一帧信息中包括步通信接口、一帧信息中包括9 9位数据,位数据,位数据,位数据,1 1位起始位,位起始位,位起始位,位起始位,1 1位停止位,工作方式位停止位,工作方式位停止位,工作方式位停止位,工作方式2 2、工作方式、工作方式、工作方式、工作方式3 3的区别在于波特率的区别在于波特率的区别在于波特率的区别在于波特率不同,主要用于多机通信,也可用于双机通信。不同,主要用于多机通信,也可用于双机通信。不同,主要用于多机通信,也可用于双机通信。不同,主要用于多机通信,也可用于双机通信。第20页,本讲稿共67页7.4.1 工作方式工作方式0在方式在方式0下,串
25、行口是作为同步移位寄存器使用。主要用于扩展并行下,串行口是作为同步移位寄存器使用。主要用于扩展并行I/O口。波特率固定为口。波特率固定为fosc/12。这时数据由。这时数据由RXD(P3.0)端输入和输出,)端输入和输出,由由TXD(P3.1)端提供移位时钟脉冲。移位数据的发送和接收以)端提供移位时钟脉冲。移位数据的发送和接收以8位为位为一帧,低位在前高位在后,不设起始位和停止位。一帧,低位在前高位在后,不设起始位和停止位。1.数据发送与接收数据发送与接收在使用方式在使用方式0进行数据的发送时,进行数据的发送时,CPU将一个字节写入发送缓冲器将一个字节写入发送缓冲器SBUF,TXD端输出同步时
26、钟信号,串行口即以端输出同步时钟信号,串行口即以fosc/12的波特率将的波特率将8位位数据从数据从RXD口输出(低位在前,高位在后),发送完后置位中断标志口输出(低位在前,高位在后),发送完后置位中断标志TI,在继续发送之前须由软件将中断标志位清,在继续发送之前须由软件将中断标志位清0。第21页,本讲稿共67页在使用方式在使用方式0进行数据的接收时,数据从进行数据的接收时,数据从RXD端输入,端输入,TXD端输端输出同步时钟信号,接收缓冲器以出同步时钟信号,接收缓冲器以fosc/12的波特率接收数据,当的波特率接收数据,当接收缓冲器接收完接收缓冲器接收完8位数据后置位中断标志位数据后置位中断
27、标志RI,在继续接收之前,在继续接收之前须由软件将中断标志位清须由软件将中断标志位清0。REN位用于允许接收的控制,位用于允许接收的控制,REN0,禁止接收数据;,禁止接收数据;RENl,允许接收数据。,允许接收数据。在方式在方式0下不使用串行口控制寄存器下不使用串行口控制寄存器SCON中的中的TB8位和位和RB8位,位,即发送或接收数据的第即发送或接收数据的第9位,且位,且SM2位必须为位必须为0。第22页,本讲稿共67页 方式方式0接收和发送电路接收和发送电路第23页,本讲稿共67页2.波特率波特率的计算在串行通信中,收发双方对发送或接收数据的速率要有在串行通信中,收发双方对发送或接收数据
28、的速率要有约定。通过软件可对单片机串行口编程为四种工作方约定。通过软件可对单片机串行口编程为四种工作方式,其中方式式,其中方式0和方式和方式2的波特率是固定的,而方式的波特率是固定的,而方式1和方式和方式3的波特率是可变的,由定时器的波特率是可变的,由定时器T1的溢出率来的溢出率来决定。决定。串行口的四种工作方式对应串行口的四种工作方式对应三种波特率三种波特率。由于输入的。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。公式也不相同。方式方式0时,移位操作的波特率是固定的,为时,移位操作的波特率是固定的,为fosc/12,即一
29、,即一个机器周期进行一次移位,个机器周期进行一次移位,发送或接收一位数据。发送或接收一位数据。发送或接收一位数据。发送或接收一位数据。如如fosc12MHz,则波特率为,则波特率为1M(bps),即),即1s移位一移位一次。方式次。方式0下波特率不受下波特率不受SMOD位的影响。位的影响。第24页,本讲稿共67页7.4.2 工作方式工作方式1方式方式l是是10位为一帧的串行异步通信方式。共包括位为一帧的串行异步通信方式。共包括1个起始位,个起始位,8个数个数据位和据位和l个停止位。外部数据从引脚个停止位。外部数据从引脚RXD输入,送入到接收缓冲器,输入,送入到接收缓冲器,需要发送的数据经过引脚
30、需要发送的数据经过引脚TXD输出。输出。第25页,本讲稿共67页方式1输出1.数据发送与接收方式l的数据发送将数据写入发送缓冲器SBUF,随后在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,然后在移位脉冲的作用下,由TXD端串行输出。一个字符帧发送完后,将SCON寄存器的TI置l。在中断方式下将申请中断,通知CPU可以发送下一个字符帧。第26页,本讲稿共67页接收数据时,接收数据时,SCON的的REN位应处于允许接收数据状态下。串行口位应处于允许接收数据状态下。串行口采样引脚采样引脚RXD端,当采样到从端,当采样到从l到到0的状态跳变时,就认定是接收到的状态跳变时,就认定是接收到起
31、始位。随后在移位脉冲的控制下,把接收到的数据位移入接收缓冲起始位。随后在移位脉冲的控制下,把接收到的数据位移入接收缓冲器器SBUF中。直到停止位到来之后将停止位送入到中。直到停止位到来之后将停止位送入到RB8中,并置中,并置位中断标志位位中断标志位RI,在中断方式下将申请中断,通知,在中断方式下将申请中断,通知CPU从接收缓冲器从接收缓冲器SBUF取走接收到的一个字符。取走接收到的一个字符。不管中断方式还是查询方式,硬件都不会自动清除不管中断方式还是查询方式,硬件都不会自动清除RI和和TI中断中断标志,须由用户用软件清标志,须由用户用软件清0。方式1输入第27页,本讲稿共67页2 2、方式方式
32、方式方式2 2的波特率的波特率的波特率的波特率工作方式工作方式工作方式工作方式2 2时,移位脉冲由振荡频率时,移位脉冲由振荡频率时,移位脉冲由振荡频率时,移位脉冲由振荡频率foscfosc的第二节的第二节的第二节的第二节拍拍拍拍P2P2时钟(即时钟(即时钟(即时钟(即fosc/2fosc/2)给出,所以,方式)给出,所以,方式)给出,所以,方式)给出,所以,方式2 2波特率取决波特率取决波特率取决波特率取决于于于于PCONPCON中的中的中的中的SMODSMOD位的值,当位的值,当位的值,当位的值,当SMOD=0SMOD=0时,波特率时,波特率时,波特率时,波特率为为为为foscfosc的的的
33、的1/641/64;当;当;当;当SMOD=1SMOD=1时,波特率为时,波特率为时,波特率为时,波特率为foscfosc的的的的1/321/32,用公式表示为;用公式表示为;用公式表示为;用公式表示为;工作方式工作方式工作方式工作方式2 2波特率波特率波特率波特率=(2 2SMODSMOD/64/64)foscfosc第28页,本讲稿共67页2.波特率波特率方式方式l的波特率则是可变的,以定时器的波特率则是可变的,以定时器T1作为波特率发生作为波特率发生器使用,其波特率值由定时器器使用,其波特率值由定时器1的计数溢出率来决定,的计数溢出率来决定,其公式为:其公式为:串行口方式串行口方式1的波
34、特率的波特率 定时器定时器T1的溢出率的溢出率其中其中SMOD为电源控制寄存器为电源控制寄存器PCON的最高位,是串行口的最高位,是串行口波特率的倍增位,当波特率的倍增位,当SMOD1时,串行口波特率加倍。时,串行口波特率加倍。定时器定时器T1的溢出率取决于计数速率和定时器的初值。的溢出率取决于计数速率和定时器的初值。计数速率与特殊功能寄存器计数速率与特殊功能寄存器TMOD中的中的C/位的状态有位的状态有关。当关。当C/0时,时,T1作为定时器,计数速率作为定时器,计数速率fosc/12,当当C/1时,时,T1作为计数器使用,计数速率取决于外部作为计数器使用,计数速率取决于外部输入脉冲时钟频率
35、。输入脉冲时钟频率。第29页,本讲稿共67页 当定时器当定时器T1作波特率发生器使用时,通常选用工作方作波特率发生器使用时,通常选用工作方式式2,即,即8位自动重加载方式,方便为定时器位自动重加载方式,方便为定时器T1赋初值。赋初值。在方式在方式2下,下,TL1作为计数器使用,而预置初值放在作为计数器使用,而预置初值放在TH1中,设计数初值为中,设计数初值为X,则每过(,则每过(256X)个机器)个机器周期,定时器周期,定时器T1就产生一次溢出。此时应禁止就产生一次溢出。此时应禁止T1中断。中断。则计数溢出周期为:则计数溢出周期为:(256一一X)溢出率为溢出周期的倒数,则波特率为:溢出率为溢
36、出周期的倒数,则波特率为:波特率波特率 实际使用时,需要先确定波特率,再根据波特率计算定时器T1的计数初值,然后进行定时器的初始化。根据上述波特率计算公式,得出计数初值的计算公式为 X256第30页,本讲稿共67页选择定时器选择定时器T1工作在方式工作在方式2下,是因为方式下,是因为方式2具有自动重具有自动重载入功能,可避免通过程序反复装入初值所引起的定载入功能,可避免通过程序反复装入初值所引起的定时误差。使波特率更加稳定,也更方便。时误差。使波特率更加稳定,也更方便。表表7-5列出了在选择定时器列出了在选择定时器T1作为波特率发生器使用时,作为波特率发生器使用时,各种常用的波特率以及相应的控
37、制位和时间常数各种常用的波特率以及相应的控制位和时间常数 表7-5 定时器T1的常用波特率C/波特率/bpsfosc/MHzSMOD定时器T1工作方式初值1920011.059102FDH960011.059002FDH480011.059002FAH240011.059002F4H120011.059002E8H60011.059002D0H30011.059002A0H15011.05900240H第31页,本讲稿共67页7.4.3 工作方式工作方式2工作方式工作方式2是是11位为一字符帧的串行异步通信方式,帧格式位为一字符帧的串行异步通信方式,帧格式包括包括1个起始位、个起始位、9个数据
38、位和个数据位和1个停止位。在方式个停止位。在方式2下,字符还下,字符还是是8个数据位。而第个数据位。而第9数据位既可作奇偶校验位使用,也可作控制数据位既可作奇偶校验位使用,也可作控制位使用。发送之前应先在串行口控制寄存器位使用。发送之前应先在串行口控制寄存器SCON的的TB8位中准备位中准备好,其波特率与好,其波特率与SMOD位有关位有关 。第32页,本讲稿共67页当将第当将第9位数据写入位数据写入TB8之后,向之后,向SBUF写入字符帧的写入字符帧的8个数据位,个数据位,启动串行口发送数据。一个字符帧发送完毕后,将启动串行口发送数据。一个字符帧发送完毕后,将TI位置位置1。方式方式2的接收过
39、程与方式的接收过程与方式1基本类似,所不同的是在第基本类似,所不同的是在第9位数据上,串位数据上,串行口把接收到的行口把接收到的8个数据送入个数据送入SBUF,而把接收的第,而把接收的第9数据送到数据送到RB8。根据根据SM2的状态和的状态和RB8的值确定串行口是否会置位中断标志位的值确定串行口是否会置位中断标志位RI。第33页,本讲稿共67页如果如果如果如果SM2SM2SM2SM20 0 0 0,则不论第九位数据为,则不论第九位数据为,则不论第九位数据为,则不论第九位数据为0 0 0 0还是还是还是还是1 1 1 1,都将前,都将前,都将前,都将前8 8 8 8位数据装入位数据装入位数据装入
40、位数据装入SBUFSBUFSBUFSBUF中,并产生中断请求。中,并产生中断请求。中,并产生中断请求。中,并产生中断请求。如果如果如果如果SM2SM2SM2SM21 1 1 1,且接收到的第九位数据,且接收到的第九位数据,且接收到的第九位数据,且接收到的第九位数据RB8RB8RB8RB81 1 1 1时,将接收到的前时,将接收到的前时,将接收到的前时,将接收到的前8 8 8 8位位位位数据送数据送数据送数据送SBUFSBUFSBUFSBUF,并置位,并置位,并置位,并置位RIRIRIRI产生中断请求。这表示在多机通信时,接产生中断请求。这表示在多机通信时,接产生中断请求。这表示在多机通信时,接
41、产生中断请求。这表示在多机通信时,接收到的信息为地址帧,此时将收到的信息为地址帧,此时将收到的信息为地址帧,此时将收到的信息为地址帧,此时将RIRIRIRI置置置置1 1 1 1,接收发来的地址帧。,接收发来的地址帧。,接收发来的地址帧。,接收发来的地址帧。如果如果如果如果SM2SM2SM2SM21 1 1 1,且接收到的第九位数据,且接收到的第九位数据,且接收到的第九位数据,且接收到的第九位数据RB8RB8RB8RB80 0 0 0时,将接收到的前时,将接收到的前时,将接收到的前时,将接收到的前8 8 8 8位位位位数据丢弃。这表示接收到的信息为数据帧,但不是发给本机的,数据丢弃。这表示接收
42、到的信息为数据帧,但不是发给本机的,数据丢弃。这表示接收到的信息为数据帧,但不是发给本机的,数据丢弃。这表示接收到的信息为数据帧,但不是发给本机的,此时此时此时此时RIRIRIRI不置不置不置不置1 1 1 1。串行口工作在方式串行口工作在方式串行口工作在方式串行口工作在方式2 2 2 2和方式和方式和方式和方式3 3 3 3时会在多机通信一节讲述。在工作方式时会在多机通信一节讲述。在工作方式时会在多机通信一节讲述。在工作方式时会在多机通信一节讲述。在工作方式2 2 2 2和工作方式和工作方式和工作方式和工作方式3 3 3 3时的情况如下表时的情况如下表时的情况如下表时的情况如下表7-67-6
43、7-67-6所示。所示。所示。所示。SM21RB81将接收到的前8位数据送SBUF,并置位RI产生中断请求SM21RB80将接收到的前8位数据丢弃。SM20RB81都将前8位数据装入SBUF中,并置位RI产生中断请求。SM20RB80都将前8位数据装入SBUF中,并置位RI产生中断请求。第34页,本讲稿共67页2.波特率波特率方式方式2的波特率是固定的,且有两种。这与电源控制寄存的波特率是固定的,且有两种。这与电源控制寄存器器PCON中波特率倍增位中波特率倍增位SMOD的值有关。的值有关。当当SMOD1时,波特率为晶振频率的时,波特率为晶振频率的1/32;当当SMOD0时,波特率为晶振频率时,
44、波特率为晶振频率1/64。用公式表示为:用公式表示为:波特率波特率 7.4.4 工作方式3方式3同样是11位为一帧的串行通信方式,其通信过程与方式2完全相同,所不同的仅在于波特率。方式2的波特率只有固定的两种,而方式3的波特率则可由用户根据需要设定。其设定方法与方式l是一样的,即通过设置定时器T1的初值和波特率倍增位SMOD来设定波特率。第35页,本讲稿共67页7.5 串行口应用举例串行口应用举例【例例7.1】设计一个发送程序,将片内设计一个发送程序,将片内RAM中中50H5FH中的数据串行发送,串中的数据串行发送,串行口设定为方式行口设定为方式2状态,状态,TB8作奇偶校验位。在数据写入发送
45、缓冲器之作奇偶校验位。在数据写入发送缓冲器之前,先将数据的奇偶位前,先将数据的奇偶位P写入写入TB8,这时第,这时第9位数据作奇偶校验用。位数据作奇偶校验用。程序清单如下程序清单如下TRT:MOV SCON,80H;方式;方式2设定设定MOV PCON,80H;取波特率为;取波特率为fosc/32MOV R0,50HMOV R7,10H;数据长度;数据长度10HLOOP:MOV A,R0;取数据送;取数据送AMOV C,PSW.0;MOV TB8,CMOV SBUF,A;数据送;数据送SBUF,启动发送,启动发送WAIT:JBC TI,CONT;判断发送中断标志;判断发送中断标志SJMP WA
46、ITCONT:INC R0DJNZ R7,LOOPRET第36页,本讲稿共67页【例例7.2】设计一个接收程序,将接收的设计一个接收程序,将接收的16个字节数据送个字节数据送入片内入片内RAM中中50H5FH单元中。设串行口方式单元中。设串行口方式3状态状态工作,波特率为工作,波特率为2400。定时器。定时器/计数器计数器1作波特率发生器作波特率发生器时,时,SMOD0,计数常数为,计数常数为0F4H。程序清单如下:程序清单如下:RVE:MOV TMOD,20H;T1编程为方式编程为方式2定时状定时状态态MOV TH1,0F4H;计数常数送;计数常数送T1MOV T11,0F4HSETB TR
47、1;启动;启动T1MOV R0,50HMOV R7,10H;数据长度;数据长度lOH-R7MOV SCON,#0D0H;串行口编程方式;串行口编程方式3接收接收MOV PCON,00H;置;置SMOD0WAIT:JBC RI,PRI;等待接收到数据;等待接收到数据SJMP WAIT第37页,本讲稿共67页PRI:MOV A,SBUF;奇偶校验判;奇偶校验判PRB8?JNB PSW.0,PNPJNB RB8,PERSJMP RIGHTPNP:JB RB8,PERRIGHT:MOV R0,A;数据送缓冲器;数据送缓冲器INC R0DJNZ R7,WAIT;判断数据块接收完否?;判断数据块接收完否?
48、CLR PSW.5;正确接收完;正确接收完16个字节置标志位个字节置标志位RET第38页,本讲稿共67页串行通信实例串行通信实例串行通信实例串行通信实例 有有有有两两两两台台台台80318031单单单单片片片片机机机机相相相相距距距距很很很很近近近近,直直直直接接接接将将将将它它它它们们们们的的的的串串串串行行行行口口口口相相相相连连连连,1#1#机机机机的的的的TXDTXD接接接接2#2#机机机机的的的的RXDRXD,2#2#机机机机的的的的TXDTXD接接接接1#1#机机机机的的的的RXDRXD,二二二二机机机机的的的的GNDGND相相相相连连连连。二二二二机机机机的的的的晶晶晶晶振振振振
49、频频频频率率率率均均均均为为为为11.0592MHZ11.0592MHZ,通通通通信信信信的的的的波波波波特特特特率率率率为为为为4800bps4800bps。现现现现将将将将第第第第一一一一台台台台80318031单单单单片片片片机机机机片片片片内内内内RAM40HRAM40H5FH5FH单单单单元元元元内内内内的的的的数数数数据据据据,串串串串行行行行发送到第二台发送到第二台发送到第二台发送到第二台80318031单片机片内单片机片内单片机片内单片机片内RAM60HRAM60H7FH7FH单元中。单元中。单元中。单元中。第39页,本讲稿共67页发送与接收的参考程序如下:发送与接收的参考程序
50、如下:发送与接收的参考程序如下:发送与接收的参考程序如下:1#1#单片机发送程序:单片机发送程序:单片机发送程序:单片机发送程序:ORG 1000HORG 1000HTX:TX:MOV TMOD,#02HMOV TMOD,#02HMOV TH1,#0FAHMOV TH1,#0FAHMOV TL1,#0FAHMOV TL1,#0FAHMOV SCON,#80HMOV SCON,#80H;设定工作方式设定工作方式设定工作方式设定工作方式2 2MOV PCON,#00H MOV PCON,#00H ;波特率为波特率为波特率为波特率为fosc/64fosc/64fosc/64fosc/64SETB T