51单片机串行通讯

合集下载

51单片机SCON

51单片机SCON

51单片机的简介——串行口、SCON51单片机有一个全双工串行通讯口,它即可作为UART(Universal AsynchronousReceiver/Transmitter),也可作为一个同步移位寄存器。

而且作为UART时,其具有多机通讯能力。

51单片机的串行口由发送控制、接收控制、波特率输入管理和发送/接收缓冲区SBUF(地址为99H)组成。

SBUF作为发送和接收缓冲区其实际是分开的两个器件,数据不会相互覆盖,但在对其寻址时都是99H,51单片机会根据读或者写指令操作相应的器件。

站在汇编角度来看,51单片机的串行口通讯操作体现为累加器Acc(地址E0H)和发送/接收缓冲区SBUF之间的数据传递。

当我们要发送数据时,对串行口完成初始化设置后,数据由累加器A传入SBUF,然后在发送控制器的控制下组成帧结构,并自动从TXD端口发出,发送结束后置位TI(TI是特殊功能寄存器SCON的可独立寻址位,参见SCON介绍),如果要继续发送就在指令中将TI清0。

接收数据时,相当于对串口完成初始化设置后,数据由SBUF传入累加器Acc,在置位允许位(即设置SCON的独立寻址位REN为1)后才开始进行串行接收操作,在接收控制器控制下,通过移位寄存器将串行数据输入SBUF,接收结束后将RI(SCON中可独立寻址位)置位,最后将数据送累加器Acc。

特殊功能寄存器SCON是串行口控制寄存器,用于存放串行口的控制和状态信息,其地址为98H,具有位寻址功能,其各位的结构如下图所示:其中各个位的功能及含义如下:SM0、SM1:串行口工作方式选择位,其组合含义如下图所示:SM2:多机通讯控制位。

在方式2和方式3中用于多机通讯控制,在方式2、方式3的接收状态中,若SM2=1,当接收到的第9位(同时系统将第9位值赋予RB8)为0时,舍弃接收到的数据,RI置0;若第9位为1时,将接收到的数据送入接收SBUF中,并将RI置1;而对于方式1,接收到有效的停止位时,将RI置1。

51单片机串口通信(相关例程)

51单片机串口通信(相关例程)

51单片机串口通信(相关例程) 51单片机串口通信(相关例程)一、简介51单片机是一种常用的微控制器,它具有体积小、功耗低、易于编程等特点,被广泛应用于各种电子设备和嵌入式系统中。

串口通信是51单片机的常见应用之一,通过串口通信,可以使单片机与其他外部设备进行数据交互和通信。

本文将介绍51单片机串口通信的相关例程,并提供一些实用的编程代码。

二、串口通信基础知识1. 串口通信原理串口通信是通过串行数据传输的方式,在数据传输过程中,将信息分为一个个字节进行传输。

在51单片机中,常用的串口通信标准包括RS232、RS485等。

其中,RS232是一种常用的串口标准,具有常见的DB-9或DB-25连接器。

2. 串口通信参数在进行串口通信时,需要设置一些参数,如波特率、数据位、停止位和校验位等。

波特率表示在单位时间内传输的比特数,常见的波特率有9600、115200等。

数据位表示每个数据字节中的位数,一般为8位。

停止位表示停止数据传输的时间,常用的停止位有1位和2位。

校验位用于数据传输的错误检测和纠正。

