《
This presentation is the property of its rightful owner.
Sponsored Links
1 / 43

《 单片机原理与应用 》 PowerPoint PPT Presentation


  • 110 Views
  • Uploaded on
  • Presentation posted in: General

《 单片机原理与应用 》. 第 9 章 单片机的串行通信. §9.1 串行通信基础知识. 一、计算机的数据传送方式 1 、 并行传送方式 :各数据位同时传送,传输线多,传送速度快,距离近。 2 、 串行传送方式 :数据逐位传送,只需 1 根传输线,传送速度慢,距离远。 分:异步串行通信方式 同步串行通信方式. §9.1 串行通信基础知识. 一、计算机的数据传送方式 二、异步串行通信的字符格式 1 、串行通信时信息的两种状态: mark :也称为“标号”状态,对应为“逻辑 1”

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


3856122

《单片机原理与应用》

第9章 单片机的串行通信


3856122

§9.1 串行通信基础知识

  • 一、计算机的数据传送方式

    1、并行传送方式:各数据位同时传送,传输线多,传送速度快,距离近。

    2、串行传送方式:数据逐位传送,只需1根传输线,传送速度慢,距离远。

    分:异步串行通信方式

    同步串行通信方式

[email protected]


3856122

§9.1 串行通信基础知识

一、计算机的数据传送方式

  • 二、异步串行通信的字符格式

    1、串行通信时信息的两种状态:

    mark:也称为“标号”状态,对应为“逻辑1”

    space:也称为“空格”状态,对应为“逻辑0”

    2、字符格式(帧格式)

[email protected]


3856122

二、异步串行通信的字符格式

2、字符格式(帧格式)

  • 起始位:space状态,占用一位,用来表示一个新字符的开始。

  • 数据位:5位、6位、7位或8位。各数据位传送顺序:低位在前,高位在后。

  • 奇偶校验位:偶校验、奇校验和无校验位。

[email protected]


3856122

二、异步串行通信的字符格式

2、字符格式(帧格式)

  • 奇偶校验位:偶校验、奇校验和无校验位。

    奇校验:使各数据位加校验位含有奇数个“1”的校验方式。例如,某异步串行通信含有8位数据位,采用奇校验方式,若传送十六进制数34H,则校验位应为“0”;

    偶校验:使各数据位加校验位含有偶数个“1”的校验方式。上例中若采用偶校验方式,传送十六进制数34H,则校验位应为“1”

[email protected]


3856122

二、异步串行通信的字符格式

2、字符格式(帧格式)

  • 起始位:space状态,占用一位,用来表示一个新字符的开始。

  • 数据位:5位、6位、7位或8位。各数据位传送顺序:低位在前,高位在后。

  • 奇偶校验位:偶校验、奇校验和无校验位。

  • 停止位:mark状态,可1位、1.5位或2位。

[email protected]


3856122

二、异步串行通信的字符格式

2、字符格式(帧格式)

  • 例1:某异步串行通信的字符格式为:1位起始位、8位数据位、2位停止位,并含有1位奇校验位(12位/帧),请画出传送字符“T”的ASCII码的帧格式。

    解:字符“T”的ASCII码为54H,即二进制数为01010100B,含有奇数个(3个)“1”,因此校验位应为“0”

[email protected]


3856122

§9.1 串行通信基础知识

  • 三、串行通信的数据通路形式

    1、单工: 数据传送方向为单向

    一端固定为发送,一端固定为接收。

[email protected]


3856122

§9.1 串行通信基础知识

三、串行通信的数据通路形式

1、单工:

  • 2、全双工:数据传送方向为双向,可同时接收和发送数据。

[email protected]


3856122

§9.1 串行通信基础知识

  • 四、串行通信的数据通路形式

    1、单工

    2、全双工

    3、半双工:数据传送方向为双向,但同一时刻只能 接收或发送数据。

[email protected]


3856122

注意:

  • MCS-51单片机的串行口是全双工的串行口,其帧格式为:1位起始位、8位数据为、1位(或无)校验位、1位停止位

