单片机原理及应用串行接口及串行通信技术

上传人:ni****g 文档编号:585095818 上传时间:2024-09-01 格式:PPT 页数:119 大小:1.67MB
返回 下载 相关 举报
单片机原理及应用串行接口及串行通信技术_第1页
第1页 / 共119页
单片机原理及应用串行接口及串行通信技术_第2页
第2页 / 共119页
单片机原理及应用串行接口及串行通信技术_第3页
第3页 / 共119页
单片机原理及应用串行接口及串行通信技术_第4页
第4页 / 共119页
单片机原理及应用串行接口及串行通信技术_第5页
第5页 / 共119页
点击查看更多>>
资源描述

《单片机原理及应用串行接口及串行通信技术》由会员分享,可在线阅读,更多相关《单片机原理及应用串行接口及串行通信技术(119页珍藏版)》请在金锄头文库上搜索。

1、单片机原理及应用主目录主目录上一页上一页下一页下一页结结 束束第第9章章 串行接口及串行通信技术串行接口及串行通信技术 教学目标教学目标9.1 串行通信基础知识串行通信基础知识 9.2 AT89C51的串行接口的串行接口 9.3 AT89C51串行接口的应用与编程串行接口的应用与编程9.4 多机通信多机通信 9.5 PC机与单片机间的串行通信机与单片机间的串行通信9.6 实训指导实训指导 本章小结本章小结思考题与习题思考题与习题http:/ 束束教学目标教学目标 通过本章教学,要求达到以下目标:通过本章教学,要求达到以下目标:1.串行通信的基本概念串行通信的基本概念:了解并行:了解并行/串行通

2、信的串行通信的 概念;理解串行通信中的异步概念;理解串行通信中的异步/同步通信的基同步通信的基本概念;理解波特率的概念,学会计算波特率本概念;理解波特率的概念,学会计算波特率的方法;的方法;4了解串行通信的三种制式及校验方了解串行通信的三种制式及校验方法。法。 http:/ 束束2.AT89C51串行口串行口:串行接口结构及其功能;:串行接口结构及其功能;理解串行数据缓冲器理解串行数据缓冲器SBUF的功能和读写方的功能和读写方法;法; 熟悉熟悉SCON的结构、控制作用和设置方的结构、控制作用和设置方法;法; 了解电源控制寄存器了解电源控制寄存器PCON,熟悉,熟悉SMOD位。位。 3. 串行口

3、的工作方式串行口的工作方式: 理解串行通信理解串行通信4种工作种工作 方式的特点和区别;掌握串行工作方式方式的特点和区别;掌握串行工作方式0的应的应 用;用; 熟悉串行工作方式熟悉串行工作方式1、2、3应用程序的应用程序的 编制方法。编制方法。http:/ 束束4. 多机通信原理多机通信原理:理解多机通信的原理、过程:理解多机通信的原理、过程和编制多机通信应用程序的方法。和编制多机通信应用程序的方法。 http:/ 束束 计算机与外界的信息交换称为计算机与外界的信息交换称为通信通信。通信的基。通信的基本方式可分为本方式可分为并行通信并行通信和和串行通信串行通信两种。两种。 所谓并行通信是指数据

4、的各位所谓并行通信是指数据的各位同时同时在多根数据在多根数据线上发送或接收。线上发送或接收。 串行通信是数据的各位在同一根数据线上依次串行通信是数据的各位在同一根数据线上依次逐位逐位发送或接收。发送或接收。9.1 串行通信基础知识串行通信基础知识http:/ 束束 目前串行通信在单片机双机、多机以及单片机目前串行通信在单片机双机、多机以及单片机与与PC机之间的通信等方面得到了广泛应用。机之间的通信等方面得到了广泛应用。图图9.1 并行通信示意图并行通信示意图 P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0P2.7RDWRRDWRCSD7D6D5D4D3D2D1D0825589

5、C51图图9.2 串行通信示意图串行通信示意图 89C51外设TXDTXDRXDRXD发送接收http:/ 束束9.1.1 异步通信和同步通信异步通信和同步通信 串行通信按同步方式可分为串行通信按同步方式可分为异步通信异步通信和和同步通同步通信信两种基本通信方式。两种基本通信方式。 1. 同步通信同步通信(Synchronous Communication) 同步通信是一种连续传送数据的通信方式,一同步通信是一种连续传送数据的通信方式,一次通信传送多个字符数据,称为一帧信息。数据传次通信传送多个字符数据,称为一帧信息。数据传输速率较高,通常可达输速率较高,通常可达56000bps或更高。其缺点

6、是或更高。其缺点是要求发送时钟和接收时钟保持严格同步。要求发送时钟和接收时钟保持严格同步。http:/ 束束同步同步字符字符数数 据据字符字符1数数 据据字符字符2数据字数据字符符n-1数数 据据字符字符n校校 验验字字 符符(校验校验字符字符)图图9.3 9.3 同步通信数据传送格式同步通信数据传送格式 2. 异步通信异步通信(Asynchronous Communication) 在异步通信中,数据通常是以字符或字节为单位在异步通信中,数据通常是以字符或字节为单位组成数据帧进行传送的。收、发端各有一套彼此独组成数据帧进行传送的。收、发端各有一套彼此独立,互不同步的通信机构,由于收发数据的帧

7、格式立,互不同步的通信机构,由于收发数据的帧格式相同,因此可以相互识别接收到的数据信息。相同,因此可以相互识别接收到的数据信息。同步通信的数据帧格式如图同步通信的数据帧格式如图9.3所示。所示。http:/ 束束D0 D1 D2 D3 D4D0 D1 D2 D3 D4 D5D5 D6D6 D7D7 0/1 1 1 1 1 0/1 1 1 1 1 D7 0/1 1 0D7 0/1 1 00 D0 D10 D0 D1第第n字符帧字符帧空闲位空闲位停停止止位位奇奇偶偶校校验验停停止止位位8位数据位数据8位数据位数据起起始始位位起起始始位位奇奇偶偶校校验验第第n-1字符字符帧帧第第n+1字符帧字符帧图

8、图9.4 9.4 异步通信帧格式异步通信帧格式8位数据位数据 异步通信异步通信信息帧格式信息帧格式如图如图9.4所示。所示。http:/ 束束 (1) 起始位起始位: 在没有数据传送时,通信线上处于逻辑在没有数据传送时,通信线上处于逻辑“1”状态状态。当发送端要发送。当发送端要发送1个字符数据时,首先发送个字符数据时,首先发送1个逻个逻辑辑“0”信号,这个低电平便是帧格式的起始位。信号,这个低电平便是帧格式的起始位。其作用是向接收端表示发送端开始发送一帧数据。其作用是向接收端表示发送端开始发送一帧数据。接收端检测到这个低电平后,就准备接收数据信号。接收端检测到这个低电平后,就准备接收数据信号。

9、http:/ 束束 (2) 数据位数据位: 在起始位之后,发送端发出在起始位之后,发送端发出(或接收端接收或接收端接收)的是的是数据位,数据的位数没有严格的限制,数据位,数据的位数没有严格的限制,58位均位均可。由低位到高位逐位传送。可。由低位到高位逐位传送。 (3) 奇偶校验位奇偶校验位: 数据位发送完数据位发送完(接收完接收完)之后,可发送一位用来检之后,可发送一位用来检验数据在传送过程中是否出错的奇偶校验位。奇验数据在传送过程中是否出错的奇偶校验位。奇偶校验是收发双方预先约定好的有限差错检验方偶校验是收发双方预先约定好的有限差错检验方式之一。有时也可不用奇偶校验。式之一。有时也可不用奇偶

10、校验。http:/ 束束 (4) 停止位停止位: 字符帧格式的最后部分是停止位,逻辑字符帧格式的最后部分是停止位,逻辑“1”电平电平有效,它可占有效,它可占1/2位、位、1位或位或2位。停止位表示传送位。停止位表示传送一帧信息的结束,也为发送下一帧信息作好准备。一帧信息的结束,也为发送下一帧信息作好准备。http:/ 束束9.1.2 串串行通信的波特率行通信的波特率 波特率波特率(Baud Rate)是串行通信中一个重要概念,是串行通信中一个重要概念,它是指传输数据的它是指传输数据的速率速率, 亦称亦称比特率比特率。波特率的定。波特率的定义是每秒传输二进制数码的位数。如:波特率为义是每秒传输二

