会员中心     
首页 > 资料专栏 > 地区 > 华东地区 > 福建 > 福州大学大学单片机设计课程-第09章MCS-51单片机的串行接口29页PPT

福州大学大学单片机设计课程-第09章MCS-51单片机的串行接口29页PPT

中国思宇***
V 实名认证
内容提供者
资料大小:3206KB(压缩后)
文档格式:PPT(29页)
资料语言:中文版/英文版/日文版
解压密码:m448
更新时间:2025/8/13(发布于四川)

类型:金牌资料
积分:--
推荐:免费申请

   点此下载 ==>> 点击下载文档


“福州大学大学单片机设计课程-第09章MCS-51单片机的串行接口29页PPT”第1页图片 图片预览结束,如需查阅完整内容,请下载文档!
文本描述
1/29
第 ? 的串行接口
2/29
设备1 计算机A CPU 网络设备A …….
信息交换称为通信
设备2 计算机B I/O设备 网络设备B …….
两个或多个实体之间的信息交换称为通信。
在计算机中基本的通信方式可分为并行通信与串行通信两种:
并行通信是指利用多根传输线将多位数据同时进行传送和接收。
串行通信是指利用一条传输线将数据一位一位地按顺序分别传输。
并行传输
9.1 串行通信基础
3/29
为保证通信能顺利进行,发送方和接收方必须要共同遵守一些基本通信规程。这些规程包括:收发双方的同步方式、传输控制步骤、差错检验方式、数据编码、数据传输速度、通信报文格式及控制字符的定义等。通信规程在计算机网络中称为协议(Protocol)。
在串行通通信中按串行数据的同步方式,串行通信规程有两类: 同步(SYNC)通信:使用同步字符同步 异步(ASYNC)通信:利用字符的再同步
9.1.1 串行通信规程
4/29
在异步通信中,数据通常是以字符(或字节)为单位组成字符帧传送的。发送端和接收端依靠字符帧格式和波特率来协调数据的发送和接收,
字符帧(Character Frame): 字符帧由起始位、数据位、奇偶校验位、停止位和空闲位等五部分组成。
波特率(band rate): 波特率的定义为每秒钟传送二进制数码的位数(也称比特数),单位通常为bps(bit per second),即位/秒。
无空闲位字符帧
有空闲位字符帧
1.异步通信(Asynchronous Communication)规程
5/29
2.同步通信(Synchronous Communication)规程
同步通信是一种连续串行传送数据的通信方式,以帧为传输单位,一次通信只传送一帧信息。根据控制规程分为:面向字符及面向比特两种。
面向字符型的数据格式
外同步:专用同步线路同步
内同步:数据帧内同步字符同步
6/29
面向比特型的数据格式
根据同步数据链路控制规程(SDLC),面向比特型的数据一帧为单位传输,每帧由六个部分组成。 第一部分:开始标志7EH; 第二部分:一个字节的地址场; 第三部分:一个字节的控制场; 第四部分:需要传送的数据,数据都是位(bit)的集合; 第五部分:两个字节的循环校验码CRC; 第六部分:结束标志7EH 。
7/29
1. 异步接收/发送器(UART) 具有异步通信功能的串行接口硬件,称之为异步接收/发送器,简称为UART(Universal Asynchronous Receiver Transmitter)。
2. 串行通信的制式 1)单工(Simplex)方式:单向传输 2)半双工(Half Duplex):分时双向传输 3)全双工(Full Duplex)方式:同时时双向传输
9.1.2 串行通信的制式
8/29
调制与解调
9.1.3 串行通信中的调制解调器
9/29
各种调制方法
10/29
MCS-51内部有一个的可编程全双工串行通信接口,具有UART的全部功能。
9.2 MCS-51单片机的串行口
9.2.1 串行口的结构
1. 发送和接收电路
11/29
2. 串行口控制寄存器 SCON 和PCON
串行口控制寄存器SCON
.SM0、SM1:为串行口方式选择位,用于控制串行口的工作方式。 ? 患拇嫫鱅/O,波特率固定为 fosc/12 ? T(1+8+1位), 波特率可变,按公式计算 ? T(1+8+1+1位),波特率固定=fosc /32或fosc /64 ? T(1+8+1+1位),波特率可变,按公式计算
12/29
.SM2:允许方式2和方式3进行多机通信控制位。 在方式0或方式1下,SM2不用,应设置为0。 在方式2或方式3下, 若SM2=0,串行口以单机发送或接收方式工作,TI和RI以正常方式被激活,但不会引起中断请求; 若SM2=1,接收到第9位数据(RB8)为1时激活RI,并向CPU请求中断。 .REN:允许串行接收控制位。REN=0,禁止接收;REN=1,允许接收。 .TB8:是工作在方式2和方式3时要发送数据的第9位。 .RB8:是工作在方式2和方式3时,接收到的第9位数据 .TI:发送结束中断标志位,用于指示一帧数据发送完否 ,CPU置位,用户复位。 .RI:接收中断标志位,用于指示一帧信息是否接收完。CPU置位,用户复位。
13/29
电源控制寄存器PCON
.SMOD:串行口波特系数控制位。在方式1、2和3时下,当SMOD=1时,通信波特率可以提高一倍。
GF1,GF0:用户可自行定义使用的通用标志位 PD:掉电控制位 0:常规方式;1:掉电方式。 振荡器停振;片内RAM和SRF不变;程序停止;只有复位能退出掉电状态。 IDL:待机控制位 0:常规方式;1:待机方式。 振荡器继续振荡;中断,定时器,串口有效;片内RAM和SRF不变;程序停顿。 中断或复位能退出待机,继续执行程序。
14/29
9.2.2 串行口的工作方式
1. 方式0(SM1=SM0=0) [8位移位寄存器I/O]
接收:串行数据由RXD逐位移入SBUF中,高位先进; TXD输出移位时钟,频率=fosc/12; ? I就自动置1;需要用户复位RI。 编程:JNB RI,$ CLR RI MOV A, SBUF
?接收前,务必先置位 REN=1 允许接收数据。
发送:SBUF中的串行数据由RXD逐位移出; TXD输出移位时钟,频率=fosc/12; 每送出8位数据 TI就自动置1;需要用户复位TI。 编程:MOV SBUF,A JNB TI,$ CLR TI
15/29
2. 方式1(SM0=0,SM1=1) ? ]
接收:置REN=1后,当确认起始位有效后,开始接收本帧其余数据。在接收到第9数据位(即停止位)时,必须同时满足两个条件:RI=0和SM2=0或接收到的停止位为1,才能把接收到的8位字符存入SBUF中,把停止位送入RB8中,并使RI=1,若上述条件不满足,则这次收到的数据就被丢弃,不装入SBUF中。 接收中断标志RI必须由用户清零。 条件1:RI=0,SM2=0,应保证SBUF为空 条件2:SM2=0或接收到的停止位为1,保证接收到一帧数据
1位起始位,8位数据位,1位停止位。波特率可变。
发送:CPU执行一条SBUF写入指令MOV SBUF,A后,启动串行口开始发送数据。波特率由定时器T1控制,发送完一帧数据时,发送完一帧信息后,发送电路自动维持TXD为高电平,发送中断标志TI由硬件在发送停止位时置位。 发送中断标志TI必须由用户清零。
16/29
3. 方式2和方式3 ? ]
接收:第9位有效数据位存放在SCON中的TB8中。满足接收有效字符的条件为:RI=0和SM2=0或收到的第9数据位为1,只有两个条件同时满足,接收数据有效,接收到的字符才能送入SBUF(接收),第9数据位才能装入RB8中,并使RI=1;否则,这次收到的数据无效,接收的信息将丢失,RI也不置位,在一位时间后,0/1检测器检测到RXD引脚的负跳变,准备接收下一帧数据。 条件1: RI=0,应保证SBUF为空, 用户预先读走SBUF中信息 条件2:SM2=0或收到的第9数据位为1,用于多机通信
1位起始位,9位数据位,1位停止位。波特率可变。
发送:第9位有效数据位存放在SCON中的TB8中,执行MOV SBUF,A指令启动发送前,应把第9数据位预先装入SCON的TB8中。第9数据位装入指令: SETB TB8;TB8=1 CLR TB8;TB8=0
17/29
串行口的通信波特率反映了串行传输数据的速率。收发双方的波特率必须一致。 MCS-51单片机串行口有4种工作方式,方式0和方式2的波特率固定不变,方式1和方式3的波特率可以变化,由定时器T1的溢出率决定。
1.方式0的波特率
方式0的波特率固定不变,为振荡频率的1/12。 方式0的波特率=fosc/12 不受PCON寄存器中SMOD的影响。
2.方式2的波特率
工作方式2,波特率与PCON寄存器中的SMOD位的值有关。
SMOD=0 fosc/64 SMOD=1 fosc/32
9.2.3 串行口的通信波特率
18/29
3. 方式1或方式3的波特率
这两种方式下,波特率由定时器T1的溢出率和SMOD决定。
当给出波特率后,T1定时工作时的初始值计算公式为:
定时器T1作波特率发生器时, T1的溢出率为:
n由定时器T1的工作方式决定: 方式0:n=13;方式1:n=16;方式2:n=8;通常使用方式2
19/29
常用的波特率表
20/29
9.3 MCS-51串行口的应用
9.3.1 串行口在方式0下的应用
方式0下的MCS-51的串行口,是一个移位寄存器,可实现并行输入串行输出和串行输入并行输出的转换。常用于I/O接口的扩展。
【例9-5】利用串行口扩展一个6位LED静态显示器。
21/29
程序设计:假设:欲显示的6位数字(0~9)顺序存放在内部RAM 40H开始的单元中,编写一个子程序DISP完成6位数字的显示。
22/29
9.3.2 串行口在其他方式下的应用
【例9-6】甲乙两台8031单片机进行串行通信。设甲乙两机的晶振频率均为12MHz。(1)确定串行口在方式2下,可用的波特率;(2)在方式2下,采用查询控制方式,将甲机片内RAM40H~5FH单元的数据,串行发送到乙机片内RAM60~7FH单元中。
解:(1)fosc=12MHz,MCS-51的串行口在方式2下,波特率有两种: 波特率1=fosc/32=12MHz/32=375000bps(SMOD=1); 波特率2=fosc/64=12MHz/64=187500bps(SMOD=0); (2)由于方式2是10位的异步串行通信方式,数据位只有8位,如果传输的数据也是8位,则不能进行校验。此处选择375000bps的波特率。
23/29
程序流程图
24/29
甲机发送程序:
25/29
乙机接收程序: