第 8 章 单片机串行数据通信

23
武8武 武武武武武武武武武 8.1 串串串串串串串串 8 .2 MCS-51 串串串串串串串串串串串串串 8.3 MCS-51 串串串串串串串串串串串

description

第 8 章 单片机串行数据通信. 8.1 串行通信基础知识 8 .2 MCS-51 单片机的串行口及控制寄存器 8.3 MCS-51 单片机串行通信工作方式. 8.1.1 串行通信基本知识. 并行通信. 串行通信. 各位数据 同时 传送. 各位数据 逐位 传送. 传送速度 快. 传送速度 慢. 数据线数目同 传送数据位数. 1 根. 适用于短距离 (计算机内部). 适用于长距离 (计算机之间、计算机与外部设备). 双绞线、同轴电缆. 电路板、扁平带状电缆. - PowerPoint PPT Presentation

Transcript of 第 8 章 单片机串行数据通信

Page 1: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

院 第 8 章 单片机串行数据通信

8.1 串行通信基础知识

8.2 MCS-51单片机的串行口及控制寄存器

8.3 MCS-51单片机串行通信工作方式

Page 2: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

8.1.1 串行通信基本知识

并行通信 串行通信

各位数据同时传送 各位数据逐位传送

数据线数目同传送数据位数

1 根

传送速度快 传送速度慢

适用于短距离(计算机内部)

适用于长距离(计算机之间、计算机与外部设备)

电路板、扁平带状电缆 双绞线、同轴电缆

Page 3: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

串行通信是将数据的各位一位一位地依次传送,适合于计算机之间、计算机与外部设备之间的远距离通信。

串行通信的传送速率:每秒传送格式位的数目即波特率, 1 波特= 1bps (位 / 秒)

串行通信从传输方式分为:单工方式、半双工方式、全双工方式(如图 8-1 所示)。

从接收方式来说,串行通信有两种方式:异步通信方式(如图 8-2 所示)、同步通信方式(如图 8-3 所示)。

Page 4: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

图 8-1 串行通讯的数据通路形式

Page 5: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

图 8-2 异步串行通信数据格式

Mark : 逻辑“ 1” 状态 Space : 逻辑“ 0” 状态 ; 起始位:数据线处于 space 状态; 数据位:低位在前,高位在后,数据位可以是 5 ~ 8bit ; 奇偶位:奇偶位的值由发送方设置,接收方使用奇偶位检 查在传输过程中是否发生错误; 停止位:用以标志一个字符传送结束,处于 mark 状态,

位 数可以是 1 、 1.5 、 2 位。

Mark

Space

Page 6: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

同步字符 CRC 字符

开始 终止

数据块

图 8-3 同步通信数据格式

Page 7: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

异步串行通信信号形式

寄存器 串行接口TTL 电平

计算机 A

寄存器 串行接口TTL 电平

计算机 BRS-232 电平

图 8-4 近程串行通信

Page 8: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

公用电话交换网Modem Modem

RS-232C接口 RS-232C接口

DTE

DCE

IBM Compatible

A

IBM Compatible

B

DTE

DCE

图 8-5 通过电话网实现远程连接

Page 9: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

院 RS-232 是 PC 机与通信工业中应用最广泛的一种串

行接口。 RS-232 被定义为一种在低速率串行通讯中增加通讯距离的单端标准。 RS-232 采取不平衡传输方式,即所谓单端通讯,其传送距离最大约为15 米,最高速率为 20kb/s 。 RS-232 是为点对点(即只用一对收、发设备)通讯而设计的。

8.1.2 RS-232总线标准

123:

RS-232C 链路

发送 接收

地微机 终端

123:

图 8-6 简单的 RS-232C 数据通讯

Page 10: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

Page 11: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

引脚号 符号 名称 说明

1 PGND 保护地 为了安全和大地相连,有时可不接

2 TXD 发送数据 从DTE到 DCE的数据线

3 RXD 接收数据 从DCE到 DTE的数据线

4 RTS 请求发送 当DTE希望在数据线上传递数据时由 DTE发出,DCE通过所得到的控制信号决定是否响应

5 CTS 允许发送 允许计算机发送数据时,则由DCE发出

6 DSR 数字置位就绪 当数据线已被接好后由DCE发出

7 SGND 信号地 作为信号地的公共回路

8 DCD 数据载波检测 当DCE已经从数据线上接收到信号时发出此信号

20 DTR 数字终端就绪 当DTE 已准备好和调制解调器交换数据时,由 DTE发出,使用公共通信网时才需要

22 RI 振铃指示 当正在进行通信时,由 DCE 发出,使用公共通信网时才需要

表格 8-1 微机中常用的RS-232C接口信号

Page 12: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

8.2 MCS-51单片机的串行口及控制寄存器

1 ) UART :通用异步接收发送器。 包括发送器电路、接收器电路和控制电路; 功能包括数据的串行 / 反串行化、错误检验。

RS-232 总线

寄存器 串行接口 UART

并行数据