三、串口通信例程介绍下面是几个常见的51单片机串口通信的例程,提供给读者参考和学习:1. 串口发送数据```C#include <reg51.h>void UART_Init(){TMOD = 0x20; // 设置计数器1为工作方式2(8位自动重装) TH1 = 0xFD; // 设置波特率为9600SCON = 0x50; // 设置串口工作方式1,允许串行接收TR1 = 1; // 启动计数器1}void UART_SendChar(unsigned char dat){SBUF = dat; // 发送数据while (!TI); // 等待发送完成TI = 0; // 清除发送完成标志}void main(){UART_Init(); // 初始化串口while (1){UART_SendChar('A'); // 发送字母A}}```2. 串口接收数据```C#include <reg51.h>void UART_Init(){TMOD = 0x20; // 设置计数器1为工作方式2(8位自动重装) TH1 = 0xFD; // 设置波特率为9600SCON = 0x50; // 设置串口工作方式1,允许串行接收TR1 = 1; // 启动计数器1}void UART_Recv(){unsigned char dat;if (RI) // 检测是否接收到数据{dat = SBUF; // 读取接收到的数据 RI = 0; // 清除接收中断标志// 处理接收到的数据}}void main(){UART_Init(); // 初始化串口EA = 1; // 允许中断ES = 1; // 允许串口中断while (1)// 主循环处理其他任务}}```3. 串口发送字符串```C#include <reg51.h>void UART_Init(){TMOD = 0x20; // 设置计数器1为工作方式2(8位自动重装) TH1 = 0xFD; // 设置波特率为9600SCON = 0x50; // 设置串口工作方式1,允许串行接收TR1 = 1; // 启动计数器1}void UART_SendString(unsigned char *str){while (*str != '\0')SBUF = *str; // 逐个发送字符while (!TI); // 等待发送完成TI = 0; // 清除发送完成标志str++; // 指针指向下一个字符}}void main(){UART_Init(); // 初始化串口while (1){UART_SendString("Hello, World!"); // 发送字符串}}```四、总结本文介绍了51单片机串口通信的基础知识和相关编程例程,包括串口发送数据、串口接收数据和串口发送字符串。

MCS-51单片机串行通信的控制寄存器

MCS-51单片机串行通信的控制寄存器
单片机原理及应用
MCS-51单片机串行通信的控制寄存器
1. 串行口控制寄存器(SCON)
SCON是MCS-51单片机的一个可位寻址的专用寄存器,用于 串行数据通信的控制。单元地址为98H,位地址为98H~9FH。寄 存器的内容及位地址表示如下:
位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
与串行通信有关的只有D7位(SMOD),该位为波特率倍增 位,当SMOD=1时,串行口波特率增加一倍,当SMOD=0时,串
行口波特率为设定值。当系统复位时,SMOD=0。
单片机原理及应用
4) TB8——发送数据位8 在方式2、3时,TB8的内容是要发送的第9位数据,其值由
用户通过软件来设置。
5) RB8——接收数据位8 在方式2、3时,RB8是接收的第9位数据。 在方式1时,RB8是接收的停止位 在方式0时,不使用RB8
6) TI——发送中断标志位
在方式0时,发送完第8位数据后,该位由硬件置位。
位符号 SM0 SM1 S
1) SM0 、SM1——串行口工作方式选择位
其状态组合和对应工作方式为:
SM0 SM1
工作方式
00
方式0
01
方式1
10
方式2
11
方式3
2) M2——允许方式2、3的多机通信控制位 在方式2和3中,若SM2=1且接收到的第九位数据(RB8)
RI由软件清“0”。
2. 电源控制寄存器(PCON)
PCON 不 可 位 寻 址 , 字 节 地 址 为 87H 。 它 主 要 是 为 CHMOS型单片机80C51的电源控制而设置的专用寄存器。 其内容如下:
位序
D7
D6
D5

51单片机串口通信

51单片机串口通信

一、串口通信原理串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。

由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。

串口通信的工作原理请同学们参看教科书。

以下对串口通信中一些需要同学们注意的地方作一点说明:1、波特率选择波特率(Boud Rate)就是在串口通信中每秒能够发送的位数(bits/second)。

MSC-51串行端口在四种工作模式下有不同的波特率计算方法。

其中,模式0和模式2波特率计算很简单,请同学们参看教科书;模式1和模式3的波特率选择相同,故在此仅以工作模式1为例来说明串口通信波特率的选择。

在串行端口工作于模式1,其波特率将由计时/计数器1来产生,通常设置定时器工作于模式2(自动再加模式)。

在此模式下波特率计算公式为:波特率=(1+SMOD)*晶振频率/(384*(256-TH1))其中,SMOD——寄存器PCON的第7位,称为波特率倍增位;TH1——定时器的重载值。

在选择波特率的时候需要考虑两点:首先,系统需要的通信速率。

这要根据系统的运作特点,确定通信的频率范围。

然后考虑通信时钟误差。

使用同一晶振频率在选择不同的通信速率时通信时钟误差会有很大差别。

为了通信的稳定,我们应该尽量选择时钟误差最小的频率进行通信。

下面举例说明波特率选择过程:假设系统要求的通信频率在20000bit/s以下,晶振频率为12MHz,设置SMOD=1(即波特率倍增)。

则TH1=256-62500/波特率根据波特率取值表,我们知道可以选取的波特率有:1200,2400,4800,9600,19200。

列计数器重载值,通信误差如下表:因此,在通信中,最好选用波特率为1200,2400,4800中的一个。

