MCS-51 单片机的串行通信(RS-232/UART)

发布者:JoyfulSpirit最新更新时间:2022-12-09 来源: zhihu关键字:MCS-51  单片机  串行通信  RS-232  UART 手机看文章 扫描二维码
随时随地手机看文章

主要内容:串行口的结构、串行口的4 种工作方式、多机通信、波特率的制定方法、串行口的应用。


MCS-51单片机内部有一个全双工的异步串行口。

全双工:双机通信之间可以同时实现发送数据和接收数据。

异步:收发双方没有应用同一时钟来控制数据传送。传送的数据是以一帧一帧格式进行的。


串行通信(英语:Serial communication)是指在计算机总线或其他数据通道上,每次传输一个位元数据,并连续进行以上单次过程的通信方式。与之对应的是并行通信,它在串行端口上通过一次同时传输若干位元数据的方式进行通信。


简言之:串行通讯就是排成一队走,并行就是排成一列走。

同步串行通信(Synchronous serial communication)和异步串行通信(Asynchronous serial communication)

1)发送端在发送串行数据的同时,提供一个时钟信号,并按照一定的约定(例如在时钟信号的上升沿的时候,将数据发送出去)发送数据,接收端根据发送端提供的时钟信号,以及大家的约定,接收数据。这就是常说的同步串行通信(Synchronous serial communication),I2C、SPI等有时钟信号的协议,都属于这种通信方式。

2)发送端在数据发送之前和之后,通过特定形式的信号(例如START信号和STOP信号),告诉接收端,可以开始(或者停止)接收数据了。与此同时,收发两方会约定一个数据发送的速度(就是大名鼎鼎的波特率),发送端在发送START信号之后,就按照固定的节奏发送串行数据,与此同时,接收端在收到START信号之后,也按照固定的节奏接收串行数据。这就是常说的异步串行通信(Asynchronous serial communication)。


串行异步通信是单片机中常用的方式:

 数据按帧传输,一包含 数据按帧传输,一包含 起始位 、数据校验和停止。依靠 起始位 、停止保持通信同步。因每帧传输都要建立一次同步 ,即需要额外两个附加位适用于工作速度较低的场合。

串行口的接口及基本原理:

该单片机串行接口是一个可编程的全双工串行通信接口。它可用作异步通信方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工的8051多机系统也能通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O口。通过管脚RXD(P3.0,串行数据接收端)和管脚TXD(P3.1,串行数据发送端)与外界通信。


两个物理上独立地接收和发送缓冲器,可同时收、发数据(全双工)。两个缓冲区公用一个特殊功能寄存器字节地址:SBUF(99H),它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。


控制寄存器共两个:特殊功能寄存器SCON(控制寄存器)和PCON(状态寄存器)。

串行口控制寄存器SCON :字节地址98H,可位寻址,格式如图所示

(1)SM0、SM1——串行口4种工作方式的选择位

SM0 SM1 方式 功 能 说 明

0 0 0 同步移位寄存器方式(用于扩展I/O口)

0 1 1 8位异步收发,波特率可变(由定时器控制)

1 0 2 9位异步收发,波特率为fosc/64或fosc/32

1 1 3 9位异步收发,波特率可变(由定时器控制)

表1 串行口的4种工作方式

其中fosc为晶体震荡器频率

SM2:多机通信控制位。在方式0时,SM2一定要等于0。在方式1中,当(SM2)=1则只有接收到有效停止位时,RI才置1。在方式2或方式3当(SM2)=1且接收到的第九位数据RB8=0时,RI才置1。

REN:接收允许控制位。由软件置位以允许接收,又由软件清0来禁止接收。

TB8: 是要发送数据的第9位。在方式2或方式3中,要发送的第9位数据,根据需要由软件置1或清0。例如,可约定作为奇偶校验位,或在多机通信中作为区别地址帧或数据帧的标志位。

RB8:接收到的数据的第9位。在方式0中不使用RB8。在方式1中,若(SM2)=0,RB8为接收到的停止位。在方式2或方式3中,RB8为接收到的第9位数据。

TI:发送中断标志。在方式0中,第8位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。TI置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的办法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。TI必须用软件清0。

RI:接收中断标志位。在方式0,当接收完第8位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。RI置位表示一帧数据接收完毕,可用查询的办法获知或者用中断的办法获知。RI也必须用软件清0。

波特率即数据传送的速率,其定义是每秒钟传送的二进制数的位数。例如,数据传送的速率是120字符/s,而每个字符如上述规定包含10数位,则传送波特率为1200波特。

