单片机双机通信

合集下载

单片机双机串口通信

单片机双机串口通信

单片机双机串口通信在现代电子技术领域,单片机的应用无处不在。

而单片机之间的通信则是实现复杂系统功能的关键之一。

其中,双机串口通信是一种常见且重要的通信方式。

什么是单片机双机串口通信呢?简单来说,就是让两个单片机能够通过串口相互交换数据和信息。

想象一下,两个单片机就像是两个小伙伴,它们需要交流分享彼此的“想法”和“知识”,串口通信就是它们交流的“语言”。

串口通信,顾名思义,是通过串行的方式来传输数据。

这和我们日常生活中并行传输数据有所不同。

在并行传输中,多个数据位同时传输;而在串行传输中,数据一位一位地按顺序传送。

虽然串行传输速度相对较慢,但它所需的硬件连线简单,成本较低,对于单片机这种资源有限的设备来说,是一种非常实用的通信方式。

在进行单片机双机串口通信时,我们首先要了解串口通信的一些基本参数。

比如波特率,它决定了数据传输的速度。

就像两个人说话的快慢,如果波特率设置得不一致,那么双方就无法正常理解对方的意思,数据传输就会出错。

常见的波特率有 9600、115200 等。

还有数据位、停止位和校验位。

数据位决定了每次传输的数据长度,常见的有 8 位;停止位表示一个数据帧的结束,通常是 1 位或 2 位;校验位则用于检验数据传输的正确性,有奇校验、偶校验和无校验等方式。

为了实现双机串口通信,我们需要在两个单片机上分别进行编程。

编程的主要任务包括初始化串口、设置通信参数、发送数据和接收数据。

初始化串口时,我们要配置好相关的寄存器,使其工作在我们期望的模式下。

比如设置波特率发生器的数值,以确定合适的波特率。

发送数据相对来说比较简单。

我们将要发送的数据放入特定的寄存器中,然后启动发送操作,单片机就会自动将数据一位一位地通过串口发送出去。

接收数据则需要我们不断地检查接收标志位,以确定是否有新的数据到来。

当有新数据时,从接收寄存器中读取数据,并进行相应的处理。

在实际应用中,单片机双机串口通信有着广泛的用途。

比如在一个温度监测系统中,一个单片机负责采集温度数据,另一个单片机则负责将数据显示在屏幕上或者上传到网络。

单片机单片机课程设计-双机串行通信

单片机单片机课程设计-双机串行通信

单片机单片机课程设计-双机串行通信单片机课程设计双机串行通信在当今的电子信息领域,单片机的应用无处不在。

而双机串行通信作为单片机系统中的一个重要环节,为实现设备之间的数据交换和协同工作提供了关键的技术支持。

一、双机串行通信的基本原理双机串行通信是指两个单片机之间通过串行接口进行数据传输的过程。

串行通信相较于并行通信,具有线路简单、成本低、抗干扰能力强等优点。

在串行通信中,数据是一位一位地按顺序传输的。

常见的串行通信协议有 UART(通用异步收发器)、SPI(串行外设接口)和 I2C(内部集成电路)等。

在本次课程设计中,我们主要采用 UART 协议来实现双机串行通信。

UART 协议包括起始位、数据位、奇偶校验位和停止位。

起始位用于标识数据传输的开始,通常为逻辑 0;数据位可以是 5 位、6 位、7 位或 8 位,具体取决于通信双方的约定;奇偶校验位用于检验数据传输的正确性,可选择奇校验、偶校验或无校验;停止位用于标识数据传输的结束,通常为逻辑 1。

二、硬件设计为了实现双机串行通信,我们需要搭建相应的硬件电路。

首先,每个单片机都需要有一个串行通信接口,通常可以使用单片机自带的UART 模块。

在硬件连接方面,我们将两个单片机的发送端(TXD)和接收端(RXD)交叉连接。

