第七章 mcs-51 串行口

34
1 第第第 MCS-51 第第第 7 7 .1 .1 第第第第第 第第第第第 1 7 7 .2 .2 第第第第第第第 第第第第第第第 2

Upload: zinna

Post on 04-Jan-2016

120 views

Category:

Documents


8 download

DESCRIPTION

第七章 MCS-51 串行口. 7 .1 串行口结构. 1. 7 .2 串行口工作方式. 2. § 7 .1 串行口结构. 学习内容. 1. 2. 串行通信基本概念. 串行口 结构. 一、基本概念. 通信的两种基本方式 串行通信的分类 波特率的概念 串行通信的制式. 1 、通信的两种基本方式. 通信: 是计算机与外界的 信息交换 。 两种基本方式 并行通信: 所传送数据的各位 同时 发送或接收,信息传输线的位数与数据的位数相等。 串行通信: 所传送数据的各位按顺序 一位一位 地发送或接收, 先 传送 低 位 后 送 高 位。. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第七章  MCS-51 串行口

1

第七章 MCS-51 串行口

77.1.1 串行口结构串行口结构1

77.2.2 串行口工作方式串行口工作方式2

Page 2: 第七章  MCS-51 串行口

2

§7.1 串行口结构

2

学习内容

串行口结构

1

串行通信基本概念

Page 3: 第七章  MCS-51 串行口

3

通信的两种基本方式 串行通信的分类 波特率的概念 串行通信的制式

一、基本概念

Page 4: 第七章  MCS-51 串行口

4

通信:是计算机与外界的信息交换信息交换。 两种基本方式

并行通信:并行通信:所传送数据的各位同时同时发送或接收,信息传输线的位数与数据的位数相等。

串行通信:串行通信:所传送数据的各位按顺序一位一位一位一位地发送或接收,先先传送低低位后后送高高位。

1、通信的两种基本方式

Page 5: 第七章  MCS-51 串行口

5

速度快,适合近距离传输;但占用数据线多,线路复杂,成本高。

线路简单,成本低,适合远距离通信;但传输速度慢。

Page 6: 第七章  MCS-51 串行口

6

按照串行数据的时钟控制方式,串行通信可分为: 异步通信 同步通信

① 异步通信: 接收器和发射器有各自的时钟各自的时钟,它们的工作非同步; 异步通信用一帧一帧来表示一个字符。

2、串行通信的分类

Page 7: 第七章  MCS-51 串行口

7

…P 1 D0 D1 D2 D3 D4 D5 D6 D7 P 10

第 n个字符(一帧)n-1 n+1

0 D0…

起始位

数据位( 5 ~ 8位)

校验位

停止位

一帧信息包括起始位、数据位、奇偶校验位和停止起始位、数据位、奇偶校验位和停止位位四部分。

Page 8: 第七章  MCS-51 串行口

8

② 同步通信: 接收器和发射器由同一时钟同一时钟源控制 ;

同步传输方式去掉了异步传输的起始位和停止位,只在传输数据块时先送出一个同步标志同步标志即可。

比较: 同步传输方式比异步传输方式速度快速度快; 同步传输方式必须用一个时钟来协调收发器的工作,

所以它的硬件设备复杂硬件设备复杂。

Page 9: 第七章  MCS-51 串行口

9

波特率:每秒钟每秒钟所传送传送的二进制数码的位数位数。 单位:位 / 秒( bpsbps ) 波特率反映了串行通信的速率速率。 在异步串行通信中,波特率为每秒传送的字符数和波特率为每秒传送的字符数和

每个字符的位数的乘积每个字符的位数的乘积。

3、波特率的概念

Page 10: 第七章  MCS-51 串行口

10

[ 例 7-1]: 数据传送的速率为 120 字符 / 秒,而每个字符又

包含 10 位二进制数,计算波特率大小和每位传送时间。解: 波特率 =120 字符 / 秒 ×10 位 / 字符 =1200 位 / 秒 =1200bps 。 每一位的传送时间为波特率的倒数: T=1/1200 = 0.833ms 。

3、波特率的概念

Page 11: 第七章  MCS-51 串行口

11

在串行通信中,根据数据在两个站点之间的传送方向方向可以分三种制式三种制式:

单工单工 半双工半双工 全双工全双工

4、串行通信的制式

Page 12: 第七章  MCS-51 串行口

12

① 单工制式

② 半双工制式 数据可以双向传送,但不能同时发送和接收,要通过换向器转换方向。

Page 13: 第七章  MCS-51 串行口

13

③ 全双工制式

通信双方用两个独立的收发器单独连接,可以同时发送和接收数据,因而提高了速度。

Page 14: 第七章  MCS-51 串行口

14

二、串行口结构