[email protected]


3856122

§9.1 串行通信基础知识

  • 四、波特率:

    1、波特率:每秒钟传送二进制的位数。

    2、单位:位/秒(bps)或波特(baud)

    3、波特率决定了每位传送的时间

    例2:上例中串行异步传送的帧格式为12位/帧,若采用2400bps的波特率,则每秒能传送多少个字符?

[email protected]


3856122

§9.1 串行通信基础知识

  • 五、异步串行通信的标准—RS-232C标准

    RS:Recommended Standard

    是美国电子工业协会( EIA,Electronic IndustryAssociation)的推荐标准,第232号修改版C。

    1、电平特点:电平范围:-25V~+25V

    逻辑1:-3V~-25V

    逻辑0:+3V~+25V 采用负逻辑

    2、波特率:≤19200bps,即19.2kbps

    其中为:50、75、110、150、300、600、1200、

    2400、4800、9600、 19200bps

[email protected]


Rs 232c

五、异步串行通信的标准—RS-232C标准

3、RS-232C连接器及引脚定义:

  • 连接器:DB-25、DB-9

目前,大多数计算机使用DB-9连接器与外界进行串行通信, DB-9连接器引脚定义如下:

[email protected]


3856122

引脚

信号名称

简称

方向

信号功能

1

接收线路信号检测

DCD

DTE←

DCE已接收到远程信号

2

接收数据

RXD

DTE←

DTE接收串行数据

3

发送数据

TXD

→DCE

DTE发送串行数据

4

数据终端就绪

DTR

→DCE

DTE准备就绪

5

信号地

GND

信号地

6

数据传送设备就绪

DSR

DTE←

DCE准备就绪

7

请求发送

RTS

→DCE

DTE请求切换到发送方式

8

清除发送

CTS

DTE←

DCE已切换到准备接收(清楚发送)

9

振铃指示

RI

DTE←

通知DTE,通信线路已通

§9.1 串行通信基础知识

  • DB-9引脚定义:(P226: DB-25引脚定义)

[email protected]


3856122

§9.1 串行通信基础知识

3、RS-232C连接器及引脚定义

  • 连接器:

  • DB-9引脚定义

  • 串行通信的重要引脚:

    RXD:串行接收数据引脚

    TXD:串行发送数据引脚

    GND:信号地

[email protected]


3856122

§9.1 串行通信基础知识

  • 六、串行接口电路

    1、串行通信要解决的技术问题

  • 数据转换:串行数据与并行数据的相互转换

  • 数据传送:标准、格式等

    2、串行接口电路 :UART,通用异步接收发送器

    Universal Asynchronous Receiver and Transmitter

  • 如INTEL8250、8251芯片就是一种串行接口电路

  • MCS-51的串行接口电路集成在芯片内部

[email protected]


9 2 mcs 51

§9.2 MCS-51的串行口及控制寄存器

  • 一、51串行口的UART结构

    1、串行口的结构

  • 具有两个串行口缓冲寄存器

    接收SBUF:

    发送SBUF:

    共用一个地址99H

  • 接收部分采用两级缓冲

    移位寄存器:串 并

    接收SBUF:暂存接收到的数据

[email protected]


51 uart

一、51串行口的UART结构

  • 2、发送接收过程

  • 发送过程:

    由指令:MOV SBUF,A 启动发送,UART根据工作方式自动插入格式信息,位串由TXD引脚发出,发送完毕TI置1。

  • 接收过程:当测试到RXD引脚由高变低时,移位寄存器开始接收数据,根据工作方式,自动滤除格式信息,接收完数据RI置1,并将接收到的数据转换为并行数据保存到接收SBUF中。

[email protected]


9 2 mcs 511