即单片机 A 的 TXD 连接到单片机 B 的 RXD,单片机 B 的 TXD 连接到单片机 A 的 RXD。

同时,还需要共地以保证信号的参考电平一致。

此外,为了提高通信的稳定性和可靠性,我们可以在通信线路上添加一些滤波电容和上拉电阻。

三、软件设计软件设计是实现双机串行通信的核心部分。

在本次课程设计中,我们使用 C 语言来编写单片机的程序。

对于发送方单片机,首先需要对 UART 模块进行初始化,设置波特率、数据位、奇偶校验位和停止位等参数。

然后,将要发送的数据放入发送缓冲区,并通过 UART 发送函数将数据一位一位地发送出去。

对于接收方单片机,同样需要对 UART 模块进行初始化。

单片机单片机课程设计-双机串行通信

单片机单片机课程设计-双机串行通信

单片机单片机课程设计-双机串行通信摘要由单片机构成的双机通信系统采用总线型主从式结构。

程设计就是要利用单片机来完成一个系统,实现双片单片机串行通信。

通信的结果实用数码管进行显示,数码管采用查表方式显示。

所谓主从式结构,即在两个单片机中,一个主机负责通信管理,另一个为从机,从机要负责主机的调度与支配。

该设计用A T89C51芯片,并用C语言程序来控制A T89C51,使之能实现两个单片机之间的通信。

通信方式为单工通信,一个为主单片机,作为发送方,另一个为从单片机,作为接收方。

关键字:单片机.AT89C51.C语言目录摘要 (1)前言 (3)二绪论 (4)2.1单片机 (4)2.2C语言: (4)2.3双机通信 (5)三.系统分析 (6)3.1 基本原理 (6)3.2波特率选择 (7)3.3通信协议的使用 (7)四、硬件设计 (7)4.1单片机串行通信功能 (10)4.2 MAX232芯片 (12)4.3整体电路设计 (13)五、软件设计 (14)5.1串行通信软件实现 (14)5.2程序流程图 (14)六.联合调试 (17)总结 (18)参考文献 (23)前言近年来,在自动化控制和只能仪器仪表中,单片机的应用越来越广泛,由于单片机的运算功能较差,往往需要借助计算机系统,因此单片机和PC机进行远程通信更具有实际意义,通信的关键在于互传数据信息。

51单片机内部的串行口具有通信的功能,该串口可作为通信接口,利用该串口与PC机的串口通信进行串行通信,将单片机采集的数据进行整理及统计等复杂处理就能满足实际的应用需要。

51单片机的开发除了硬件支持外,同样离不开软件。

用汇编语言或C 语言等高级语言编写的源程序必须转化为机器码才能被执行。

目前流行的Keil 8051c编译器。

它提供了集成开发环境,包括C编译器、宏编码、连接器、库管理和仿真调制器。

利用keil 8051ccuvision编写的程序可直接调用编译器编译,连接后可直接运行。

单片机实现双机通信自己的

单片机实现双机通信自己的

单片机实现双机通信自己的单片机是一种集成电路芯片,可以实现各种功能。

双机通信是指两台或多台计算机通过网络或其他方式进行数据传输和通信的过程。

在很多应用中,需要使用单片机实现双机通信,以实现数据传输和信息交换等功能。

单片机实现双机通信的基本原理是通过通信端口(例如串口或网络接口等)进行数据的发送和接收。

在这个过程中,需要使用一些通信协议来规定数据的格式和传输的方式。

下面是一种基于串口通信的单片机双机通信的实现方法。

首先,我们需要确定通信的硬件配置。

通常情况下,可以通过串口连接两台单片机,其中一台设置为发送方,另外一台设置为接收方。

发送方将待发送的数据通过串口发送出去,接收方则接收这些数据。

在单片机程序代码的编写方面,我们需要首先配置串口的通信参数,例如波特率、数据位、停止位、奇偶校验等。