11 、、 MSC-51MSC-51 串行口特点:串行口特点:功能很强的全双工串行口全双工串行口,可同时接收接收和发送发送数据;接收、发送数据均可工作在查询查询方式或中断中断方式;能方便地与其他计算机或外设实现双机、多机双机、多机通信。

Page 15: 第七章  MCS-51 串行口

15

Page 16: 第七章  MCS-51 串行口

16

22 、串行口数据缓冲器、串行口数据缓冲器 SBUFSBUF

SBUF 是两个物理上独立的接收、发送寄存器。接收接收 SBUFSBUF

用于存放接收到的数据,只能读出、不能写入。发送发送 SBUFSBUF

用于存放欲发送的数据,只能写入,不能读出。

Page 17: 第七章  MCS-51 串行口

17

注意:注意: 串行口可同时发送和接收数据,两个缓冲器公用一个地址 99H99H ,通过对 SBUF 的读读 // 写指令写指令来区别: CPU 读读 SBUFSBUF 时: MOV A, SBUF MOV A, SBUF ; 就是读取接收 SBUF 的内容; CPU 写写 SBUFSBUF 时: MOV SBUF, AMOV SBUF, A ; 就是修改发送 SBUF 的内容,同时启动数据串行发送。

Page 18: 第七章  MCS-51 串行口

18

33 、串行口的控制寄存器、串行口的控制寄存器 MCS-51 串行口是一个可编程接口,涉及两个特殊功能寄存器: 串行口控制寄存器 SCON

电源控制寄存器 PCON

Page 19: 第七章  MCS-51 串行口

19

①SCON ( 98H ,可位寻址) 功能:串行通信的方式选择 ,接受和发送控制及

串行口的中断标志; 格式 :

SM0 SM1 SM2 REN TB8 RB8 TI RI

方式选择 多机控制

串行接收允许 / 禁止

欲发的第九位

收到的第九位

发送中断标志

接收中断标志

Page 20: 第七章  MCS-51 串行口

20

SM0SM0 SM1SM1 工作方式工作方式 功能说明功能说明 波特率波特率

00 00 方式方式 00 同步移位寄存器同步移位寄存器 ffoscosc/12/12

00 11 方式方式 11 88 位位 UARTUART 可变可变

11 00 方式方式 22 99 位位 UARTUART ffoscosc/64/64 或或 ffoscosc/32/32

11 11 方式方式 33 99 位位 UARTUART 可变可变

SM0SM0 、、 SM1:SM1: 串行口工作方式控制位。串行口工作方式控制位。

SM2:SM2: 多机通信控制位。用于方式多机通信控制位。用于方式 22 或方式或方式 33 中。中。

Page 21: 第七章  MCS-51 串行口

21

REN :串行接收允许位。 00--- 禁止禁止接收, 11--- 允许允许接收TB8: 发送数据 D8 位,一般作为奇偶校验位。 在方式 2 、 3 中,可以在多机通信中作为区分地址帧或数据帧的标志位, 11 为地址,为地址, 00 为数据为数据。RB8: 接收数据 D8 位,一般作为奇偶校验位。 在方式 2 、 3 中,多机通信中还可根据 RB8 位的状态对接收数据进行某种控制。

Page 22: 第七章  MCS-51 串行口

22

TI: 发送中断标志位发送中断标志位。 发送前必须用软件清零软件清零,发送过程中 TI保持零 电平; 发送完一帧数据后,由硬件自动置 “ 1” 。

RI: 接收中断标志位接收中断标志位。 接收前必须用软件清零软件清零,接收过程中 RI保持零 电平; 接收完一帧数据后由片内硬件自动置“ 1” 。

Page 23: 第七章  MCS-51 串行口

23

SMOD X X X X X X X

②PCON ( 97H ,不可位寻址)

SMOD : 波特率加倍位波特率加倍位。在计算串行方式 1 、 2 、 3 的波特率时, SMOD = 0—— 波特率不增倍 ;

SMOD = 1—— 波特率增大一倍。

Page 24: 第七章  MCS-51 串行口

24

§7.2 串行口工作方式

2

学习内容

波特率计算

1

工作方式

Page 25: 第七章  MCS-51 串行口

25

MCS-51 单片机的串行通信有四种工作方式 :

1 、工作方式 0 :移位寄存器方式 SM0SM0 、、 SM1=00SM1=00 ,同步通信,同步通信 ;;

数据格式为 88 位位,低位在前,高位在后 ;

RXD 为串行数据的发送端或接收端 ;

TXD 输出同步脉冲 ;

每一个机器周期每一个机器周期从 RXD 上发送或接收一位数据,波特率固定波特率固定。

一、串行口工作方式

Page 26: 第七章  MCS-51 串行口

26

应用:移位寄位器方式多用于接口的扩展。

ABCP 74LS164

Q0 Q7

RXD

TXD

8051

RXD

