第八章 80C51单片机的串行通信 主要内容:本章主要介绍80C51串行通信相关知识,包括串行通信基本概念,80C51单片机的串行口及其工作方式,以及单片机在双机或多机通信中的应用。
章节内容安排 §8.1 串行通信基础知识 §8.2 80C51串行口 §8.3 80C51串行口工作方式 §8.4 串行通信数据传输速率 §8.5 串行通信运用 §8.6 本章知识回顾
8.1.1 异步通信和同步通信 数据传输两种方式:串行通信和并行通信 并行通信:数据的各位同时传送; 串行通信:数据一位一位顺序传送。 发送 计算机1 GND 计算机2 发送 接收 串行通信 计算机1 GND 计算机2 并行通信 并行通信:数据的各位同时传送; 串行通信:数据一位一位顺序传送。
并行传送的线路复杂(需要N根数据线),串行传送的线路简单(只需要1-2根数据线);并行方式常用于短距离通信,串行方式则多用于长距离通信。 8.1.1 异步通信和同步通信 串行、并行通信各自特点 并行传送的线路复杂(需要N根数据线),串行传送的线路简单(只需要1-2根数据线);并行方式常用于短距离通信,串行方式则多用于长距离通信。 串行通信的分类:异步(Asynchronous Communication) 同步(Synchronous Communication)
同步、异步数据通信格式 1 0/1 起始位 停止位 奇偶校验 8位数据 空闲位 第n个字符 第n+1个字符 图8.1 异步通信数据帧格式
同步、异步数据通信格式 数据 …… 同步字符 同步字符1 同步字符2 图8.2 同步传送的数据格式
8.1.2 串行通信线路形式 串行通信制式:单工(a)、半双工(b)和全双工(c) (simplex、half duplex、full duplex) 发送器 A站 接收器 B站 单工通信 ( a ) 发 收 b c
章节内容安排 §8.1 串行通信基础知识 §8.2 80C51串行口 §8.3 80C51串行口工作方式 §8.4 串行通信数据传输速率 §8.5 串行通信运用 §8.6 本章知识回顾
8.2 80C51串行口 8.2.1 串行口的硬件结构 SBUF 发送控制 接收控制 发 送 端 口 接 收 ≥1 波特率控制 TXD RXD DB TI RI 串行中断 写SBUF 读SBUF
8.2 80C51串行口 概述 有一个可编程全双工串行通信接口(UART) (Universal Asychronous Receiver/Transmitter ) 管脚:TXD(P3.1)、RXD(P3.0) 可同时发送、接收数据(Transmit/Receive) 有四种工作方式,帧格式有8、10、11位。 波特率(Baud rate)可设置 波特率:每秒钟传送二进制数码的位数,单位为b/s,即位/秒。
8.2.1 串行口的硬件结构 1.数据缓冲寄存器SBUF 两个SBUF,一个用于发送(只写);一个用于接收(只读)。映象地址均为99H。 发送控制 接收控制 发 送 端 口 接 收 ≥1 波特率控制 TXD RXD DB TI RI 串行中断 写SBUF 读SBUF 2.数据发送与接收控制 发送控制器在波特率作用下,将发送SBUF中的数据由并到串,一位位地传输到发送端口;接收控制器在波特率作用下,将接收接收端口的数据由串到并,存入接收SBUF中。
8.2.2 串行口控制机制 SBUF——串行口数据缓冲器 共两个:一个发送寄存器SBUF,一个接收SBUF,二者共用一个地址99H。 SCON——串行口控制寄存器 PCON——电源及波特率选择寄存器
8.2.2 串行口控制机制 一、控制寄存器SCON 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H SM0 SM1 SM2 REN TB8 RB8 TI RI 多机通信控制位 允许串行接收位 工作方式选择 发送数据的第9位 接收数据的第9位
二、电源控制寄存器PCON 8.2.2 串行口控制机制 串行通信只用该位,为1时,波特率×2;为0时不变。 87H SMOD × GF1 PD IDL 串行通信只用该位,为1时,波特率×2;为0时不变。
章节内容安排 §8.1 串行通信基础知识 §8.2 80C51串行口 §8.3 80C51串行口工作方式 §8.4 串行通信数据传输速率 §8.5 串行通信运用 §8.6 本章知识回顾
8.3 80C51串行口工作方式 例:设串行口工作在方式1,允许接收,则指令为: MOV SCON,#01010000B SM0 SM1 功能 波特率 0 0 方式0 8位同步移位寄存器 fosc/12 0 1 方式1 10位UART 可变 1 0 方式2 11位UART fosc/64或fosc/32 1 1 方式3 例:设串行口工作在方式1,允许接收,则指令为: MOV SCON,#01010000B
8.3.1 串行工作方式0 在方式0下,串行口作同步移位寄存器用,其波特率固定为fosc/12。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。这种方式常用于扩展I/O口。 80C51 串口转并口的输出。
8.3.2 串行工作方式1 在方式0下,串行口为波特率可调的10位通用异步接口UART。每发送或接收的一帧信息中,包括1位起始位0,8位数据位和1位停止位1。 实际上用P3.0口做输入和输出,P3.1做移位脉冲用,这是串口转并口的输出。
8.3.3 串行工作方式2和3 串行口为11位UART,传送波特率与SMOD有关。发送或接收的一帧数据中包括1位起始位0,8位数据位,1位可编程位(用于奇偶校验)和1位停止位1。 实际上用P3.0口做输入和输出,P3.1做移位脉冲用,这是串口转并口的输出。
章节内容安排 §8.1 串行通信基础知识 §8.2 80C51串行口 §8.3 80C51串行口工作方式 §8.4 串行通信数据传输速率 §8.5 串行通信运用 §8.6 本章知识回顾
8.4 串行通信数据传输速率 8.4.1 传输速率表示方法 一、相关术语:波特率和比特率 二、单片机中使用的波特率
8.4 串行通信数据传输速率 8.4.2 80C51单片机的波特率设置 1.方式0和方式2的波特率是固定的 在方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变 在方式2中,波特率取决于PCON中的SMOD值: 当SMOD=0时,波特率为fosc/64; 当SMOD=1时,波特率为fosc/32.
8.4.2 80C51单片机的波特率设置 2. 方式1和方式3的波特率可变,由定时器1的溢出率决定 波特率/(b/s) fosc/MHz SMOD 定时器1 C/ 模式 初始值 方式0:1 M 方式2:375 k 方式1、3:62.5 k 19.2 k 9.6 k 4.8 k 2.4 k 1.2 k 137.5 k 110 12 11.059 11.986 6 × 1 2 FFH FDH FAH F4H E8H 1DH 72H FEEBH T 波特率=
章节内容安排 §8.1 串行通信基础知识 §8.2 80C51串行口 §8.3 80C51串行口工作方式 §8.4 串行通信数据传输速率 §8.5 串行通信运用 §8.6 本章知识回顾
8.5 串行通信应用 串行通信接口标准 1.RS-232C通信接口:9针D型头 载波检测DCD 数据装置就绪 接收数据RXD 请求发送RTS 6 9 载波检测DCD 接收数据RXD 发送数据TXD 数据终端就绪 信号地GND 数据装置就绪 请求发送RTS 清除发送CTS 振铃指示
RS232特性 电气特性: 逻辑“1”:-3V~-15V;逻辑“0”:+3V~+15V。 传输距离≤15米。 最大负载电容≤2500pF。 波特率≤20kb/s。
RS232电平转换芯片 电平转换 单片机电平是TTL电平,它与RS-232C电平不兼容,必须进行电平转换。电平转换的电路很多,MAX232是一种专用集成电路,类似的集成电路还很多。 MAX 232 C2- V- C1+ V+ C1- C2+ T2OUT R2IN R2OUT T2IN T1IN R1OUT R1IN T1OUT VCC GND 1 2 3 4 5 6 7 8 9 10 16 15 14 13 12 11
8.5 串行通信应用 8.5.1 近程串行通信 PC机和单片机串口通讯的硬件电路 PC机 COM口 接80C51机11p(TXD) 10p(RXD) PC机 COM口 注意区分COM口和UART PC机和单片机串口通讯的硬件电路
8.5 串行通信应用 8.5.2 调制解调器的使用 一、调制:数字信号转换成模拟信号的过程 二、解调:模拟信号转换成数字信号的过程
8.5 串行通信应用 8.5.3 双机通信 一、双机通信概述 确定数据通路格式 制定通信协议 设计联系代码 定义数据表
8.5.3 双机通信 二、双机通信举例 (请见书) 主程序 中断服务程序 中断服务程序 关中断 开 始 清接收中断标志RI 初始化定时器T1 开 始 清接收中断标志RI 初始化定时器T1 保护现场 初始化串行口 接收PC机发来的字符 启动定时器T1 将字符发送回PC机 开放中断 开中断,恢复现场 主程序踏步 中断返回
8.5.4 多机通信 一、多机通信系统 (请见书) 二、多机通信技术要点说明 (请见书)
章节内容安排 §8.1 串行通信基础知识 §8.2 80C51串行口 §8.3 80C51串行口工作方式 §8.4 串行通信数据传输速率 §8.5 串行通信运用 §8.6 本章知识回顾
7.6 本章内容回顾 本章主要讨论80C51单片机串口的异步通信及其4种工作方式,以及基于80C51单片机串口的双机和多机通信。