第7章 单片机的串行接口及通信ppt课件.ppt
第第7章章 单片机的串行接口及通信单片机的串行接口及通信第七章第七章 单片机的串行接口及通信单片机的串行接口及通信第七章第七章 单片机的串行接口及通信单片机的串行接口及通信本章介绍的主要内容本章介绍的主要内容串行通信概述串行通信概述80518051单片机的串行接口单片机的串行接口基于串行接口的有线通信基于串行接口的有线通信基于串行接口的无线通信基于串行接口的无线通信第七章第七章 单片机的串行接口及通信单片机的串行接口及通信 串行通信概述串行通信概述 单片机应用与数据采集或工业控制时,往往作为前端机安单片机应用与数据采集或工业控制时,往往作为前端机安装在工业现场,远离主机,现场数据采用串行通信方式发往主机装在工业现场,远离主机,现场数据采用串行通信方式发往主机进行处理,以降低通信成本,提高通信可靠性。如下图所示。进行处理,以降低通信成本,提高通信可靠性。如下图所示。 第七章第七章 单片机的串行接口及通信单片机的串行接口及通信n计算机通信计算机通信是将计算机技术和通信技术的相结合,完成计算是将计算机技术和通信技术的相结合,完成计算机与外部设备或计算机与计算机之间的信息交换。可以分为机与外部设备或计算机与计算机之间的信息交换。可以分为两大类:并行通信与串行通信。两大类:并行通信与串行通信。n并行通信并行通信通常是将数据字节的各位用多条数据线同时进行传通常是将数据字节的各位用多条数据线同时进行传送送 。n并行通信并行通信控制简单、传输速度快;由于传输线较多,长控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。距离传送时成本高且接收方的各位同时接收存在困难。 第七章第七章 单片机的串行接口及通信单片机的串行接口及通信串行通信串行通信是将数据字节分成一位一位的形式在一条传输线上逐是将数据字节分成一位一位的形式在一条传输线上逐个地传送个地传送串行通信的特点串行通信的特点:传输线少,长距离传送时成本低,且可以:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复利用电话网等现成的设备,但数据的传送控制比并行通信复杂。杂。 第七章第七章 单片机的串行接口及通信单片机的串行接口及通信串行通信的基本概念串行通信的基本概念 一、异步通信与同步通信一、异步通信与同步通信1 1、异步通信、异步通信 异步通信异步通信是指通信的是指通信的发送与接收设备使用各自的时发送与接收设备使用各自的时钟钟控制数据的发送和接收过程。为使双方的收发协调,要控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。求发送和接收设备的时钟尽可能一致。 第七章第七章 单片机的串行接口及通信单片机的串行接口及通信 异步通信是以异步通信是以字符字符(构成的帧构成的帧)为单位进行传输,字符)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有各位是以固定的时间传送的,即字符之间不一定有“位间隔位间隔”的整数倍的关系,但的整数倍的关系,但同一字符内同一字符内的各位之间的距离均为的各位之间的距离均为“位间隔位间隔”的整数倍。的整数倍。 异步通信的特点异步通信的特点:不要求收发双方时钟的严格一致,实:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加现容易,设备开销较小,但每个字符要附加2 23 3位用于起止位用于起止位,各帧之间还有间隔,因此传输效率不高。位,各帧之间还有间隔,因此传输效率不高。异步通信的数据格式异步通信的数据格式 :第七章第七章 单片机的串行接口及通信单片机的串行接口及通信2、同步通信、同步通信在同步通信中,发送方在数据或字符开始处就用同步字符在同步通信中,发送方在数据或字符开始处就用同步字符( (常约定常约定1 12 2个字节个字节) )指示一帧的开始指示一帧的开始 ,由时钟来实现发送,由时钟来实现发送端和接收端同步,接收方一旦检测到与规定的同步字符符端和接收端同步,接收方一旦检测到与规定的同步字符符合,下面合,下面 就连续按顺序传送若干个数据就连续按顺序传送若干个数据 ,最后发校验字,最后发校验字节。见下图:节。见下图:第七章第七章 单片机的串行接口及通信单片机的串行接口及通信串行通信的传输方向串行通信的传输方向n单工单工是指数据传输仅能沿一个方向,不能实现反向传输。是指数据传输仅能沿一个方向,不能实现反向传输。n半双工半双工是指数据传输可以沿两个方向,但需要分时进行。是指数据传输可以沿两个方向,但需要分时进行。n全双工全双工是指数据可以同时进行双向传输。是指数据可以同时进行双向传输。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信串行通信常见的错误校验串行通信常见的错误校验 1 1、奇偶校验奇偶校验在发送数据时,数据位尾随的在发送数据时,数据位尾随的1 1位为奇偶校验位(位为奇偶校验位(1 1或或0 0)。奇校验)。奇校验时,数据中时,数据中“1”1”的个数与校验位的个数与校验位“1”1”的个数之和应为奇数;偶的个数之和应为奇数;偶校验时,数据中校验时,数据中“1”1”的个数与校验位的个数与校验位“1”1”的个数之和应为偶数的个数之和应为偶数。接收字符时,对。接收字符时,对“1”1”的个数进行校验,若发现不一致,则说明的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。传输数据过程中出现了差错。2 2、代码和校验代码和校验代码和校验是发送方将所发数据块求和(或各字节异或),产生代码和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的所得的结果与发送方的“校验和校验和”进行比较,相符则无差错,否进行比较,相符则无差错,否则即认为传送过程中出现了差错。则即认为传送过程中出现了差错。3 3、循环冗余校验循环冗余校验这种校验是通过某种数学运算实现有效信息与校验位之间的循环这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强,广泛应用于同步通信中。校验方法纠错能力强,广泛应用于同步通信中。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信传输速率传输速率在在数字系统中,携带数据信息的信号单元叫码元。每秒钟数字系统中,携带数据信息的信号单元叫码元。每秒钟通过信道传输的码元的数量称为码元通过信道传输的码元的数量称为码元传输速率传输速率,简称波特,简称波特率。波特率的单位为率。波特率的单位为BdBd。在两相调制通信系统中,波特率以每秒传送的位在两相调制通信系统中,波特率以每秒传送的位(bit)(bit)表示,表示,单位为波特(单位为波特(BdBd),即),即1Bd=1bit/s1Bd=1bit/s第七章第七章 单片机的串行接口及通信单片机的串行接口及通信传输速率传输速率例如:异步传送数据的速率每秒为例如:异步传送数据的速率每秒为1010个字符,每个字符由个字符,每个字符由1 1个起始位、个起始位、8 8个数据位和个数据位和1 1个停止位组成,则该传输系统的个停止位组成,则该传输系统的波特率为波特率为1010位位/ /字符字符1010字符字符/ /秒秒=100bit/s=100 Bd=100bit/s=100 Bd位时间(每位宽)位时间(每位宽)Td=Td=波特率的倒数:波特率的倒数:Td= 1/100Bd=10msTd= 1/100Bd=10ms当前通信领域,对波特率的采用有一个统一的标准,国际当前通信领域,对波特率的采用有一个统一的标准,国际上规定的标准波特率系列为上规定的标准波特率系列为110 bit/s110 bit/s、300 bit/s300 bit/s、600 600 bit/sbit/s、1200 bit/s1200 bit/s、1800 bit/s1800 bit/s、2400 bit/s2400 bit/s、4800 4800 bit/sbit/s、9600 bit/s9600 bit/s、19200 bit/s19200 bit/s等。、等。、1200 bit/s1200 bit/s、1800 bit/s1800 bit/s、2400 bit/s2400 bit/s、4800 bit/s4800 bit/s、9600 bit/s9600 bit/s、19200 bit/s19200 bit/s等。等。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信单片机串行通信的标准单片机串行通信的标准TTLTTL电平电平TTLTTL是是Transistor-Transistor LogicTransistor-Transistor Logic,即晶体管,即晶体管- -晶体管逻辑的简称。晶体管逻辑的简称。它是计算机处理器控制的设备内部各部分之间通信的标准技术。它是计算机处理器控制的设备内部各部分之间通信的标准技术。TTLTTL电平信号应用广泛,是因为通常数据表示采用二进制规定,电平信号应用广泛,是因为通常数据表示采用二进制规定,+5V+5V等价于逻辑等价于逻辑11,0V0V等价于逻辑等价于逻辑00。数字电路中,由数字电路中,由TTLTTL电子元器件组成电路的电平是个电子元器件组成电路的电平是个电压范围电压范围, TTL TTL的电平规定为:的电平规定为:输出的高电平:输出的高电平:=2.4V=2.4V,输出的低电平:,输出的低电平:=0.4V=2.0V=2.0V,输入的低电平:,输入的低电平:=0.8V=0.8V。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信单片机串行通信的标准单片机串行通信的标准RS-232CRS-232C接口接口 RS-232CRS-232C是是EIAEIA(美国电子工业协会)(美国电子工业协会)19691969年修订年修订RS-232CRS-232C标准。标准。RS-232CRS-232C定义了数据终端设备(定义了数据终端设备(DTEDTE)与数据通信设备()与数据通信设备(DCEDCE)之间的物理接口标)之间的物理接口标准。准。 1 1、机械特性、机械特性9 9针针D D型连接器的信号及引脚如型连接器的信号及引脚如下图下图所示。所示。RS-232-CRS-232-C除了通过除了通过DB-9DB-9连接器传连接器传输数据外,还通过握手信号对双方的通信起协调作用。输数据外,还通过握手信号对双方的通信起协调作用。(公头和母头)(公头和母头)第七章第七章 单片机的串行接口及通信单片机的串行接口及通信RS-232CRS-232C采用采用EIAEIA电平对电气特性、电平对电气特性、逻辑电平逻辑电平和各种信号线功和各种信号线功能都作了规定。能都作了规定。在数据线在数据线TxDTxD和和RxDRxD上上逻辑逻辑1(MARK1(MARK)=-3V)=-3V-15V-15V逻辑逻辑0(SPACE0(SPACE)=+3)=+3+15V+15V在在RTSRTS、CTSCTS、DSRDSR、DTRDTR和和DCDDCD等控制线上等控制线上信号有效(接通,信号有效(接通,ONON状态,正电压)状态,正电压)=+3V=+3V+15V+15V信号无效(断开,信号无效(断开,OFFOFF状态,负电压)状态,负电压)=-3V=-3V-15V-15V2.RS-232C2.RS-232C电气特性电气特性第七章第七章 单片机的串行接口及通信单片机的串行接口及通信RS-232CRS-232C采用采用EIAEIA电平对电气特性、电平对电气特性、逻辑电平逻辑电平和各种信号线功和各种信号线功能都作了规定。能都作了规定。在数据线在数据线TxDTxD和和RxDRxD上上逻辑逻辑1(MARK1(MARK)=-3V)=-3V-15V-15V逻辑逻辑0(SPACE0(SPACE)=+3)=+3+15V+15V在在RTSRTS、CTSCTS、DSRDSR、DTRDTR和和DCDDCD等控制线上等控制线上信号有效(接通,信号有效(接通,ONON状态,正电压)状态,正电压)=+3V=+3V+15V+15V信号无效(断开,信号无效(断开,OFFOFF状态,负电压)状态,负电压)=-3V=-3V-15V-15V3.RS-232C3.RS-232C电气特性电气特性第七章第七章 单片机的串行接口及通信单片机的串行接口及通信MAX232MAX232芯片是美信(芯片是美信(MAXIMMAXIM)公司专为)公司专为RS-232RS-232标准串口设计标准串口设计的单电源电平转换芯片,使用的单电源电平转换芯片,使用+5v+5v单电源供电。该芯片可实单电源供电。该芯片可实现现TTLTTL电平与电平与EIAEIA电平电平 的双向转换。的双向转换。 4.4.电平转换电路电平转换电路Max232Max232引脚图引脚图Max232Max232连接图连接图第七章第七章 单片机的串行接口及通信单片机的串行接口及通信单片机串行通信线的连接单片机串行通信线的连接单片机与单片机的连接单片机与单片机的连接如果两个单片机系统相距在如果两个单片机系统相距在1 1 m m之内,可以把它们的串行接口之内,可以把它们的串行接口直接相连,从而实现了双机通信。直接相连,从而实现了双机通信。图图 7.8 7.8 单片机串口连接示意图单片机串口连接示意图 第七章第七章 单片机的串行接口及通信单片机的串行接口及通信单片机和主机(单片机和主机(PCPC)的连接)的连接如果两个单片机系统相距在如果两个单片机系统相距在1 1 m m之内,可以把它们的串行接口之内,可以把它们的串行接口直接相连,从而实现了双机通信。直接相连,从而实现了双机通信。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信80518051单片机的串行接口单片机的串行接口 51 51单片机有一个可编程的全双工异串行通信接单片机有一个可编程的全双工异串行通信接口,它可作口,它可作UARTUART用,也可作同步移位寄存器,其帧格用,也可作同步移位寄存器,其帧格式可有式可有8 8位、位、1010位或位或1111位,并能设置各种波特率,给使位,并能设置各种波特率,给使用者带来很大的灵活性。用者带来很大的灵活性。 第七章第七章 单片机的串行接口及通信单片机的串行接口及通信串行接口的结构串行接口的结构第七章第七章 单片机的串行接口及通信单片机的串行接口及通信5151单片机通过引脚单片机通过引脚RXD(P3.0)RXD(P3.0)串行数据接收端串行数据接收端) )和引脚和引脚TXD(P3.l)TXD(P3.l)串行数据发送端串行数据发送端) )与外界进行通信。与外界进行通信。图中有两个物理上独立的接收、发送缓冲器图中有两个物理上独立的接收、发送缓冲器SBUFSBUF,它们,它们占用同一地址占用同一地址99H99H,可同时发送、接收数据。,可同时发送、接收数据。 发送缓冲器只能写入,不能读出,发送缓冲器只能写入,不能读出,CPUCPU写写SBUFSBUF,一方,一方面修改发送寄存器,同时启动数据串行发送;面修改发送寄存器,同时启动数据串行发送; 接收缓冲器只能读出、不能写入。读接收缓冲器只能读出、不能写入。读SBUFSBUF,就是读接,就是读接收寄存器。收寄存器。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信串行控制寄存器串行控制寄存器SCONSCON(98H98H) 用以存放串行口的控制和状态信息。用以存放串行口的控制和状态信息。8XX518XX51串行口正是通过对串行口正是通过对上述专用寄存器的设置、检测与读取上述专用寄存器的设置、检测与读取 来管理串行通信的。来管理串行通信的。特特 殊功能寄存器殊功能寄存器PCONPCON(87H87H)的最高位的最高位SMODSMOD为串行口波特率的为串行口波特率的倍增控制位。倍增控制位。波特率发生器波特率发生器 可以有两种选择:可以有两种选择:1. 1. 定时器定时器T1T1作波特率发生器,改变计数初值就可以改变串行通作波特率发生器,改变计数初值就可以改变串行通信的速率,称为可变波特率。信的速率,称为可变波特率。2. 2. 以内部时钟的分频器作波特率发生器,因内部时钟频率一定,以内部时钟的分频器作波特率发生器,因内部时钟频率一定,称为固定波特率称为固定波特率第七章第七章 单片机的串行接口及通信单片机的串行接口及通信串行口的控制寄存器串行口的控制寄存器SCONSCON 8XX518XX51串行通信的方式选择串行通信的方式选择 , ,接受和发送控制及串行口的标志接受和发送控制及串行口的标志均由专用寄存器均由专用寄存器SCONSCON控制和指示控制和指示, ,其格式如下其格式如下: :SM0SM1 SM2RENTB8RB8TIRI方式选择方式选择多机多机控制控制串行接收串行接收允许允许/ 禁止禁止欲发的欲发的第九位第九位收到的收到的第九位第九位发送中发送中断有断有/无无接收中接收中断有断有/无无第七章第七章 单片机的串行接口及通信单片机的串行接口及通信SM0.SM1:SM0.SM1:串行口工作方式控制位。串行口工作方式控制位。 0 0-0 0-方式方式0, 0 1-0, 0 1-方式方式1 1 1 0- 1 0-方式方式2, 1 1-2, 1 1-方式方式3 3RENREN:串行接收允许位。:串行接收允许位。 0-0-禁止接收禁止接收, 1-, 1-允许接收允许接收TB8: TB8: 在方式在方式2,32,3中中,TB8,TB8是发送机要发送的第是发送机要发送的第9 9位数据。位数据。RB8:RB8:在方式在方式2,32,3中中,RB8,RB8是接受机收到的第是接受机收到的第9 9位数据位数据, , 该数据来自发送机的该数据来自发送机的TB8TB8。TI: TI: 发送中断标志位。发送前必须用软件清零,发发送中断标志位。发送前必须用软件清零,发 送过程中送过程中TITI保持零电平保持零电平, ,发送完一帧数据后,由硬发送完一帧数据后,由硬件置件置 “ “1”1”,如果再发送,如果再发送, ,必须用软件再清零。必须用软件再清零。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信RI: RI: 接收中断标志位。接收前接收中断标志位。接收前, ,必须用软件清零必须用软件清零, ,接接收过程中收过程中RIRI保持零电平,接收完一帧数据后由片内硬保持零电平,接收完一帧数据后由片内硬件自动置件自动置“1”1”。如果再接收必须用软件清零。如果再接收必须用软件清零。SM2:SM2:多机通信控制位,仅用于方式多机通信控制位,仅用于方式2 2和方式和方式3 3。 当选择方式当选择方式2 2或方式或方式3 3时时, ,发送机设置发送机设置SM2=1, SM2=1, 以发送第九位以发送第九位TB8TB8为为1 1作为地址帧寻找从机作为地址帧寻找从机, ,以以TB8TB8为为0 0作为数据帧进行通信,从机初始化时设置作为数据帧进行通信,从机初始化时设置SM2=1,SM2=1,若接若接收到的第九位数据收到的第九位数据RB8=0,RB8=0,不置位不置位RI,RI,即不引起接收中即不引起接收中断断, ,亦既不接收数据帧亦既不接收数据帧, ,继续监听继续监听, ,如接收到的如接收到的RB8=1,RB8=1,置位置位RI,RI,引起接收中断引起接收中断, , 中断程序中判断所接收的地中断程序中判断所接收的地址帧和本机的地址址帧和本机的地址第七章第七章 单片机的串行接口及通信单片机的串行接口及通信是否符合是否符合, ,若不符合若不符合, ,维持维持SM2=1,SM2=1,继续监听继续监听, ,若符合若符合, ,则则 清清SM2,SM2,接收对放发来的后续信息接收对放发来的后续信息. . 综上所述综上所述,SM2,SM2的作用为的作用为: :在方式在方式2,32,3中,发送机中,发送机SM2=1(SM2=1(程序设置程序设置). ). 接收机接收机SM2=1,SM2=1,若若RB8=1,RB8=1,激活激活RI,RI,引起接收中引起接收中断断.RB8=0,.RB8=0,不激活不激活RI,RI,不引起接断。不引起接断。 SM2=0, SM2=0,无论无论RB8=1RB8=1还是还是RB8=0RB8=0均激活均激活RIRI引起引起 接收接收中断。中断。在方式在方式1 1中中, , 当接收时当接收时SM2=1, SM2=1, 则只有收到有效停止位则只有收到有效停止位才激活才激活RIRI,在方式,在方式 0 0 中中, SM2, SM2应置为应置为0 0。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信 PCON PCON的字节地址为的字节地址为87H,87H,无位地址无位地址, , 只能只能字节寻址字节寻址.,.,初始化时初始化时SMOD=0.SMOD=0.SMODXXXXXXXPCONPCON87H电源控制寄存器电源控制寄存器PCONPCON PCON PCON的格式如下图所示的格式如下图所示, ,串行通信只用其中的最串行通信只用其中的最高位高位SMODSMODSMOD : SMOD : 波特率加倍位。在计算串行方式波特率加倍位。在计算串行方式 1 1、 2 2、 3 3的波特率时,的波特率时, SMODSMOD 00不加倍不加倍; ; SMOD SMOD 1 1 加倍加倍 第七章第七章 单片机的串行接口及通信单片机的串行接口及通信单片机串行接口的工作方式单片机串行接口的工作方式 根据串行通信数据格式和波特率的不同根据串行通信数据格式和波特率的不同, 51, 51系系列单片机的串行通信有四种工作方式列单片机的串行通信有四种工作方式, ,通过编程进行通过编程进行选择选择, ,各工作方式的特点如下各工作方式的特点如下: :1.1.方式方式0 0 RXD RXD为串行数据的发送端或接收端为串行数据的发送端或接收端, , TXD TXD输出频率为输出频率为fosc/12fosc/12的时钟脉冲。的时钟脉冲。波特率固定为波特率固定为fosc/12 (foscfosc/12 (fosc为单片机晶振频率为单片机晶振频率) )方式方式0 0的数据格式为的数据格式为8 8位位, ,低位在前低位在前, ,高位在后高位在后第七章第七章 单片机的串行接口及通信单片机的串行接口及通信 移位寄位器方式多用于接口的扩展移位寄位器方式多用于接口的扩展, ,当用当用单片机构成系统时单片机构成系统时, ,往往感到并行口不够用往往感到并行口不够用, ,此时此时可通过外接串入并出移位寄存器扩展输出接口;可通过外接串入并出移位寄存器扩展输出接口;通过外接并入串出移位寄存器扩展输入接口,方通过外接并入串出移位寄存器扩展输入接口,方式式 0 0 也可应用于短距离的单片机之间的通信。也可应用于短距离的单片机之间的通信。2.2.方式方式1 1 为为1010位异步通信方式位异步通信方式, , 每帧数据由每帧数据由1 1个起始位个起始位 “ “0”.0”.八个数据位八个数据位 和和1 1个停止位个停止位“1”1”共共1010位构成位构成. .其中起始位和停止位在发送时是自动插入的其中起始位和停止位在发送时是自动插入的. . 以以TXDTXD为串行数据的发送端为串行数据的发送端,T1,T1提供移位时钟提供移位时钟, ,RXDRXD为数据的接收端为数据的接收端, ,由由T1T1提供移位时钟提供移位时钟, ,是波是波特率可变方式特率可变方式第七章第七章 单片机的串行接口及通信单片机的串行接口及通信波特率波特率= =(2(2SMODSMOD/32)/32)( (T1T1的溢出率的溢出率) ) = =(2(2SMODSMOD/32)/32)(fosc/12(256-x) )(fosc/12(256-x) )根据给定的波特率根据给定的波特率, ,可以计算可以计算T1T1的计数初值的计数初值X X。 11 11位异步发送位异步发送/ /接收方式接收方式, ,即每帧数据由有一个起即每帧数据由有一个起始位始位“0”,90”,9个数据位和个数据位和1 1个停止位个停止位“1”1”组成组成. .发送时第发送时第九个数据位九个数据位, ,由由SCONSCON寄存器的寄存器的TB8TB8位位 提供提供, ,接收到的第九接收到的第九位数据存放在位数据存放在SCONSCON寄存器的寄存器的RB8RB8位。位。第九位数据可作为检验位第九位数据可作为检验位, ,也可用于多机通信中识别传也可用于多机通信中识别传送的是地址还是数据的特征位。送的是地址还是数据的特征位。波特率固定为波特率固定为(2(2SMODSMOD/64)/64)foscfosc。3. 3. 方式方式 2 2第七章第七章 单片机的串行接口及通信单片机的串行接口及通信4. 4. 方式方式3 3 数据格式同方式数据格式同方式 3 3,所不同的是波特率可变,所不同的是波特率可变,计算方式同方式计算方式同方式 1 1。串行工作方式串行工作方式帧帧 格格 式式波波 特特 率率工作方式工作方式0 08位全是数据位,没有起始位、停止位固定,即每个机器周期传送1位数据工作方式工作方式1 110位,其中1位起始位,8位数据位,1位停止位不固定,取决于T1的溢出率和SMOD工作方式工作方式2 211位,其中1位起始位,9位数据位,1位停止位固定,即2SMODfOSC /64工作方式工作方式3 3同工作方式2同工作方式1第七章第七章 单片机的串行接口及通信单片机的串行接口及通信常用波特率及其产生条件常用波特率及其产生条件串行工作方式串行工作方式1或方式或方式3波特率波特率/Bdfosc/MHzSMODTl工作方式工作方式2定时初值定时初值120011.05920E8H240011.05920F4H480011.05920FAH960011.05920FDH1920011.05921FDH第七章第七章 单片机的串行接口及通信单片机的串行接口及通信【例【例7.17.1】5151单片机的串行接口设为方式单片机的串行接口设为方式1 1工工作,若每分钟传送作,若每分钟传送1440014400个字符,求其波特个字符,求其波特率。率。5151单片机串口的方式单片机串口的方式1 1,第一帧数据共有,第一帧数据共有1010位,位,包括包括1 1个起始位、个起始位、8 8个数据位(最低有效位在个数据位(最低有效位在前)、前)、1 1个停止位。即串口工作在方式个停止位。即串口工作在方式1 1下,下,一个字符要传送一个字符要传送1010位。位。波特率波特率= =(14400/6014400/60)10=2400 Bd10=2400 Bd其波特率为其波特率为2400Bd2400Bd。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信【例【例7.27.2】5151单片机的定时器单片机的定时器1 1工作在方式工作在方式2 2,作为串行接口的波特率发生器,串行接口工作为串行接口的波特率发生器,串行接口工作方式在方式作方式在方式1 1,波特率为,波特率为4800Bd4800Bd,PCONPCON0 x000 x00,系统的晶振为,系统的晶振为11.0592MHz11.0592MHz,那么定时,那么定时器器1 1应装入的初值为多少?应装入的初值为多少?因为串行接口处于工作方式因为串行接口处于工作方式1 1,由波特率,由波特率= = ,且且PCONPCON0 x000 x00可知可知SMODSMOD0 0。将题目中已。将题目中已知的波特率、晶振频率和知的波特率、晶振频率和SMODSMOD值代入上述值代入上述的公式可得:的公式可得:X=250X=250转换为十六进制为转换为十六进制为0XFA0XFA。即此定时器。即此定时器1 1应当装入的初值为应当装入的初值为0XFA0XFA。SMODosc23212(256)fX第七章第七章 单片机的串行接口及通信单片机的串行接口及通信5151单片机串行接口的编程流程单片机串行接口的编程流程(1 1)设置)设置T1T1的工作方式,一般工作在方式的工作方式,一般工作在方式2 2,主要通,主要通过对过对TMODTMOD寄存器设定完成。寄存器设定完成。(2 2)根据波特率,计算出)根据波特率,计算出T1T1的计数初值,并加入到的计数初值,并加入到TH1TH1、TL1TL1中。中。(3 3)确定串行接口的工作模式等,主要通过)确定串行接口的工作模式等,主要通过SCONSCON寄寄存器来设定。存器来设定。(4 4)如果串行接口工作于中断方式时,也要进行中)如果串行接口工作于中断方式时,也要进行中断的设定,主要是通过断的设定,主要是通过IEIE、IPIP寄存器设定实现。注意寄存器设定实现。注意T1T1的中断允许响应使能位要关闭。的中断允许响应使能位要关闭。(5 5)如果串行接口工作于中断方式时,还有进行中)如果串行接口工作于中断方式时,还有进行中断服务子程序的书写。注意串行接口的中断号码为断服务子程序的书写。注意串行接口的中断号码为4 4。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信【例【例7.37.3】功能要求为:当按键】功能要求为:当按键K1K1按键按下时,通按键按下时,通过串口发送过串口发送0 x180 x18。当按键。当按键K2K2按键按下时,通过串口按键按下时,通过串口发送发送0 x280 x28。串口根据收到的内容改变不同。串口根据收到的内容改变不同LEDLED灯的灯的状态。如果串口收到的数据为状态。如果串口收到的数据为0 x180 x18,LED1LED1灯的状态灯的状态会改变一次。如果串口收到的数据是会改变一次。如果串口收到的数据是0 x280 x28,LED2LED2灯灯的状态会改变一次。其中串口的工作要求为:的状态会改变一次。其中串口的工作要求为:8 8位位数据、无校验的异步传输;波特率为数据、无校验的异步传输;波特率为4800bit/s4800bit/s,振荡频率为振荡频率为11.0592 MHz11.0592 MHz;定时;定时/ /计数器计数器T1T1作为波特作为波特率发生器,发送使用查询方式,而接收过程用中断率发生器,发送使用查询方式,而接收过程用中断处理。该题的电路图如图处理。该题的电路图如图7.157.15所示。请写出初始化所示。请写出初始化代码和响应的中断服务子程序。代码和响应的中断服务子程序。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信第七章第七章 单片机的串行接口及通信单片机的串行接口及通信基于串行接口的有线通信基于串行接口的有线通信单片机双机通信单片机双机通信【例【例7.47.4】设计一个基于串口的点对点双机通信应用】设计一个基于串口的点对点双机通信应用电路,电路的要求如下:发送主机具有电路,电路的要求如下:发送主机具有1 1个按键;接个按键;接收主机具有一个收主机具有一个LEDLED数码管;当发送主机键盘上的按数码管;当发送主机键盘上的按键被按下后,发送主机将键被按下后,发送主机将0 xAA0 xAA通过串口发送给接收主通过串口发送给接收主机;接收主机收到机;接收主机收到0 xAA0 xAA后会进行计数,并把计数在数后会进行计数,并把计数在数码管进行显示,计数的范围是码管进行显示,计数的范围是0 0到到9 9;系统采用的晶振;系统采用的晶振是是11.0592M11.0592M,通信波特率是,通信波特率是9600bit/s9600bit/s。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信第七章第七章 单片机的串行接口及通信单片机的串行接口及通信基于串行接口的有线通信基于串行接口的有线通信单片机与单片机与PCPC的通信的通信【例【例7.57.5】设计一个基于串口的单片机和】设计一个基于串口的单片机和PCPC机通信应机通信应用电路,电路的要求如下:在用电路,电路的要求如下:在PCPC机上采用串口调试助机上采用串口调试助手发送任意一个不大于手发送任意一个不大于6 6个字符的内容到单片机;单个字符的内容到单片机;单片机在收到这些内容后,会将这些数据原封不动的返片机在收到这些内容后,会将这些数据原封不动的返回到回到PCPC机;系统采用的晶振是机;系统采用的晶振是11.0592M11.0592M,通信波特率,通信波特率是是9600bit/s9600bit/s。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信第七章第七章 单片机的串行接口及通信单片机的串行接口及通信基于串行接口的基于串行接口的无无线通信线通信蓝牙通信蓝牙通信蓝牙(蓝牙( Bluetooth Bluetooth)是一种使用)是一种使用UHFUHF无线电波的无线无线电波的无线技术标准,可实现固定设备、移动设备和楼宇个人域技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换。蓝牙采用自组式组网方式网之间的短距离数据交换。蓝牙采用自组式组网方式(Ad-hocAd-hoc),一个蓝牙网络由一个主设备(),一个蓝牙网络由一个主设备(MasterMaster)和一个或多个从属设备(和一个或多个从属设备(SlaveSlave)组成,每个独立的)组成,每个独立的同步蓝牙网络就被称为一个微微网(同步蓝牙网络就被称为一个微微网(piconetpiconet)。一)。一个主设备至多可和同一微微网中的七个从设备通讯,个主设备至多可和同一微微网中的七个从设备通讯,所有设备共享主设备的时钟。所有设备共享主设备的时钟。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信基于串行接口的基于串行接口的无无线通信线通信蓝牙通信蓝牙通信常用的蓝牙模块有常用的蓝牙模块有HC-05HC-05、CC2541CC2541、iTOP-4412iTOP-4412等。等。HC-05HC-05蓝牙模块的引脚包括蓝牙模块的引脚包括VCCVCC、GNDGND、TXDTXD、RXDRXD、KEYKEY、LEDLED,如图,如图1919所示。其中,所示。其中,TXDTXD与与RXDRXD分别为使用分别为使用TTLTTL电电平的模块串口发送引脚与接收引脚;平的模块串口发送引脚与接收引脚;KEYKEY为状态选择为状态选择端,置高电平为端,置高电平为ATAT指令状态,低电平或悬空为正常工指令状态,低电平或悬空为正常工作状态(从模式)。作状态(从模式)。蓝牙模块正常工作后,可与具有蓝牙模块正常工作后,可与具有蓝牙功能的手机、电脑等设备相连。蓝牙功能的手机、电脑等设备相连。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信基于串行接口的基于串行接口的无无线通信线通信蓝牙通信蓝牙通信蓝牙模块与蓝牙模块与PCPC连接方式示意图连接方式示意图蓝牙模块与蓝牙模块与单片机单片机连接方式示意图连接方式示意图第七章第七章 单片机的串行接口及通信单片机的串行接口及通信基于串行接口的基于串行接口的无无线通信线通信蓝牙通信蓝牙通信【例【例7.67.6】利用】利用HC-05HC-05蓝牙模块实现以下功能:通过已蓝牙模块实现以下功能:通过已配对的手机端向蓝牙模块发送配对的手机端向蓝牙模块发送0-90-9的数值,将数值直的数值,将数值直接在与相连的四盏接在与相连的四盏LEDLED灯上显示,并向手机返回接收灯上显示,并向手机返回接收到的内容。为了实现本题的功能可以在手机上安装蓝到的内容。为了实现本题的功能可以在手机上安装蓝牙串口进行数据的发送和接收。系统采用的晶振是牙串口进行数据的发送和接收。系统采用的晶振是11.0592M11.0592M,通信波特率是,通信波特率是9600bit/s9600bit/s。第七章第七章 单片机的串行接口及通信单片机的串行接口及通信基于串行接口的基于串行接口的无无线通信线通信蓝牙通信蓝牙通信第七章第七章 单片机的串行接口及通信单片机的串行接口及通信基于串行接口的基于串行接口的无无线通信线