TXD

8051

Q7

CP 74LS165

D0 D7

输出方式 输入方式

通过外接串入并出移位寄存器扩展输出接口。

通过外接并入串出移位寄存器扩展输入接口。

Page 27: 第七章  MCS-51 串行口

27

22 、工作方式、工作方式 11 :: 88 位异步通信接口方式位异步通信接口方式 SM0SM0 、、 SM1=01SM1=01 ;; RXD 为接收端, TXD 为发送端; 每帧数据由 1010 位位构成: 1 个起始位 “ 0” , 8 个数据位和 1 个停止位“ 1” ;其中起始位和停止位在发送时是自动插入的;

波特率可变,由 T1 的溢出率和 SMOD决定。

Page 28: 第七章  MCS-51 串行口

28

33 、工作方式、工作方式 2/32/3 :: 99 位异步通信接口方式位异步通信接口方式 SM0 、 SM1=10/11 ; RXD 为接收端, TXD 为发送端; 每帧数据由 1111 位位构成: 1 个起始位 “ 0” , 9 个数据位和 1 个停止位“ 1” ;其中起始位和停止位在发送时是自动插入的;

方式 2 的波特率固定,方式 3 的波特率可变。

Page 29: 第七章  MCS-51 串行口

29

波特率发生器可以有两种两种选择: 定时器 T1 作波特率发生器,改变计数初值就可以改变串行通信的速率,称为可变波特率可变波特率; 以内部时钟的分频器作波特率发生器,因内部时钟频率一定,称为固定波特率固定波特率。

二、波特率计算

Page 30: 第七章  MCS-51 串行口

30

1 、方式 0 和方式 2 :波特率固定方式 0 中,波特率为: fosc/12 ;方式 2 中,波特率为: 注意:

当 SMOD=0 时,波特率是 fosc/64 ;当 SMOD=1 时,波特率是 fosc/32 。

osc

SMOD

f64

2

二、波特率计算

Page 31: 第七章  MCS-51 串行口

31

2 、方式 1 和方式 3 :波特率可变

注意:T1 的溢出率为每秒溢出的次数每秒溢出的次数,取决于 T1 的计数速率和设置的初值。实际应用中, T1 作为波特率发生器时,常用方式2 ,即自动重载的 8 位定时器。 TL1做计数用, TH

1做初值寄存器。

)256(1232

21

32

2

x

fT osc

SMODSMOD

溢出率=波特率=

Page 32: 第七章  MCS-51 串行口

32

设初值为 x则每过 (28-x) 个机器周期,定时器溢出一次。 溢出周期为: (2(288-x)Tcy=(256-x) ×12/fosc-x)Tcy=(256-x) ×12/fosc

溢出率是溢出周期的倒数 :

T1T1 溢出率溢出率 =fosc/(12 × (256-x) )=fosc/(12 × (256-x) )

根据给定的波特率,可以计算 T1 的计数初值 x 。

波特率=

1232

2256 osc

SMOD fx

Page 33: 第七章  MCS-51 串行口

33

波特率波特率(( 方式方式 11 、、

3)3)

ffoscosc=6M=6M ffoscosc=12M =12M ffoscosc = 11.059M = 11.059M

SMODSMOD TT11 方式方式 初值初值 SMODSMOD TT11 方式方式 初值初值 SMODSMOD TT11 方式方式 初值初值62.5k62.5k

        11 22 FFHFFH

        

19.2k19.2k                 

11 22 FDHFDH

9.6k9.6k                 

00 22 FDHFDH

4.8k4.8k        

11 22 F3HF3H 00 22 FAHFAH

2.4k2.4k 11 22 F3HF3H 11 22 F3HF3H 00 22 F4HF4H

1.2k1.2k 11 22 E6HE6H 00 22 E6HE6H 00 22 E8HE8H

600600 11 22 CCHCCH 00 22 CCHCCH 00 22 D0HD0H

300300 00 22 CCHCCH 00 22 98H98H 00 22 A0HA0H

137. 5137. 5 11 22 1DH1DH 00 22 1DH1DH 00 22 2EH2EH

110110 00 22 72H72H 00 11 FEEBHFEEBH 00 11 FEFFHFEFFH

常用波特率一览表常用波特率一览表

Page 34: 第七章  MCS-51 串行口

34

[ 例 7-2]: 设 51 单片机串行口工作于方式 1 ,晶振频率为12MHz ,定时器 T1 工作于模式 2 作为波特率发生器,要求波特率为 1200bit/s , SMOD=0 ,试计算 T1 的初值和波特率误差。答案:T1初值:x=256- 2SMOD×fosc/(32×12× 波特率 )=256- 26.04

=230=E6H

实际波特率 = 2SMOD×fosc/(32×12×(256- 230))

=1201.9b/s=1202bps

误差: 2bps