波特率 :每秒钟传送码元数目,单位波特( Baud ) ( 位/秒( bps )

假设波特率为: 1200b /s

每一位代码的传送时间 Td (码元宽度 )为波特率的倒数。

Td =1b /( 1200bs)= 0.833ms

而每个字符格式包含 10 个代码位( 1个起始位、 1个终止位、 8个数据位),传送一字节需要 8.33ms 。

传送距离随波特率增加而减少

波特率制定方法:

  • 收、发双方的波特率必须一致。

  • 串口方式0和方式2的波特率是固定的;

  • 串口方式1和方式3的波特率是可变的,由T1溢出率确定。

串口各种工作方式下波特率的计算

  1. 方式0时,波特率固定为时钟频率fosc的1/12。

  2. 方式2时,波特率仅与SMOD位的值有关。

2 定时器T1产生波特率的计算

(1)方式0波特率=时钟频率fosc×1/12,不受SMOD位的值的影响。若fosc=12MHz,波特率为fosc/12即1Mb/s。

(2)方式2波特率=(2^SMOD/64)×fosc

若fosc=12MHz: SMOD=0 波特率=187.5kb/s; SMOD=1 波特率=375kb/s

(3)方式1或方式3时,波特率为:

波特率=(2^SMOD/64)×T1的溢出率

实际设定波特率时,T1常设置为方式2定时(自动装初值)这种方式不仅操作方便,也可避免因软件重装初值而带来的定时误差。

由上式可见,波特率随fosc、SMOD和初值X而变化。

帧格式:

起始位(1位)---低电平;

数据位(8位);

奇偶校验位(1位,可无校验位);

停止位(1位)---高电平。

空闲位

串行口的四种工作方式:

1、工作方式0

工作方式0由SCON寄存器SM0SM1都为低电平决定,用于移位寄存器,I/O口扩展应用。一帧信息包括8位数据位、低位在前,高位在后。波特率固定为fosc/12。

发送:TI=0时,执行MOV SBUF,A将数据写入发送缓冲寄存器,并启动发送。TXD端输出移位脉冲,串行口把SBUF中数据依次从低到高从RXD读出。一帧数据发送完毕,硬件自动将RI发送中断标志位置1,若再次发送需要用指令CLR TI清零。

MOV SBUF,A;启动发送

JNB TI,$;若TI=0则该指令原地踏步等待发送完毕

CLR TI;请0,清发送中断标志位

接收:在RI=0,REN=1时,开始串行接收数据,TXD输出移位脉冲。将数据以固定波特率接收到SBUF中去,一帧数据接收完毕后,硬件自动将RI置1,若再接收数据需要用MOV A,SBUF读出数据,然后用指令将RI清零。

JNB RI,$;RI=0则软件原地踏步,等待接收

CLR RI;清接收中断标志位

MOV A,SBUF;将接收数据送入累加器A中

2、工作方式1

一帧信息包括起始位、8位数据位、停止位共10位,低位在前,高位在后。波特率可变,由定时器/计数器T1的输出率和SMOD(PCON.7)决定。

基本的接收发送指令与方式0同,但是:

(1)当SM2=0时,将接收的数据送入SBUF中,停止位送入RB8中,并置中断标志位RI=1.

(2)当SM2=1时,接收停止位=1,将接收的数据送入SBUF并且停止位送入RB8,并置RI=1,否则丢弃接收到的数据。再次接收前需要将RI清0。

波特率计算方法:波特率=(2^SMOD/32)*定时器T1的溢出率

溢出率:定时器在1S内产生溢出的次数。

定时器的溢出率与定时器的工作模式有关,可以改变TMOD寄存器T1方式字段中的M1M0两位。T1定时器工作在方式2时,作为8位定时器自动重载功能。

3、方式2

9位异步通信接口。每帧数据均为11位,1位起始位0,8位数据位(先低位),1位可程控的第9位数据和1位停止位。

方式2波特率= (2^SMOD/64)×fosc

发送前,先根据通讯协议由软件设置TB8(例如,双机通讯时的奇偶校验位或多机通讯时的地址/数据的标志位)。

SM0、SM1=10,且REN=1。数据由RXD端输入,接收11位信息。当位检测到RXD从1到0的负跳变,并判断起始位有效后,开始收一帧信息。在接收器完第9位数据后,需满足两个条件,才能将接收到的数据送入SBUF。

(1)RI=0,意味着接收缓冲器为空。

(2)SM2=0或接收到的第9位数据位RB8=1时。

当上述两个条件满足时,接收到的数据送入SBUF(接收缓冲器),第9位数据送入RB8,并置“1”RI。若不满足两个条件,接收的信息将被丢弃。

4、方式3

SM0、SM1=11,串口为方式3。波特率可变的9位异步通讯方式,除波特率外,方式3和方式2相同。

多机通信(主动式结构)

要保证主机与所选择的从机实现可靠地通信,必须保证串口具有识别功能。

SCON中的SM2位就是满足这一条件而设置的多机通信控制位。

原理:在串行口以方式2(或方式3)接收时,若SM2=1,表示置多机通信功能位,这时有两种可能:

(1)接收到的第9位数据为1时,数据才装入SBUF,并置中断标志RI=1向CPU发出中断请求;

(2)接收到的第9位数据为0时,则不产生中断标志,信息将抛弃。

主机发送信息两类:一类是地址,用来需要和主机通信的从机,特征是串行发送的第9位数据TB8为1;另一种是数据,串行传送的第9位数据TB8=0.

主从机通信的过程如下:

1)使所有的从机工作方式2或3,且SM2=1,REN=1,以便主机发送地址信息,从机接收地址帧信息。

