单片机串口通信
单片机双机串口通信

单片机双机串口通信在现代电子技术领域,单片机的应用无处不在。
而单片机之间的通信则是实现复杂系统功能的关键之一。
其中,双机串口通信是一种常见且重要的通信方式。
什么是单片机双机串口通信呢?简单来说,就是让两个单片机能够通过串口相互交换数据和信息。
想象一下,两个单片机就像是两个小伙伴,它们需要交流分享彼此的“想法”和“知识”,串口通信就是它们交流的“语言”。
串口通信,顾名思义,是通过串行的方式来传输数据。
这和我们日常生活中并行传输数据有所不同。
在并行传输中,多个数据位同时传输;而在串行传输中,数据一位一位地按顺序传送。
虽然串行传输速度相对较慢,但它所需的硬件连线简单,成本较低,对于单片机这种资源有限的设备来说,是一种非常实用的通信方式。
在进行单片机双机串口通信时,我们首先要了解串口通信的一些基本参数。
比如波特率,它决定了数据传输的速度。
就像两个人说话的快慢,如果波特率设置得不一致,那么双方就无法正常理解对方的意思,数据传输就会出错。
常见的波特率有 9600、115200 等。
还有数据位、停止位和校验位。
数据位决定了每次传输的数据长度,常见的有 8 位;停止位表示一个数据帧的结束,通常是 1 位或 2 位;校验位则用于检验数据传输的正确性,有奇校验、偶校验和无校验等方式。
为了实现双机串口通信,我们需要在两个单片机上分别进行编程。
编程的主要任务包括初始化串口、设置通信参数、发送数据和接收数据。
初始化串口时,我们要配置好相关的寄存器,使其工作在我们期望的模式下。
比如设置波特率发生器的数值,以确定合适的波特率。
发送数据相对来说比较简单。
我们将要发送的数据放入特定的寄存器中,然后启动发送操作,单片机就会自动将数据一位一位地通过串口发送出去。
接收数据则需要我们不断地检查接收标志位,以确定是否有新的数据到来。
当有新数据时,从接收寄存器中读取数据,并进行相应的处理。
在实际应用中,单片机双机串口通信有着广泛的用途。
比如在一个温度监测系统中,一个单片机负责采集温度数据,另一个单片机则负责将数据显示在屏幕上或者上传到网络。
单片机串口通信原理

单片机串口通信原理
单片机串口通信原理是指通过串口进行数据的发送和接收。
串口通信是一种异步通信方式,它使用两根信号线(TXD和RXD)进行数据的传输。
在发送数据时,单片机将待发送的数据通过串口发送数据线(TXD)发送出去。
发送的数据会经过一个串口发送缓冲区,然后按照一定的通信协议进行处理,并通过串口传输线将数据发送给外部设备。
在接收数据时,外部设备将待发送的数据通过串口传输线发送给单片机。
单片机接收数据线(RXD)会将接收到的数据传
输到一个串口接收缓冲区中。
然后,单片机会根据通信协议进行数据的解析和处理,最后将数据保存在内部的寄存器中供程序使用。
串口通信协议通常包括数据位、停止位、校验位等信息。
数据位指的是每个数据字节占据的位数,常见的有8位和9位两种。
停止位用于表示数据的结束,常用的有1位和2位两种。
校验位用于检测数据在传输过程中是否发生错误,常见的校验方式有奇偶校验和无校验。
总的来说,单片机串口通信原理是通过串口发送数据线和接收数据线进行数据的传输和接收,并通过一定的通信协议进行数据的解析和处理。
这种通信方式可以实现单片机与外部设备的数据交换,广泛应用于各种嵌入式系统和物联网设备中。
单片机串口通信协议

