9.2 at89c51 的串行接口

22
第9第 第第第第第第第第第第第 9.2 AT89C51 第第第第第 9.2.1 串串串串串串串串串串 AT89C51 串串串串串串串串串串 9-8 串串 串串串串串串串 ,、 串串串串串串串串串串串串串

Upload: graham-mcneil

Post on 09-Mar-2016

158 views

Category:

Documents


11 download

DESCRIPTION

9.2 AT89C51 的串行接口. 9.2.1 串行接口的结构及功能 AT89C51 串行口的结构框图如图 9-8 所示,主要由发送器、接收器和串行控制寄存器组成。. 图 9-8 AT89C51 串行口结构框图. 1 .发送器和接收器 发送器主要由发送缓冲寄存器 SBUF 和发送控制器组成。 接收器主要由接收缓冲寄存器 SBUF ,接收移位寄存器和接收控制器组成。. 2 .串行口控制寄存器 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术

9.2 AT89C51 的串行接口 9.2.1 串行接口的结构及功能 AT89C51 串行口的结构框图如图 9-8 所示,主要由

发送器、接收器和串行控制寄存器组成。

Page 2: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术

Ãŵç·

·¢ËÍ¿ØÖÆÆ÷

¡Ý1

½ÓÊÕ¿ØÖÆÆ÷

ÊäÈëÒÆλ¼Ä´æÆ÷

·¢ËÍSBUF(99H)

½ÓÊÕSBUF(99H)

ͬ²½Ê±ÖÓ

´®ÐпڿØÖƼĴæÆ÷

(98H)

ÄÚ²¿×ÜÏß

´®ÐпÚÖжÏTI

RI

TXD(P3.1)

RXD(P3.0)

图 9-8 AT89C51 串行口结构框图

Page 3: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术

1 .发送器和接收器 发送器主要由发送缓冲寄存器 SBUF 和发送控制器

组成。 接收器主要由接收缓冲寄存器 SBUF ,接收移位

寄存器和接收控制器组成。

Page 4: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术

2 .串行口控制寄存器 串行口控制寄存器 SCON 用于设置串行口的工作方

式、监视串行口工作状态、发送与接收的状态控制等。它是一个既可字节寻址又可位寻址的特殊功能寄存器。其格式如图 9-9 所示。

Page 5: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术

SCON

λµØÖ·

SM0 SM1 SM2 REN TB8 RB8 TI RI

9FH 9EH 9DH 9CH 9BH 9AH 99H 98H

图 9-9 控制寄存器 SCON 的格式

Page 6: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术

SCON 寄存器各位的功能如下: (1)  SM0 、 SM1 :串行口工作方式选择位,可构成

四种工作方式,如表 9-1 所示。 (2)  SM2 :在方式 2 和方式 3 中多机通信的控制位。 (3)  REN :串行接收允许位。 (4)  TB8 :在方式 2 或方式 3 中,是将要发送的第九

位数据,由软件置位或清零,它可作为数据奇偶校验位,也可在多机通信中作为地址帧或数据帧的标志位使用。

Page 7: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术 表 9-1 串行口工作方式选择

SM0 SM1 工作方式 功  能 波特率0 00 11 01 1

方式 0方式 1方式 2方式 3

同步移位寄存器10 位异步收发11 位异步收发11 位异步收发

fosc/12可变fosc/64 或 fosc/

32 可变

Page 8: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术

(5)  RB8 :在方式 2 或方式 3 中,是已接收到的第九位数据,可作为奇偶校验位。

(6)  TI :发送中断标志位。 (7)  RI :接收中断标志位,方式 0 中,在接收完第

八位数据时由硬件置位。 电源控制寄存器 PCON 中的第八位也与串行口有

关,如图 9-10 所示。 (8)  SMOD :为波特率选择位。

Page 9: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术

PCON

λµØÖ·

SMOD ¡ª ¡ª ¡ª GF1 GF0 PD IDL

8EH 8DH 8CH 8BH 8AH 89H 88H 87H

图 9-10 电源控制寄存器 PCON 的格式

Page 10: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术 9.2.2 串行通信的工作方式 1 .工作方式 0

在方式 0 下,串行口是作为同步移位寄存器使用的。其波特率固定为单片机振荡频率 (fosc) 的 1/12 ,串行传送数据 8 位为一帧 ( 没有起始、停止、奇偶校验位 ) 。由 RXD(P3.0) 端输出或输入,低位在前,高位在后。TXD(P3.1) 端输出同步移位脉冲,可以作为外部扩展的移位寄存器的移位时钟,因而串行口方式 0 常用于扩展外部并行 I/O 口。