单片机 A

寄存器 串行接口 UART

并行数据

单片机 B

串行数据

Page 13: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

2 ) SBUF :串行口寄存器。( 99H ) 发送寄存器:从片内总线向发送寄存器 SBUF 写入

数据,串行数据通过引脚 TXD ( P3.1 )送出; 接收寄存器:从接收寄存器 SBUF 向片内总线读出

数据,串行数据通过引脚 RXD ( P3.0 )引入;

Page 14: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

3)串行控制寄存器 SCON 该寄存器的字节地址为 98H ,可位寻址。

SCON 格式如图 8-7 所示。

SCON

位地址

SM0 SM1 SM2 REN TB8 RB8 TI RI

9F 9E 9D 9C 9B 9A 99 98

图 8-7 SCON 格式

D7 D6 D5 D4 D3 D2 D1 D0

Page 15: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

4 )电源控制寄存器 PCON 其字节地址为 87H ,没有位寻址功能。 PCON

的格式如图 8-8 所示,其中与串行接口有关的只有 D7 位。

PCON

SMOD

             

D7 D6 D5 D4 D3 D2 D1 D0

图 8-8 PCON 格式

Page 16: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

图 8-9 IE 格式

D7 D6 D5 D4 D3 D2 D1 D0

5 )中断允许寄存器 IE IE 的格式如图 8-9 所示,与串行中断有关的是

EA 和 ES 。

位地址

位符号

0AFH 0ACH

EA ES

Page 17: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

院8.3 MCS-51单片机串行通信工作方式

SM0 SM1

0 0

0 1

1 0

1 1

工作方式 功能描述 波特率

方式 0 同步移位寄存器 fosc/12

方式 1 10 位 UARS 可变

方式 2 11 位 UARS fosc/32 或 fosc/64

方式 3 11 位 UARS 可变

Page 18: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

8.3.1 串行工作方式 1

方式 1 是 10 位异步串行通信方式,一帧数据包括 1 个起始位、 8 个数据位和 1 个停止位。

起始位

8 位数据位 停止位

D0 …… D7

起始位: space 状态(逻辑 0 );停止位: mark 状态(逻辑 1 )。

Page 19: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

波特率的计算(定时器 1 工作在方式 2 ) 波特率= 2smod× (定时器 1 溢出率) /32

定时器 1 溢出率= 1/ 定时器 1 定时时间 2smod×fosc

32×12× ( 256 - X )波特率=

X=256 -fosc×2smod

384× 波特率

Page 20: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

例 1 : 80C51 串行口在工作方式 1 下进行串行数据通信,波特率为 1200 ,发送数据存放在内部 RAM 从 34H开始的 10 个地址单元中,用定时器 1 作为波特率发生器,定时器 1 工作在方式 2 下,系统时钟频率为 6MHz 。

1 )设置定时器 1

TMOD=20H

X=0F3H 2 )设置串行口 smod = 0

PCON=00H

SCON=40H

Page 21: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

设置定时器 1

设置串行口

禁止串行中断

启动定时器 1

向 SBUF 发送数据

TI=0?

TI 清 0

R1=3DH?

停止定时器 1

指向下一个地址

查询方式: MOV TMOD,#20H // 设置定时器 1

MOV TL1,#0F3HMOV TH1,#0F3H

MOV PCON,#00H // 设置串行口MOV SCON,#40H

MOV R1,#34H // 数据区地址

CLR ES // 禁止串行中断

SETB TR1 // 启动定时器 1

SOUT1: MOV A,@R1 // 向 SBUF 发送数据 MOV SBUF,A

SOUT2: JNB TI,$ // 查询数据是否已发送

CLR TI //TI 清 0

CJNE R1,#3DH,AEND // 判断数据是否发送完

CLR TR1 // 停止定时器 1

AEND: INC,R1 // 指向下一个地址单元 AJMP SOUT1

Y

YN

N

Page 22: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

中断方式:主程序 MAIN :

设置定时器 1

设置串行口

允许串行中断

启动定时器 1

向 SBUF 发送数据

原地跳转

ORG 0000H

AJMP MAIN

ORG 0023H

AJMP SEND

ORG 8000HMOV TMOD,#20H // 设置定时器

1

MOV TL1,#0F3HMOV TH1,#0F3HMOV PCON,#00H // 设置串行口MOV SCON,#40HMOV R1,#34H // 数据区地址MOV A,@R1 // 向 SBUF 发送数

据MOV SBUF,ASETB EASETB ESSETB TR1AJMP $

MAIN:

Page 23: 第 8 章    单片机串行数据通信

武汉科技大学计算机学

院 TI 清 0

R1=3DH?

停止定时器 1

指向下一个地址

向 SBUF 发送数据

禁止串行中断YN

ORG 8100H

CLR TI

CJNE R1,#3DH,AEND

CLR ES

CLR TR1

INC R1

MOV A,@R1

MOV SBUF,A

RETI

SEND:

AEND:

中断返回

中断程序 SEND