单片机串口通信协议1. 引言单片机串口通信是一种常见的数据通信方式,它允许单片机与其他外部设备进行通信。
串口通信协议定义了数据传输的格式、波特率等参数,确保通信的稳定和可靠性。
本文将介绍单片机串口通信协议的基本原理和常用协议。
2. 串口通信基础串口通信是通过串行数据传输来实现的。
其中,UART(通用异步收发传输器)是实现串口通信的重要组件。
UART将并行数据转换为串行数据,并通过串口进行传输。
在单片机中,常用的串口通信引脚是TX(发送)和RX(接收)。
3. 串口通信协议串口通信协议定义了数据传输时各个数据包的格式和规则。
常见的串口通信协议有以下几种:3.1. RS-232RS-232是最早出现的串口通信协议之一。
它定义了数据传输的电气特性和信号级别。
RS-232使用9个引脚进行数据传输,包括发送和接收数据线、数据控制线等。
该协议具有较长的最大传输距离和可靠性,但通信速率相对较慢。
3.2. RS-485RS-485是一种多点通信的串口协议。
相比于RS-232,RS-485支持多个设备之间的通信。
它使用不同的信号级别和电气特性,可实现更远的传输距离和更高的通信速率。
RS-485通信中设备分为主设备和从设备,主设备负责控制通信流程。
3.3. SPISPI(Serial Peripheral Interface)是一种同步串口通信协议,常用于单片机与外部设备之间的通信。
SPI使用四条引脚进行通信,包括时钟线、数据线、主设备输出从设备输入线和主设备输入从设备输出线。
SPI通信速率较快,适用于高速数据传输。
3.4. I2CI2C(Inter-Integrated Circuit)是一种多主从通信的串口协议。
I2C使用两条引脚进行通信,包括时钟线和数据线。
在I2C总线上,可以连接多个设备,实现多个设备之间的通信和数据交换。
I2C通信速率较慢,但具有较简单的硬件设计和较低的功耗。
4. 协议选择和配置选择合适的串口通信协议需要考虑通信距离、通信速率、设备数量等因素。
单片机串口通信实现

单片机串口通信实现单片机串口通信是指通过串口来进行数据传输和通信的一种方式。
通过串口通信,可以实现单片机与其他外设设备的数据传输和控制,以达到实现各种功能的目的。
下面将介绍如何在单片机中实现串口通信。
一、串口的硬件设置串口通信需要硬件上的支持,主要包括波特率、数据位、停止位和校验位等设置。
以常见的UART串口为例,波特率值可设置为常见的9600、115200等,数据位通常为8位,停止位为1位,校验位可选择无校验、奇校验、偶校验等。
在单片机中,可以通过寄存器对这些参数进行设置,以满足具体的需求。
二、初始化串口在单片机中实现串口通信之前,需要对串口进行初始化设置。
具体步骤如下:1. 设置串口引脚将单片机的串口引脚与外部设备连接,可以通过查阅单片机的数据手册或引脚图来确定具体的引脚连接方式。
2. 设置波特率、数据位、停止位和校验位通过寄存器设置,将波特率、数据位、停止位和校验位等参数设置为所需的数值。
3. 使能串口使能串口功能,以便能够正常进行数据传输和通信。
三、发送数据发送数据是串口通信的核心部分。
在单片机中,通过向串口发送指令或数据来实现数据的发送。
具体步骤如下:1. 准备待发送的数据将需要发送的数据存储在单片机的某个特定的寄存器中。
2. 检查发送缓冲区状态检查发送缓冲区的状态,判断是否可继续发送数据。
如果发送缓冲区为空,则可以继续发送数据;如果发送缓冲区已满,则需要等待发送缓冲区空闲。
3. 发送数据将待发送的数据写入发送缓冲区,启动发送操作。
四、接收数据接收数据是串口通信的另一个重要部分。
在单片机中,通过接收串口传来的数据,可以实现对外部设备的控制和数据读取。
具体步骤如下:1. 检查接收缓冲区状态检查接收缓冲区的状态,判断是否有数据可读取。
如果接收缓冲区为空,则需要等待数据的到达;如果接收缓冲区有数据,则可以进行后续的读取操作。
2. 读取数据从接收缓冲区中读取数据,并存储在单片机指定的地址空间中。
单片机中的串口通信技术