11、进制数码的位数。如:波特率为1200bps是指每秒钟能传输是指每秒钟能传输1200位二进制数码。位二进制数码。 波特率的倒数即为每位波特率的倒数即为每位数据传输时间数据传输时间。例如:。例如:波特率为波特率为1200bps,每位的传输时间为:,每位的传输时间为:1 1) )( (833833. .0 012001200msmsd dT T= = =http:/ 束束 波特率和字符的传输速率不同,若采用图波特率和字符的传输速率不同,若采用图9.4的数据帧格式,并且数据帧连续传送(无空闲位)的数据帧格式,并且数据帧连续传送(无空闲位),则实际的字符传输速率为,则实际的字符传输速率为1200/11=

12、109.09帧帧/秒。秒。 波特率也不同于发送时钟和接收时钟频率。波特率也不同于发送时钟和接收时钟频率。同步通信的波特率和时钟频率相等,而异步通信同步通信的波特率和时钟频率相等,而异步通信的波特率通常是可变的。的波特率通常是可变的。http:/ 束束9.1.3 串行通信的制式串行通信的制式 1. 单工制式单工制式(Simplex) 单工制式是指甲乙双方通信只能单向传送数单工制式是指甲乙双方通信只能单向传送数据。单工制式如图据。单工制式如图9.5所示。所示。 在串行通信中,数据是在两个站之间传送的。在串行通信中,数据是在两个站之间传送的。按照数据传送方向,串行通信可分为三种制式。按照数据传送方向

13、,串行通信可分为三种制式。发送器A接收器B图图9.5 9.5 单工制式单工制式http:/ 束束 2. 半双工制式半双工制式(Half duplex) 半双工制式是指通信双方都具有发送器和接半双工制式是指通信双方都具有发送器和接收器,双方既可发送也可接收,但接收和发送不收器,双方既可发送也可接收,但接收和发送不能同时进行,即发送时就不能接收,接收时就不能同时进行,即发送时就不能接收,接收时就不能发送。半双工制式如图能发送。半双工制式如图9.6所示。所示。发送接收发送接收A端B端图图9.6 9.6 半双工制式半双工制式http:/ 束束 3. 全双工制式全双工制式(Full duplex) 全双

14、工制式是指通信双方均设有发送器和接全双工制式是指通信双方均设有发送器和接收器,并且将信道划分为发送信道和接收信道,收器,并且将信道划分为发送信道和接收信道,两端数据允许同时收发,因此通信效率比前两种两端数据允许同时收发,因此通信效率比前两种高。全双工制式如图高。全双工制式如图9.7所示。所示。发送接收接收发送A端B端图图9.7 9.7 全双工制式全双工制式http:/ 束束9.1.4 串行通信的校验串行通信的校验 串行通信的目的不只是传送数据信息,更重要串行通信的目的不只是传送数据信息,更重要的是应确保准确无误地传送。因此必须考虑在通信的是应确保准确无误地传送。因此必须考虑在通信过程中对数据差

15、错进行校验,因为差错校验是保证过程中对数据差错进行校验,因为差错校验是保证准确无误地通信的关键。常用差错校验方法有奇偶准确无误地通信的关键。常用差错校验方法有奇偶校验、累加和校验以及循环冗余码校验等。校验、累加和校验以及循环冗余码校验等。http:/ 束束1. 奇偶校验奇偶校验 奇偶校验的特点是按字符校验,即在发送每个奇偶校验的特点是按字符校验,即在发送每个字符数据之后都附加一位奇偶校验位字符数据之后都附加一位奇偶校验位(1或或0),当设置当设置为奇校验时,数据中为奇校验时,数据中1的个数与校验位的个数与校验位1的个数之和的个数之和应为奇数;反之则为偶校验。收、发双方应具有一应为奇数;反之则为

16、偶校验。收、发双方应具有一致的差错检验设置,当接收致的差错检验设置,当接收1帧字符时,对帧字符时,对1的个数的个数进行检验,若奇偶性进行检验,若奇偶性(收、发双方收、发双方)一致则说明传输一致则说明传输正确。奇偶校验只能检测到那种影响奇偶位数的错正确。奇偶校验只能检测到那种影响奇偶位数的错误,比较低级且速度慢,一般只用在异步通信中。误,比较低级且速度慢,一般只用在异步通信中。http:/ 束束2. 累加和校验累加和校验 累加和校验是指发送方将所发送的数据块求和累加和校验是指发送方将所发送的数据块求和,并将,并将“校验和校验和”附加到数据块末尾。接收方接收附加到数据块末尾。接收方接收数据时也是先

17、对数据块求和,将所得结果与发送方数据时也是先对数据块求和,将所得结果与发送方的的“校验和校验和”进行比较,若两者相同,表示传送正进行比较,若两者相同,表示传送正确,若不同则表示传送出了差错。确,若不同则表示传送出了差错。“校验和校验和”的加的加法运算可用逻辑加,也可用算术加。累加和校验的法运算可用逻辑加,也可用算术加。累加和校验的缺点是无法检验出字节或位序的错误。缺点是无法检验出字节或位序的错误。http:/ 束束3. 循环冗余码校验循环冗余码校验(CRC) 循环冗余码校验的基本原理是将一个数据块循环冗余码校验的基本原理是将一个数据块看成一个位数很长的二进制数,然后用一个特定看成一个位数很长的

18、二进制数,然后用一个特定的数去除它,将余数作校验码附在数据块之后一的数去除它,将余数作校验码附在数据块之后一起发送。接收端收到该数据块和校验码后,进行起发送。接收端收到该数据块和校验码后,进行同样的运算来校验传送是否出错。目前同样的运算来校验传送是否出错。目前CRC已广已广泛用于数据存储和数据通信中,并在国际上形成泛用于数据存储和数据通信中,并在国际上形成规范,市面上已有不少现成的规范,市面上已有不少现成的CRC软件算法。软件算法。http:/ 束束9.2 AT89C51的串行接口的串行接口 AT89C51内部有一个可编程全双工串行通信内部有一个可编程全双工串行通信接口。该部件不仅能同时进行数

19、据的发送和接收,接口。该部件不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。也可作为一个同步移位寄存器使用。 下面将对其内部结构、工作方式以及波特率下面将对其内部结构、工作方式以及波特率进行介绍。进行介绍。http:/ 束束 9.2.1 串行接口的结构及功能串行接口的结构及功能图图9.8 AT89C51串行口结构框图串行口结构框图发送SBUF(99H)接收SBUF(99H)同步时钟门电路发送控制器接收控制器输入移位寄存器串行口控制寄存器(98H)内内部部总总线线1串行口中断TIRITXD(P3.1)RXD(P3.0)http:/ 束束 1. 串行数据缓冲器串行数据缓冲器SBUF

20、 SBUF是串行口缓冲寄存器,包括是串行口缓冲寄存器,包括发送寄存发送寄存器器和和接收寄存器接收寄存器,以便能以全双工方式进行通信。,以便能以全双工方式进行通信。此外,在接收寄存器之前还有移位寄存器,从而此外,在接收寄存器之前还有移位寄存器,从而构成了串行接收的双缓冲结构,这样可以避免在构成了串行接收的双缓冲结构,这样可以避免在数据接收过程中出现帧重叠错误。发送数据时,数据接收过程中出现帧重叠错误。发送数据时,由于由于CPU是主动的,不会发生帧重叠错误,因此是主动的,不会发生帧重叠错误,因此发送电路不需要双重缓冲结构。发送电路不需要双重缓冲结构。http:/ 束束 在逻辑上,在逻辑上,SBUF

21、只有一个,它既表示发送寄只有一个,它既表示发送寄存器,又表示接收寄存器,具有同一个单元地址存器,又表示接收寄存器,具有同一个单元地址99H。但在物理结构上,则有两个完全独立的。但在物理结构上,则有两个完全独立的SBUF,一个是发送缓冲寄存器,一个是发送缓冲寄存器SBUF,另一个是,另一个是接收缓冲寄存器接收缓冲寄存器SBUF。如果。如果CPU写写SBUF,数据,数据就会被送入就会被送入发送寄存器发送寄存器准备发送;如果准备发送;如果CPU读读SBUF,则读入的数据一定来自,则读入的数据一定来自接收缓冲器接收缓冲器。即。即CPU对对SBUF的读写,实际上是分别访问上述两的读写,实际上是分别访问上

22、述两个不同的寄存器。个不同的寄存器。http:/ 束束2. 串行控制寄存器串行控制寄存器SCON 串行控制寄存器串行控制寄存器SCON用于设置串行口的工作用于设置串行口的工作方式、监视串行口的工作状态、控制发送与接收方式、监视串行口的工作状态、控制发送与接收的状态等。它是一个既可以的状态等。它是一个既可以字节寻址字节寻址又可以又可以位寻位寻址址的的8位特殊功能寄存器。其格式如图位特殊功能寄存器。其格式如图9.9所示。所示。http:/ 束束见表9-1图图9.9 串行口控制寄存器串行口控制寄存器SCONRITIRB8TB8RENSM2SM1SM0SCON98H99H9AH9BH9CH9DH9EH

23、9FH位地址0:双机1:多机多机通信0:禁止1:允许接收控制发送数据第9位接收数据第9位发送中断标志接收中断标志http:/ 束束 (1)SM0 SM1:串行口工作方式选择位。其状态:串行口工作方式选择位。其状态组合所对应的工作方式如表组合所对应的工作方式如表9-1所示。所示。SM0 SM1 工作方式功 能说 明0 00同步移位寄存器输入/输出,波特率固定为fosc/120 1110位异步收发,波特率可变(T1溢出率/n,n=32或16) 1 0211位异步收发,波特率固定为f0sc/n,n=64或32) 1 1311位异步收发,波特率可变(T1溢出率/n,n=32或16) 表表9-1 9-1

24、 串行口工作方式串行口工作方式http:/ 束束 (2) SM2:多机通信控制器位。在方式:多机通信控制器位。在方式0中,中,SM2必须设成必须设成0。在方式。在方式1中,当处于接收状态时,若中,当处于接收状态时,若SM2=1,则只有接收到有效的停止位,则只有接收到有效的停止位“1”时,时,RI才能被激活成才能被激活成“1”(产生中断请求产生中断请求)。在方式。在方式2和方式和方式3中,若中,若SM2=0,串行口以单机发送或接收,串行口以单机发送或接收方式工作,方式工作,TI和和RI以正常方式被激活并产生中断以正常方式被激活并产生中断请求;若请求;若SM2=1,RB8=1时,时,RI被激活并产

25、生中被激活并产生中断请求。断请求。http:/ 束束 (4) TB8:方式:方式2和方式和方式3中要发送的第中要发送的第9位数据。该位数据。该位由软件置位或复位。在方式位由软件置位或复位。在方式2和方式和方式3时,时,TB8是发送的第是发送的第9位数据。在多机通信中,以位数据。在多机通信中,以TB8位的位的状态表示主机发送的是地址还是数据:状态表示主机发送的是地址还是数据:TB8=1表表示地址,示地址,TB8=0表示数据。表示数据。TB8还可用作奇偶校验还可用作奇偶校验位。位。 (3) REN:串行接受允许控制位。该位由软件置位:串行接受允许控制位。该位由软件置位或复位。当或复位。当REN=1

26、,允许接收;当,允许接收;当REN=0,禁止,禁止接收。接收。http:/ 束束 (6)TI:发送中断标志位。:发送中断标志位。TI=1,表示已结束一帧数,表示已结束一帧数据发送,可由软件查询据发送,可由软件查询TI位标志,也可以向位标志,也可以向CPU申申请中断。请中断。注意:注意:TI在任何工作方式下都必须由软件清在任何工作方式下都必须由软件清0。 (5) RB8:接收数据第:接收数据第9位。在方式位。在方式2和方式和方式3时,时,RB8存放接收到的第存放接收到的第9位数据。位数据。RB8也可用作奇偶校也可用作奇偶校验位。在方式验位。在方式1中,若中,若SM2=0,则,则RB8是接收到的停

27、是接收到的停止位。在方式止位。在方式0中,该位未用。中,该位未用。http:/ 束束 (7)RI:接收中断标志位。:接收中断标志位。RI=1,表示一帧数据接,表示一帧数据接收结束。可由软件查询收结束。可由软件查询RI位标志,也可以向位标志,也可以向CPU申申请中断。请中断。 注意:注意:RI在任何工作方式下也都必须由软件清在任何工作方式下也都必须由软件清0。 在在AT89C51中,串行发送中断中,串行发送中断TI和接收中断和接收中断RI的中断入口地址是同是的中断入口地址是同是0023H,因此在中断程序中,因此在中断程序中必须由软件查询必须由软件查询TI和和RI的状态才能确定究竟是接收的状态才能

28、确定究竟是接收还是发送中断,进而作出相应的处理。单片机复位还是发送中断,进而作出相应的处理。单片机复位时,时,SCON所有位均清所有位均清0。http:/ 束束 图图9.10 9.10 电源控制寄存器电源控制寄存器PCONPCON的格式的格式PCOND7D6D5D4D3D2D1D0位名称 SMODGF1 GF0PDIDL SMOD:串行口波特率倍增位。在工作方式:串行口波特率倍增位。在工作方式1工作方式工作方式3时,若时,若SMOD=1,则串行口波特率增,则串行口波特率增加一倍。若加一倍。若SMOD=0,波特率不加倍。系统复位,波特率不加倍。系统复位时,时,SMOD=0。2. 电源控制寄存器电

29、源控制寄存器PCONhttp:/ 束束9.2.2 串行口工作方式串行口工作方式 AT89C51串行通信共有串行通信共有4种工作方式,它们种工作方式,它们分别是方式分别是方式0、方式、方式1、方式、方式2和方式和方式3,由串行控,由串行控制寄存器制寄存器SCON中的中的SM0 SM1决定,如表决定,如表9-1所示。所示。http:/ 束束 1. 工作方式工作方式0 在方式在方式0下,串行口作为同步移位寄存器使用。下,串行口作为同步移位寄存器使用。此时此时SM2、RB8、TB8均应设置为均应设置为0。 (1)发送发送:TI=0时,执行时,执行“MOV SBUF,A”启动发启动发送,送,8位数据由低

30、位到高位从位数据由低位到高位从RXD引脚送出,引脚送出,TXD发送同步脉冲。发送完后,由硬件置位发送同步脉冲。发送完后,由硬件置位TI。 (2)接收接收:RI=0,REN=1时启动接收,数据从时启动接收,数据从RXD输入,输入,TXD输出同步脉冲。输出同步脉冲。8位数据接收完,位数据接收完,由硬件置位由硬件置位RI。可通过。可通过“MOV A,SBUF”读取数据。读取数据。http:/ 束束 方式方式0的波特率为的波特率为fosc/12,即一个机器周期发,即一个机器周期发送或接收一位数据。送或接收一位数据。 应当指出:方式应当指出:方式0并非是同步通信并非是同步通信方式。它的方式。它的主要用途

31、是外接同步移位寄存器,以扩展并行主要用途是外接同步移位寄存器,以扩展并行I/O口。口。http:/ 束束2. 工作方式工作方式1 方式方式1是一帧是一帧10位位的异步串行通信方式,包括的异步串行通信方式,包括1个起始位个起始位(0 0),8个数据位个数据位和和一个停止位一个停止位(1),其,其帧格式如下:帧格式如下: 起始位起始位0 0 D0D0 D1D1 D2D2 D3D3 D4D4 D5D5 D6D6 D7D7 停止位停止位1 1 图图9.11 9.11 方式方式1 1数据帧格式数据帧格式http:/ 束束(1) 数据数据发送发送 当当TI=0时,执行时,执行“MOV SBUF,A”指令后

32、开指令后开始发送,由硬件自动加入起始位和停止位,构成始发送,由硬件自动加入起始位和停止位,构成一帧数据,然后由一帧数据,然后由TXD端串行输出。发送完后,端串行输出。发送完后,TXD输出线维持在输出线维持在“1”状态下,并将状态下,并将SCON中中的的TI置置1,表示一帧数据发送完毕。,表示一帧数据发送完毕。http:/ 束束(2) 数据数据接收接收 RI=0,REN=1时,接收电路以波特率的时,接收电路以波特率的16倍倍速度采样速度采样RXD引脚,如出现由引脚,如出现由“1”变变“0”跳变,跳变,认为有数据正在发送。认为有数据正在发送。 在接收到第在接收到第9位数据(即停止位)时,必须同位数

33、据(即停止位)时,必须同时满足以下两个条件:时满足以下两个条件:RI=0和和SM2=0或或接收到的接收到的停止位为停止位为“1”,才把接收到的数据存入,才把接收到的数据存入SBUF中,中,停止位送停止位送RB8,同时置位,同时置位RI。若上述条件不满足,。若上述条件不满足,接收到的数据不装入接收到的数据不装入SBUF被舍弃。在方式被舍弃。在方式1下,下,SM2应设定为应设定为0。http:/ 束束(3) 波特率波特率波特率波特率=2=2SMODSMOD(T1(T1溢出率溢出率)/32)/32T1T1溢出率溢出率=1/T1=1/T1定时时间定时时间= =(M-T(M-T初初) )T T机机1 1

34、波特率波特率= =32321212(M-T(M-T初初) )2 2SMODSMODfoscfoschttp:/ 束束3. 工作方式工作方式2和方式和方式3 工作方式工作方式2和方式和方式3都是都是11位异步位异步收发串行通收发串行通信方式,两者的差异仅在波特率上有所不同。信方式,两者的差异仅在波特率上有所不同。方式方式2 2:波特率:波特率=2=2SMODSMODfosc/64(SMOD=0fosc/64(SMOD=0或或1)1)方式方式3 3:( (与方式与方式1 1相同相同) )波特率波特率= =32321212(M-T(M-T初初) )2 2SMODSMODfoscfoschttp:/

35、束束(1) 数据数据发送发送 TI=0,发送数据前,先由软件设置,发送数据前,先由软件设置TB8,可,可使用如下指令完成:使用如下指令完成: SETB TB8 ; 将将TB8位置位置1 CLR TB8 ; 将将TB8位置位置0 然后再向然后再向SBUF写入写入8位数据,并以此来启动串行位数据,并以此来启动串行发送。一帧数据发送完毕后,发送。一帧数据发送完毕后,CPU自动将自动将TI置置1,其过程与方式其过程与方式1相同。相同。http:/ 束束 (2) 数据数据接收接收 REN=1,RI=0时时,启动接收,启动接收 若若SM2=0,接收到的,接收到的8位数据送位数据送SBUF,第,第9位数位数

36、 据送据送RB8。 若若SM2=1,接收到的第,接收到的第9位数据为位数据为0,数据不送,数据不送SBUF;接收到的第;接收到的第9位数据为位数据为1,数据送,数据送SBUF,第第9位送位送RB8。http:/ 束束 对波特率需要说明的是,当串行口工作在方对波特率需要说明的是,当串行口工作在方式式1或方式或方式3,且要求波特率按规范取,且要求波特率按规范取1200、2400、4800、9600时,若采用晶振时,若采用晶振12MHz和和6MHz,按按上述公式算出的上述公式算出的T1定时初值将不是一个整数,因定时初值将不是一个整数,因此会产生波特率误差而影响串行通信的同步性能。此会产生波特率误差而

37、影响串行通信的同步性能。解决的方法只有调整单片机的晶振频率解决的方法只有调整单片机的晶振频率fosc,为此有为此有一种频率为一种频率为11.0592MHz的晶振,这样可使计算出的晶振,这样可使计算出的的T1初值为整数。表初值为整数。表9-2列出了串行方式列出了串行方式1或方式或方式3在不同晶振时的常用波特率和误差。在不同晶振时的常用波特率和误差。 http:/ 束束表表9.2 常用波特率和误差常用波特率和误差 晶振频率晶振频率(MHZ)(MHZ)波特率波特率 (HZ) (HZ)SMODSMODT1T1方式方式2 2定时初值定时初值 实际实际波特率波特率 误差误差(%) (%) 12.0012.

38、00960096001 1F9HF9H892389237 712.0012.00480048000 0F9HF9H446044607 712.0012.00240024000 0F3HF3H240424040.160.1612.0012.00120012000 0E6HE6H120212020.160.1611.059211.059219200192001 1FDHFDH19200192000 011.059211.0592960096000 0FDHFDH960096000 011.059211.0592480048000 0EAHEAH480048000 011.059211.059224

39、0024000 0F4HF4H240024000 011.059211.0592120012000 0E8HE8H120012000 0http:/ 束束 9.3.1 工作方式工作方式0的应用的应用 串行口工作方式串行口工作方式0主要用于主要用于扩展并行扩展并行I/O接口接口。扩展成并行输出口时,需要外接一片扩展成并行输出口时,需要外接一片8位串行输位串行输入并行输出的同步移位寄存器入并行输出的同步移位寄存器74LS164或或CD4094。扩展成并行输入口时,需要外接一片并行输入串扩展成并行输入口时,需要外接一片并行输入串行输出的同步移位寄存器行输出的同步移位寄存器74LS165或或CD401

40、4。9.3 AT89C51串行接口的串行接口的应用与编程应用与编程http:/ 束束 例例9.1 利用串行口工作在方式利用串行口工作在方式0,外扩一片,外扩一片74LS164构成一个构成一个3位位LED动态显示器,并将片动态显示器,并将片内内RAM显示单元显示单元65H、66H和和67H单元中的段码单元中的段码输出显示。其硬件电路如图输出显示。其硬件电路如图9.12所示。所示。http:/ 束束1118874LS164SASBCLKVCCLR5VP1.0P1.1P1.289C51TXDRXD图图9.12 例例9.1电路图电路图http:/ 束束 ORG 0100HSTPRT:MOV SCON,

41、#00H ;串口工作方式;串口工作方式0 SETB P1.2 ;消去最高显示位;消去最高显示位 SETB P1.1 ;消去次高显示位;消去次高显示位 MOV SBUF, 65H ;传送最低显示位;传送最低显示位 JNB TI, $ ;等待发送;等待发送 CLR P1.0 ;最低位显示;最低位显示 CLR TI ;清中断标志位;清中断标志位 LCALL DSSJ ;调延时子程序;调延时子程序 SETB P1.0 ;消去最低显示位;消去最低显示位 MOV SBUF, 66H ;传送中间显示位;传送中间显示位http:/ 束束 JNB TI, $ ;等待传送结束;等待传送结束 CLR P1.1 ;显

42、示中间位;显示中间位 CLR TI ;清中断标志位;清中断标志位 LCALL DSSJ ;调延时子程序;调延时子程序 SETB P1.1 ;消去中间显示位;消去中间显示位 MOV SBUF, 67H ;传送最高显示位;传送最高显示位 JNB TI, $ ;等待传送结束;等待传送结束 CLR P1.2 ;显示最高位;显示最高位 CLR TI ;清中断标志位;清中断标志位 LCALL DSSJ SETB P1.2 RET点击观看仿真演示点击观看仿真演示http:/ 束束 例例9.2 A、B两台单片机,均采用两台单片机,均采用11.0592MHz晶晶振。振。A机以机以2400bps波特率将内部波特率

43、将内部RAM中中30H至至39H的的10个字节及校验和经串行口发送给个字节及校验和经串行口发送给B机,机,B机正确接收后存入片内机正确接收后存入片内RAM的的30H至至39H单元,单元,并同时显示其中的前并同时显示其中的前8位数据。位数据。 A、B两机的两机的RXD、TXD交叉相连并共地。交叉相连并共地。两机串行口均设置为方式两机串行口均设置为方式1,定时器,定时器T1定时初值定时初值为为F4H,两机采用查询控制方式程序如下:,两机采用查询控制方式程序如下: 9.3.2 工作方式工作方式1的应用的应用http:/ 束束;A机发送程序:机发送程序: ORG 0 MOV R0,#30H ;R0指向

44、数据块首址指向数据块首址 MOV R7,#0AH ;循环次数为循环次数为10次次 MOV A,#1 ;初值为初值为1MAIN:MOV R0,A ;设置数据初值为设置数据初值为1A INC R0 INC A DJNZ R7,MAIN MOV TMOD,#20H;T1定时方式定时方式2http:/ 束束 MOV TL1,#0F4H ;波特率为波特率为1200bps MOV TH1,#0F4H SETB TR1 ;启动启动T1 MOV SCON,#40H ;串口方式串口方式1 MOV R0,#30H ;R0指向发送数据块首址指向发送数据块首址 MOV R1,#0AH ;数据块长度为数据块长度为10

45、MOV 70H,#00H ;校验和清校验和清0DWFP:MOV A,R0 ;数据送数据送A MOV SBUF,A ;启动串口发送启动串口发送 ADD A,70H ;求校验和求校验和http:/ 束束MOV 70H,AJNB TI,$ ;等待发送完毕等待发送完毕CLR TI ;清发送中断标志清发送中断标志INC R0 ;R0指向下一字节数据指向下一字节数据DJNZ R1,DWFP ;10个字节数据发送完?个字节数据发送完?MOV SBUF,A ;发送校验和发送校验和JNB TI,$ ;等待发送完毕等待发送完毕CLR TI ;清发送中断标志清发送中断标志SJMP $ ;停机停机ENDhttp:/

46、束束;B机接收并显示程序机接收并显示程序ORG 0;*主程序主程序*MOV TMOD,#20H ;T1定时方式定时方式2MOV TL1,#0F4H ;串口波特率为串口波特率为2400bpsMOV TH1,#0F4HSETB TR1 ;启动启动T1MOV SCON,#50H ;串口方式串口方式1,允许接收,允许接收MOV R0,#30H ;R0指存放接收数据首地址指存放接收数据首地址MOV R1,#0AH ;接收数据块长度为接收数据块长度为10http:/ 束束MOV 70H,#00H ;校验和清校验和清0DWFP:JNB RI,$ ;等待接收等待接收MOV A,SBUF ;读取接收数据读取接收

47、数据MOV R0,A ;保存至接收数据块单元保存至接收数据块单元ADD A,70H ;求校验和求校验和MOV 70H,ACLR RI ;清接收中断标志清接收中断标志INC R0 ;R0指向下一单元地址指向下一单元地址DJNZ R1,DWFP ;10个数据接收完个数据接收完?JNB RI,$ ;等待接收校验和等待接收校验和http:/ 束束 MOV A,SBUF ;读取校验和读取校验和 CLR REN ;禁止接收数据禁止接收数据 CJNE A,70H,PEND ;校验和不正确转校验和不正确转PENDLOP: LCALL DISP ;校验和正确则调显示校验和正确则调显示 SJMP LOPPEND:

48、SJMP $;*显示子程序(分两屏显示)显示子程序(分两屏显示)*DISP: MOV R0,#30HDISP1:MOV R1,#08H MOV R2,#01H MOV DPTR,#TABhttp:/ 束束LOOP:MOV A,R2 MOV P2,A RL A MOV R2,A MOV A,R0 MOVC A,A+DPTR MOV P1,A INC R0 LCALL DELY DJNZ R1,LOOP REThttp:/ 束束;*延时子程序延时子程序*DELY:MOV R7,#10DEL1:MOV R6,#100 DJNZ R6,$ DJNZ R7,DEL1 RETTAB:DB 0C0H,0F9

49、H,0A4H,0B0H,99H,92H,82H DB 0F8H,80H,90H,88H,83H,0C6H,0A1H DB 86H,8EH,0BFH,8CH,0CH,0FFH END点击观看仿真演示点击观看仿真演示http:/ 束束 9.3.3 工作方式工作方式2与工作方式与工作方式3的应用的应用 方式方式2与方式与方式3都是都是11位异步通信方式,这两位异步通信方式,这两种方式的区别仅在于波特率不同。方式种方式的区别仅在于波特率不同。方式2的波特率的波特率只有固定的两种,而方式只有固定的两种,而方式3的波特率则可由用户自的波特率则可由用户自行设定。行设定。http:/ 束束 例例9.3 利用串

50、行口方式利用串行口方式2编制一发送程序,将片编制一发送程序,将片内内RAM中中60H6FH单元的数据串行发送出去,单元的数据串行发送出去,第第9数据位数据位TB8作偶校验位。作偶校验位。 根据要求,将串行口设置为方式根据要求,将串行口设置为方式2、单工发、单工发送,则送,则SCON控制字为控制字为80H。波特率选为。波特率选为fosc/64。http:/ 束束 采用中断方式发送的主程序和中断程序如下:采用中断方式发送的主程序和中断程序如下: ORG 0000H AJMP MAIN ;转主程序;转主程序 ORG 0023H ;串口中断服务程序;串口中断服务程序 INC R0 ;发送数据地址增;发

51、送数据地址增1 MOV A, R0 ;取出待发数据;取出待发数据 MOV C,PSW.0 ;将奇偶位送;将奇偶位送TB8 MOV TB8, C MOV SBUF, A ;发送数据;发送数据 DJNZ R7, SSJS ;判断数据是否发送完;判断数据是否发送完http:/ 束束 CLR ES ;发送完关中断;发送完关中断SSJS:CLR TI ;清中断标志;清中断标志 RETIMAIN:ORG 0100H ;主程序;主程序 MOV SP,#20H ;置堆栈指针;置堆栈指针 MOV SCON, #80H ;串口设置为方式;串口设置为方式2 MOV PCON, #00H ;波特率选为;波特率选为fo

52、sc/64 MOV R0, #60H ;数据块首址送;数据块首址送R0 MOV R7, #10H ;数据块长度送;数据块长度送R7 SETB EA ;开总中断;开总中断 SETB ES ;开串行口中断;开串行口中断http:/ 束束 MOV A, R0 ;取出待发数据;取出待发数据 MOV C, PSW.0 ;将奇偶位送;将奇偶位送TB8 MOV TB8, C MOV SBUF, A ;发送数据;发送数据 SJMP $ ;等待中断;等待中断 END http:/ 束束 例例9.4 试编制串行口在方式试编制串行口在方式3下接收数据块的程序。下接收数据块的程序。设单片机晶振为设单片机晶振为11.0

53、592MHz,波特率为,波特率为2400 b/s,接收的数据存在片内,接收的数据存在片内RAM的的40H起始单元的一起始单元的一段区间内,数据块长度由发送方先发送过来段区间内,数据块长度由发送方先发送过来(不不超过允许值超过允许值),每接收一个数据都核对其奇偶校验每接收一个数据都核对其奇偶校验位,正确则存储数据,否则给出出错标志。位,正确则存储数据,否则给出出错标志。 解:根据要求,设置解:根据要求,设置T1工作于方式工作于方式2,当,当SMOD=0时,时,T1计数初值为计数初值为F4H。http:/ 束束 查询法源程序如下:查询法源程序如下:START:MOV TMOD, #20H ;T1定

54、时方式定时方式2 MOV TL1, #0F4H ;置置T1计数初值计数初值 MOV TH1, #0F4H SETB TR1 ;启动启动T1 MOV SCON, #0D0H ;串口方式串口方式3,允许接收,允许接收 MOV PCON, #00H ;设设SMOD=0 MOV R0, #40H ;接收数据区首址送接收数据区首址送R0 JNB RI,$ ;等待接收数据块长度等待接收数据块长度 CLR RI ;接收后清接收后清RIhttp:/ 束束 MOV A, SBUF ;数据块长度存;数据块长度存R7中中 MOV R7,A MAR0: JNB RI, $ ;等待接收数据;等待接收数据 CLR RI

55、;清;清RI MOV A, SBUF ;将接收字符读入;将接收字符读入A JB PSW.0,MAR1 ;进行奇偶位校验;进行奇偶位校验 JB RB8, MAR3 SJMP MAR2 MAR1: JNB RB8, MAR3 MAR2: MOV R0, A ;校验正确保存数据;校验正确保存数据http:/ 束束 INC R0 ;存储单元地址增;存储单元地址增1 CLR PSW.5 ;设置正确的标志;设置正确的标志 DJNZ R7,MAR0 ;未接收完,继续;未接收完,继续 SJMP $ ;接收完停机;接收完停机 MAR3: SETB PSW.5 ;置校验出错标志;置校验出错标志 SJMP $ ;

56、停机停机 ENDhttp:/ 束束9.4 多机通信多机通信 双机通信时,两台单片机地位是平等的,此双机通信时,两台单片机地位是平等的,此时,两台单片机的串行口均可工作于方式时,两台单片机的串行口均可工作于方式1。多。多机通信是指一台机通信是指一台主机主机和多台和多台从机从机之间的通信。而之间的通信。而在多机通信中,有主机和从机之分,多机通信时,在多机通信中,有主机和从机之分,多机通信时,主机发送的信息可以传送到各个从机,而各从机主机发送的信息可以传送到各个从机,而各从机发送的信息只能被主机接收,其中的主要问题是发送的信息只能被主机接收,其中的主要问题是怎样识别地址和怎样维持主机与指定从机之间的

57、怎样识别地址和怎样维持主机与指定从机之间的通信。通信。http:/ 束束1. 多机通信连接电路多机通信连接电路 在串行方式在串行方式2或方式或方式3条件下,可实现一台条件下,可实现一台主机和多台从机之间的通信,其连接电路如图主机和多台从机之间的通信,其连接电路如图9.13所示。所示。图图9.13 9.13 多机通信连接图多机通信连接图TXD RXDTXD RXDTXD RXD89C205189C205189C2051从机1从机2从机nTXD RXD89C51主机http:/ 束束2. 多机通信原理多机通信原理 多机通信时,主机向从机发送的信息分为地多机通信时,主机向从机发送的信息分为地址帧和数

58、据帧两类,以第址帧和数据帧两类,以第9位可编程位可编程TB8作区分标作区分标志,志,TB8=0,表示数据,表示数据;TB8=1,表示地址,表示地址。多。多机通信充分利用了机通信充分利用了89C51串行控制寄存器串行控制寄存器SCON中中的多机通信控制位的多机通信控制位SM2的特性。当的特性。当SM2=1时,时,CPU接收的前接收的前8位数据是否送入位数据是否送入SBUF取决于接收取决于接收的第的第9位位RB8的状态:若的状态:若RB8=1,将接收到的前,将接收到的前8位数据送入位数据送入SBUF,并置位并置位RI产生中断请求;若产生中断请求;若http:/ 束束 RB8=0,则接收到的前,则接

59、收到的前8位数据丢弃。即当从机位数据丢弃。即当从机SM2=1时,从机只能接收主机发送的地址帧时,从机只能接收主机发送的地址帧(RB8=1),对数据帧,对数据帧(RB8=0)不予理睬。当从机不予理睬。当从机SM2=0时,从机可接收主机发送的所有信息。时,从机可接收主机发送的所有信息。 通信开始时,主机首先发送地址帧。由于各通信开始时,主机首先发送地址帧。由于各从机的从机的SM2=1和和RB8=1,所以各从机均分别发出,所以各从机均分别发出串行接收中断请求,通过串行中断服务程序来判串行接收中断请求,通过串行中断服务程序来判断主机发送的地址与本从机地址是否相符。如果断主机发送的地址与本从机地址是否相

60、符。如果相符,则把自身的相符,则把自身的SM2清清0,以准备接收随后传,以准备接收随后传http:/ 束束 送来的数据帧。其余从机由于地址不符,则仍送来的数据帧。其余从机由于地址不符,则仍保持保持SM2=1状态,因而不能接收主机传送来的数状态,因而不能接收主机传送来的数据帧。这就是多机通信中主、从机一对一的通信据帧。这就是多机通信中主、从机一对一的通信情况。这种通信只能在主、从机之间进行,如果情况。这种通信只能在主、从机之间进行,如果想在两个从机之间进行通信,则要通过主机作中想在两个从机之间进行通信,则要通过主机作中介才能实现。介才能实现。http:/ 束束3. 多机通信过程多机通信过程(1)

61、主、从机工作于方式主、从机工作于方式2或方式或方式3,主机置主机置 SM2=0,REN=1;从机置从机置SM2=1,REN=1。(2) 主机置位主机置位TB8=1,向从机发送寻址,向从机发送寻址地址帧地址帧,各,各从机因满足接收条件从机因满足接收条件(SM2=1,RB8=1),从而接收,从而接收到主机发来的地址,并与本机地址进行比较。到主机发来的地址,并与本机地址进行比较。(3) 地址一致的从机(被寻址机)将地址一致的从机(被寻址机)将SM2清清0,并向,并向主机返回地址,供主机核对。地址不一致的从主机返回地址,供主机核对。地址不一致的从机(未被寻址机)保持机(未被寻址机)保持SM2=1。ht

62、tp:/ 束束(4) 主机核对返回的地址,若与此前发出的地址一主机核对返回的地址,若与此前发出的地址一致则准备发送数据;若不一致则返回致则准备发送数据;若不一致则返回(2)重新发重新发送地址帧。送地址帧。(5) 主机向从机主机向从机发送数据发送数据,此时主机的,此时主机的TB8=0,只,只有被选中的那台从机能接收到该数据。其他从有被选中的那台从机能接收到该数据。其他从机则舍弃该数据。机则舍弃该数据。(6) 本次通信结束后,从机重新置本次通信结束后,从机重新置SM2=1,等待,等待下次通信。下次通信。http:/ 束束 例例9.5 按照图按照图9.13,编写主机向从机,编写主机向从机1发送数据的

63、发送数据的程序,波特率为程序,波特率为1200bps,从机,从机1的地址为的地址为01H,晶振晶振fosc为为11.0592MHz。 分析:按照波特率的要求,主、从机串行口分析:按照波特率的要求,主、从机串行口均应工作于方式均应工作于方式3,定时器,定时器T1工作于方式工作于方式2,定时,定时初值为初值为E8H。初始化时,主机置。初始化时,主机置SM2=0,TB8=1,REN=1。从机置。从机置SM2=1,REN=1。主机发送的。主机发送的数据位于数据位于30H单元,从机接收后存于单元,从机接收后存于30H区域内。区域内。 主机程序框图及源程序如下:主机程序框图及源程序如下:http:/ 束束

64、开始设置启动T1串口方式3,SM2=0REN=1,TB8=1R0置30H(首址)R1置01H(从机地址)调发送子程序停机其他功能主程序框图TRAN发送地址接收从机地址发送返回发送子程序框图地址相同?NY图图9.14 例例9.5程序框图程序框图http:/ 束束 ;主程序;主程序 ORG 0000H LJMP START ORG 0020HSTART:MOV TMOD,#20H ;T1定时方式定时方式2 MOV TH1,#0E8H ;波特率为;波特率为1200bps MOV TL1,#0E8H SETB TR1 ;启动;启动T1 MOV SCON,#0D8H ;SM2=0,REN=1,TB8=1

65、 MOV PCON,#00H ;波特率不加倍;波特率不加倍http:/ 束束 MOV R0,#30H ;发送数据单元地址送;发送数据单元地址送R0 MOV R1,#01H ;从机地址送;从机地址送R1 ACALL TRAN ;调发送数据子程序;调发送数据子程序 ;其他功能程序段;其他功能程序段 SJMP $ ;停机;停机 ;发送数据子程序;发送数据子程序 TRAN:MOV A,R1 ;从机地址送;从机地址送A SETB TB8 ;TB8置置1,发送地址帧,发送地址帧 MOV SBUF,A ;启动发送;启动发送 JNB TI,$ ;等待发送完;等待发送完 CLR TI ;软件清;软件清TIhtt

66、p:/ 束束 JNB RI,$ ;等待接收从机发回确认地址;等待接收从机发回确认地址 CLR RI ;软件清;软件清RI MOV A,SBUF ;读取地址;读取地址 XRL A,R1 ;核对地址是否相同;核对地址是否相同 JZ TRA1 ;相同,转;相同,转 SJMP TRAN ;地址不同,转重发地址;地址不同,转重发地址TRA1:CLR TB8 ;TB8清清0,发送数据帧,发送数据帧 MOV A,R0 ;读取待发送数据;读取待发送数据 MOV SBUF,A ;启动发送;启动发送 JNB TI,$ ;等待数据发送完;等待数据发送完 CLR TI ;软件清发送中断标志;软件清发送中断标志 RET

67、 ;返回;返回http:/ 束束从机源程序如下:从机源程序如下: ;主程序;主程序 ORG 0000H LJMP START ORG 0023H ;串口中断入口地址;串口中断入口地址 LJMP SEVT0 ORG 0030HSTART:MOV TMOD,#20H ;T1定时方式定时方式2 MOV TH1,#0E8H ;波特率为;波特率为1200bps MOV TL1,#0E8H SETB TR1 ;启动;启动T1http:/ 束束 MOV SCON,#0F8H ;SM2=1,REN=1,TB8=1 MOV PCON,#00H ;波特率不加倍;波特率不加倍 MOV R0,#30H ;R0指向数据

68、存放单元指向数据存放单元 SETB EA ;开串口中断;开串口中断 SETB ES SJMP $ ;停机;停机;串口中断服务程序;串口中断服务程序SEVT0:JB RI, SEVT1 ;是接收中断转;是接收中断转SEVT1 CLR TI ;是发送中断,清;是发送中断,清TI RETI ;返回;返回http:/ 束束SEVT1:CLR RI ;清;清RI MOV A,SBUF ;读取数据;读取数据 JB RB8,SEVT2;是地址帧,转;是地址帧,转SEVT2 MOV R0,A ;数据存于;数据存于R0所指单元所指单元 SETB SM2 ;一次通信完成,重置;一次通信完成,重置SM2 RETI

69、;返回;返回SEVT2:XRL A,#01H ;核对是否本机地址;核对是否本机地址 JZ SEVT3 ;是本机地址,转;是本机地址,转 SETB SM2 ;不是本机地址,;不是本机地址,SM2置置1 RETIhttp:/ 束束SEVT3: CLR SM2 ;是本机地址,;是本机地址,SM2清清0 MOV A,#01H ;向主机发确认地址;向主机发确认地址 MOV SBUF,A RETI http:/ 束束 在实际应用中,上面介绍的这种多机通信因在实际应用中,上面介绍的这种多机通信因受单片机功能和通信距离短等的限制,很少被采受单片机功能和通信距离短等的限制,很少被采用。在一些较大的测控系统中,常

70、将单片机作为用。在一些较大的测控系统中,常将单片机作为从机从机(下位机下位机)直接用于被控对象的数据采集与控直接用于被控对象的数据采集与控制,而把制,而把PC机作为主机机作为主机(上位机上位机)用于数据处理用于数据处理和对从机的管理,它们之间的信息交换主要采用和对从机的管理,它们之间的信息交换主要采用串行通信总线结构。串行通信总线结构。http:/ 束束9.5 PC机与单片机与单片机间的串行通信机间的串行通信 近年来,在智能仪器仪表、数据采集、嵌入近年来,在智能仪器仪表、数据采集、嵌入式自动控制等场合,越来越普遍应用单片机作核式自动控制等场合,越来越普遍应用单片机作核心控制部件。但当需要处理较

71、复杂数据或要对多心控制部件。但当需要处理较复杂数据或要对多个采集的数据进行综合处理以及需要进行集散控个采集的数据进行综合处理以及需要进行集散控制时,单片机的算术运算和逻辑运算能力都显得制时,单片机的算术运算和逻辑运算能力都显得不足,这时往往需要借助计算机系统。将单片机不足,这时往往需要借助计算机系统。将单片机采集的数据通过串行口传送给采集的数据通过串行口传送给PC机,由机,由PC机高机高级语言或数据库语言对数据进行处理,或者实现级语言或数据库语言对数据进行处理,或者实现http:/ 束束 PC机对远端单片机进行控制。因此,实现单片机对远端单片机进行控制。因此,实现单片机与机与PC机之间的远程通

72、信更具有实际意义。机之间的远程通信更具有实际意义。 单片机中的数据信号电平都是单片机中的数据信号电平都是TTL电平,这电平,这种电平采用正逻辑标准,即约定种电平采用正逻辑标准,即约定2.4V表示逻辑表示逻辑1,而,而0.5V表示逻辑表示逻辑0,这种信号只适用于通信距,这种信号只适用于通信距离很短的场合,若用于远距离传输必然会使信号离很短的场合,若用于远距离传输必然会使信号衰减和畸变。因此,在实现衰减和畸变。因此,在实现PC机与单片机之间机与单片机之间通信或单片机与单片机之间远距离通信时,通常通信或单片机与单片机之间远距离通信时,通常采用标准串行总线通信接口,比如采用标准串行总线通信接口,比如R

73、S-232C、http:/ 束束 RS-422、RS-423、RS-485等。其中等。其中RS-232C原本原本是美国电子工业协会是美国电子工业协会(Electronic Industry Association,简称,简称EIA)的推荐标准,现已在全世的推荐标准,现已在全世界范围内广泛采用,界范围内广泛采用,RS-232C是在异步串行通信是在异步串行通信中应用最广的总线标准,它适用于短距离或带调中应用最广的总线标准,它适用于短距离或带调制解调器的通信场合。制解调器的通信场合。http:/ 束束 9.4.1 RS-232C总线标准总线标准 RS-232C实际上是串行通信的总线标准。实际上是串行

74、通信的总线标准。该总线标准定义了该总线标准定义了25条信号线,使用条信号线,使用25个引脚个引脚的连接器。各信号引脚的定义见表的连接器。各信号引脚的定义见表9.3。http:/ 束束表表9.3 RS-23C9.3 RS-23C引脚信号定义引脚信号定义 引脚定义(助记符)引脚定义(助记符)1保护地(PG)14辅助通道发送数据(STXD)2发送数据(TXD)15发送时钟(TXC)3接收数据(RXD)16辅助通道接收数据(SRXD)4请求发送(RTS)17接收时钟(RXC)5清除发送(CTS)18未定义6数据准备好(DSR)19辅助通道请求发送(SRTS)7信号地(GND)20数据终端准备就绪(DT

75、R)8接收线路信号检测(DCD)21信号质量检测9未定义22音响指标(RI)10未定义23数据信号速率选择11未定义24发送时钟12辅助通道接收线路信号检测(SDCD)25未定义13辅助通道允许发送(SCTS)http:/ 束束 除信号定义外,除信号定义外,RS-232C标准的其它规定还有:标准的其它规定还有: (1) RS-232C 是一种电压型总线标准,它采用是一种电压型总线标准,它采用负逻辑标准:负逻辑标准:+3V+25V表示逻辑表示逻辑0(space);-3V-25V表示逻辑表示逻辑1(mark)。噪声容限为。噪声容限为2V。 (2) 标准数据传送速率有:标准数据传送速率有:50,75

76、,110,150,300,600,1200,2400,4800,9600,19200bit/s。 (3) 采用标准的采用标准的25芯插头座芯插头座(DB-25)进行连接,进行连接,因此该插头座也称之为因此该插头座也称之为RS-232C连接器。连接器。http:/ 束束 表表9.3 RS-232C标准中许多信号是为通信业务标准中许多信号是为通信业务或信息控制而定义的,在计算机串行通信中主要或信息控制而定义的,在计算机串行通信中主要使用了如下信号:使用了如下信号: (1) 数据传送信号数据传送信号:发送数据发送数据(TXD);接收数据;接收数据(RXD)。 (2) 调制解调器控制信号:请求发送调制

77、解调器控制信号:请求发送(RTS);清除;清除发送发送(CTS);数据通信设备准备就绪;数据通信设备准备就绪(DSR);数据;数据终端准备就绪终端准备就绪(DTR)。 (3) 定位信号:接收时钟定位信号:接收时钟(RXC);发送时钟;发送时钟(TXC)。 (4) 信号地信号地GND。http:/ 束束图图9.15 9.15 微机微机9 9针针D D形串口连接器形串口连接器http:/ 束束 9.4.2 RS-232C接口电路接口电路 由于由于RS-232C信号电平信号电平(EIA)与与AT89C51单单片机信号电平片机信号电平(TTL)不一致,因此,必须进行信不一致,因此,必须进行信号电平转换

78、。实现这种电平转换的电路称为号电平转换。实现这种电平转换的电路称为RS-232C接口电路。一般有两种形式:一种是采用接口电路。一般有两种形式:一种是采用运算放大器、晶体管、光电隔离器等器件组成的运算放大器、晶体管、光电隔离器等器件组成的电路来实现;另一种是采用专门集成芯片电路来实现;另一种是采用专门集成芯片(如如MC1488、MC1489、MAX232等等)来实现。下面来实现。下面介绍由专门集成芯片介绍由专门集成芯片MAX232构成的接口电路。构成的接口电路。http:/ 束束1. MAX232接口电路接口电路 MAX232芯片是芯片是MAXIM公司生产的具有公司生产的具有两路接收器和驱动器的

79、两路接收器和驱动器的IC芯片,其内部有一个芯片,其内部有一个电源电压变换器,可以将输入电源电压变换器,可以将输入+5V的电压变换的电压变换成成RS-232C输出电平所需的输出电平所需的12V电压。所以采电压。所以采用这种芯片来实现接口电路特别方便,只需单用这种芯片来实现接口电路特别方便,只需单一的一的+5V电源即可。电源即可。http:/ 束束 MAX232芯片的引脚结构如图芯片的引脚结构如图9.16所示。其所示。其中管脚中管脚16(C1+、V+、C1-、C2+、C2-、V-)用用于电源电压转换,只要在外部接入相应的电解电于电源电压转换,只要在外部接入相应的电解电容即可;管脚容即可;管脚710

80、和管脚和管脚1114构成两组构成两组TTL信信号电平与号电平与RS-232信号电平的转换电路,对应管脚信号电平的转换电路,对应管脚可直接与单片机串行口的可直接与单片机串行口的TTL电平引脚和电平引脚和PC机的机的RS-232电平引脚相连。具体连线如图电平引脚相连。具体连线如图9.17所示。所示。http:/ 束束图图9.16 MAX232引脚图引脚图R2outT1inT2inR1outR1inT1outGND12346587151614131011129C1+V+C1-C2+C2-V-T2outR2inVCChttp:/ 束束2. PC机与机与89C51单片机串行通信电路单片机串行通信电路 用

81、用MAX232芯片实现芯片实现PC机与机与AT89C51单片单片机串行通信的典型电路如图机串行通信的典型电路如图9.16所示。图中外接所示。图中外接电解电容电解电容C1、C2、C3、C4用于电源电压变换,用于电源电压变换,可提高抗干扰能力,它们可取相同容量的电容,可提高抗干扰能力,它们可取相同容量的电容,一般取一般取1.0F/16V。电容。电容C5的作用是对的作用是对+5V电源电源的噪声干扰进行滤波,一般取的噪声干扰进行滤波,一般取0.1F。选用两组。选用两组中的任意一组电平转换电路实现串行通信,如图中的任意一组电平转换电路实现串行通信,如图http:/ 束束 中选中选Tlin、Rlout分别

82、与分别与AT89C51的的TXD、RXD相连,相连,Tlout、Rlin分别与分别与PC机中机中R232接口的接口的RXD、TXD相连。这种发送与接收的对应关系相连。这种发送与接收的对应关系不能接错,否则将不能正常工作。不能接错,否则将不能正常工作。http:/ 束束C1+C1-C2+C2-AT89C51GNDGNDIBM-PCTXDTXDRXDRXDT1outT1inR1inR1outGNDV+V-VCCMAX232C4C1C2C3C5+5V+图图9.17 用用MAX232实现串行通信接口电路图实现串行通信接口电路图http:/ 束束3. PC机与多个单片机间的串行通信机与多个单片机间的串行

83、通信 一台一台PC机与多个单片机间的串行通信电路如机与多个单片机间的串行通信电路如图图9.18所示。这种通信系统一般为主从结构,所示。这种通信系统一般为主从结构,PC机为主机,单片机为从机。主从机间的信号电平机为主机,单片机为从机。主从机间的信号电平转换由转换由MAX232芯片实现。芯片实现。 这种小型分布式控制系统,充分发挥了单片这种小型分布式控制系统,充分发挥了单片机体积小、功能强、抗干扰性好、面向被控对象机体积小、功能强、抗干扰性好、面向被控对象等优点,将单片机采集到的数据传送给等优点,将单片机采集到的数据传送给PC机。同机。同时也利用了时也利用了PC机数据处理能力强的特点,可将多机数据

84、处理能力强的特点,可将多http:/ 束束 个控制对象的信息加以综合分析、处理,然后个控制对象的信息加以综合分析、处理,然后向各单片机发出控制信息,以实现集中管理和向各单片机发出控制信息,以实现集中管理和最优控制,并还能将各种数据信息显示和打印最优控制,并还能将各种数据信息显示和打印出来。出来。http:/ 束束图图9.18 PC机与多个单片机间的串行通信电路机与多个单片机间的串行通信电路T1out R1inT1out R1inT1out R1inT1out R1inT1in R1outT1in R1outT1in R1outT1in R1outMAX232MAX232MAX232MAX232

85、TXD RXD TXD RXD TXD RXD TXD RXD AT89C51(1#) AT89C51(2#) AT89C51(3#) AT89C51(4#) TXDRXDIBM-PChttp:/ 束束 4、RS-485总线接口总线接口 RS-232接口标准出现较早,难免会有不足之处:接口标准出现较早,难免会有不足之处:(1)接口的信号电平值较高,易损坏接口电路)接口的信号电平值较高,易损坏接口电路的芯片;(的芯片;(2)传输速率较低,在异步传输时,)传输速率较低,在异步传输时,波特率最大波特率最大20kbps;(;(3)接口使用一根信号线)接口使用一根信号线和一根信号返回线而构成共地的传输形

86、式,这种和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰;(共地传输容易产生共模干扰;(4)传输距离有)传输距离有限,实际最大传输距离限,实际最大传输距离30m左右。左右。http:/ 束束 RS-485/422接口采用不同的方式:每个信号接口采用不同的方式:每个信号都采用双绞线传送,两条线间的电压差用于表示都采用双绞线传送,两条线间的电压差用于表示数字信号。例如,把双绞线中的一根标为数字信号。例如,把双绞线中的一根标为A(正)(正),另一根标为,另一根标为B(负),当(负),当A为正电压(通常为为正电压(通常为+5V),),B为负电压时为负电压时(通常为通常为0),表示信号

87、,表示信号1;反;反之,之,A为负电压,为负电压,B为正电压时表示信号为正电压时表示信号0。RS-485/422允许通信距离可达到允许通信距离可达到1.2km,实际上可达,实际上可达3km,采用合适的电压可达到,采用合适的电压可达到2.5Mbps的传输速的传输速率。率。http:/ 束束 RS-422与与RS-485采用相同的通信协议,但采用相同的通信协议,但有所不同。有所不同。RS-422通常作为通常作为RS-232通信的扩展,通信的扩展,它采用两对双绞线,数据可以同时双向传送(全它采用两对双绞线,数据可以同时双向传送(全双工)。双工)。RS-485则采用一对双绞线,输入输出不则采用一对双绞

88、线,输入输出不能同时进行(半双工)。能同时进行(半双工)。http:/ 束束 RS-485串行总线接口标准以差分平衡方式传串行总线接口标准以差分平衡方式传输信号,具有很强的抗共模干扰的能力。逻辑输信号,具有很强的抗共模干扰的能力。逻辑“1”以两线间的电压差为以两线间的电压差为+2V+6V表示;逻辑表示;逻辑“0”以两线间的电压差为以两线间的电压差为-2V-6V表示。接口表示。接口信号电平比信号电平比RS-232降低了,不容易损坏接口电路降低了,不容易损坏接口电路芯片。芯片。 RS-485总线标准可采用总线标准可采用MAX485芯片实现电芯片实现电平转换。平转换。MAX-485芯片引脚排列如图芯

89、片引脚排列如图9.19所示。所示。http:/ 束束R VCCRE BDE AT GNDMAX485 MAX485输入输入/输出信号不能同时进行(半双输出信号不能同时进行(半双工),其发送和接收功能的转换是由芯片的工),其发送和接收功能的转换是由芯片的RE和和DE端控制的。端控制的。RE=0时,允许接收;时,允许接收;RE=1时,接时,接收端收端R高阻。高阻。DE=1时,允许发送;时,允许发送;DE=0时,发时,发送端送端A和和B高阻。在单片机系统中常把高阻。在单片机系统中常把RE和和DE接接在一起用单片机的一个在一起用单片机的一个I/O线控制收发。线控制收发。ABRTRXDTXDP1.0RE

90、 DE图图9.19 MAX485引脚排列与连接引脚排列与连接http:/ 束束9.6 实训指导实训指导 1. 实训目的实训目的 (1)掌握串行口工作方式的程序设计,掌握单片机掌握串行口工作方式的程序设计,掌握单片机通信程序编制方法。通信程序编制方法。 (2)了解实现串行通信的硬环境了解实现串行通信的硬环境,数据格式的协议数据格式的协议,数据交换的协议数据交换的协议. (3)了解双机通信的基本要求了解双机通信的基本要求. 2. 实训内容实训内容 利用单片机串行口利用单片机串行口,实现双机通信。在实现双机通信。在1号实验号实验仪键盘上键入的数字、字母,仪键盘上键入的数字、字母,2号实验仪即将其在号

91、实验仪即将其在数码管上显示。数码管上显示。http:/ 束束3. 实训原理图实训原理图图图9.20 双机通信实训原理图双机通信实训原理图http:/ 束束4. 实训步骤实训步骤 (1) 按实训原理图在实验仪上连好线路;按实训原理图在实验仪上连好线路; (2) 接通接通PC机与实验仪电源,运行机与实验仪电源,运行DVCC实验软实验软件,编写源程序;件,编写源程序; (3) 连续运行程序,观察实验现象。连续运行程序,观察实验现象。http:/ 束束本章小结本章小结1. 串行通信基本概念串行通信基本概念(1)并行通信是数据的各位同时传送,其优点是)并行通信是数据的各位同时传送,其优点是传送速度快,主

92、要用于短距离传送;串行通信传送速度快,主要用于短距离传送;串行通信是数据的各位依次逐位在同一根数据线上传送,是数据的各位依次逐位在同一根数据线上传送,传送速度慢,适用于远距离传送。传送速度慢,适用于远距离传送。(2)异步通信依靠起始位、停止位保持通信同步)异步通信依靠起始位、停止位保持通信同步,对硬件要求较低,传输速度较慢。同步通信,对硬件要求较低,传输速度较慢。同步通信依靠同步字符保持通信同步,传输速度较快,依靠同步字符保持通信同步,传输速度较快,对硬件要求高,适用于成批数据传送。对硬件要求高,适用于成批数据传送。http:/ 束束 (3)波特率是串行通信中一个重要概念,它定)波特率是串行通