2)主机发送要寻址的从机的地址信息,其中包括8位需要与之通信的从机地址,第9位TB8=1.

3)所有从机接收到地址信息,置RI=1.

4)各从机进行地址比较,对于接收到的地址和自己的地址相同的从机,使SM2=0,准备接收主机随后发来的数据,对于地址不符合的从机,仍保持SM2=1的状态,对主机随后的数据不予理睬,直至发现新的地址帧。

备注:补充RS485差分传输特性,所谓差分传输,就是发送端在两条信号线上传输幅值相等相位相反的电信号,接收端对接受的两条线信号作减法运算,这样获得幅值翻倍的信号。

特点:从严格意义上来讲,所有电压信号都是差分的,因为一个电压只能是相对于另一个电压而言的。在某些系统里,"系统地"被用作电压基准点。当'地'当作电压测量基准时,这种信号规划被称之为单端的。我们使用该术语是因为信号是用单个导体上的电压来表示的。 另一方面,一个差分信号作用在两个导体上。信号值是两个导体间的电压差。尽管不是非常必要,这两个电压的平均值还是会经常保持一致。

可以想象,这两个导体上被同时加入的一个相等的电压,也就是所谓共模信号,对一个差分放大系统来说是没有作用的,也就是说,尽管一个差分放大器的输入有效信号幅度只需要几毫伏,但它却可以对一个高达几伏特的共模信号无动于衷。这个指标叫做差分放大器的共模抑制比(CMRR),一般的运算放大器可以达到90db以上,高精度运放甚至达到120db。因为干扰信号一般是以共模信号的形式存在,所以差分信号的应用极大地提高了放大器系统的信噪比。

单端传输就是对与地而言的。

例:基本设置指令如下。


关键字:MCS-51  单片机  串行通信  RS-232  UART 引用地址:MCS-51 单片机的串行通信(RS-232/UART)

上一篇:51单片机程序及调试步骤实战经验
下一篇:MCS-51 单片机的定时器/计数器

推荐阅读最新更新时间:2024-11-21 15:08

基于ZigBee的无线传感器网络硬件设计
引言 无线传感器网络作为一种新兴技术,已经成为国内外研究的热点,其在军事、环境、健康、家庭、商业、空间探索和救灾等领域展现出广阔的应用前景 。国内外很多单位都开展了相关领域的研究,但大部分工作仍处在无线网络协议性能仿真和硬件节点小规模实验设计阶段。无线传感器网络并不需要较高的传输带宽,但却要求极低的功率消耗,以使无线传感器网络中的设备可工作更长的时间,同时低成本也是无线传感器普及应用的一大要求。ZigBee/IEEE 802.15.4标准把低功耗、低成本作为主要目标,为无线传感器网络提供了互连互通的平台,目前基于该技术的无线传感器网络的研究和开发得到越来越多的关注。本文就是基于ZigBee技术,设计了通用无线传感器网络硬件平
[单片机]
基于ZigBee的无线传感器网络硬件设计
用VC++.NET实现C167CR单片机与PC的串行通信
1 引言 PC与单片机构成的上位机、下位机分布式控制系统是一种常见的工业控制系统,单片机作为下位机可进行现场数据采集和就地控制,并可将采集到的数据或者状态 信息传送到上位 PC 机,以做进一步的分析处理。在实际应用中,上位机与下位机的通信问题是首要解决的问题之一,串行通信以其高效率、可靠、标准统一的优点 成为重要的通信手段,本文即在 WINDOWS XP 环境下,使用 Visual C++.NET 中的 MSComm 控件实现 C167CR 单片机与 PC 之间的串行通信,其通信线路通过 RS232 连接(距离小于 15m )。 2 C 167CR 单片机串行接口简介 C167CR单片机是
[单片机]
智能限电和防火控制器设计方案
  在学校学生宿舍用电管理一直是一个难题,特别是砖木结构的学生宿舍,各种违章大功率电器的使用屡禁不绝。由于违章电器的使用引起火灾的事故时有发生,给国家的财产造成了严重的损失,同时也对学生的生命构成了一定的威胁,本文所研究的智能限电和防火控制器能很好保障学生宿舍的用电安全,维护学校的安全稳定工作。   1 智能限电和防火控制器的设计   1.1 系统的硬件设计   智能限电和防火控制器以瑞萨单片机(M3062P)为控制核心,外围电路有 电源电路 、按键电路、 继电器 驱动 电路、 时钟 电路、128×64 液晶 显示 电路、电流采样、电压采样、漏电采样、E2PROM电路、光耦输入、 通信 RS485 接口 。系统硬件框图