串行发送时,外部可扩展一片 ( 或几片 ) 串入并出的移位寄存器,如图 9-11 所示。

Page 11: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术

图 9-11 方式 0 扩展并行输出口

Page 12: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术

串行接收时,外部可扩展一片 ( 或几片 ) 并入串出的移位寄存器,如图 9-12 所示。当由软件使 REN 置为 1 , RI=0 时,即启动串行口以方式 0 接收数据。

Page 13: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术

图 9-12 方式 0 扩展并行输入口

Page 14: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术 2 .工作方式 1

在方式 1 下,串行口工作在 10 位异步通信方式,发送或接收一帧信息中,除 8 位数据移位外,还包含一个起始位 (0) 和一个停止位 (1) ,其波特率是可变的。

工作方式 1 的波特率是可变的,由定时器 T1 的计数溢出率决定。相应的公式为

波特率 = × 定时器 T1 溢出率32

2SMOD

Page 15: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术 定时器 T1 的计数溢出率计算公式为

定时器 T1 溢出率 = 值 初 1T21

12fosc

K

式中, K 为定时器 T1 的位数,与定时器 T1 的工作方式有关 ( 见第 5 章介绍 ) ,则波特率计算公式为

波特率 = 值 初 1T2

112

fosc32

2K

SMOD

Page 16: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术

3 .工作方式 2

在方式 2 下,串行口工作在 11 位异步通信方式。一帧信息包含一个起始位“ 0” ,八个数据位,一个可编程第九数据位和一个停止位“ 1” 。其中可编程位是 SCON 中的 TB8 位,在八个数据位之后,可作奇偶校验位或地址 / 数据帧的标志位使用,由使用者确定。方式2 的波特率是固定的。

Page 17: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术 4 .工作方式 3

在方式 3 下,串行口同样工作在 11 位异步通信方式,其通信过程与方式 2 完全相同,所不同的是波特率,方式 3 的波特率由定时器 T1 的计数溢出率决定,确定方法与工作方式 1 中的完全一样。

Page 18: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术 表 9-2 常用波特率及误差

晶振频率 /MHz 波特率 /Hz SMOD TH1 包装初值 实际波特率 误差12.00 9600 1 F9H 8923 7 %12.00 4800 0 F9H 4460 7 %12.00 2400 0 F3H 2404 0.16 %12.00 1200 0 E6H 1202 0.16 %

11.0592 19 200 1 FDH 19 200 0

11.0592 9600 0 FDH 9600 0

11.0592 4800 0 EAH 4800 0

11.0592 2400 0 F4H 2400 0

11.0592 1200 0 E8H 1200 0

Page 19: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术

9.2.3 多机通信 AT89C51 单片机串行口工作在方式 2 或方式 3 时,

可实现多机通信功能,即一台主机和多台从机之间通信,如图 9-13 所示。

当主机向从机发送信息时,主机首先发送一个地址帧,此帧数据的第九数据位 TB8 应设置为“ 1” ,以表示是地址帧, 8 位数据位是某台从机的地址。

Page 20: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术

TXD

RXD

89C51Ö÷»ú

TXD RXD

89C2051´Ó»ú1

TXD RXD

89C2051´Ó»ú2

TXD RXD

89C2051´Ó»ú3

图 9-13 多机通信连接图

Page 21: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术

这种通信只能在主从机之间进行,从机之间的通信需经主机作中介才能实现。经过上面分析,多机通信的过程可总结如下:

(1) 主、从机均初始化为方式 2 或方式 3 ,且置 SM2=1 , REN=1 ,串行开中断。

(2) 主机置位 TB8=1 ,向从机发送寻址地址帧,各从机因满足接收条件 (SM2=1 , RB8=1) ,从而接收到主机发来的地址,并与本机地址比较。

Page 22: 9.2  AT89C51 的串行接口

第 9章 串行接口及串行通信技术 (3) 地址一致的从机将 SM2 清零,并向主机返回地

址,供主机核对,不一致的从机恢复初始状态。 (4) 主机核对返回的地址,若与刚才发出的地址一致

则准备发送数据,若不一致则返回 (1) 重新开始。 (5) 主机向从机发送数据,此时主机 TB8=0 ,只有

被选中的那台从机能接收到该数据,其他从机则舍弃该数据。

(6) 本次通信结束后,主从机重新置 SM2=1 ,又可进行新一次的通信。