项目十 串行通信(课件)-《单片机技术应用》同步教学(北理版)

| 28页
| 59人阅读
| 2人下载
普通

内容正文:

项目十 串行通信 任务一 单片机串行口的基本应用 任务二 双机串行通信应用 返回 1 任务一 单片机串行口的基本应用 一、任务描述 通过学习,了解异步通信基本知识,熟悉 51 系列单片机串行口内部结构,掌握串行口通信方式及串行口指令的应用。 二、基础知识 1. 异步串行通信 在串行通信中,数据字节一位一位串行地顺序传送,通过串行接口实现。它的优点是只需一对传送线,大大降低了传送成本,特别适用于远距离通信;其缺点是传送速度较低。 图 10 − 1 所示为串行数据通信方式的连接方法。 下一页 返回 任务一 单片机串行口的基本应用 按照串行数据的时钟控制方式,串行通信分为异步通信和同步通信两类。这里只介绍异步通信。在异步通信中,数据是以字符为单位组成字符帧传送的。发送端和接收端由各自独立的时钟来控制数据的发送和接收,这两个时钟彼此独立,互不同步。每一字符帧的数据格式如图 10 − 2 所示。 在帧格式中,一个字符由四个部分组成:起始位、数据位、奇偶校验位和停止位。 2. 波特率 波特率,即数据传送速率,表示每秒钟传送二进制代码的位数,它的单位是位 / 秒( b/s ),常用 bps 表示。 上一页 下一页 返回 任务一 单片机串行口的基本应用 波特率是异步通信的重要指标,表征数据传输的速度,波特率越高,数据传输速度越快,在数据传送方式确定后,以多大的速率发送 / 接收数据,是实现串行通信必须解决的问题。 假设数据传送的速率是 120 字符 / 秒,每个字符格式包含 10 个代码位( 1 个起始位、 1 个停止位、 8 个数据位),则通信波特率为: 120 字符 / 秒 ×10 位 / 字符 =1 200 b/s=1 200 波特 每一位的传输时间为波特率的倒数: T d =1/1 200=0.833 ( ms ) 上一页 下一页 返回 任务一 单片机串行口的基本应用 3. MCS − 51 单片机串行接口内部结构 MCS − 51 内部有一个可编程全双工串行接口,具有 UART (通用异步接收和发送器)的全部功能,通过单片机的引脚 RXD ( P3.0 )、 TXD ( P3.1 )同时接收、发送数据,构成双机或多机通信系统。 MCS − 51 串行口的内部结构,如图 10 − 3 所示。 在图 10 − 3 中,与 MCS − 51 串行口有关的特殊功能寄存器为 SBUF 、 SCON 、 PCON ,下面对它们分别讨论。 ( 1 ) 串行口数据缓冲器 SBUF 。 SBUF 是一个特殊功能寄存器,有两个在物理上独立的接收缓冲器与发送缓冲器。发送缓冲器只能写入不能读出,写入 SBUF 的数据存储在发送缓冲器中,用于串行发送;接收缓冲器只能读出不能写入。 上一页 下一页 返回 任务一 单片机串行口的基本应用 两个缓冲器共用一个地址 99H ,通过对 SBUF 的读、写指令来区别是对接收缓冲器还是发送缓冲器进行操作。接收或发送数据,是通过串行口对外的两条独立收发信号线 RXD ( P3.0 )、 TXD ( P3.1 )来实现的。 ( 2 ) 串行口控制寄存器 SCON 。 SCON 用来控制串行口的工作方式和状态,字节地址为98H ,可以位寻址。 SCON 的格式如下所示: SCON ( 98H ) SM0 SMl SM2 REN TB8 RB8 TI RI SM0 、 SM1 :串行口工作方式选择位,其定义如表 10 − 1 所示。 SM2 :多机通信控制位,用于方式 2 和方式 3 中。 上一页 下一页 返回 任务一 单片机串行口的基本应用 在方式 2 和方式 3 处于接收方式时,若 SM2=1 ,表示置多机通信功能。如果接收到的第 9 位数据 RB8 为 1 ,则将数据装入 SBUF ,并置 RI 为 1 ,向 CPU 申请中断;如果接收到的第 9 位数据 RB8 为 0 ,则不接收数据, RI 仍为 0 ,不向 CPU 申请中断。若 SM2=0 ,不论接收到的第 9 位 RB8 为 0 还是为 l , TI 、 RI 都以正常方式被激活,接收到的数据装入 SBUF 。在方式 1 中,若 SM2=1 ,则只有收到有效的停止位后, RI 置 1 。在方式 0 中, SM2 应为 0 。 REN :允许串行接收位。 REN=l 时,允许接收; REN=0 时,禁止接收。 TB8 :发送数据的第 9 位。在方式 2 和方式 3 中, TB8 是第 9 位发送数据,可做奇偶校验位。 上一页 下一页 返回 任务一 单片机串行口的基本应用 在多机通信中,可作为区别地址帧或数据帧的标识位,一般约定发送地址帧时, TB8为 1 ,发送数据帧时, TB8 为 0 。 RB8 :接收数据的第 9 位。在方式 2 和方式 3 中, RB8 是第 9 位接收数据。 TI :发送中断标志位。在方式 0 中,发送完 8 位数据后,由硬件置位;在其他方式中,在发送停止位时由硬件置位。因此, TI 是发送完一帧数据的标志,当 TI=l 时,向 CPU 申请串行中断,响应中断后,必须由软件清除 TI 标志位。 RI :接收中断标志位。在方式 0 中,接收完 8 位数据后,由硬件置位;在其他方式中在接收停止位的中间点由硬件置位。 上一页 下一页 返回 任务一 单片机串行口的基本应用 接收完一帧数据时 RI=l ,向 CPU 申请中断,响应中断后,必须由软件清除 RI 标志位。 ( 3 ) 电源及波特率选择寄存器 PCON 。 PCON 主要是为 CHMOS 型单片机的电源控制而设置的专用寄存器,字节地址为 87H 。 D7 D6 D5 D4 D3 D2 D1 D0 PCON ( 87H ) SMOD SMOD0 LVDF POF GF1 GF0 PD IDL PCON 的最高位 SMOD 为串行口波特率的倍增位。在方式 1 、 2 和 3 时,串行通信的波特率与 SMOD 有关。当 SMOD=l 时,通信波特率加倍,当 SMOD=0 时,波特率不变。其他各位为掉电方式控制位,在此不再赘述。 上一页 下一页 返回 任务一 单片机串行口的基本应用 三、串行口工作方式与波特率设置 1. 串行口工作方式 1 介绍 51 系列单片机的串行口有 4 种工作方式,通过 SCON 中的 SM1 、 SM0 位来决定,如表 10 − 1 所示。其中方式 0 常用于扩展 I/O 口,在此不作介绍,本应用中采用工作方式 1 。方式 1 为波特率可调的 8 位通用异步通信接口。发送或接收一帧信息为 10 位,分别为起始位 0 , 8 位数据位和 1 位停止位 1 。 2. 波特率设置 在串行通信中,收发双方必须采用相同的数据传输速度,即采用相同的波特率。 上一页 下一页 返回 任务一 单片机串行口的基本应用 AT89S51单片机的串行口有 4 种工作方式,其中方式 0 和方式 2 的波特率是固定的,方式 1 和方式 3的波特率是可变的,由定时器 T1 的溢出率决定。 四、单片机串行口通信测试 1. 硬件电路 图10−4 将单片机的发送端(P3.1)与接收端(P3.0)接在一起,可以测试单片机的串口通信功能。设单片机主频为12 MHz,波特率为62.5 kb/s。程序执行后,8 个发光二极管闪烁表示通信正常。 上一页 下一页 返回 任务一 单片机串行口的基本应用 2. 程序清单 查 表 10−2 可知定时器采用工作方式 2,初值为 FFH,程序如下: ORG 0000H MOV TMOD,#20H ;定时器 1 设为工作方式 2 MOV TL1,#0FFH MOV TH1,#0FFH ;置定时器初值 SETB TR1 ;启动 T1 MOV SCON,#50H ;串口设置为方式 1,REN=1 STA:CLR TI ;清发送标志 上一页 下一页 返回 任务一 单片机串行口的基本应用 MOV P0,#00H ;送亮灯信号 ACALL DELAY ;调延时子程序 MOV A,#0FFH MOV SBUF,A ;发送灭灯信号 JXFS: JNB TI,JXFS ;发送等待 JXJS: JNB RI,JXJS ;接收等待 CLR RI ;清接收标志 MOV A,SBUF ;接收数据 MOV P0,A ;接收送据(灭灯信号)送 P0 口 上一页 下一页 返回 任务一 单片机串行口的基本应用 ACALL DELAY ;调延时子程序 SJMP STA ;重复 DELAY: MOV R0,#0FFH ;延时子程序 DAL: MOV R1,#0FFH DAL1: DJNZ R1,DAL1 DJNZ R0,DAL RET END 上一页 下一页 返回 任务一 单片机串行口的基本应用 3. 程序分析 (1) MOV SBUF,A:将累加器内容送串口缓冲区,此指令执行后,单片机执行数据发送功能,串行数据从 P3.1 输出。 (2) JXFS:JNB TI,JXFS:数据发送完后,TI 被自动置 1。此指令查询 TI 是否为 1,即是否发送完成,若未完则继续查询等待,直到发送完毕,TI 置 1。 (3) JXJS:JNB RI,JXJS:接收等待。数据接收完毕,RI 被置 1,执行下面指令。 上一页 下一页 返回 任务一 单片机串行口的基本应用 (4) CLR RI:接收完毕,清接收完成标志。 (5) MOV A,SBUF:将接收至缓冲区的数据送入累加器 A。 (6) 此程序采取查询通信中断标志位方式编写。查询时计算机处于等待状态,工作效率较低,可采取中断方式提高 CPU 工作效率。 上一页 返回 任务二 双机串行通信应用 一、任务描述 通过简单双机通信实训,掌握单片机通信的基本方法,能够用查询与中断两种方式进行通信编程。 二、基础知识 1. 串行通信的制式 在串行通信中按照数据传送方向,串行通信可分为单工、半双工和全双工三种制式。 (1) 单工制式。在单工制式中,只允许数据向一个方向传送,通信的一端为发送器,另一端为接收器。 下一页 返回 任务二 双机串行通信应用 (2) 半双工制式。在半双工制式中,系统每个通信设备都由一个发送器和一个接收器组成,允许数据向两个方向中的任一方向传送,但每次只能有一个设备发送,即在同一时刻,只能进行一个方向传送,不能双向同时传输。 (3) 全双工制式。在全双工制式中,数据传送方式是双向的,允许同时双向传送数据。在实际应用中,异步通信通常采用半双工制式,这种用法简单、实用。 2. 串行口工作方式 2 、方式 3 介绍 在工作方式 2、方式 3 下,串行口为 9 位异步通信接口,发送、接收一帧信息为 11 位: 上一页 下一页 返回 任务二 双机串行通信应用 即 1 位起始位(0)、8 位数据位、1 位奇偶校验位和 1 位停止位(1)。传送波特率与 SMOD有关。其数据帧格式如下所示: (1) 数据发送。串行口工作于方式 2、方式 3 进行数据发送时,数据由 TXD 端输出,附加的第 9 位数据为 SCON 中的 RB8(由软件设置)。用指令将要发送的数据写入 SBUF,即可启动发送器。送完一帧信息时,TI 由硬件置 1。 (2) 数据接收。当 REN=1 时,允许接收。与方式 1 相同,CPU 开始不断采样 RXD,将8 位数据送入 SBUF 中,接收到的第 9 位数据送入 RB8 中,当同时满足 RI=0,SM2=0 或接收到第 9 位数据为 1 这三个条件时,置 RI=1,否则接收数据无效。 上一页 下一页 返回 任务二 双机串行通信应用 三、利用两台单片机实现近距离通信 1. 硬件电路 当两个单片机距离较近时,甲、乙两机的发送端与接收端分别直接相连,两机共地。执行程序时,甲机将亮灯信号发送给乙机,若通信正常,乙机接收到信号后点亮 8 个发光二极管。乙机采用查询与中断两种工作方式。电路主频为 12 MHz,通信波特率为 62.5 kb/s。 双机通信实训简化电路如图 10−5 所示。 上一页 下一页 返回 任务二 双机串行通信应用 2. 程序清单 3. 程序分析 (1) 在进行双机通信时,两机应采用相同的工作方式和波特率。 (2) 甲机采用查询方式发送数据。 (3) 乙机采用查询与中断两种方式接收数据。采用中断方式接收时,当接收完一字节数据后,RI 被置 1,串行口申请中断,串行口中断程序入口地址为 0023H。 上一页 返回 图 10 - 1 返回 图 10 - 2 返回 图 10 - 3 返回 表 10 - 1 返回 图 10 - 4 返回 表 10 - 2 返回 图 10 - 5 返回 $$

资源预览图

项目十 串行通信(课件)-《单片机技术应用》同步教学(北理版)-第1页
1
项目十 串行通信(课件)-《单片机技术应用》同步教学(北理版)-第2页
2
项目十 串行通信(课件)-《单片机技术应用》同步教学(北理版)-第3页
3
项目十 串行通信(课件)-《单片机技术应用》同步教学(北理版)-第4页
4
项目十 串行通信(课件)-《单片机技术应用》同步教学(北理版)-第5页
5
项目十 串行通信(课件)-《单片机技术应用》同步教学(北理版)-第6页
6

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。