1 / 19

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

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

naoko
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 任务一 认识单片机的串行通信 活动1 认识串行通信 在单片机测控技术领域,对较大规模的测控系统经常需要双机或者 多机进行通信。单片机与单片机之间的距离可能是近程的(几米或在同 一块电路板上),也可能是远程的(几百米以上),信息交换方式可以 使用并行通信,也可以使用串行通信。 我们首先应该知道什么是串行通信。单片机基本的通信方式有并行 通信和串行通信两种,你能从下面的图中发现这二者有何区别吗? 图8-1-1 并行通信 图8-1-2 串行通信

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

  4. 活动2 认识AT89S51单片机的串行接口 一、异步通信方式 AT89S51单片机通过引脚P3.0复用为串行数据接收引脚RXD,用于 接收对方发来的一位数据;引脚P3.1复用为串行数据接收引脚TXD,用于 向对方发送一位数据。 串行通信又分为同步通信和异步通信。AT89S51采用异步通信。 异步通信的字符帧格式如下图所示,每个字符由起始位、数据位、奇偶 校验位和停止位四个部分顺序组成。这四个部分组成异步传输中的一个 传输单元,即字符帧。 图8-1-3 异步通信的字符帧格式

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

  6. 二、串行口的控制与状态寄存器 1. 串行口缓冲寄存器SBUF AT89S51单片机内部的串行通信口有两个物理上相互独立的接收、发送 缓冲器SBUF用于发送、接收数据。发送缓冲器和接收缓冲器不能互换,发送 缓冲器只能写入不能读出,接收缓冲器只能读出不能写入。两个缓冲器占用 同一个端口地址99H。具体对哪一个缓冲器进行操作,取决于所使用的指令是 发送还是接收。 2. 串行口控制寄存器 SCON SCON 用于控制和监视串行口的工作状态,定义如下: SM0 和 SM1:串行口工作模式选择位,分别对应四种模式,见表8-1-1。 其中,fOSC为单片机的晶振频率。

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

  8. RI: 接收中断标志。在模式0中,接收第8位数据结束时,由硬件置位; 在其他模式中,在接收停止位的半中间,由硬件置位,申请中断, 要求CPU 取走数据。但在模式1中,SM2=1时,若未接收到有效的 停止位,则不会对RI置位。在任何模式中,都必须由软件清除RI。 3. 电源控制寄存器 PCON PCON中的最高位是串行口通信波特率倍增位SMOD,当SMOD=1时, 串行模式1、模式2、模式3的波特率加倍。

  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的波特率是可变的,可以由以下公式计算得到: 式中,k为定时器T1的位数(8、13、16);X为定时器T1的计数初值。

  10. 3. 模式2和模式3 串行口工作在模式 2和模式3均为11位异步通信口,数据附加了第9位数据。 发送时,第9位数据来自SCON中的TB8;接收数据时,第9位数据进入RB8。 同样,接收前SCON中的REN必须置“1”。 模式2的波特率可以由以下公式计算得到: 模式3除了波特率可编程外,其余与模式2相同。

  11. 任务二 双机通信 现在我们将在两个单片机之间使用串行方式进行通信,将单片机A的 开关信息发送到单片机B,从而来控制其LED灯的亮灭。 活动1 构建双机通信的硬件平台 我们需要两台实验箱,两个组的同学配合将两个主机模块连接起来, 一台仅作输入,另一台仅作输出。然后,再由各组分别使用拨码开关模块 和LED模块。让我们画出双机通信的电路原理图。

  12. 图8-2-1 双机通信的电路原理图 技能贴士: 注意:这两台单片机的GND端直接相连,而RXD端和TXD端交叉连接。

  13. 活动2 分析双机通信流程 根据两台主机在通信过程中扮演的不同角色,分析单片机A作为发送端的 工作流程与单片机B作为接收端的工作流程。 图8-2-2 单片机A的发送流程图 图8-2-3 单片机B的接收流程图

  14. 活动3 编写发送端、接收端程序 单片机A发送的参考程序:

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

  16. 活动4 程序调试 两组同学配合完成本项目程序的调试,观察现象是否与预期结果一致。 【创新活动】 仅使用一台实验箱,设计一个单片机自行发送、自行接收的 异步串行通信系统。要求:波特率为600bps,当程序运行时,P1.0 所连接的LED会一闪一闪地点亮,表示串行口发送和接收正常。

  17. 项目知识系统化说明 1. 串行通信分为同步通信和异步通信,AT89S51单片机采用异步通信。 2. 异步通信的字符帧格式由起始位、数据位、奇偶校验位和停止位四个部分 顺序组成。 3. 串行通信的波特率定义为每秒钟传送二进制数码的位数,以bps为单位。 4. AT89S51单片机内部的串行通信口有两个物理上相互独立的接收、发送 缓冲器SBUF用于发送、接收数据。 5. AT89S51串行口的工作模式有4种,串行口工作在模式 2和模式3均为 11位异步通信口。 项目小结 1. 我们了解了串行通信的概念,知道了串行通信与并行通信相比具有 线路简单,适用于长距离传输的优势。 2. 我们学会了AT89S51单片机串行口的使用。 3. 我们初步学会了两个单片机之间利用串行的方式进行通信。

  18. 思考与练习 1. 单片机基本的通信方式有哪两种? 2. 什么是串行通信?什么是并行通信? 3. AT89S51单片机异步串行通信的字符帧格式由哪四个部分顺序组成? 4. 串行通信的一个重要指标是波特率,它是如何定义的? 5. AT89S51单片机串行口有几种工作模式?如何选择?简述其特点? 6. AT89S51单片机内部的串行通信口有两个物理上相互独立的接收、发送缓冲器,它们的名称分别是什么? 7. 请编写串行口方式1下的发送程序。设单片机主频为6MHz,定时器T1用作波特率发生器,波特率为2400b/s,发送字符块在内部RAM的起始地址为TBLOCK单元,字符块长度为LEN。要求奇偶校验位在数据第8位发送,字符块长度LEN率先发送。

  19. 8. 在串行口通信编程过程中,如何依据波特率来计算定时器的初值?如果单片机的晶振为11.0592MHz,波特率为9600bps,其 定时器的初值为多少? 9. 双机串行口通信时,两块AT89S51单片机的RXD端和TXD端应该如何连接? 10. 编写程序,实现以下功能:单片机的晶振频率为12MHz,串行口工作于模式3,波特率为2400bps。

More Related