单片机中的串口通信技术串口通信技术是指通过串行接口将数据传输和接收的技术。
在单片机领域,串口通信是一种常见的数据交互方式。
本文将介绍单片机中的串口通信技术,并探讨其在实际应用中的重要性。
一、串口通信的原理串口通信是指通过串行接口传输数据的方式,其中包括一个数据引脚和一个时钟引脚。
数据引脚用于传输二进制数据,在每个时钟周期内,数据引脚上的数据会被读取或写入。
时钟引脚则用于控制数据的传输速度。
单片机中的串口通信主要包含两个部分:发送和接收。
发送时,单片机将数据转换为二进制形式,并通过串口发送出去。
接收时,单片机会从串口接收到二进制数据,并将其转换为可识别的格式。
通过发送和接收两个过程,单片机可以与外部设备进行数据交互。
二、串口通信的类型在单片机中,串口通信主要包含两种类型:同步串口和异步串口。
同步串口是指发送和接收两个设备之间使用相同的时钟信号,以保持数据同步。
同步串口通信速度快,但需要额外的时钟信号输入。
异步串口则是通过发送数据前提供起始位和终止位来区分不同数据帧的方式进行通信。
异步串口通信的优势是不需要额外的时钟信号,但速度相对较慢。
在实际应用中,通常使用异步串口通信。
异步串口通信相对简单易用,适合多种应用场景。
三、单片机串口通信的实现单片机中实现串口通信通常需要以下几个方面的内容:1. 串口通信引脚配置:单片机需要连接到一个串口芯片或者其他外部设备,因此需要配置相应的引脚作为串口通信的数据引脚和时钟引脚。
2. 波特率设置:波特率是指单位时间内传输的数据位数。
在进行串口通信时,发送端和接收端的波特率需要相同。
单片机中通常通过寄存器设置波特率,以确保数据传输的稳定性。
3. 数据发送和接收:在单片机中,通过将数据写入发送缓冲器并启动发送操作来发送数据。
接收数据时,单片机会接收到串口中的数据,并将其保存在接收缓冲器中。
4. 中断机制:在进行串口通信时,单片机通常会使用中断机制来处理数据接收和发送。
中断机制可以减轻单片机的负担,提高系统效率。
单片机指令的串口通信实现方法

单片机指令的串口通信实现方法串口通信是指通过串行通信接口实现的数据传输方式。
在单片机系统中,串口通信是一种重要的通信方式,可以实现与外部设备(如PC 机、传感器等)的数据交互。
本文将介绍单片机指令的串口通信实现方法,包括硬件连接和软件编程两方面。
一、硬件连接串口通信需要通过发送器和接收器两个设备来完成数据的发送和接收。
在单片机系统中,可使用通用异步收发器(UART)作为串行通信接口。
下面是串口通信的硬件连接步骤:1. 将单片机与UART连接:首先,确保单片机具有UART接口,并根据其引脚定义将UART的发送线(TXD)连接到单片机的接收引脚,接收线(RXD)连接到单片机的发送引脚。
2. 选择波特率:波特率指每秒钟传送的位数,通常使用的波特率有9600、115200等。
在发送和接收数据时,单片机和外部设备需要使用相同的波特率,以保证数据的正确传输。
3. 连接外部设备:根据实际需求,将UART的发送线和接收线分别连接到外部设备的接收引脚和发送引脚。
二、软件编程实现单片机指令的串口通信需要编写相应的软件程序。
下面是基于C语言的软件编程实现方法:1. 初始化串口:在程序开始时,需要对串口进行初始化设置。
通过设置寄存器来配置波特率、数据位、停止位等参数。
2. 发送数据:使用发送指令将待发送的数据写入UART的数据寄存器,等待数据传输完成。
3. 接收数据:通过接收指令读取UART接收到的数据,并进行相应的处理。
可以使用中断或轮询方式进行数据接收。
4. 错误处理:在数据传输过程中,可能会出现错误,例如帧错误、奇偶校验错误等。
需要进行相应的错误处理操作,例如重新发送数据或发出错误提示。
5. 通信协议:根据通信需求,可以制定相应的通信协议。
通信协议包括数据帧结构、数据格式、数据校验等内容,用于确保数据的可靠传输。
三、实例演示下面通过一个简单的示例来演示单片机指令的串口通信实现方法。
假设我们需要实现从单片机向PC机发送一条消息,并接收PC机返回的确认信息。
单片机中串行通信的三种类型