§9.2 MCS-51的串行口及控制寄存器

  • 二、51串行口的控制

    1、SCON

  • SM0SM1:串行口工作方式控制,00~11:方式0~3

  • SM2:多机通信控制位

  • REN:接收允许控制位,REN=1,允许

  • TB8/RB8:在方式2、3时,发送/接收的第9位数据

  • TI/RI:发送/接收标志,在发送/接收完一帧数据后。硬件置为1,必须软件清除。

    例:MOV SCON,#50H

    表示串行口工作于方式1,允许接收方式。

[email protected]


9 2 mcs 512

§9.2 MCS-51的串行口及控制寄存器

  • 二、51串行口的控制

    2、PCON

  • 回忆GF1、GF0和PD、IDL位的控制意义

  • SMOD:波特率倍增位,SMOD=1,波特率倍增

[email protected]


9 2 mcs 513

§9.2 MCS-51的串行口及控制寄存器

  • 二、51串行口的控制

    3、IE

    4、IP

  • 回忆各位的控制意义

[email protected]


9 2 mcs 514

§9.2 MCS-51的串行口及控制寄存器

  • 二、51串行口的控制

    例:读下面程序,说明控制功能

    MOV SCON,#50H

    MOV IP,#10H

    MOV IE,#90H

    LOOP:JNB TI,LOOP

    CLR TI

    MOV A,#54H

    MOV SBUF,A

    LJMP LOOP

[email protected]


9 3 mcs 51

§9.3 MCS-51串行通信工作方式及应用

  • 一、串行工作方式0—8位同步移位寄存器方式

    1、设置方法:SCON中的SM0SM1=00

    2、特点:

  • RXD脚接收或发送数据

    TXD脚送出同步移位脉冲

  • 帧格式:

    。。。D7、D0、D1、D2、D3、D4、D5、D6、D7、D0。。。

  • 波特率:固定为fosc/12

    3、应用:串口转换为并口

    与串入并出(或并入串出)移位寄存器连接

[email protected]


3856122

一、串行工作方式0—8位同步移位寄存器方式

  • 3、应用:串口转换为并口

    (1)与并入串出移位寄存器CD4014连接使用,将8位并行输入转换为串行输入。

    (2)与串入并出移位寄存器CD4094连接使用,将串行的输出转换为并行的输出。

[email protected]


2 cd4094

(2)与串入并出移位寄存器CD4094连接使用

  • CD4094介绍

  • DATA:串行数据输入端。

  • CLK:移位时钟。

  • Q0~Q7:并行数据输出端,其中Q7输出第1个由DATA引脚输入的串行数据D0,Q0出第8个由DATA引脚输入的串行数据D7。

  • STB:锁存控制,STB=1,锁存器通。

  • OE:三态缓冲控制。OE=1,三态门通。

  • Qs:级连输出。CLK上升沿输出q7数据

  • Qs′:级连输出。CLK下降沿输出q7数据

[email protected]


2 cd40941

(2)与串入并出移位寄存器CD4094连接使用

  • 应用举例:如图,使用8051串行口控制CD4094点亮8支发光二极管,试将8支发光二极管从左到右循环点亮。

  • 分析:点亮左1发光管,Q0~Q7呈1000’0000,串行口送出80H

    点亮左2发光管,Q0~Q7呈0100’0000,串行口送出40H

    点亮左3发光管,Q0~Q7呈0010’0000,串行口送出20H

    。。。。。。

    点亮左8发光管,Q0~Q7呈0000’0001,串行口送出01H

[email protected]


2 cd40942

设置串行口工作方式

不允许中断

A #80H

STB 0

SBUF A

发送完?

N

Y

取下数据

清TI

延 时

STB 1

(2)与串入并出移位寄存器CD4094连接使用

  • 程序如下:

    MOV SCON,#00HCLR ESMOV A,#80H

    LOOP:CLR P1.0

    MOV SBUF,A

    JNB TI,$CLR TISETB P1.0ACALL DELAYRR ALJMP LOOP

[email protected]


2 cd40943

(2)与串入并出移位寄存器CD4094连接使用

  • 程序如下:

    MOV SCON,#00HCLR ESMOV A,#80H

    LOOP:CLR P1.0 ;1

    MOV SBUF,A ;1 JNB TI,$ ;2 CLR TI ;1SETB P1.0 ;1 ACALL DELAY ;2RR A ;1LJMP LOOP ;2

  • 若fosc=12MHz,每LOOP需9个机器周期,即9μS。

  • 每幅72 μS,即每秒可扫描14000幅

[email protected]


9 3 mcs 511

§9.3 MCS-51串行通信工作方式及应用

  • 二、串行工作方式1—10位异步串行通信方式

    1、设置方法:SCON中的SM0SM1=01

    2、特点:

  • RXD(P3.0)引脚接收数据

    TXD(P3.1)引脚发送数据

  • 帧格式:

    起始位、D0、D1、D2、D3、D4、D5、D6、D7、停止位

  • 波特率:

[email protected]


9 3 mcs 512

§9.3 MCS-51串行通信工作方式及应用

二、串行工作方式1

  • 波特率:T1工作于方式2提供波特率

  • 设T1工作于方式2,初值为X

  • T1溢出周期=(256-X)机器周期

    =(256-X)·12/fosc

  • T1溢出率=fosc/[(256-X)·12]

  • 波特率为

例:51单片机以方式1进行串行数据通信,波特率为1200bps。

若晶体振荡频率fosc为6MHz,试确定定时器/计数器1的计数初值。

[email protected]


3856122

计算得:约F3H

要想提供精确的波特率,常使用11.0592MHz频率的晶体振荡器,提供出1200bps、2400bps、4800bps、9600bps等多种常用串行通信波特率

程序:

MOVSCON,#50H

MOVPCON,#00H

MOVTMOD,#20H

MOVTH1,#0F3H

MOVTL1,#0F3H

SETBTR1

MOVIE,#00H

MOVIP,#00H

波特率计算

[email protected]


3856122

二、串行工作方式1

1、设置方法

2、特点

  • 3、应用举例:

    例: 假定甲乙两单片机使用晶体振荡器频率为6MHz,以方式1进行串行数据通信,通信波特率为1200bps。甲机发送数据,先发数据区首末地址,再发数据区数据。甲机要发送的数据存放于内部RAM的40H~4FH单元中;乙机接收,并把接收到的数据块首末地址及其数据存放于外RAM5000H开始的单元中。试编写甲乙两机的串行通信程序

[email protected]


3856122

编程步骤

(1)计算T1计数初值,设置1200波特率:

(2)甲乙两机SCON的设置

(3)初始化程序

(4)串行发送接收程序

[email protected]


3856122

(3)初始化程序

甲机:

MOV SCON,#40H

MOV PCON,#00H

MOV TMOD,#20H

MOV TH1,#0F3H

MOV TL1,#0F3H

MOV IE,#00H

(MOV IP,#00H)

SETB TR1

乙机:

MOV SCON,#50H

MOV PCON,#00H

MOV TMOD,#20H

MOV TH1,#0F3H

MOV TL1,#0F3H

MOV IE,#00H

(MOV IP,#00H)

SETB TR1

[email protected]


3856122

MOV SBUF,#40H

JNB TI,$

CLR TI

SETB ES

MOV SBUF,#1FH

MOV DPTR,#4000H

MOV R7,#20H

SJMP $

ACINT:MOVX A,@DPTR

CLR TI

MOV SBUF ,A

DJNZ R7,AEND

CLR ES

CLR TR1

AEND:INC DPTR

RETI

(3)甲机发送程序

甲机发送:

MOV SCON,#40H

MOV PCON,#00H

MOV TMOD,#20H

MOV TH1,#0F3H

MOV TL1,#0F3H

SETB EA

CLR ES

SETB TR1

MOV SBUF,#40H

JNB TI,$

CLR TI

MOV SBUF,#00H

JNB TI,$

CLR TI

[email protected]


3856122

INC DPTR

JNB RI,$

CLR RI

MOV A, SBUF

MOVX @DPTR,A

INC DPTR

JNB RI,$

CLR RI

MOV A, SBUF

MOVX @DPTR,A

INC DPTR

SETB ES

SJMP $

BCINT:MOV A , SBUF

MOVX @DPTR ,A

CLR RI

DJNZ R7,AEND

CLR ES

CLR TR1

BEND:INC DPTR

RETI

(3)乙机接收程序

MOV SCON,#50H

MOV PCON,#00H

MOV TMOD,#20H

MOV TH1,#0F3H

MOV TL1,#0F3H

SETB EA

CLR ES

SETB TR1

MOV DPTR,#5000H

MOV R7,#20H

JNB RI,$

CLR RI

MOV A, SBUF

MOVX @DPTR,A

INC DPTR

JNB RI,$

CLR RI

MOV A, SBUF

MOVX @DPTR,A

[email protected]


9 3 mcs 513

§9.3 MCS-51串行通信工作方式及应用

  • 二、串行工作方式2—11位异步串行通信方式

    1、设置方法:SCON中的SM0SM1=10

    2、特点:

  • RXD(P3.0)引脚接收数据

    TXD(P3.1)引脚发送数据

  • 帧格式:

    起始位、D0、D1、D2、D3、D4、D5、D6、D7、D8、停止位

  • 波特率:

[email protected]


9 3 mcs 514

§9.3 MCS-51串行通信工作方式及应用

  • 二、串行工作方式2—11位异步串行通信方式

    1、设置方法:

    2、特点:

  • 起始位、D0、D1、D2、D3、D4、D5、D6、D7、D8、停止位

    3、发送指令:

  • 先准备D8, 如CLR TB8(或 SETB TB8)

  • 再发送D0~D7, 如MOV SBUF,A

    例:奇校验位为0,发送字符“T”的ASCII码(#54H)的指令:

    CLR TB8

    MOV SBUF,#54H

[email protected]


9 3 mcs 515

§9.3 MCS-51串行通信工作方式及应用

  • 二、串行工作方式2—11位异步串行通信方式

    3、发送指令:

  • 先准备D8, 如CLR TB8(或 SETB TB8)

  • 再发送D0~D7, 如MOV SBUF,A

    4、接收指令:

  • 接收D8 如MOV C,RB8

  • 接收D0~D7, 如MOV A ,SBUF

[email protected]


9 3 mcs 516

§9.3 MCS-51串行通信工作方式及应用

  • 二、串行工作方式3—11位异步串行通信方式

    1、设置方法:SCON中的SM0SM1=11

    2、特点:

  • RXD(P3.0)引脚接收数据

    TXD(P3.1)引脚发送数据

  • 帧格式:

    起始位、D0、D1、D2、D3、D4、D5、D6、D7、D8、停止位

  • 波特率:

[email protected]


3856122

串行口实验

一、实验目的:

  • 掌握双机通信的硬件连接

  • 掌握双机通信的工作过程

  • 会用查询和中断方式实现双机通信时的软件设计

    二、实验内容

    甲乙两单片机使用晶体振荡器频率为6MHz,以方式1进行串行数据通信,通信波特率为1200bps。甲机发送数据,先发数据区首末地址,再发数据区数据。甲机要发送的数据存放于内部RAM的40H~4FH单元中;乙机接收,并把接收到的数据块首末地址及其数据存放于外RAM5000H开始的单元中。试完成甲乙两机的串行通信。

[email protected]


3856122

串行口实验

一、实验目的:

二、实验内容

三、实验步骤:

1、将两台单片机实验箱连接成双机通信系统。

2、在甲机内部RAM的40H~4FH地址传送一批要发送的数据;检查并记录乙机外RAM5000H开始的16个地址的初始数据。

3、编程并调试将甲机内部RAM的40H~4FH地址的数据发送出去;乙机接收串行数据并保存在外RAM5000H开始的16个地址中。

4、记录数据,验证程序的正确性。

[email protected]


  • Login