这些参数需要在发送方和接收方进行一致配置,以保证数据的正确传输。

接下来,我们需要实现发送和接收的程序。

首先,发送方需要将待发送的数据存储在发送缓冲区中,然后通过串口将数据发送出去。

接收方则需要实时监听串口接收缓冲区中是否有数据到达,并将接收到的数据存储在接收缓冲区中。

另外,为了保证数据的正确传输,通常还要实现一些数据校验机制,例如奇偶校验、循环冗余校验(CRC)等。

这些校验机制可以用于检测和纠正数据传输中的错误。

在程序编写的过程中,还需要考虑到程序的稳定性和容错性。

例如,在发送方发送数据时,可能会遇到发送缓冲区已满的情况,此时需要实现相应的处理机制,例如等待一段时间后再次发送。

同样,在接收方接收数据时,也可能会遇到接收缓冲区溢出的情况,此时需要及时处理,以避免数据的丢失。

最后,在实际应用中,还需要考虑一些高级的功能,例如数据压缩、加密、数据传输速度的控制等。

这些功能可以根据具体的需求进行实现。

总之,单片机实现双机通信是一项复杂的任务,需要考虑到硬件和软件两个方面的因素。

在程序编写的过程中,需要考虑到通信参数的配置、发送和接收的程序编写、数据校验、稳定性和容错性等方面的问题。

单片机与单片机之间的双向通信

单片机与单片机之间的双向通信

单片机与单片机之间的双向通信在现代电子技术领域,单片机扮演着至关重要的角色。

它们广泛应用于各种智能设备和控制系统中,从家用电器到工业自动化,从汽车电子到医疗设备,几乎无处不在。

而在很多复杂的应用场景中,常常需要多个单片机之间进行通信,以实现协同工作和数据共享。

其中,单片机与单片机之间的双向通信就是一种常见且关键的技术。

那么,什么是单片机之间的双向通信呢?简单来说,就是两个或多个单片机能够相互发送和接收数据。

想象一下,有两个单片机,就像是两个在对话的“小伙伴”,它们可以互相告诉对方自己的状态、采集到的数据或者发出控制指令,从而共同完成一个复杂的任务。

实现单片机之间双向通信的方式有多种,常见的包括串行通信和并行通信。

串行通信就像是单车道的公路,数据一位一位地按顺序传输。

它的优点是只需要少数几根线就能实现通信,节省了硬件资源,常见的串行通信方式有 UART(通用异步收发传输器)、SPI(串行外设接口)和 I2C(集成电路总线)等。

UART 是一种比较简单和常用的串行通信方式。

它不需要时钟信号,通过起始位、数据位、校验位和停止位来组成一帧数据进行传输。

在两个单片机之间使用 UART 通信时,需要分别设置好波特率、数据位长度、校验方式和停止位长度等参数,只有这些参数匹配,才能正确地收发数据。

SPI 则相对复杂一些,它需要四根线:时钟线(SCK)、主机输出从机输入线(MOSI)、主机输入从机输出线(MISO)和片选线(CS)。

SPI 通信速度较快,适合于高速数据传输的场景。

I2C 只需要两根线,即串行数据线(SDA)和串行时钟线(SCL),通过地址来区分不同的从设备,实现多设备通信。

并行通信则像是多车道的公路,可以同时传输多位数据。

它的传输速度快,但需要更多的引脚,硬件成本较高,并且在长距离传输时容易受到干扰。

在实际应用中,选择哪种通信方式取决于具体的需求。

如果对通信速度要求不高,而硬件资源有限,UART 或者I2C 可能是较好的选择;如果需要高速传输大量数据,SPI 或者并行通信可能更合适。

单片机双机通信实验报告

单片机双机通信实验报告

单片机双机通信实验报告
实验目的:
1. 了解单片机之间的串口通信原理;
2. 掌握单片机之间的双机通信方法;
3. 实现单片机之间的数据互相传输。