2、通信协议的使用通信协议是通信设备在通信前的约定。

单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。

假定我们需要在PC机与单片机之间进行通信,在双方程式设计过程中,有如下约定:0xA1:单片机读取P0端口数据,并将读取数据返回PC机;0xA2:单片机从PC机接收一段控制数据;0xA3:单片机操作成功信息。

51单片机串口通信程序。。含详细例子

51单片机串口通信程序。。含详细例子

{ P3_4=0; P3_3=1;
} void RstPro()//编程器复位 {
pw.fpProOver();//直接编程结束 SendData();//通知上位机,表示编程器就绪,可以直接用此函数因为协议号(ComBuf[0])还没被修改,下同 }
void ReadSign()//读特征字 {
} void serial () interrupt 4 using 3 //串口接收中断函数 {
if (RI) { RI = 0 ; ch=SBUF; read_flag= 1 ; //就置位取数标志 }
} main()
{ init_serialcom(); //初始化串口 while ( 1 ) { if (read_flag) //如果取数标志已置位,就将读到的数从串口发出 { read_flag= 0 ; //取数标志清 0 send_char_com(ch); } }
while(RI == 0); RI = 0; c = SBUF; // 从缓冲区中把接收的字符放入 c 中 SBUF = c; // 要发送的字符放入缓冲区 while(TI == 0); TI = 0; } }
4.//////////////// /////////////////////////////////////////////////////////
SendData(); } else break;//等待回应失败 } pw.fpProOver();//操作结束设置为运行状态 ComBuf[0]=0;//通知上位机编程器进入就绪状态 SendData(); }
void Lock()//写锁定位
{
pw.fpLock();
SendData();

51单片机串行口的工作方式

51单片机串行口的工作方式
☞再比如要显示“3” 须令a b c d g 为“0” 电平,e f h为“1”电平。
hgfedcba
a
fg b
e
c
dh
共阳极
累加器 A hgfedcba
0C0H = “0”
0B0H = “3”
例:利用串行口工作方式0扩展出8位并行I/O 口,驱动共阳LED数码管显示0—9。
VCC TxD RxD
☞方式2的波特率 = fosc 2SMOD/64 即: fosc 1/32 或 fosc 1/64 两种
☞奇偶校验是检验串行通信双方传输的数据正确与 否的一个措施,并不能保证通信数据的传输一定正 确。
换言之:如果奇偶校验发生错误,表明数据传输 一定出错了;如果奇偶校验没有出错,绝不等于数 据传输完全正确。
☞ REN:串行口接收允许位。 REN=1 允许接收
☞ TB8,RB8,TI,RI等位由运行中间的情况 决定,可先写成 “0”
三、工作方式2: 9位UART(1+8+1+1位)两种波特率
☞由于波特率固定,常用于单片机间通讯。 数据由8+1位组成,通常附加的一位 (TB8/RB8)用于“奇偶校验”。
☞ 溢出率:T1溢出的频繁程度 即:T1溢出一次所需时间的倒数。
☞ 波特率 =
2SMOD fosc 32 12(2n - X)
其中:X 是定时器初值
☞ 初值 X = 2n -
2SMOD fosc 32 波特率 12
常用波特率和T1初值查表
☞表格有多种, 晶振也不止一种
串口波特率 (方式1,3)
74LS164
hgfedcba
A B
CLK
CLR
74LS164

MCS-51单片机串行通信

MCS-51单片机串行通信

9.1 串行通信概述
• ④停止位 表示发送一个数据的结束,用高电平表示,占1 位、1.5 位或2 位。 • 线路空闲时,线路处于逻辑“1”等待状态,即空闲位为1。 空闲位是异步通信特征之一。异步通信中数据传送格式如 图9.1 所示。 • 图9.1 异步通信数据帧格式
图9.1 异步通信数据帧格式
9.1 串行通信概述
9.1 串行通信概述
• 3.波特率 • 波特率是数据传递的速率,指每秒传送二进制数据的位数, 单位为位/秒(bit/s)。 • 例9.1 假设微型打印机最快的传送速率为30 字符/秒,每 个字符为10 位,计算波特率。 • 解: • 波特率=10 b/字符×30字符/s=300 b/s • 每一位代码的传送时间Td 为波特率的倒数: • Td=1/300=3.3 ms • 异步通信的波特率一般在50~19 200 b/s 之间,常用于 计算机到终端机和打印机之间的通信、直通电报以及无线 电通信的数据发送等。
异步10位收发 异步11位收发 异步11位收发
9.2 串行口结构与工作原理
• SM2:多机通信控制位。 • a.用于方式2和方式3。若SM2=1,则允许多机通信。 多机通信协议规定,若第9位数据(RB8)为1,则表明本帧 数据为地址帧。否则,若第9位数据(RB8)为0,则表明本 帧数据为数据帧。 • 当一个8051(主机)与多个8051(从机)进行通信时,令所有 从机的SM2都置1。主机要与某个从机通信,首先发送一 个与该从机相一致的地址帧(每个从机的地址必须惟一), 且第9位为1,所有从机接收到数据后,将第9位送入RB8 中。 • 若RB8=1,说明是地址帧,将数据装入SBUF,且置RI =1,即中断所有从机,若从机判断出该地址帧数据与本 机号(地址)一致,则置SM2=0,准备接收主机发来的数 据。其他从机仍然保持SM2=1。

实验四 串行通信实验

实验四  串行通信实验

实验四 串行通信实验一、实验目的1.了解51单片机串行口的结构、串行通讯的原理。

2.掌握51单片机与PC 机之间通讯的方法。

3. 学习系统应用程序的设计和调试二、实验设备PC 机一台 、 实验教学板一块。

三、实验原理51单片机的串行接口是全双工的,它能做异步接收器/发送器(UART ),也能做同步移位寄存器使用。

在做UART 使用时,相关的寄存器有SBUF 、SCON 、和PCON 中的波特率倍增位SMOD 。

SBUF 是数据发送缓冲器和接收缓冲器,逻辑上用同一个地址,物理上是分开的,用读写操作来选择。

SCON 是串行口控制寄存器,用于设定串行口的工作方式;保存方式2和方式3的第9位数据;存放发送、接收的中断标志。

在串行通讯的方式1和方式3中,通信的波特率是可以设置的,满足下式:2/132SMOD=⨯波特率(定时器计数器的溢出率)PC 机的串行通讯口是借助通用异步接收发送器8250(或16C550等)实现的,可使用comdebug.exe 等提供了有关串行口的收、发操作窗口的软件实现通讯。

PC 机的串行通讯采用RS232电平,因此要求单片机的实验板也要配置RS232接口,解决逻辑电平的配接。

如果通讯距离较远,则要配接调制解调器。

四、实验内容1, 自发自收用一根短路线,将实验板中RS232插口的RXD 和TXD 两个插孔短路。

然后编程设定串行口为工作方式1,传送55H 和0AAH 两个数据。

实验要求:程序采用查询方式。

每传送、接收一个数据,做一次检查,看是否正确,若两次都正确,则在显示器上显示“GOOD”,若不正确,则不显示,并要重新传送。

2, 单片机与PC 机的通信先使用通讯电缆将单片机的RS232接口与PC 机的COM1口连接,PC 机起动并运行comdebug.exe 软件,窗口上设置波特率为1200,8位数据、一个停止位。

单片机端也采用工作方式1,波特率为1200,完成单片机与PC 机的通信。

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

一、串行通讯
串行通信中,数据流以串行方式逐位地在一条信道上传 输,每次只能发送或接收一个数据位。 串行通信的特点是: 硬件上最少,只需要一对传输线即可完成,数据传送按 位进行,适用于数据位数多、远距离传输场合。串行通信 使得设备之间的连线大为减少,但也带来了数据的串/并转 换、并/串转换以及位计数等问题。 1、传送编码:常用的如美国信息交换码。也可以不用编码。
第七章 单片机串行通信
本章在介绍串行通信基础知识之后,介绍单片机 串行口的结构、特点、工作方式以及单片机双机、 多机、单片机与PC机之间的通信技术。
7-1 串行通信基础
通常把计算机与外界的数据传输称为通信,计算机的数据 通信方式有两种:并行通信和串行通信。 并行通信是将数据以成组的方式在两条以上的并行通道上 传输。它可以同时传输一组数据位,每个数据位使用单独的 一条导线。因此,并行通信的物理信道为并行内总线或并行 外总线。并行通信的特点是:硬件上有多根数据线,各数据 位同时传送,速度快,效率高,传送距离通常小于30米。如 计算机和外围设备之间的通信,CPU、存储器模块和设备控 制器之间的通信等。
常用的公认通讯标准:
1、 EIA-232-D接口标准
• EIA-232-D是由美国电子工业协会正式公布的串行总线标准,也是目前 最常用的串行接口标准,用来实现计算机之间、计算机与外设之间的数据通 信。EIA-232-D总线接口适用于设备之间距离不大于15米,传输速度最大 20kb/s。 EIA-232-D信号引脚定义 EIA-232-D定义了22根线,采用标准25芯 (DB-25) 插 头座,在EIA-232中描述的连接器还有DB-9。如后面表所示。 电气特性 • EIA-232-D采用负逻辑,即: • 逻辑“1”:-3V~-15V ;逻辑“0”:+3V~+15V • EIA-232-D的逻辑电平与TTL电平不兼容,为了与TTL器件相连必须进 行电平转换。
接收数据
通过指令MOV A , SBUF,使串口按事先设置的方式及 速率自动从端口TXD(P3.1) 接收数据,一帧数据接收完毕 RI=1,串口向CPU请求中断且表示接收已经结束。
3、可用软件控制串行口工作方式
控制寄存器SCON SCON各位定义 D7 D6 D5 D4 D3 SM0 SM1 SM2 REN TB8 D2 RB8 D1 TI D0 RI
二、方式0的用法
方式0工作性能:
1)波特率固定为 f /12, 发送—位数据等于一个机器周期。
2)不论是发送还是接收,数据都是从RXD(P3.0)端出入。TXD端 作为同步移位脉冲输出端。 3)工作于方式0时,可将串行接口扩展为并行接口,而其他三种 工作方式,则主要用于通信。 选择方式0: MOV SCON , #00H
2)传送数据为8位,连同一位起始位、一位停止 位组成一帧,即一帧为10位,发送由TXD输出, 接收由RXD输入,可构成全双工的串行通信端 口。
电源管理寄存器PCON PCON主要是为了在CHMOS型单片机上实现电源 控制而设置的专用寄存器,单元地址是87H,不可位寻 址。其格式如下:
PCON 地址(87H) D7 SMOD D6 — D5 — D4 — D3 GF1 D2 GF0 D1 PD D0 IDL
信号 引脚 TxD RxD 3 2 7 8 6 1 4 5
(b) 全握手 图 EIA-232端口的直接连接
引脚 信号 3 2 7 8 6 1 4 5 TxD RxD RTS CTS DSR CD DTR GND
信号 引脚 TxD RxD GND 3 2 5
引脚 信号 3 2 5 TxD RxD GND
2、接收工作过程
在REN位置 1 时,RXD 开始接收,当采样到RXD由1到0 的跳变后(起始位),串行口按照程序设定格式接收一帧代码, 并将此码的数据拼接成并行码送入接收缓冲器,在RI =0,且 停止位为 1 时保存结果,否则放弃(CPU自动控制);把停止 位1 送到 RB8 位,接收完成后置位 RI= 1 。 注意点:方式1 接收时,RI 与 SM2 位先清零; 接收波特率与发送波特率确定方法相同。
方式0的工作时序
方式0的应用
串行口扩展为并行输出口
选 通
选通
串行口扩展为并行输人口
选通
三、串口工作方式1的用法
串行异步通讯,适用于点对点通讯
1)波特率可变 串口波特率由定时器T1产生,并决定于T1定 时时间,而T1的定时时间决定于装入的时间常 数N,因此可根据时间常数N推出波特率,即
fOSC 2SMOD 波特率 32 ቤተ መጻሕፍቲ ባይዱ256 N ) 12
SMOD是串行口波特率倍增位,当SMOD = 1时,串 行口波特率加倍。系统复位时默认为SMOD = 0。 PCON中的其余各位用于MCS-51单片机的电源控制。
1、发送工作过程
TI=0时,执行MOV SBUF, #data 指令, #data 就从 TXD 端发出去,在发出停止位 1 时,置位 TI,申请中断,发 送波特率由前面公式确定。 说明:通讯时,T1 作为波特率控制器,应工作在方式2, 而且不能中断。
Mark
起 始 位 位时间 帧 数 据 位 D0 数 据 位 D1 数 据 位 Dn-1 校 验 位 停止位 起 始 位
(1)起始位。通信线在没有数据传输时处于逻辑“1”状态,当发送器
要发送一个字符的数据时,首先发送一个逻辑“0”信号,表示其后
所传输的为数据。起始位表示字符传输开始。
(2) 数据位。起始位之后为数据位。数据位的个数是5、6、7或8位 (取决于协议规定),低位在前,高位在后。
方式1的工作时序
3、串口初始化举例
• 以设计一8051单片机控制系统为例,设主振频率为 12MHz,要求串口接收、发送数据为8位、波特率为 1200bps.则初始化步骤为: • 1、先按波特率要求,计算T1的时间常数N,设SMOD=1。
已知主振频率为12MHz,波特率为1200bps.,串口工作于方式1,按公式可 求得
三、串行通讯的方向:单工、半双工、全双工通信方式
串行数据通信有三种数据通路形式:单工(Simplex) 、半双工
(Half-duplex) 、全双工(Full-duplex)
TxD 数据线 RxD
TxD

