1 / 23

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

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

roxy
Download Presentation

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

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. 第8章 单片机串行数据通信 • 8.1 串行通信基础知识 • 8.2 MCS-51单片机的串行口及控制寄存器 • 8.3 MCS-51单片机串行通信工作方式

  2. 8.1.1 串行通信基本知识 并行通信 串行通信 各位数据同时传送 各位数据逐位传送 传送速度快 传送速度慢 数据线数目同 传送数据位数 1根 适用于短距离 (计算机内部) 适用于长距离 (计算机之间、计算机与外部设备) 双绞线、同轴电缆 电路板、扁平带状电缆

  3. 串行通信是将数据的各位一位一位地依次传送,适合于计算机之间、计算机与外部设备之间的远距离通信。串行通信是将数据的各位一位一位地依次传送,适合于计算机之间、计算机与外部设备之间的远距离通信。 • 串行通信的传送速率:每秒传送格式位的数目即波特率,1波特=1bps(位/秒) • 串行通信从传输方式分为:单工方式、半双工方式、全双工方式(如图8-1所示)。 • 从接收方式来说,串行通信有两种方式:异步通信方式(如图8-2所示)、同步通信方式(如图8-3所示)。

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

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

  6. 开始 终止 同步字符 CRC字符 数据块 图8-3 同步通信数据格式

  7. 异步串行通信信号形式 计算机A 寄存器 串行接口 TTL电平 RS-232电平 计算机B 寄存器 串行接口 TTL电平 图8-4 近程串行通信

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

  9. 8.1.2 RS-232总线标准 • RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯,其传送距离最大约为15米,最高速率为20kb/s。RS-232是为点对点(即只用一对收、发设备)通讯而设计的。 图8-6 简单的RS-232C数据通讯

  10. 引脚号 符号 名称 说明 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接口信号

  11. 8.2 MCS-51单片机的串行口及控制寄存器 • 1)UART:通用异步接收发送器。 • 包括发送器电路、接收器电路和控制电路; • 功能包括数据的串行/反串行化、错误检验。 单片机A 寄存器 串行接口UART 串 行 数 据 并行数据 RS-232总线 单片机B 寄存器 串行接口UART 并行数据

  12. 2)SBUF:串行口寄存器。(99H) • 发送寄存器:从片内总线向发送寄存器SBUF写入数据,串行数据通过引脚TXD(P3.1)送出; • 接收寄存器:从接收寄存器SBUF向片内总线读出数据,串行数据通过引脚RXD(P3.0)引入;

  13. SCON 位地址 SM0 SM1 SM2 REN TB8 RB8 TI RI 9F 9E 9D 9C 9B 9A 99 98 3)串行控制寄存器SCON • 该寄存器的字节地址为98H,可位寻址。SCON格式如图8-7所示。 D7 D6 D5 D4 D3 D2 D1 D0 图8-7 SCON格式

  14. PC ON SM OD 4)电源控制寄存器PCON • 其字节地址为87H,没有位寻址功能。PCON的格式如图8-8所示,其中与串行接口有关的只有D7位。 D7 D6 D5 D4 D3 D2 D1 D0 图8-8 PCON格式

  15. 5)中断允许寄存器IE • IE的格式如图8-9所示,与串行中断有关的是EA和ES。 D7 D6 D5 D4 D3 D2 D1 D0 位地址 0AFH 0ACH 位符号 EA ES 图8-9 IE格式

  16. 8.3 MCS-51单片机串行通信工作方式 SM0 SM1 工作方式 功能描述 波特率 方式0 同步移位寄存器 fosc/12 0 0 0 1 方式1 10位UARS 可变 1 0 方式2 11位UARS fosc/32或fosc/64 1 1 方式3 11位UARS 可变

  17. 8.3.1 串行工作方式1 • 方式1是10位异步串行通信方式,一帧数据包括1个起始位、8个数据位和1个停止位。 停止位 8位数据位 D0 …… D7 起始位 起始位:space状态(逻辑0); 停止位:mark状态(逻辑1)。

  18. 波特率的计算(定时器1工作在方式2) 波特率=2smod×(定时器1溢出率)/32 定时器1溢出率=1/定时器1定时时间 2smod×fosc 32×12×(256-X) 波特率= fosc×2smod 384×波特率 X=256-

  19. 例1:80C51串行口在工作方式1下进行串行数据通信,波特率为1200,发送数据存放在内部RAM从34H开始的10个地址单元中,用定时器1作为波特率发生器,定时器1工作在方式2下,系统时钟频率为6MHz。例1:80C51串行口在工作方式1下进行串行数据通信,波特率为1200,发送数据存放在内部RAM从34H开始的10个地址单元中,用定时器1作为波特率发生器,定时器1工作在方式2下,系统时钟频率为6MHz。 • 1)设置定时器1 TMOD=20H X=0F3H • 2)设置串行口 smod=0 PCON=00H SCON=40H

  20. 查询方式: 设置定时器1 设置串行口 MOV PCON,#00H //设置串行口 MOV SCON,#40H 禁止串行中断 MOV R1,#34H //数据区地址 MOV TMOD,#20H //设置定时器1 MOV TL1,#0F3H MOV TH1,#0F3H CLR ES //禁止串行中断 启动定时器1 SETB TR1 //启动定时器1 SOUT1: MOV A,@R1 //向SBUF发送数据 MOV SBUF,A 向SBUF发送数据 Y TI=0? SOUT2: JNB TI,$ //查询数据是否已发送 N CLR TI //TI清0 TI清0 CJNE R1,#3DH,AEND //判断数据是否发送完 R1=3DH? N Y CLR TR1 //停止定时器1 停止定时器1 AEND: INC,R1 //指向下一个地址单元 AJMP SOUT1 指向下一个地址

  21. 中断方式: 主程序MAIN: ORG 0000H AJMP MAIN ORG 0023H AJMP SEND ORG 8000H MOV TMOD,#20H //设置定时器1 MOV TL1,#0F3H MOV TH1,#0F3H MOV PCON,#00H //设置串行口 MOV SCON,#40H MOV R1,#34H //数据区地址 MOV A,@R1 //向SBUF发送数据 MOV SBUF,A SETB EA SETB ES SETB TR1 AJMP $ 设置定时器1 设置串行口 MAIN: 允许串行中断 启动定时器1 向SBUF发送数据 原地跳转

  22. 中断程序SEND TI清0 ORG 8100H CLR TI CJNE R1,#3DH,AEND CLR ES CLR TR1 INC R1 MOV A,@R1 MOV SBUF,A RETI SEND: R1=3DH? N Y 禁止串行中断 AEND: 停止定时器1 指向下一个地址 向SBUF发送数据 中断返回

More Related