实验器材:
1. 单片机开发板(两块);
2. USB转串口模块(两个);
3. 杜邦线若干;
4. 电脑。

实验步骤:
首先,将单片机开发板和USB转串口模块进行连接,具体的连接方法如下:
1. 将USB转串口模块的TXD引脚连接到单片机开发板的RXD引脚上;
2. 将USB转串口模块的RXD引脚连接到单片机开发板的TXD引脚上;
3. 将USB转串口模块的GND引脚连接到单片机开发板的GND引脚上;
4. 将USB转串口模块的VCC引脚连接到单片机开发板的VCC引脚上。

接下来的步骤如下:
1. 打开两台电脑上的串口调试助手软件,并分别将波特率设置为相同的数值(例如9600);
2. 在一台电脑上,发送数据给另一台电脑。

具体的操作是在串口调试助手软件上输入要发送的数据,然后点击发送按钮;
3. 在另一台电脑上,接收来自第一台电脑发送的数据。

具体的操作是在串口调试助手软件上点击接收按钮,然后可以看到接收到的数据。

实验结果:
通过实验可以看到,单片机之间成功地实现了数据的双向传输。

一台单片机发送的数据可以被另一台单片机接收到。

实验总结:
本实验通过串口通信的方式实现了单片机之间的双机通信。

通过这种方式,可以方便地实现单片机之间的数据互相传输,可以用于各种应用场景,如传感器与控制器之间的数据传输等。

同时要注意,串口通信的波特率要设置一致,否则数据将无法正确接收。

单片机的双机串口通信原理

单片机的双机串口通信原理

单片机的双机串口通信原理单片机的双机串口通信原理是通过串口连接两个单片机,使它们能够进行数据的传输和通信。

串口是一种常见的通信方式,它使用两条信号线进行数据的传输:一条是串行数据线(TXD),用于发送数据;另一条是串行接收线(RXD),用于接收数据。

通过串口通信,两个单片机可以进行双向的数据传输,实现信息的互相交流和共享。

在双机串口通信中,一台单片机充当主机(Master),另一台单片机充当从机(Slave)。

主机负责发起通信请求并发送数据,从机负责接收并响应主机发送的数据。

通信过程中,主机和从机需要遵守相同的协议和通信规则,以确保数据的正确和可靠传输。

双机串口通信的主要步骤如下:1. 端口初始化:在双机串口通信开始之前,两台单片机的串口端口需要初始化。

主机和从机需要设置相同的波特率(Baud Rate),数据位数(Data Bits)、停止位数(Stop Bits)和校验方式(Parity Bit),确保两台单片机之间的通信能够正常进行。

2. 数据发送:主机将要发送的数据写入到串口发送寄存器中,然后通过串口发送线路将数据位一位一位地发送给从机。

主机发送完所有数据位后,等待从机的响应。

3. 数据接收:从机通过串口接收线路接收主机发送的数据位,然后将接收到的数据位存放在串口接收寄存器中,等待从机的处理。

4. 数据处理:从机接收到主机发送的数据后,根据通信协议和通信规则进行数据处理。

从机可能需要对数据进行校验、解析和执行相应的操作,然后将处理结果写入到串口发送寄存器中,以供主机进行相应的处理。

5. 响应发送:从机将处理结果写入到串口发送寄存器中,然后通过串口发送线路将数据位一位一位地发送给主机。

从机发送完所有数据位后,等待主机的进一步操作。

6. 数据接收:主机通过串口接收线路接收从机发送的数据位,然后将接收到的数据位存放在串口接收寄存器中,等待主机的处理。

7. 数据处理:主机接收到从机发送的数据后,根据通信协议和通信规则进行数据处理。

单片机双机通信接口应用

单片机双机通信接口应用

单片机双机通信接口应用在现代电子技术领域,单片机的应用越来越广泛。

单片机之间的通信成为实现复杂系统功能的关键环节之一。