GND

数据线
RxD TxD


GND
RxD GND
GND
单工形式串行通信图
TxD 数据线 数据线 RxD TxD
1 1 2
2、同步方式
同步方式仅在开始用若干字符作为同步号令,然后连 续发送数据,不但在一帧内各位要保持同步,而且同步 号令之后的所有字符之间也保持同步,如图所示。由于 没有在每一个字符中,配置起始、停止位,所以结构紧 凑,传输效率高、速度快,要求硬件有准确的时钟,其组 成如下图所示: 特点:效率高,但硬件复杂,要求发送、接收双方保持完 全同步,需要同步信号线。
半双工形式串行通信


GND
RxD GND
全双工形式串行通信
四、通讯标准
指通讯双方采用的规则:包括硬件协议与软件协议。 硬件协议:硬件接线方式 软件协议:字符格式、编码形式、奇偶校验形式、停止位及 通讯双方采用的波特率等等。 单片机串行通讯往往采用异步方式, 通讯软件协议往往采用自由协议(编程者自己定义的)。
程序如下(以子程序的形式给出):
;发送程序清单: ORG 0000H ASTART:CLR EA MOV TMOD,#20H MOV TH1,#0F4H MOV TL1,#0F4H MOV PCON,#00H SETB TR1 MOV SCON,#50H ;启动定时器 ;设定串口方式 1,且准备接收应答信号 ;定时器 1 置为方式 2 ;装载定时器初值,波特率 2400 b/s
2、传送速率:用波特率表示,位/秒
串行通信中常用的标准波特率有:600、1200、2400、 4800、9600、19200等
二、串行通信有两种基本通信方式:同步通 信和异步通信。
1. 串行异步通信方式
异步串行通信以字符为单位,以相同的帧格式传送。每一帧信息 由起始位,数据位,奇偶校验位和停止位组成。如图所示。
;串行口工作于方式1 ;SMOD=1, ;T1工作方式2定时方式 ;设置时间常间为N ;自动装入时间常数 ;启动T1
4、双机通信程序举例
[例]设1号机是发送方,2号机是接收方。当1号机发送时,先发送 一个“E1”联络信号,2号机收到后回答一个“E2”应答信号,表 示 同意接收。当1号机收到应答信号“E2”后,开始发送数据,每 发 送一个字节数据都要计算校验和,假定数据块长度为16 B,起 始地址为40H,一个数据块发送完毕后立即发送校验和。2号机 接收数据并转存到数据缓冲区,起始地址也为40H,每接收到一 个字节数据便计算一次校验和,当收到一个数据块后,再接收1 号机发来的校验和,并将它与2号机求出的校验和进行比较。若 两者相等,说明接收正确,2号机回答00H;若两者不相等,说 明接收不正确,2号机回答0FFH,请求重发。1号机接到00H后 结束发送,若收到的答复非零,则重新发送数据一次。 双方约定采用串行口方式1进行通信,一帧信息为10位,其中 有1个起始位、8个数据位和1个停止位;波特率为2400 b/s,T1 工作在定时器方式2,单片机时钟振荡频率选用11.0592 MHz, PCON寄存器的SMOD位为0。
RTS CTS DSR CD DTR GND
(a) 无握手
7--2 8051串行通讯 一、8051串口特点
1、串口信号线:P3.0(10脚):RSD 接收 P3.1 (11脚):TXD 发送 ;全双工方式。 2、有缓冲接收、发送功能
发送数据
通过指令MOV SBUF,A将数据写入SBUF,然后串口自动 将数据按事先设置的方式及速率从TXD(P3.1)端口输出, 数据发送完毕,串口向CPU申请中断,且通过硬件将TI置1, 表示发送已经结束,等待写入第二帧数据。
相关文档
最新文档