93、信中一个重要概念,它定义为每秒传输的数据位数。串行通信时,双方义为每秒传输的数据位数。串行通信时,双方必须具有相同的波特率,否则将无法成功地完必须具有相同的波特率,否则将无法成功地完成串行数据传送。成串行数据传送。 (4)串行通信按照数据传送方向可分为三种制)串行通信按照数据传送方向可分为三种制式:单工制式、半双工制式和全双工制式。式:单工制式、半双工制式和全双工制式。 (5)在串行通信中,常对传送数据过程是否出)在串行通信中,常对传送数据过程是否出错进行校验,常用差错校验方法有奇偶校验、错进行校验,常用差错校验方法有奇偶校验、累加和校验及循环冗余码校验等。累加和校验及循环冗余码校验等。htt

94、p:/ 束束2. AT89C51串行口主要由发送器、接收器和串行串行口主要由发送器、接收器和串行 控制寄存器组成。控制寄存器组成。 3. 串口有串口有4种工作方式:方式种工作方式:方式0是同步移位寄存器是同步移位寄存器方式,帧格式方式,帧格式8位,波特率固定为位,波特率固定为fosc/12。方式。方式1是是8位异步通信方式,帧格式位异步通信方式,帧格式10位,波特率可变:位,波特率可变:(n=32或或16)。方式。方式2是是9位异步通信方式,帧格式位异步通信方式,帧格式11位,波特率可变:位,波特率可变:fosc/n(n=32或或16)。方式。方式3是是9位异步通信方式,帧格式位异步通信方式,

95、帧格式11位,波特率可变:位,波特率可变:(n=32或或16)。方式。方式1、2、3的区别主要表现在帧的区别主要表现在帧格式及波特率两个方面。格式及波特率两个方面。 http:/ 束束 4. 多机通信时,主机发送的信息可传送到各个从多机通信时,主机发送的信息可传送到各个从机,而各从机发送的信息只能被主机接收,利用机,而各从机发送的信息只能被主机接收,利用SCON中的中的TB8/RB8和和SM2可实现多机通信。可实现多机通信。5. 实现实现PC机与单片机之间通信或单片机与单片机与单片机之间通信或单片机与单片机之间远距离通信时通常采用标准串行总线通机之间远距离通信时通常采用标准串行总线通信接口,信

96、接口,RS-232C是在异步串行通信中应用最是在异步串行通信中应用最广的标准总线。广的标准总线。RS-232C总线采用负逻辑标准:总线采用负逻辑标准:将将-5-15V规定为规定为“1”,+5V+15V规定为规定为0,这与利用正逻辑标准的,这与利用正逻辑标准的TTL电平不兼容,所电平不兼容,所以以TTL信号和信号和RS-232C信号之间要有相应的电信号之间要有相应的电平转换电路。平转换电路。 http:/ 束束习题与思考题习题与思考题 9.1 串串行行通通信信有有几几种种基基本本通通信信方方式式?它它们们有有什么区别?什么区别? 9.2 什么是串行通信的波特率?什么是串行通信的波特率? 9.3

97、串串行行通通信信有有哪哪几几种种制制式式?各各有有什什么么特特点点? 9.4 简简述述AT89C51串串行行口口控控制制寄寄存存器器SCON各位的定义。各位的定义。 9.5 AT89C51单单片片机机串串行行通通信信有有几几种种工工作作方方式?简述它们各自的特点。式?简述它们各自的特点。http:/ 束束 9.6 简简述述AT89C51单单片片机机串串行行口口在在四四种种工工作方式下波特率的产生方法。作方式下波特率的产生方法。 9.7 假假设设异异步步通通信信接接口口按按方方式式1传传送送,每每分分钟传送钟传送6000个字符,则其波特率是多少?个字符,则其波特率是多少? 9.8 串串行行口口工

98、工作作在在方方式式1和和方方式式3时时,其其波波特特率率由由定定时时器器T1产产生生,为为什什么么常常选选T1工工作作在在方方式式2?若若已已知知fosc=6 MHz,需需产产生生的的波波特特率率为为2400 b/s,则则如如何何计计算算T1的的计计数数初初值值?实实际际产产生的波特率是否有误差?生的波特率是否有误差?http:/ 束束 9.9 说明单片机多机通信的工作原理。说明单片机多机通信的工作原理。 9.10 试试用用查查询询法法编编写写AT89C51串串行行口口在在方方式式2下下的的接接收收程程序序。设设波波特特率率为为fosc/32,接接收收数数据据块块长长20H,接接收收后后存存在

99、在于于片片内内RAM的的40H开开始始单单元元,采采用用奇奇偶偶校校验验,放放在在接接收收数数据据的的第第九位上。九位上。 9.11 设设计计一一个个发发送送程程序序,将将芯芯片片内内RAM中中的的30H3FH单单元元数数据据从从串串行行口口输输出出,要要求求将串行口定义为方式将串行口定义为方式3,TB8作奇偶校验位。作奇偶校验位。http:/ 束束 9.12 PC机机与与单单片片机机间间的的串串行行通通信信为为什什么么要要进行电平转进行电平转 换?换? 9.13 RS-232C总总线线标标准准逻逻辑辑电电平平是是怎怎样样规规定的?定的? 9.14绘绘 出出 用用 MAX232芯芯 片片 实实 现现 两两 片片AT89C51单单片片机机之之间间远远距距离离串串行行通通信信的的接接口口电电路图。路图。http:/

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号