双机通信接口的应用,为各种设备之间的数据交换和协同工作提供了有效的途径。

单片机,简单来说,就是在一块芯片上集成了微处理器、存储器、输入输出接口等功能部件的微型计算机。

它具有体积小、成本低、可靠性高、控制功能强等优点,被广泛应用于工业控制、智能仪表、家用电器、通信设备等众多领域。

双机通信,指的是两个单片机之间进行数据传输和信息交换。

实现双机通信的关键在于通信接口的选择和配置。

常见的双机通信接口方式有串行通信和并行通信。

串行通信是指数据一位一位地按顺序传输。

这种方式只需要少数几根数据线,就能在两个设备之间进行通信,因此硬件成本较低,连线简单。

串行通信又分为同步串行通信和异步串行通信。

异步串行通信相对简单,不需要时钟信号进行同步,通信双方按照约定的波特率和数据格式进行通信。

例如,常见的 UART(通用异步收发器)就是一种异步串行通信接口。

并行通信则是数据的各位同时进行传输。

它的传输速度快,但需要较多的数据线,硬件成本较高,连线也较为复杂。

在实际应用中,并行通信通常用于短距离、高速的数据传输。

在选择双机通信接口时,需要考虑多种因素,如通信距离、数据传输速率、系统复杂度、成本等。

如果通信距离较远,对传输速率要求不高,串行通信是一个较好的选择;如果需要高速传输大量数据,且通信距离较短,并行通信可能更为合适。

以两个基于 51 单片机的系统为例,来探讨一下双机通信的实现。

假设我们要实现一个温度监测系统,一个单片机负责采集温度数据,另一个单片机负责接收并处理这些数据,然后进行显示或控制。

对于串行通信,我们可以使用 UART 接口。

首先,需要对两个单片机的 UART 进行初始化设置,包括波特率、数据位、停止位、校验位等参数。

然后,发送方将温度数据按照约定的格式进行封装,并通过UART 发送出去;接收方则不断监测 UART 接收缓冲区,当有数据到达时,进行读取和解析。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

——UART方式1
UART的工作模式1 UART的工作模式1 的工作模式
串行口工作于方式1时,被控制为波特率可变的8位异步通信接口。 传送一帧信息为10位,即1位起始位(0),8位数据位(低位在先 )和1位停止位(1)。数据位由TXD发送,由RXD接收。波特率是 可变的,取决于定时器1或2的溢出速率。
《单片机C语言应用技术与实践》 语言应用技术与实践》
讲课稿
主讲人: 计算机科学与技术系 主讲人: 陈爱文
YangZhou Vocational college of environment and resources
项目8 项目8
单片机双机通信系统设计