单片机中串行通信的三种类型在单片机的世界里,串行通信就像一条小小的高速公路,将各种数据在不同的部件之间传递。
它的基本任务就是让不同的设备能够互相“聊天”,共享信息。
想象一下,如果没有串行通信,单片机和外设之间就像被厚厚的墙隔开了,彼此难以沟通。
因此,了解串行通信的三种主要类型非常重要。
下面,我们就来聊聊这些串行通信的类型吧!1. 异步串行通信1.1 什么是异步串行通信?异步串行通信,顾名思义,就是在数据传输的时候,双方并不需要保持同步。
说白了,就是两头在做各自的事情,偶尔通过约定的信号来“打招呼”。
就像你和朋友在微信上聊天,不需要时时刻刻保持在线,偶尔发个消息就行了。
1.2 异步串行通信的工作原理在这种通信方式中,数据被拆分成一串串的字节,每个字节都会被加上一个起始位和一个停止位。
起始位告诉接收方:“嘿,数据来了!”而停止位则是“这条消息完了!”的信号。
这就像在你发短信时,在开始和结束的时候都留个标记,让对方知道你的信息什么时候开始和结束。
1.3 异步串行通信的应用这种通信方式应用非常广泛,比如我们常用的UART(通用异步收发传输器)就属于这个类别。
UART在我们的生活中几乎无处不在,从电脑的串口到一些简单的传感器都用得上它。
2. 同步串行通信2.1 什么是同步串行通信?同步串行通信和异步串行通信有点像“有组织的队伍”,双方在数据传输的过程中要保持同步。
就是说,你发数据的时候,对方也要准备好接收数据,这就像排队一样,大家都得按顺序来。
2.2 同步串行通信的工作原理在同步通信中,除了数据本身,还需要一个额外的时钟信号来确保数据的准确传输。
可以把时钟信号看作是“指挥棒”,它帮助双方协调一致地进行数据传输。
想象一下在舞台上表演的舞者,大家都得跟着同一个节拍才能跳得整齐划一。
2.3 同步串行通信的应用同步串行通信的速度通常比异步串行通信快,因为它减少了数据传输过程中的额外开销。
常见的同步串行通信协议包括SPI(串行外设接口)和I2C(集成电路间接口)。
单片机串口传负值

单片机串口传负值(实用版)目录1.单片机串口通信简介2.串口传输负值的原因3.解决串口传输负值的方法4.应用实例正文【1.单片机串口通信简介】单片机串口通信(Serial Communication)是一种在单片机之间进行数据传输的通信方式。
它是通过一根数据线(TXD)和一根地线(GND)完成数据传输的。
在串口通信中,数据是逐个比特按顺序进行传输的,发送方将数据字符从并行转换为串行,按位发送给接收方。
接收方收到串行数据后,再将其转换为并行数据。
这种通信方式在仅用一根数据线的情况下完成数据传输,具有线路简单、成本低的优点。
【2.串口传输负值的原因】在单片机串口通信中,有时会出现传输负值的情况。
这主要是因为在串口通信过程中,数据传输可能会受到干扰或者数据表示方式的问题。
例如,在负极性电压下,数据“0”表示为负电压,数据“1”表示为正电压;而在正极性电压下,数据“0”表示为正电压,数据“1”表示为负电压。
当发送方和接收方电压极性不一致时,就会出现传输负值的情况。
【3.解决串口传输负值的方法】为了解决串口传输负值的问题,可以采取以下几种方法:(1)保持发送方和接收方电压极性一致。
在通信开始之前,需要确保双方的电压极性一致,避免因极性不一致导致的负值传输。
(2)采用差分传输。
差分传输是一种抗干扰能力较强的传输方式,它通过两条数据线(TXD 和 RXD)同时传输数据,并利用接收方将两条数据线之间的差值作为接收信号。
这样,即使在受到干扰的情况下,也能保证接收方正确接收数据。
(3)对数据进行编码处理。
在发送数据之前,可以对数据进行编码处理,如采用曼彻斯特编码(Manchester Encoding)或者其他编码方式。
这样可以有效避免因电压极性不一致导致的负值传输。
【4.应用实例】在实际应用中,例如通过单片机控制机器人的运动,需要对机器人的运动速度和方向进行控制。
这时候,可以通过串口通信传输数据,对机器人的电机进行精确控制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.特殊功能寄存器PCON
特殊功能寄存器PCON的地址为87H,没有位地址。 其格式如下:
PCON的最高位是串行口波特率系数控制位SMOD,当SMOD为“1” 时,方式2,3中使波特率加倍。PCON的其他位为掉电方式控制 位,详见2.4节。
单片机串行接口的工作方式
一、串行口工作方式0:串口扩展为并 口
二、串行通信的传送速度 串行通信的数据传送是按位进行的,每秒所传送 的位数称为波特率,如果数据传送的速度为每秒120 帧,每个帧包含10位,则每秒传送1200位,即波特 率为1200。 10☓120=l200bit/s=1200baut 每位传送的时间T等于波特率的倒数,如上例波特 率为1200则每位传送时间为 T = 0.833ms 国际上规定的标准波特率系列为300、600、 1200、1800、2400、4800、9600和19200bit/s 。
1.异步通信中单个字符的校验方法 通常是在单个字符末位后面,附加一个校验位。 奇校验:根据数据中1的个数,决定校验 位是否置1。以使1的个数总和为奇数。
偶校验,根据数据中1的个数,决定校 验位是否置1,以使1的个数总和为偶数。 2.一组数据的校验方法
在一组数据之后发送数据代数和或在一组 数据之后加发数据异或值。
所有的串行通信的工作方式
:
1.异步方式:以帧作为传送单位,每一帧由起始位、 数据位、校验位和停止位组成,结构如图。
2.同步方式 同步方式仅在开始用若干字符作为同步号令, 然后连续发送数据,如图所示。由于没有在每一个 字符中,配置起始、停止位,所以结构紧凑,传输 效率高、速度快,其组成如下图所示:
同步传输方式比异步传输方式速度快,这是它的 优势。但同步传输方式也有其缺点,即它必须要 用一个时钟来协调收发器的工作,所以它的设备 也较复杂。 例如IIC通信,SPI通信等
图7-6
硬件UART结构图
工作原理:
接收数据时,串行数据由RXD端(Receive Data)经接收门 进入移位寄存器,再经移位寄存器输出并行数据到接收缓冲 器SBUF,最后通过数据总线送到CPU,是一个双缓冲结构, 以避免接收过程中出现帧重叠错误。 发送信息时,CPU将数据经过数据总线送给发送缓冲器SBUF 后,直接由控制器控制SBUF移位,经发送门输出至TXD,为 单缓冲结构,由于(CPU主动)不会发生帧重叠错误, 发送缓冲器与接收缓冲器在物理上是相互独立的,但在逻辑 上只有一个,共用地址单元99H。对发送缓冲器只存在写操 作,对接收缓冲器只能读操作。 接收和发送数据的速度由控制器发出的移位脉冲所控制,其 可由内部定时器T1产生的时钟获得,此时定时器T1作为波特 率发生器使用。
SM0、SM1:串行口的方式选择位,见表7-1。
SM2:方式2和方式3的多机通信控制位; REN:允许串行接收位。 TB8:在方式2和方式3中,发送的第9位数据,需要时由软件置 位或复位。 RB8:在方式2和方式3中,接收到的第9位数据; 在方式1时,RB8是接收到的停止位;在方式0,不使用 RB8。 TI:发送中断标志。TI必须由软件清“0” RI:接收中断标志,RI必须由软件清“0”。
3.方式2、方式3 串行口工作在方式2、方式3时,为9位异步通信口,1帧信息由11位组成,即 1位起始位、8位数据D0~D7(低位在前)、1位可编程的第9位D8(发送时, 第9位为SCON中的TB8;接收时,第9位为SCON中的RB8)及1位停止位,如图710所示。
图7-10
方式2、方式3数据格式
返回本章首页
单片机双机通信实验
一、数据缓冲器SBUF
发送数据
通过指令MOV SBUF,A将数据写入SBUF, 然后串口自动将数据按事先设置的方式及速率 从TXD(P3.1)端口输出,数据发送完毕,串口 向CPU申请中断,且通过硬件将TI置1,表示 发送已经结束,等待写入第二帧数据。
接收数据
当有数据送给单片机串口时,串口按事先设 置的方式及速率自动从端口TXD(P3.1) 接收数 据,数据校验正确后送SBUF,一帧数据接收完 毕 RI=1,串口向CPU请求中断且表示接收已 经结束。单片机只要通过执行: MOV A,SBUF
波特率的计算
• 例:某异步通讯接口的波特率为120,则该接口每 秒种传送 数据。 • 例:某串口异步通信接口,其字符帧格式为1个起 始位,1个校验位,8个数据位和一个停止位,当通 信接口每分钟传送1200位数据时,其传送波特率 为 。 • A.4800位 B.20位 C.600位 D.30位
四、串行通信的校验方式,
串行口的控制寄存器
MCS-51的串行口有四种工作方式,用户可以通过对串行 控制寄存器SCON编程来设定。此外,还有波特率控制寄存器 PCON,必须详细了解这些特殊功能寄存器,才能正确应用串 行通信接口。 1.串行口控制寄存器SCON 特殊功能寄存器SCON的地址为98H,具有位地址,可位 寻址,复位时为00H,其格式如下:
方式1:方式1为8位异步通信接口,1帧信息为10位,即1位起始 位(0)、8位数据(低位在前)及1位停止位(1), 如图7-9所示。TXD为发送端,RXD为接收端,波特率由定 时器发送: CPU向发送缓冲器SBUF写入一个数据后,便启动串行
口在TXD端输出帧信息,先发送起始位“0”,接着从低位开始 依次输出8位数据,最后输出停止位。发送完一帧信息后,发 送中断标志TI置“1”,向CPU请求中断。 (2)接收:当允许接收位REN置“1”后,接收器便采样RXD端电 平,当采样到“1”到“0”的跳变时,启动接收器接收。计数 器的16个状态把1位时间等分成16份,并在第7、8、9个计数状 态时,采样RXD电平。因此,每一位的数值采样三次,取其中 至少有两次相同的值为确认值。启动后,如果三次采样的确认 值不是“0”,则起始位无效,复位接收电路重新检测。如果 确认值为“0”,起始位有效,则开始按从低位到高位的顺序 接收一帧的数据信息。 必须注意,在方式1接收中设置有数据辨识功能:只有同时满 足以下两个条件时,接收到的数据才有效,才会将数据装入 SBUF,并置RI为“1”,向CPU请求中断;否则,所接收的数据 帧无效。当SM2=1时,接收到的停止位“1”装入RB8中。 ① RI=0。 ② 接收到停止位为“1”。
方式1的特点:
1)波特率可变 串口波特率由定时器T1产生,T1工作于方式 2 ,并决定于 T1 定时时间,而 T1 的定时时间决 定于装入的时间常数 N ,因此可根据时间常数 N推出波特率,即 SMOD
f OSC 波特率 32 (256 N ) 12 2
2)传送数据为8位,连同一位起始位、一位 停止位组成一帧,即一帧为10位,发送由TXD 输出,接收由RXD输入,可构成全双工的串行 通信端口。 例:设计波特率为4800b/s,晶振频率为 11.0592MHz,定时器T1工作在方式2, SMOD=0,则计数器初值为 。
MCS-51串行通信接口
• 单片机串口的特点:全双工、异步、串口 • 单片机串口由RXD和TXD构成。
• MCS-51单片机是 位CPU; • 串行通信接口中,数据是一位一 位按顺序向外传送的。 • 单片机是如何将数据进行串-并 以及并-串的转换?
7.2.1
通用的异步接收/发送器UART
在串行通信中,数据是一位一位按顺序进行传送的, 而计算机内部的数据是并行传输的。因此当计算机向外 发送数据时,必须先将并行数据转换为串行数据,然后 再发送;反之,当计算机接收数据时,又必须先将串行 数据转换为并行数据,然后再输入计算机内部。 MCS-51单片机串口有一个核心部件——通用的异步接 收/发送器,简称UART(Universal Asynohronous Receiver/Transmitter),就是完成并→串或串→并变 换的硬件电路,其结构如图7-6所示。
1)波特率固定为 fosc / 12 发送—位数据等于 一个机器周期。 2)不论是发送还是接收,数据都是从 RXD(P3.0) 端出入。 TXD 端而作为同步移 位脉冲输出端。 3)工作于方式0时,可将串行接口扩展为并 行接口,
7.2.3 串行接口的工作方式 串行通信接口有4种工作方式,它们由SCON中的SM0、SM1决定。下 面从应用的角度,重点讨论各种工作方式的功能特性和工作原理。
1.方式0——移位寄存器方式 方式0通过外接一个移位寄存器扩展一个并行的输入/输出口。 (1)发送 方式0发送时,串行口上外接74LS164移位寄存器。其接口如图7-7所示。 (2)接收 方式0接收时,串行口上外接并行输入串行输出移位寄存器74LS166,其接 口如图7-8所示。
DATA
图7-7
方式0发送接口图
第四节 串口初始化编程
一、计算波特率 串口方式0
波特率 f osc / 12
串口方式1和串口方式3
f OSC 2 SMOD 波特率 32 (256 N ) 12
串口方式2
2 SMOD 波特率 f OSC 64
二、对SCON、PCON、TMOD初始化
以设计一8051单片机控制系统为例,设主振频率为12MHz,要求串 口发送数据为8位、波特率为1200bps.则初始化步骤为: 1.先按波特率要求,计算T1的时间常数N,设SMOD=1。 已知主振频率为12MHz,波特率为1200bps.,串口工作于方式1,按式 7-4可求得 N=203.92≈0CCH 2.写出初始化程序 MOV SCON,#50H ;串行口工作于方式1 MOV PCON,#80H ;SMOD=1, MOV TMOD,#20H ;T1工作方式2定时方式 MOV THl,#0CCH ;设置时间常间为N MOV TLl,#0CCH ;自动装入时间常数 SETB TR1 ;启动T1
三串行通信的数据通路形式: 1. 单工方式:指通信双方, 一方只能发送,另一方只能接 收,传送方向是单一的。 2. 半双工方式 : 通信双方只 有一根传输线 ( 共地 ) ,但任何 一方都可以发送,当一方发送 时,另一方只能接收。 3. 全双工方式:需要通信双 方连接两条传输线 ( 共地 ) ,一 条是将数据从甲方送到乙方, 另一条是从乙方送到甲方。允 许双向同时发送。