1 / 43

《 单片机原理与应用 》

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

sailor
Télécharger la présentation

《 单片机原理与应用 》

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 《单片机原理与应用》 第9章 单片机的串行通信

  2. §9.1 串行通信基础知识 • 一、计算机的数据传送方式 1、并行传送方式:各数据位同时传送,传输线多,传送速度快,距离近。 2、串行传送方式:数据逐位传送,只需1根传输线,传送速度慢,距离远。 分:异步串行通信方式 同步串行通信方式 yjia@zjip.com

  3. §9.1 串行通信基础知识 一、计算机的数据传送方式 • 二、异步串行通信的字符格式 1、串行通信时信息的两种状态: mark:也称为“标号”状态,对应为“逻辑1” space:也称为“空格”状态,对应为“逻辑0” 2、字符格式(帧格式) yjia@zjip.com

  4. 二、异步串行通信的字符格式 2、字符格式(帧格式) • 起始位:space状态,占用一位,用来表示一个新字符的开始。 • 数据位:5位、6位、7位或8位。各数据位传送顺序:低位在前,高位在后。 • 奇偶校验位:偶校验、奇校验和无校验位。 yjia@zjip.com

  5. 二、异步串行通信的字符格式 2、字符格式(帧格式) • 奇偶校验位:偶校验、奇校验和无校验位。 奇校验:使各数据位加校验位含有奇数个“1”的校验方式。例如,某异步串行通信含有8位数据位,采用奇校验方式,若传送十六进制数34H,则校验位应为“0”; 偶校验:使各数据位加校验位含有偶数个“1”的校验方式。上例中若采用偶校验方式,传送十六进制数34H,则校验位应为“1” yjia@zjip.com

  6. 二、异步串行通信的字符格式 2、字符格式(帧格式) • 起始位:space状态,占用一位,用来表示一个新字符的开始。 • 数据位:5位、6位、7位或8位。各数据位传送顺序:低位在前,高位在后。 • 奇偶校验位:偶校验、奇校验和无校验位。 • 停止位:mark状态,可1位、1.5位或2位。 yjia@zjip.com

  7. 二、异步串行通信的字符格式 2、字符格式(帧格式) • 例1:某异步串行通信的字符格式为:1位起始位、8位数据位、2位停止位,并含有1位奇校验位(12位/帧),请画出传送字符“T”的ASCII码的帧格式。 解:字符“T”的ASCII码为54H,即二进制数为01010100B,含有奇数个(3个)“1”,因此校验位应为“0” yjia@zjip.com

  8. §9.1 串行通信基础知识 • 三、串行通信的数据通路形式 1、单工: 数据传送方向为单向 一端固定为发送,一端固定为接收。 yjia@zjip.com

  9. §9.1 串行通信基础知识 三、串行通信的数据通路形式 1、单工: • 2、全双工:数据传送方向为双向,可同时接收和发送数据。 yjia@zjip.com

  10. §9.1 串行通信基础知识 • 四、串行通信的数据通路形式 1、单工 2、全双工 3、半双工:数据传送方向为双向,但同一时刻只能 接收或发送数据。 yjia@zjip.com

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

  12. §9.1 串行通信基础知识 • 四、波特率: 1、波特率:每秒钟传送二进制的位数。 2、单位:位/秒(bps)或波特(baud) 3、波特率决定了每位传送的时间 例2:上例中串行异步传送的帧格式为12位/帧,若采用2400bps的波特率,则每秒能传送多少个字符? yjia@zjip.com

  13. §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 yjia@zjip.com

  14. 五、异步串行通信的标准—RS-232C标准 3、RS-232C连接器及引脚定义: • 连接器:DB-25、DB-9 目前,大多数计算机使用DB-9连接器与外界进行串行通信, DB-9连接器引脚定义如下: yjia@zjip.com

  15. 引脚 信号名称 简称 方向 信号功能 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引脚定义) yjia@zjip.com

  16. §9.1 串行通信基础知识 3、RS-232C连接器及引脚定义 • 连接器: • DB-9引脚定义 • 串行通信的重要引脚: RXD:串行接收数据引脚 TXD:串行发送数据引脚 GND:信号地 yjia@zjip.com

  17. §9.1 串行通信基础知识 • 六、串行接口电路 1、串行通信要解决的技术问题 • 数据转换:串行数据与并行数据的相互转换 • 数据传送:标准、格式等 2、串行接口电路 :UART,通用异步接收发送器 Universal Asynchronous Receiver and Transmitter • 如INTEL8250、8251芯片就是一种串行接口电路 • MCS-51的串行接口电路集成在芯片内部 yjia@zjip.com

  18. §9.2 MCS-51的串行口及控制寄存器 • 一、51串行口的UART结构 1、串行口的结构 • 具有两个串行口缓冲寄存器 接收SBUF: 发送SBUF: 共用一个地址99H • 接收部分采用两级缓冲 移位寄存器:串 并 接收SBUF:暂存接收到的数据 yjia@zjip.com

  19. 一、51串行口的UART结构 • 2、发送接收过程 • 发送过程: 由指令:MOV SBUF,A 启动发送,UART根据工作方式自动插入格式信息,位串由TXD引脚发出,发送完毕TI置1。 • 接收过程:当测试到RXD引脚由高变低时,移位寄存器开始接收数据,根据工作方式,自动滤除格式信息,接收完数据RI置1,并将接收到的数据转换为并行数据保存到接收SBUF中。 yjia@zjip.com

  20. §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,允许接收方式。 yjia@zjip.com

  21. §9.2 MCS-51的串行口及控制寄存器 • 二、51串行口的控制 2、PCON • 回忆GF1、GF0和PD、IDL位的控制意义 • SMOD:波特率倍增位,SMOD=1,波特率倍增 yjia@zjip.com

  22. §9.2 MCS-51的串行口及控制寄存器 • 二、51串行口的控制 3、IE 4、IP • 回忆各位的控制意义 yjia@zjip.com

  23. §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 yjia@zjip.com

  24. §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、应用:串口转换为并口 与串入并出(或并入串出)移位寄存器连接 yjia@zjip.com

  25. 一、串行工作方式0—8位同步移位寄存器方式 • 3、应用:串口转换为并口 (1)与并入串出移位寄存器CD4014连接使用,将8位并行输入转换为串行输入。 (2)与串入并出移位寄存器CD4094连接使用,将串行的输出转换为并行的输出。 yjia@zjip.com

  26. (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数据 yjia@zjip.com

  27. (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 yjia@zjip.com

  28. 设置串行口工作方式 不允许中断 A #80H STB 0 SBUF A 发送完? N Y 取下数据 清TI 延 时 STB 1 (2)与串入并出移位寄存器CD4094连接使用 • 程序如下: MOV SCON,#00H CLR ES MOV A,#80H LOOP:CLR P1.0 MOV SBUF,A JNB TI,$ CLR TI SETB P1.0 ACALL DELAY RR A LJMP LOOP yjia@zjip.com

  29. (2)与串入并出移位寄存器CD4094连接使用 • 程序如下: MOV SCON,#00H CLR ES MOV A,#80H LOOP:CLR P1.0 ;1 MOV SBUF,A ;1 JNB TI,$ ;2 CLR TI ;1 SETB P1.0 ;1 ACALL DELAY ;2 RR A ;1 LJMP LOOP ;2 • 若fosc=12MHz,每LOOP需9个机器周期,即9μS。 • 每幅72 μS,即每秒可扫描14000幅 yjia@zjip.com

  30. §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、停止位 • 波特率: yjia@zjip.com

  31. §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的计数初值。 yjia@zjip.com

  32. 计算得:约F3H 要想提供精确的波特率,常使用11.0592MHz频率的晶体振荡器,提供出1200bps、2400bps、4800bps、9600bps等多种常用串行通信波特率 程序: MOV SCON,#50H MOV PCON,#00H MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H SETB TR1 MOV IE,#00H MOV IP,#00H 波特率计算 yjia@zjip.com

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

  34. 编程步骤 (1)计算T1计数初值,设置1200波特率: (2)甲乙两机SCON的设置 (3)初始化程序 (4)串行发送接收程序 yjia@zjip.com

  35. (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 yjia@zjip.com

  36. 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 ? yjia@zjip.com

  37. 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 yjia@zjip.com

  38. §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、停止位 • 波特率: yjia@zjip.com

  39. §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 yjia@zjip.com

  40. §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 yjia@zjip.com

  41. §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、停止位 • 波特率: yjia@zjip.com

  42. 串行口实验 一、实验目的: • 掌握双机通信的硬件连接 • 掌握双机通信的工作过程 • 会用查询和中断方式实现双机通信时的软件设计 二、实验内容 甲乙两单片机使用晶体振荡器频率为6MHz,以方式1进行串行数据通信,通信波特率为1200bps。甲机发送数据,先发数据区首末地址,再发数据区数据。甲机要发送的数据存放于内部RAM的40H~4FH单元中;乙机接收,并把接收到的数据块首末地址及其数据存放于外RAM5000H开始的单元中。试完成甲乙两机的串行通信。 yjia@zjip.com

  43. 串行口实验 一、实验目的: 二、实验内容 三、实验步骤: 1、将两台单片机实验箱连接成双机通信系统。 2、在甲机内部RAM的40H~4FH地址传送一批要发送的数据;检查并记录乙机外RAM5000H开始的16个地址的初始数据。 3、编程并调试将甲机内部RAM的40H~4FH地址的数据发送出去;乙机接收串行数据并保存在外RAM5000H开始的16个地址中。 4、记录数据,验证程序的正确性。 yjia@zjip.com

More Related