80C51单片机的串行通信技术
文章目录
- 第九章 串行通信技术
- 9.1 串行通信概述
- 1. 同步通信和异步通信
- (1)同步通信
- (2)异步通信
- 2. 串行通信的方向
- 3. 波特率
- 9.2 串行通信接口的结构
- 9.3 串行通信接口的控制
- 1. 串行控制寄存器SCON
- 2. 电源管理寄存器PCON
第九章 串行通信技术
计算机与外界的信息传输被称为通信,基本通信方式有并行通信和串行通信两种。
8051单片机具有一个全双工的异步串行通信接口,可以同时发送数据和接收数据。
并行通信方式
指数据的各个二进制位在不同的数据线上同时传输。适用于近距离传输。
优点:
传输速度快
效率高
缺点:
所需数据线多
成本高
抗干扰能力差
串行通信
指将数据拆分成多个二进制位,逐一地在同一条数据线上输出。适用于远距离传输
优点:
所需数据线少
硬件电路简单
抗干扰能力强
缺点:
传输速度慢
效率较低
9.1 串行通信概述
1. 同步通信和异步通信
串行通信有同步通信和异步通信两种基本的通信方式。
(1)同步通信
同步通信是一种连续串行传送数据的通信方式,待发送地的若干个字符构成一个数据块,在该数据块前添加一两个同步字符,在末尾添加校验信息。
(2)异步通信
异步通信中,每个字符被封装成帧,以帧的形式发送。每一帧由四个部分构成,分别由起始位,数据位,校验位和停止位。
2. 串行通信的方向
根据数据传送方向,串行通信可以分为三个种类,分别是单工、半双工和全双工。
单工
:通信双方一方固定为发送方,另一方固定为接收方,数据只能是单行传送。半双工
: 通信双方只使用一根数据线,每一方都有发送器和接收器,可以在两个方向上传送,但通信双方不能同时接收或发送数据,只能交替进行。全双工
:通信双方使用两根数据线,分别用于不同方向的数据传输,通信双方能够同时收发数据。
3. 波特率
波特率是数据传输效率,指每秒钟传送二进制位的个数,单位为bit/s、
波特率越高,串口数据传输速度越快。
9.2 串行通信接口的结构
数据发送缓冲器SBUF和数据接收缓冲器SBUF共有同一个地址0x99,数据发送SBUF只能发送不能读入,数据接收SBUF只能读出不能写入。
在串行口发送数据时,CPU将待发送的数据写入到发送SBUF中便启动一次发送过程,该数据被封装成帧一位一位地送到发送引脚TXD上。接收的数据被一位一位的从接收引脚RXD上接入到数据移位寄存器中,一帧接收完毕后再被自动送入到接收SBUF中,CPU读取接收SBUF,便完成了一次串口接收过程。
9.3 串行通信接口的控制
1. 串行控制寄存器SCON
它用于控制串行通信的方式选择、接收和发送,指示串口的状态。SCON既可以字节寻址,也可以位寻址。
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI |
9FH | 9EH | 9DH | 9CH | 9BH | 9AH | 99H | 98H |
SM0, SM1
:串行口工作方式控制位。SM0 SM1 工作方式 功能 波特率 0 0 方式0 8位同步移位寄存器 晶振频率/12 0 1 方式1 10位UART 可变 1 0 方式2 11位UART 晶振频率/64或晶振频率/32 1 1 方式3 11位UART 可变 工作方式0
:串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。工作方式1
:方式1是10位数据的异步通信口。TXD为数据的发送引脚,RXD是数据的接受引脚。传送一帧数据的格式为1位起始位,8位数据位,1位停止位。方式2或方式3
:方式2或方式3时,为11位数据的异步通信口,TXD为数据发送引脚,RXD为数据接收引脚。起始位1位、数据位9位(含附加的第九位,发送时为SCON中的TB8,接收时为SCON中的RB8)、停止位1位,一帧数据为11位。方式2的波特率固定为晶振频率的1/32或1/64。方式3的波特率由定时器T1的溢出率决定。SM2
:多机通信控制位。
多机通信是工作于方式2和方式3,即SM2主要用于方式2和方式3。当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接收到的数据放弃。当SM2=0时,就不管第9位数据是0还是1,都会将数据送入SBUF,并发出中断申请。
REN
:允许接受位。
REN=1:允许接收
REN=0:禁止接收
TB8
:发送数据位8.
在方式2和方式3中,TB8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。
RB8
:接收数据位8(一般配置为0)。
在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。
TI
:发送中断标志位。
可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。
RI
:接收中断标志位。
可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。
在配置串口初始化程序的时候,我们一般只用配置高四位,如果我们选择工作方式1,那么就是SCON=0X50;(SM0=0,SM1=1,SM2=0,REN=1)
2. 电源管理寄存器PCON
字节地址0x87,不可以位寻址,单片机复位时PCON全清零。
PCON | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
0x87 | SMOD | - | - | - | - | - | - | - |
PCON中与串口通信有关的是最高位D7,用于设置串行口波特率是否加倍
当SMOD=1时,方式1、2、3的波特率加倍;
当SMOD=0时,方式1、2、3波特率不变。
80C51单片机的串行通信技术相关推荐
- 万年历设计单片机c语言,数字万年历设计(80c51单片机、时钟芯片ds1320).pdf
数字万年历设计(80c51单片机.时钟芯片ds1320) 德州科技职业学院青岛校区 2006 级毕业论文 多功能数字万年历设计 摘 要 : 本设计是一种基于 AT89C52 单片机控制的数字万年历设计 ...
- Matlab与单片机的串行通信及数据处理
Matlab与单片机的串行通信及数据处理 http://hi.baidu.com/20066203/blog/item/891edf52f73278040df3e360.html 摘要:结合单片机和M ...
- 单片机双机通信c语言实验心得,80C51单片机双机通信与多机通信的使用方法
80C51单片机之间的串行通信主要可分为双机通信和多机通信,本节举例说明双机通信与多机通信的使用方法. 1.双机通信硬件电路如果两个80C51单片机系统距离较近,那么就可以将它们的串行口直接相连,实现 ...
- 80C51单片机期末复习
80C51有基本型和增强型.区别:增强型多了定时器,内置存储空间不同. 1冯•诺依曼思想计算机由运算器.控制器.存储器.输入设备.输出设备组成这一计算机的经典结构. 2将CPU.存储器.I/O接口集成 ...
- 单片机位寻址举例_单片机基础及应用 | 04 80C51单片机指令系统
点击蓝字关注我们 一.单片机指令系统概述 1.指令概述指令:是CPU根据人们的意图来执行某种操作的命令.指令系统:是计算机所能够执行的全部指令的集合.程序:是按人们的要求所编制的指令操作序列.本章 ...
- 【技术总结】几种常用的无线串行通信技术
2019独角兽企业重金招聘Python工程师标准>>> 与传统的有线串行(RS232)通信不同,无线串行通信具有设备移动方便(特别在通信设备空间相互隔离不便连线的情况下).通信距离远 ...
- 80C51单片机的最小系统
目录 80C51单片机的最小系统 电源 时钟脉冲 复位电路 存储器设置电路 最小系统图 80C51单片机的最小系统 电源 时钟脉冲 复位电路 存储器设置电路 最小系统图
- 单片机位寻址举例_基于80C51单片机位寻址编程
80C51单片机有位处理功能,可以对数据位进行操作,因此就有相应的位寻址方式.所谓位寻址,就是对内部RAM或可位寻址的特殊功能寄存器SFR内的某个位,直接加以置位为1或复位为0. 位寻址的范围,也就是 ...
- 单片机c语言交通灯源程序,基于80C51单片机的交通灯C语言源程序
<基于80C51单片机的交通灯C语言源程序>由会员分享,可在线阅读,更多相关<基于80C51单片机的交通灯C语言源程序(5页珍藏版)>请在人人文库网上搜索. 1.include ...
- 80C51单片机复习资料(一)
什么是单片机?其主要特点? 单片机是把CPU.存储器(ram和rom)/输入.输出接口电路以及定时器.计数器等集成在一起的集成电路芯片. 它具有体积小.价格低.可靠性高和易于嵌入式应用等特点,还具有控 ...
最新文章
- java基础----递归
- scrapy如何指定生成python3的项目_新手学习scrapy的坑(都是泪)
- Java生鲜电商平台-高并发核心技术订单与库存实战
- Caffe训练时出现了无数个Train net output #.....
- 微信小程序点播插件_微信小程序 wxParse插件显示视频问题
- 奖学金(信息学奥赛一本通-T1179)
- 安卓开发mysql数据库_Android编程之数据库的创建方法详解
- android学习笔记---60_meta-data的使用,在清单文件中是用meta-data来给activity,service,receiver提供参数
- CSS中的偏僻知识点
- 20155307《网络对抗》信息搜集与漏洞扫描
- linux内核mtd分区,嵌入式Linux MTD分区调整(MX28)
- R语言之探索性数据分析篇
- 什么是网络通信协议?(七层功能介绍)
- BZOJ 2145 悄悄话
- php怎么启动服务,如何打开php服务
- POJ 2242 The Circumference of the Circle G++ 海伦公式 三角形外接圆半径公式 背
- 及其他公共信息网络的计算机上存储,不得在未采取防护措施的情况下将互联网及其他公共信息网络上的数据复制到涉密计算机及网络,确...
- android高德方向,Android高德地图填坑
- java(反射机制)
- ATFX:通胀拐点预期下,美元指数能否跌破100关口?
热门文章
- linux服务器运维管理学习
- At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger fo
- linux系统镜像后缀及简单介绍
- 新猿木子李:0基础学python培训教程 Python操作Redis只列表类型
- Java九阳神功-内部类
- 009Java知识点小结--继承和多态
- 一篇读懂深度学习中「训练」和「推断」的区别
- 我的世界服务器如何做无限箱子,《我的世界》无限存储箱子制作方法 制作流程介绍...
- ChAMP 差异甲基化分析
- 生物信息流程开发之甲基化分析pipeline