知识目标: 知识目标: 1.单片机串行通信基础知识; 2.单片机与上位机通信基础知识 3.VB基础知识。
SCON的RI:接收中断标志。在方式0中串行接收到第8位结束时由硬件置 位。在其他方式中,在接收到停止位的中间时刻由硬件置位。RI=1时申请 中断,要求CPU取走数据。在任何工作方式中,该位必须由软件清 软件清0。在系 软件清 统复位时,SCON中的所有位都被清0。
——UART相关的寄存器
PCON与波特率控制 PCON与波特率控制
10K 10K
DM DP
——UART相关的寄存器
UART的控制寄存器SCON UART的控制寄存器SCON 的控制寄存器
1. 2. 3. 4. 5. 6. SM0,SM1:串行口操作方式选择位。 SM2:允许方式2和3的多机通信使能位。 REN:允许串行接收位。 TB8:方式2和3中要发送的第9位数据。 RB8:方式2和3中已接收到的第9位数据。 TI,RI:发送/接收中断标志。
• • • • •
任务2 单片机与PC通信 任务 单片机与 通信
• 2.1 提出任务 • 功能为利用键盘在PC机中输入一个6 字节(12位的0~9,A~F)的二进制数 ,然后用鼠标点击通信命令按钮,PC机 就将此二进制数发给单片机,单片机 收到此数后再原样发回,PC机收到后 显示在窗体上。试验者可通过肉眼比 较发送和接收的两个数据,检验通信 是否成功。 • 2.2 分析任务 • 1. 硬件电路设计 • PC机的某个串行口通过电缆线与 RS232收发器MAX232的232电平端 口三线交叉连接,如图8-8所示。 MAX232的逻辑电平端口与单片机的 串行口相连。PC机RS232的9针连接 器的4脚和6脚、7脚和8脚不用连接 。 • 图8-8 PC机与单片机的通信接口电 路框图
串串
RS232电电
1 6 2 7 3 8 4 9 5 GND
TX-G TXD RXD0
4 D11 104 C21 5 Rx-R 11 10 12 9
11 10 GND
+
+
T1IN T1OUT T2IN T2OUT R1OUT R1IN R2OUT R2IN
◇ 知识链接
• • • 二、MAX232基础知识 基础知识 1. MAX232简介 该产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。由于电脑串口 rs232电平是-10v +10v,而一般的单片机应用系统的信号电压是ttl电平0~+5v, max232就是用来进行电平转换的,该器件包含两个驱动器、两个接收器和一个电压发生 器电路提供TIA/EIA-232-F电平。该器件符合TIA/EIA-232-F标准,每一个接收器将 TIA/EIA-232-F电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换 成TIA/EIA-232-F电平。 2. 主要特点 (1) 单+5V电源工作 (2) 两个驱动器及两个接收器 (3) ±30V输入电平 (4) 低电源电流:典型值是8mA
PCON: PCON是一个特殊功能寄存器(如下图所示),没有位 寻址功能,字节地址为87H。 SMOD:其中D7位(SMOD)为波特率选择位。其他均无意义。 复位时的SMOD值为0。可用MOV PCON,#80H或MOV 87H, #80H指令使该位置1。当SMOD=1时,在串行口方式1,2或3情况 下,波特率提高一倍。
两机之间的发送和接收可以同时进行,称为全双工传送。
——MCS51的UART 数据格式
每字节10位,1位起始位、8位数据、1位停止位。 按照约定好的速率,一位一位的发送与接收。 举例:串口发送二进制数0b11101010
波特率
每秒传送的位数,单位bps。 9600bps:每个码元时间宽度为(1/9600)S
fosc/12 可变 fosc/64 或 fosc/32 可变
——UART相关的寄存器
UART的中断标志位TI与 UART的中断标志位TI与RI 的中断标志位TI
SCON的TI:发送中断标志。在方式0中当串行发送完第8位数据时由硬件置 位;在其他方式中,在发送停止位的开始时由硬件置位。当TI=1时,申请 中断,CPU响应中断后,可以发送下一帧数据。在任何方式中,该位都必须 软件清0。 由软件清 软件清
——MCS51的UART
USB转串口电路 USB转串口电路
对于新款的台式机以及笔记本电脑等没有串口的电脑,也可以用USB转 串口的芯片,给电脑扩展出一个串口用于与单片机通信。
GND U34 RXD2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 TXD DTR RTS VDD_232 RXD RI GND VDD DSR CTS CS SHTD EE_CLK EE_DATA PL2303 GND OSC2 OSC1 PLL_TEST GND_PLL VDD_PLL LD_MODE TRI_MODE GND VDD RESET GND_3V3 VDD_3V3 DM DP 28 27 26 25 24 23 22 21 20 19 18 17 16 15 C15 22P X3 GND 12M C16 22P UVCC PVCC 000 R29
串行接口的结构
——MCS51பைடு நூலகம்UART
电平转换电路
PC 机 的 串 口 是 RS232 电 平 标 准 (+15V~’0’,-15V~’1’) , 而 显 然 MCS51的UART是5V-TTL电平标准,因此需要加上电平转换电路,方 可实现与PC机串口的通讯。
VCC R27 1K D10 VCC 1 R28 104 C19 1K 3 U35 C1+ C1C2+ C2MAX232A VCC V+ VGND VCC 16 C18 P10 2 104 6 C20 104 15 14 7 13 8 GND 232T 232R
——UART的波特率设置
定时器1 定时器2 定时器1、定时器2与波特率控制
方式1和3的波特率由定时器1或定时器2的溢出率所决定,通常设定相应定 时器工作于自动重装模式。 当定时器1作波特率发生器时,波特率由下式确定: 波特率=(定时器1溢出率)/n 定时器1初值 = 256 - Fosc/(n*12*波特率) • 式中:n为32或16,取决于特殊功能寄存器PCON中的SMOD位的状态。若 SMOD=0,则n=32。若SMOD=1,则n=16。Fosc为单片机晶振频率。 当定时器2作波特率发生器时,波特率由下式确定: 波特率=(定时器2溢出率)*12/32 定时器2初值 = 65536 - Fosc/(32*波特率)
——MCS51的UART 管脚定义与硬件连接
TXD:发送脚,与P3.1复用 RXD:接收脚,与P3.0复用 当UART正常工作时,P3.0和P3.1不能作为普通IO口使用 2个UART互联通信时,需要交叉连接
任务1 任务 单片机双机通信设计
串行接口的结构 (1)数据缓冲寄存器SBUF 两个SBUF,一个用于发送 (只写);一个用于接收( 只读)。映象地址均为99H (2)数据发送与接收控制 发送控制器在波特率作用下 ,将发送SBUF中的数据由 并到串,一位位地传输到发 送端口;接收控制器在波特 率作用下,将接收接收端口 的数据由串到并,存入接收 SBUF中。
——同步串口与异步串口
同步串口
具有至少1根时钟线、1~2根数据线的串行通讯方式,利用时钟沿对齐数据, 所以此种通讯较为可靠,可以实现很高的通讯速率(1Mbps以上,可达Gbps 级别)。SPI、IIC、IIS都属于同步串口。
异步串口
无专门的时钟线,只有1~2根数据线,收发双发依据事先约定好的位速率确 定各个数据位的时间位置,所以此种通讯方式可靠性相对差一些,速率在 1Mbps以下。双线的异步串口最常见的是UART,以及衍生出的RS232、 RS485等。美信公司的1-WIRE总线属于1根线的异步串口,温度传感器 DS18B20就使用了此种总线接口。
——UART使用步骤
1. 设 置 串 口 工 作 模 式 。 SCON 的 SM0=0 , SM1=1 使 其 工 作 于 模 式 1 , REN=1使能接收。 2. 根据波特率计算公式设置波特率。注意,需要使定时器工作于自动重装模 式。使用定时器2可以达到较高的波特率。 3. 波特率是否需要倍速。如果使用定时器1做波特率发生器且倍速后方能满 足波特率要求,则需要PCON=0x80。PCON不影响定时器2产生的波特 率。 4. 串口中断。一般来讲串口发送均会采用查询模式,串口接收较多采用中断 模式。ES=1可以打开串口中断,随后要EA=1打开全局中断。注意,要 写好中断服务函数,而且MCS51的串口收发中断共用,因此中断服务函 数中需要判断TI与RI的值。中断向量标号是4。 5. 向SBUF写入数据启动串口发送,读SBUF可以取出接收到的数据
——UART相关的寄存器 UART的四种工作模式 UART的四种工作模式
SCON的SM0,SM1:串行口操作方式选择位,两个选择位对应于四种状态 ,所以串行口能以四种方式工作。
串行口方式选择 SM0 0 0 1 1 SM1 方 0 1 0 1 0 1 2 3 式 功 能 说 明 移位寄存器方式 8 位 UART 9 位 UART 9 位 UART 波 特 率
相关文档
最新文档