[电源管理]
智能限电和防火控制器设计方案
恩智浦发布无线微控制器、能量收集开关和评估套件
恩智浦在昨天开幕的广州照明展上展出了JN516x系列无线微控制器以及可简化ZigBee、JenNet-IP和其他IEEE 802.15.4应用商业开发的全新评估套件。JN516x无线微控制器系列汇集了价格/性能、片上存储器和超低功耗以及软件堆栈选择的最佳组合。JN516x能量收集开关使用超低功耗就可产生足以传递8个无线数据包的能量,无需电池或供电连线,就能使LED变光灯可以如白炽灯一样调整色温。 JN516x评估套件专为使用恩智浦JN5161、JN5164或JN5168无线微控制器而设计,并提供系统开发所需的所有构件,包括一系列无线载板、插入式扩展板、USB连接器、一个遥控器、一个经过专门编程、运行增强型OpenWRT固件
[电源管理]
恩智浦发布无线<font color='red'>微控制器</font>、能量收集开关和评估套件
51单片机电子钟制作-升级版
经过两天熬夜的艰苦奋战,在原程序基础上进行升级,添加按键多功能操作 新增功能:1. K1模式转换,可自由切换:主界面显示,时间调整,闹钟设置,温度上下限设定等。等 2. K2选定需要调整的位数。 切换至时间调整时,通过K3- 加 ,K4- 减 按键调整数值。 切换至闹钟设置时,通过K3- 加 ,K4- 减 按键调整数值。 切换至温度上下限设定时,通过K3- 加 ,K4- 减 按键调整数值。 准备扩展的新功能:闹钟音乐,喇叭开启和关闭,。 操作说明: 开机进入主界面,显示时钟和温度。按下K1时,进入模式选择,(有时间调整,闹钟设置,温
[单片机]
51<font color='red'>单片机</font>电子钟制作-升级版
ADC0832模数转换MSP430单片机程序+电路图
下面是电路图: ADC0832封装图 ADC0832与单片机连接图 ADC0832时序图 程序源码下载: #include msp430f2121.h #define DO (P1IN&BIT7) #define uchar unsigned char #define uint unsigned int /*********************************************** sbit cs=P2^0; sbit clk=P2^1; sbit DI=P2^2; sbit DO=P2^6; ***************************************
[单片机]
ADC0832模数转换MSP430<font color='red'>单片机</font>程序+电路图
PIC单片机用于LCD段驱动器的键盘接口
  4×4小键盘的典型数字接口使用8个数字I/O引脚。但使用8个引脚作为数字I/O会占用可用于连接LCD的段驱动器引脚的数量。   通过使用2个数字I/O引脚和2个模拟输入引脚,可以向PIC单片机添加一个4×4小键盘,而无需牺牲它的任何LCD段驱动器引脚。   下图中显示了小键盘连接示意图。示例中使用的是PIC18F8490,但该技术可以用于任意LCDPIC MCU。   图中使用的两个数字I/O引脚是RBO和RB5,也可以使用任意两个其他的数字I/O引脚。所使用的两个模拟引脚是ANO和AN1。   要读取小键盘,请遵循以下步骤:   1.首先,将RBO设计为输出高 电平 ,将RB5设为输入(呈高 阻抗 )。   2.执行两次
[单片机]
PIC<font color='red'>单片机</font>用于LCD段驱动器的键盘接口
基于AT89S51单片机的冲床控制器的设计
本文介绍了一种用Atmel89S51单片机仿真PLC控制的方法,设计适合刚性离合器冲床的控制器,介绍了用光电隔离的输入输出电路的基本构成和工作原理,重点介绍了内部键盘显示电路的设计思想,同时给出了冲床控制的电器原理图。 系统硬件配置以AT89S51单片机为核心。AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4Kb ISP(In-system programmable)可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,内置看门狗(WDT)电路。 功能强大的AT89S51可为许多嵌入式控制应用系统
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved