19
项项项 项项项项项项项项项 [ 项项项项项项 ] 项项项项 一、 1. 项项项项项项项项项项项项2. 项项 AT89S51 项项项项项项项项项项项3. 项项项项项项项项项项项项 项项项项项项项项项项项项项 ,。 项项项项 1. 项项项项项项项项项项项项项项项项项项项项2. 项项项项项项项项项项项项项项项项项

项目八 单片机双机串行通信

  • Upload
    naoko

  • View
    80

  • Download
    7

Embed Size (px)

DESCRIPTION

项目八 单片机双机串行通信. [ 项目学习目标 ]. 一、知识目标 1. 知道串行通信的概念及特性。 2. 了解 AT89S51 单片机串行口的工作模式。 3. 掌握单片机双机通信的原理,会进行双机通信电路的设计。 二、技能目标 1. 能利用两台单片机实验箱来建立双机通信的系统。 2. 能实现单片机与单片机串行通信数据的传送。. 任务一 认识单片机的串行通信. 活动 1 认识串行通信. 在单片机测控技术领域,对较大规模的测控系统经常需要双机或者 多机进行通信。单片机与单片机之间的距离可能是近程的(几米或在同 - PowerPoint PPT Presentation

Citation preview

Page 1: 项目八  单片机双机串行通信

项目八 单片机双机串行通信 [ 项目学习目标 ]

一、知识目标

1. 知道串行通信的概念及特性。2. 了解 AT89S51 单片机串行口的工作模式。3. 掌握单片机双机通信的原理,会进行双机通信电路的设计。二、技能目标1. 能利用两台单片机实验箱来建立双机通信的系统。2. 能实现单片机与单片机串行通信数据的传送。

Page 2: 项目八  单片机双机串行通信

任务一 认识单片机的串行通信活动 1 认识串行通信 在单片机测控技术领域,对较大规模的测控系统经常需要双机或者多机进行通信。单片机与单片机之间的距离可能是近程的(几米或在同一块电路板上),也可能是远程的(几百米以上),信息交换方式可以使用并行通信,也可以使用串行通信。

我们首先应该知道什么是串行通信。单片机基本的通信方式有并行通信和串行通信两种,你能从下面的图中发现这二者有何区别吗?

图 8-1-1 并行通信 图 8-1-2 串行通信

Page 3: 项目八  单片机双机串行通信

并行通信:一组信息(通常是字节)的各个数据位 D0~D7 被同时传送的 通信方法。它依靠单片机的 I / O 接口实现,其特点是速度快, 但传输线根数多,适用于近距离通信。

串行通信:一组信息的各个数据位 D0~D7 被逐位顺序传送的通信方式。 它可通过单片机的串行接口来实现,其特点是速度慢,但传 输线少,适宜长距离通信。

Page 4: 项目八  单片机双机串行通信

活动 2 认识 AT89S51 单片机的串行接口 一、异步通信方式 AT89S51 单片机通过引脚 P3.0 复用为串行数据接收引脚 RXD ,

用于接收对方发来的一位数据;引脚 P3.1 复用为串行数据接收引脚 TXD ,

用于向对方发送一位数据。 串行通信又分为同步通信和异步通信。 AT89S51 采用异步通信。异步通信的字符帧格式如下图所示,每个字符由起始位、数据位、奇偶校验位和停止位四个部分顺序组成。这四个部分组成异步传输中的一个传输单元,即字符帧。

图 8-1-3 异步通信的字符帧格式

Page 5: 项目八  单片机双机串行通信

空闲位:没有数据传送时处于“ 1” 状态;起始位:发送端发送数据时,首先发出“ 0” 信号,占 1 位。 接收端检测线路状态连续为“ 1” 后或在停止位后有一个“ 0” , 就知道将发来一个新的字符帧。数据位:紧接于起始位后面,它可以占 5 、 6 、 7 或 8 位不等, 数据位传输的顺序总是最低位 D0 在先。奇偶校验位:在数据位之后,占 1 位,用于检验数据传送否有错。停止位:用“ 1” 来表征一个字符帧的结束。停止位可以占 1 位、 1.5 位 或 2 位不等。接收端接收到停止位时,表明这一字符已接收 完毕,也表明下一个字符帧可能到来。若停止位以后不是紧接 着传送下一个字符帧,则让线路上保持为“ 1” ,即空闲等待状态。

串行通信的一个重要指标是波特率。它定义为每秒钟传送二进制数码的位数,以“位/秒”( bps )为单位。

Page 6: 项目八  单片机双机串行通信

二、串行口的控制与状态寄存器 1. 串行口缓冲寄存器 SBUF

AT89S51 单片机内部的串行通信口有两个物理上相互独立的接收、发送

缓冲器 SBUF 用于发送、接收数据。发送缓冲器和接收缓冲器不能互换,发送

缓冲器只能写入不能读出,接收缓冲器只能读出不能写入。两个缓冲器占用

同一个端口地址 99H 。具体对哪一个缓冲器进行操作,取决于所使用的指令是

发送还是接收。2. 串行口控制寄存器 SCON

SCON 用于控制和监视串行口的工作状态,定义如下:

SM0 和 SM1 :串行口工作模式选择位,分别对应四种模式,见表 8-1-

1 。 其中, fOSC 为单片机的晶振频率。

Page 7: 项目八  单片机双机串行通信

表 8-1-1 串行口工作模式选择表

SM2 :多机通信控制位。REN :允许接收控制位,由软件置位或清除。 REN=1 则允许接收, REN=0 ,禁止接收。TB8 :该位是模式 2 和 3 中要发送的第九位数据。RB8 :该位是模式 2 和 3 中已接收的第九位数据。TI : 发送中断标志。在模式 0 中,发送完第 8 位数据时,由硬件置位; 在其他模式中,在发送停止位之初,由硬件置位,申请中断, CPU 响应中断后,发送下一帧数据。在任何模式中,都必须由软件清除 TI 。

Page 8: 项目八  单片机双机串行通信

3. 电源控制寄存器 PCON

PCON 中的最高位是串行口通信波特率倍增位 SMOD ,当 SMOD = 1

时,串行模式 1 、模式 2 、模式 3 的波特率加倍。

RI : 接收中断标志。在模式 0 中,接收第 8 位数据结束时,由硬件置位; 在其他模式中,在接收停止位的半中间,由硬件置位,申请中断, 要求 CPU 取走数据。但在模式 1 中, SM2=1 时,若未接收到有效的 停止位,则不会对 RI 置位。在任何模式中,都必须由软件清除 RI 。

Page 9: 项目八  单片机双机串行通信

活动 3 认识串行口的工作模式1. 模式 0 在模式 0 状态下,串行口为同步移位寄存器方式,其波特率固定为fosc / 12 。 RXD ( P3.0)端输入/输出数据,而 TXD ( P3.1)端专用

于输出时钟脉冲给外部移位寄存器。

2. 模式 1 串行口工作在模式 1 为 8 位异步通信口,即一个字符帧由 10个位组

成:1位起始位、 8位数据位和 1位停止位。在接收数据前 SCON寄存器中的

REN

“必须置 1”。 模式1的波特率是可变的,可以由以下公式计算得到:

X-2

1

12

f

32

2k

OSCSMOD

波特率

式中, k 为定时器 T1 的位数( 8 、 13 、 16 ); X 为定时器 T1 的计数初值。

Page 10: 项目八  单片机双机串行通信

3. 模式 2和模式 3

串行口工作在模式 2和模式 3均为 11位异步通信口,数据附加了第9位数据。

发送时,第 9位数据来自 SCON中的 TB8;接收数据时,第 9位数据进入RB8。

同样,接收前 SCON中的 REN “必须置 1”。 模式 2的波特率可以由以下公式计算得到:

64

2f

SMOD

OSC 波特率

模式 3除了波特率可编程外,其余与模式 2相同。

Page 11: 项目八  单片机双机串行通信

任务二 双机通信 现在我们将在两个单片机之间使用串行方式进行通信,将单片机 A 的开关信息发送到单片机 B ,从而来控制其 LED灯的亮灭。

我们需要两台实验箱,两个组的同学配合将两个主机模块连接起来,一台仅作输入,另一台仅作输出。然后,再由各组分别使用拨码开关模块和 LED 模块。让我们画出双机通信的电路原理图。

活动 1 构建双机通信的硬件平台

Page 12: 项目八  单片机双机串行通信

图 8-2-1 双机通信的电路原理图

注意:这两台单片机的 GND 端直接相连,而 RXD 端和 TXD 端交叉连接。

技能贴士:

Page 13: 项目八  单片机双机串行通信

根据两台主机在通信过程中扮演的不同角色,分析单片机 A 作为发送端的工作流程与单片机 B 作为接收端的工作流程。

活动 2 分析双机通信流程

图 8-2-2 单片机 A 的发送流程图 图 8-2-3 单片机 B 的接收流程图

Page 14: 项目八  单片机双机串行通信

单片机 A 发送的参考程序:

活动 3 编写发送端、接收端程序

Page 15: 项目八  单片机双机串行通信

单片机 B 接收的参考程序:

Page 16: 项目八  单片机双机串行通信

两组同学配合完成本项目程序的调试,观察现象是否与预期结果一致。

活动 4 程序调试

仅使用一台实验箱,设计一个单片机自行发送、自行接收的异步串行通信系统。要求:波特率为 600bps ,当程序运行时, P1.0

所连接的 LED 会一闪一闪地点亮,表示串行口发送和接收正常。

【创新活动】

Page 17: 项目八  单片机双机串行通信

项目知识系统化说明1. 串行通信分为同步通信和异步通信, AT89S51 单片机采用异步通信。2. 异步通信的字符帧格式由起始位、数据位、奇偶校验位和停止位四个部分 顺序组成。3. 串行通信的波特率定义为每秒钟传送二进制数码的位数,以 bps 为单位。4. AT89S51 单片机内部的串行通信口有两个物理上相互独立的接收、发送 缓冲器 SBUF 用于发送、接收数据。5. AT89S51 串行口的工作模式有 4 种,串行口工作在模式 2 和模式 3均为 11 位异步通信口。

项目小结1. 我们了解了串行通信的概念,知道了串行通信与并行通信相比具有 线路简单,适用于长距离传输的优势。2. 我们学会了 AT89S51 单片机串行口的使用。3. 我们初步学会了两个单片机之间利用串行的方式进行通信。

Page 18: 项目八  单片机双机串行通信

1. 单片机基本的通信方式有哪两种? 2. 什么是串行通信?什么是并行通信? 3. AT89S51 单片机异步串行通信的字符帧格式由哪四个部分顺序组成 ?

4. 串行通信的一个重要指标是波特率,它是如何定义的? 5. AT89S51 单片机串行口有几种工作模式?如何选择?简述其特点? 6. AT89S51 单片机内部的串行通信口有两个物理上相互独立的接收、发送缓冲器,它们的名称分别是什么? 7. 请编写串行口方式 1 下的发送程序。设单片机主频为 6MHz ,定时器 T1 用作波特率发生器,波特率为 2400b/s ,发送字符块在内部 RAM

的起始地址为 TBLOCK 单元,字符块长度为 LEN 。要求奇偶校验位在数据第 8 位发送,字符块长度 LEN 率先发送。

思考与练习

Page 19: 项目八  单片机双机串行通信

8. 在串行口通信编程过程中,如何依据波特率来计算定时器的初值?如果单片机的晶振为 11.0592MHz ,波特率为 9600bps ,其

定时器的初值为多少 ?

9. 双机串行口通信时,两块 AT89S51 单片机的 RXD 端和 TXD 端应该如何连接?

10. 编写程序,实现以下功能:单片机的晶振频率为 12MHz ,串行口工作于模式 3 ,波特率为 2400bps 。