9第九章CS-51串行通信

合集下载

串行通信概念及51系列单片机的串行口问题

串行通信概念及51系列单片机的串行口问题
波特率
波特率是衡量数据传输速率的参数,表示每秒钟传输的位数。在串行通信中,发送和接收 设备必须使用相同的波特率才能正常通信。51系列单片机提供了可编程的波特率设置, 方便用户根据需要进行调整。
串行口接收数据
01
接收数据
与发送数据类似,通过串行口接收数据也是单片机与外部设备进行通信
的一种方式。在51系列单片机中,通常使用RXD(接收数据)引脚接
针对不同原因导致的错误,解决方案 也有所不同。对于硬件故障,需要检 查硬件连接和单片机工作状态;对于 软件错误,需要检查代码实现和逻辑 错误;对于外部干扰,可以采取增加 硬件滤波、调整波特率等方法来降低 干扰影响。
串行口通信距离限制问题
总结词
串行口通信距离受到线材质量、波特率和电压等因素的限制,超出一定距离可 能导致信号衰减和失真。
51系列单片机的串行口应用
串行口发送数据
发送数据
通过串行口发送数据是单片机与外部设备进行通信的一种常见方式。在51系列单片机中,通 常使用TXD(发送数据)引脚将数据发送到外部设备。
数据格式
串行通信中,数据通常以特定的格式进行传输,如起始位、数据位、奇偶校验位和停止位 。51系列单片机支持多种数据格式,以满足不同通信协议的需求。
详细描述
在51系列单片机中,波特率是指数据传输速率,通常以每秒传 输的位数表示。波特率设置不正确可能导致接收端无法正确解 析数据,出现乱码或通信失败。
解决方案
在编程时,应确保发送端和接收端的波特率设置一致,通常需 要在代码中明确指定。此外,还需考虑晶振频率对波特率计算 的影响,以确保通信的稳定性和准确性。
理,提高了程序的效率和可靠性。
串行口中断处理
01 02 03
中断处理

MCS-51单片机的串行通讯

MCS-51单片机的串行通讯

MCS-51的串行通讯
(2)串行通讯的制式 单工,半双工,全双工 (3)串行通讯中的调制解调器 (4)实现并串变换的UART (通用异步接收/发送器)
(三)MCS-51的串行通讯
2.MCS-51的串行接口 (1)串行口的结构 发送与接收电路 发送:SBUF(发送),零检测器,发送控制 器 接收:SBUF(接收),接收移位寄存器, 接收控制器
串行口控制器 SCON PCON (2)串行口的工作方式 (3)串行口的通讯波特率

串行口接收过程: 采样脉冲(接收时钟的16倍)检测 RXD1到0跳变,连续8次,确认为起 始位; 从下一数据位开始改为对7,8,9三个脉冲采 样RXD,遵循三中取二的原则,决定数据位是0 还是1. 接收到一帧,自动去掉起始为使RI=1,申请 中断, MOV A,SBUF接收
MCS-51的串行通讯
MCS-51的串行通讯
发送时钟,接收时钟与波特率 时钟信号的来源 fosc主频分频 内部定时器T1或T2的溢出率经16分频 T1 T2 16 发送过程: MOV SBUF,A TCX作用下添加起始位,停止位 和其他控制位 在SHIFT脉冲作用下从TXD串行 发送
MCS-51的串行通讯
(三)MCS-51的串行通讯
1.串行通讯基础 (1)串行通讯的分 同步通讯: 按照软件识别同步字符来实现数据的发 送和接收的. 异步通讯: 是一种利用字符的再同步技术的通讯方 式.
MCS-51的串行通讯
异步通讯 发送端和接收端 两个时钟源彼此独立,互不同步. 字符帧: 起始位,数据位,奇偶校验位,停止位. 波特率 每秒钟传送二进制数码的位数(bit/s).

51单片机串口通信

51单片机串口通信

51单片机串口通信51单片机串口通信(转载)2009-03-03 18:22一、串口通信原理串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。

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

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

以下对串口通信中一些需要同学们注意的地方作一点说明: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、通信协议的使用通信协议是通信设备在通信前的约定。

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

串行通信

串行通信

17
9.2 MCS-51串行口及控制寄存器
一、串行接口控制: 1.数据缓冲器SBUF: 发送SBUF和接收SBUF共用一个地址99H。 1)发送SBUF存放待发送的8位数据,写入SBUF将同 时启动发送。发送指令: MOV SBUF,A 2)接收SBUF存放已接收成功的8位数据,供CPU读取。 读取串行口接收数据指令: MOV A,SBUF
25
9.3 MCS-51串行通信工作方式及应用
4.发送:写入SBUF,同时启动发送,一帧发送结束, TI=1。 接收:REN=1,允许接收。
接收完一帧,若RI=0且停止位为1 (或 SM2=0),将接 收数据装入SBUF,停止位装入RB8,并使
RI=1;
否则丢弃接收数据,不置位RI。
26
9.3 MCS-51串行通信工作方式及应用
波 特 率
1/12 fosc (固定不变) 2SMOD/32 T1 溢出率 2SMOD/64 fosc 2SMOD/32 T1 溢出率
传 送 位 数
8(数据) 10(起始位、8位数据位、 停止位) 11(第9位为1:地址; 为0:数据) 11位 (同方式2)
发送 端
RXD TXD TXD TXD
接收 端
地线
发送接 收器
接收发数据线 发送接 收器 送器
地线
10
9.1 串行数据通信的基础知识
五、异步串行通信的信号形式:
1、远距离直接传输数字信号,信号会发生畸变, 因此要把数字信号转变为模拟信号再进行传送。 可利用光缆、专用通信电缆或电话线。 方法:通常使用频率调制法(频带传送方式)。
11
9.1 串行数据通信的基础知识
TXD 写入 发 SBUF 送 (a) 时 序 RXD输出

MCS-51的串行通信

MCS-51的串行通信

9.2.3 串行口的通信波特率 方式0的波特率 方式 的波特率= fosc/12 的波特率 方式2波特率 ( 方式 波特率=(2SMOD/64)*fOSC 波特率 ) 方式1、 的波特率 的波特率=( 的溢出率) 方式 、3的波特率 (2SMOD/32)*(T1的溢出率) ) ( 的溢出率
与串行口有关的特殊功能寄存器 串行口控制寄存器SCON和电源控制寄存器 和电源控制寄存器PCON 串行口控制寄存器 和电源控制寄存器 串行口发送和接收缓冲器SBUF 串行口发送和接收缓冲器 定时器/计数器 定时器 计数器T1 计数器 中断优先级寄存器IP和中断允许寄存器 中断优先级寄存器 和中断允许寄存器IE 和中断允许寄存器
9.3.1 串行口方式 的应用 串行口方式0的应用
主要用途: 主要用途 寄存器: 寄存器: 将串行口变为并行口应用,但要借助移位 将串行口变为并行口应用 但要借助移位
串入并出移位寄存器: 串入并出移位寄存器:74LS164或CD4094; 或 ; 并入串出: 并入串出:74LS165或CD4014。 或 。
波特率=fosc/12 波特率
2.方式 方式1 方式 10位通用异步方式 位通用异步方式 8031 TXD RXD
波特率可变
3.方式 、方式 方式2、方式3 方式 11位异步通信方式 位异步通信方式
方式2波特率 ( 方式 波特率=(2SMOD/64)*fOSC 波特率 ) 方式3波特率可变 方式 波特率可变
出错处理
(1)号机程序设计: )号机程序设计: TTT: :
MOV TMOD,#20H , MOV TL1,#0FDH , MOV TH1,#0FDH , MOV SCON,#0C0H , SETB TR1 MOV R0,#50H , MOV R7,#10H ,

MCS-51单片机的串行通信-精品

MCS-51单片机的串行通信-精品
串行通信的4种工作方式对应着3种波特率 :
1.对于方式0,波特率是固定的,为单片机时钟的1/12,即fosc/12。 2.对于方式2,波特率有两种可供选择,即 fosc/32 和 fosc/64。 对应于以下公式:
波特率= fosc×2SMOD/64
3.对于方式1和方式3,波特率都由定时器T1的溢出率来决定, 对应 于以下公式: 波特率=(2 SMOD/32)×定时器T1的溢出率
2.半双工工作方式 在半双工工作方式下,数据可以双向通信,但同一时刻只能沿一个方 向进行传输,不能同时互相传送
3.全双工工作方式
采用信道划分技术,有两条通信线路,使数据可以同时发送和接收
5.1.5 信号的调制与解调
5.2.7 串行通信接口电路
5.2 串行通信总线标准及其接口
异步串行通信接口主要有三类:RS-232接口,RS-449、RS-422和RS-485 接口以及20 mA电流环 5.2.1 RS-232C接口 RS-232C串行接口总线适用于:设备之间的通信距离不大于15m,传输速率 最大为20 kb/s。
单片机原理及接口技术
MCS-51单片机的串行通信
项目目标
知识目标:
串行通信的基本概念。 MCS-51单片机串行通信的格式规定。 MCS-51ቤተ መጻሕፍቲ ባይዱ片机串行口接收和发送数据的实现方法。 MCS-51单片机串行通信的程序设计思想。
技能目标:
了解MCS-51单片机串行接口结构。 掌握MCS-51单片机串行接口的使用方法。 能够搭建MCS-51单片机的多机串行通信电路,同时编写
。 特率和比特率是相同的。经常用波特率表示数据的传输速率
5.2.3 波特率和收/发时钟 1.波特率
波特率是数据传送速率的规定,即单位时 间内传送的信息量,以每秒传送的位数(bit) 表示,单位为波特。

51单片机串行通信原理

51单片机串行通信原理以51单片机串行通信原理为标题,本文将详细介绍51单片机串行通信的原理及其应用。

一、引言在现代电子设备中,串行通信是一种常见的通信方式。

它通过将数据位逐个传输,从而实现设备之间的数据交换。

51单片机是一种常用的微控制器,也支持串行通信。

本文将着重介绍51单片机串行通信的原理和应用。

二、串行通信原理1. 串行通信的基本概念串行通信是指将数据位逐个传输的通信方式。

相比并行通信,串行通信只需要使用一根信号线即可完成数据传输,因此可以节省线路资源。

在串行通信中,数据位按照一定的顺序传输,通常包括起始位、数据位、校验位和停止位。

2. 串行通信的工作原理51单片机通过UART(通用异步收发器)模块实现串行通信。

UART模块包括发送和接收两个部分,分别负责将数据发送到外部设备和接收外部设备发送的数据。

在发送数据时,51单片机将数据位逐个传输到UART模块,UART模块根据预设的波特率将数据转换为连续的电平信号发送出去。

在接收数据时,UART模块通过接收引脚接收外部设备发送的数据,并将其转换为51单片机可读取的数据格式。

3. 串行通信的优点和应用串行通信相比并行通信具有以下优点:(1)节省线路资源:串行通信只需要一根信号线,可以节省线路资源。

(2)易于实现:串行通信的电路设计相对简单,易于实现。

(3)可靠性高:串行通信可以通过增加校验位等方法提高通信的可靠性。

串行通信在实际应用中广泛使用,例如:(1)计算机与外部设备之间的数据传输;(2)网络通信中的数据传输;(3)工业控制系统中的数据采集和控制。

三、51单片机串行通信的实现1. 硬件连接51单片机的串行通信需要将其TXD(发送引脚)和RXD(接收引脚)与外部设备的相应引脚相连。

同时,还需要将单片机的地线与外部设备的地线相连,以确保信号的正常传输。

2. 软件编程在51单片机的编程中,需要配置UART模块的相关寄存器,设置波特率等参数。

具体的编程过程可以参考51单片机的开发文档,根据实际需求进行相应的配置。

51单片机串行通讯

51单片机串行通讯在当今的电子世界中,单片机的应用无处不在,从家用电器到工业自动化,从智能仪表到航空航天,都能看到它的身影。

而在单片机的众多功能中,串行通讯是一项非常重要的技术。

首先,咱们来了解一下什么是串行通讯。

简单来说,串行通讯就是指数据一位一位地按顺序传送。

与并行通讯(数据的各位同时传送)相比,串行通讯虽然速度相对较慢,但它只需要少数几条线就能完成数据传输,大大降低了硬件成本和连线的复杂性。

51 单片机的串行通讯有两种工作方式:同步通讯和异步通讯。

异步通讯是比较常用的一种方式。

在异步通讯中,数据是以字符为单位进行传输的。

每个字符由起始位、数据位、奇偶校验位和停止位组成。

起始位是一个低电平信号,用于通知接收方数据即将开始传输。

数据位通常是 5 到 8 位,可以表示一个字符的信息。

奇偶校验位用于检验传输数据的正确性,而停止位则是高电平,标志着一个字符传输的结束。

同步通讯则是在发送和接收两端使用同一个时钟信号来控制数据的传输。

这种方式传输速度快,但硬件要求相对较高。

51 单片机的串行口结构包括发送缓冲器和接收缓冲器。

发送缓冲器只能写入不能读出,而接收缓冲器只能读出不能写入。

在进行串行通讯时,我们需要对 51 单片机的串行口进行初始化设置。

这包括设置波特率、数据位长度、奇偶校验位和停止位等参数。

波特率是指每秒传输的位数,它决定了数据传输的速度。

通过设置定时器 1 的工作方式和初值,可以得到不同的波特率。

在编程实现串行通讯时,我们可以使用查询方式或者中断方式。

查询方式相对简单,但会占用大量的 CPU 时间,影响系统的实时性。

中断方式则可以在数据接收或发送完成时触发中断,提高系统的效率。

比如说,我们要实现 51 单片机与 PC 机之间的串行通讯。

在 PC 端,我们可以使用串口调试助手等软件来发送和接收数据。

在单片机端,通过编写相应的程序,设置好串行口的参数,然后根据接收的数据执行相应的操作,或者将需要发送的数据发送出去。

51单片机串口通信原理

51单片机串口通信原理一、串口通信概述串行口(也称为串口或UART)是计算机与外部设备之间进行数据传输的一种接口。

串口通信是一种通用的、可靠的通信方式,广泛应用于各种领域,如计算机、嵌入式系统、通信设备等。

51单片机作为一种常用的嵌入式微控制器,也支持串口通信功能。

串口通信通过两个引脚进行数据的传输,分为发送端和接收端。

发送端将数据按照一定的规则转换为串行数据,然后通过发送引脚传输给接收端。

接收端收到串行数据后再将其恢复为原始数据。

1.数据格式串口通信需要定义一种数据格式,包括起始位、数据位、校验位和停止位等。

起始位用于标识数据传输的开始,通常为逻辑低电平;数据位表示每个字符的位数,常用的有5位、6位、7位、8位;校验位用于验证数据的正确性,可选的校验方式有奇校验、偶校验和无校验;停止位用来表示数据传输结束,常用的有1位和2位。

2.波特率3.时序串口通信的时序是指数据位、起始位、校验位、停止位等的时钟信号。

发送端和接收端的时钟信号需要保持一致,以确保数据的正确传输。

时序信号的生成和恢复可通过硬件电路或软件算法实现。

4.缓冲区为了提高串口通信的效率,通常会设置一个发送缓冲区和一个接收缓冲区。

发送端将要发送的数据存储在发送缓冲区中,接收端将接收到的数据存储在接收缓冲区中。

通过中断或查询方式,发送端和接收端可以实时地读写数据。

三、51单片机串口通信实现步骤下面以51单片机作为例子,简要介绍串口通信的实现步骤。

1.硬件连接51单片机的串口通信一般通过P3口的RXD和TXD引脚实现,其中RXD为接收端引脚,TXD为发送端引脚。

需要将单片机的RXD引脚与外部设备的TXD引脚相连,将单片机的TXD引脚与外部设备的RXD引脚相连。

2.配置波特率通过设置特定的寄存器,将波特率设定为所需的值。

通常需要配置串口控制寄存器SCON,设置波特率控制寄存器TH1和TL13.串口通信初始化通过配置串口控制寄存器SCON、波特率控制寄存器TH1和TL1,实现串口通信的初始化。

MCS-51单片机的串行口及串行通信技术

MCS-51单⽚机的串⾏⼝及串⾏通信技术数据通信的基本概念串⾏通信有单⼯通信、半双⼯通信和全双⼯通信3种⽅式。

单⼯通信:数据只能单⽅向地从⼀端向另⼀端传送。

例如,⽬前的有线电视节⽬,只能单⽅向传送。

半双⼯通信:数据可以双向传送,但任⼀时刻只能向⼀个⽅向传送。

也就是说,半双⼯通信可以分时双向传送数据。

例如,⽬前的某些对讲机,任⼀时刻只能⼀⽅讲,另⼀⽅听。

全双⼯通信:数据可同时向两个⽅向传送。

全双⼯通信效率最⾼,适⽤于计算机之间的通信。

此外,通信双⽅要正确地进⾏数据传输,需要解决何时开始传输,何时结束传输,以及数据传输速率等问题,即解决数据同步问题。

实现数据同步,通常有两种⽅式,⼀种是异步通信,另⼀种是同步通信。

异步通信在异步通信中,数据⼀帧⼀帧地传送。

每⼀帧由⼀个字符代码组成,⼀个字符代码由起始位、数据位、奇偶校验位和停⽌位4部分组成。

每⼀帧的数据格式如图7-1所⽰。

⼀个串⾏帧的开始是⼀个起始位“0”,然后是5〜8位数据(规定低位数据在前,⾼位数据在后),接着是奇偶校验位(此位可省略),最后是停⽌位“1”。

起始位起始位"0”占⽤⼀位,⽤来通知接收设备,开始接收字符。

通信线在不传送字符时,⼀直保持为“1”。

接收端不断检测线路状态,当测到⼀个“0”电平时,就知道发来⼀个新字符,马上进⾏接收。

起始位还被⽤作同步接收端的时钟,以保证以后的接收能正确进⾏。

数据位数据位是要传送的数据,可以是5位、6位或更多。

当数据位是5位时,数据位为D0〜D4;当数据位是6位时,数据位为D0〜D5;当数据位是8位时,数据位为D0〜D7。

奇偶校验位奇偶校验位只占⼀位,其数据位为D8。

当传送数据不进⾏奇偶校验时,可以省略此位。

此位也可⽤于确定该帧字符所代表的信息类型,“1"表明传送的是地址帧,“0”表明传送的是数据帧。

停⽌位停⽌位⽤来表⽰字符的结束,停⽌位可以是1位、1.5位或2位。

停⽌位必须是⾼电平。

接收端接收到停⽌位后,就知道此字符传送完毕。

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

1#单片机发送程序: ORG 1000H TX: MOV TMOD , #20H MOV TH1 , #0FAH MOV TL1 , #0FAH MOV SCON , #11000000H;设定工作方式3 MOV PCON, #00H SETB TR0 MOV R0 , #40H ;设发送数据的地址指针 MOV R2 , #20H ;设发送数据长度 LOOP: MOV A , @R0 ;取发送数据送A MOV C , PSW.0 MOV TB8 , C ;奇偶位送TB8 MOV SBUF , A ;启动发送 WAIT: JBC TI , LL1 ;判发送中断标志 SJMP WAIT LL1: INC R0 DJNZ R2 , LOOP RET
参考程序如下: (1)甲机发送子程序: ORG 1000H TTTT: MOV TMOD , #20H MOV TH1 , #0E8H
MOV TL1 , #0E8H
SETB TR1 MOຫໍສະໝຸດ SCON , #50HMOV 87H , #00H
ENTER:
MOV DPH , #10H
MOV DPL , #00H MOV R4 , #20H MOV R5 , #00H TX1: MOV A , #04H MOV SBUF , A
9.1.1 数据通信的基本概念 1、数据通信
2、通信方式
有两种通信方式:一种是并行通信,一种是串行 通信。
9.1.2 串行通信方式
串行通信有三种方式:单工通信、半双工通信和 全双工通信。 9.1.3 数据同步技术 1、 异步通信
8
8
9.2 MCS-51单片机串行口的
结构与工作方式
9.2.1 串行口的结构
9.2.3 波特率设计 1、方式0的波特率 工作方式0时,移位脉冲由机器周期的第6个状态周 期S6给出,每个机器周期产生一个移位脉冲,发送或接 收一位数据。因此,波特率是固定的,为振荡频率的 1/12,不受PCON寄存器中SMOD的影响。用公式表示
为:
工作方式0的波特率=fosc/12
2、方式2的波特率 工作方式2时,移位脉冲由振荡频率fosc的第二节 拍P2时钟(即fosc/2)给出,所以,方式2波特率取决 于PCON中的SMOD位的值,当SMOD=0时,波特率 为fosc的1/64;当SMOD=1时,波特率为fosc的1/32, 用公式表示为; 工作方式2波特率=(2SMOD/64)×fosc
(2)乙机接收子程序: ORG 1000H RRRR: MOV TMOD , #20H MOV TH1 , #0E8H MOV TL1 , #0E8H SETB TR1 MOV SCON , #50H MOV 87H, #00H ENTER: MOV DPH , #10H MOV DPL , #00H MOV R5 , #00H
MOV A , SBUF MOVX @DPTR , A INC DPTR ADD A , R5 MOV R5 , A DJNZ R4 , RX3 JBC RI , LL4 SJMP RX4 MOV A , SBUF MOV 30H , R5 CJNE A, 30H , T_ERR
T_RIGHT:MOV A , #11H MOV SBUF , A WAIT3: T_ERR: JBC TI , EN MOV A , #0F0H
第9章
串行接口与应用
一、基本要求
1 了解计算机通信的基本知识。
2 熟悉80C51串行口工作原理及应用方法。 3 能读懂双机通信发送、接收程序。
退出
9.1 串行通信的基本知识
在MCS-51单片机内部,有一个通用异步接收/发 送器(UART)。这是一个全双工串行接口,能同时 进行发送和接收数据。利用这个串行接口,可以实现 单片机之间的单机通信、多机通信,以及与PC机之间 的通信。
SM0、SM1:串行口工作方式控制位,两位对应 四种工作方式,如表8-1所示(fosc是晶振频率)。
2、电源控制寄存器PCON 电源控制寄存器PCON中只有一位SMOD与串行 口工作有关,它的位格式为:
SMOD:波特率倍增位。串行口工作在方式1、方 式2、方式3时,若SMOD=1,则波特率提高一倍;若 SMOD=0,则波特率不提高一倍。单片机复位时, SMOD=0。
9.2.4 串行口的四种工作方式 串行口的四种工作方式中,串行通信只使用方式1、 方式2、方式3,方式0主要用于扩展并行输入输出口。 1、串行口工作方式0
9
9
9
9
9
9
9
9
9.3 主从式多机通信
9.3.1主从式多机通信原理 9.3.2多机通信协议
9.3.3串行通信实例 【例9-1】有两台8051单片机相距很近,直接将它 们的串行口相连,1#机的TXD接2#机的RXD,2#机的 TXD接1#机的RXD,二机的GND相连。二机的晶振频 率均为11.0592MHz,通信的波特率为4800bps。现将 第一台8051单片机片内RAM40H~5FH单元内的数据, 串行发送到第二台8051单片机片内RAM60H~7FH单 元中。 发送与接收的参考程序如下:
【例9-2】甲乙两机进行串行通信,将甲机片外 RAM中1000H单元开始的32个数据发送到乙机的片外 RAM 1000H开始的单元中。二机的晶振频率均为 11.0592MHZ,通信的波特率为1200bps。
设甲、乙机串行口均工作在方式1,根据发送和接
收的波特率,设置定时器T1工作在方式2,当 SMOD=0,则计数初值为E8H。甲机发送子程序流程 图如图9-7(a)所示,乙机接收子程序流程图如图9-7 (b)所示。
WAIT3: SJMP NEXT2: MOV MOV WAIT4: SJMP RX_11H: SJMP IF_11H: CJNE RET
JBC TI , NEXT2 WAIT3 DJNZ R4 , TX3 A , R5 SBUF , A JBC TI , RX_11H WAIT4 JBC RI , IF_11H RX_11H MOV A , SBUF A , #11H , ENTER
2#单片机接收程序: ORG 1000H RX: MOV TMOD , #20H MOV TH1 , #0FAH MOV TL1 , #0FAH MOV SCON , #11010000H;设定工作方式3,并允许接收 MOV PCON , #00H SETB TR0 MOV R0 , #60H MOV R2 , #20H LOOP: JBC RI , MM1 ;等待接收数据 SJMP LOOP MM1: MOV A , SBUF ;读入一帧数据 JB PSW.0 , PP1 ;判接收端奇偶 JB RB8 , ERROR ;判发送端奇偶 SJMP RIGHT PP1: JNB RB8 , ERROR ;接收出错 RIGHT:MOV @R0 , A ;接收正确 INC R0 DJNZ R2 , LOOP RET ERROR:SETB PSW.5 ;置出错标志 RET
3、工作方式1和方式3的波特率 【例9-1】8051单片机时钟振荡频率为 11.0592MHZ,选用定时器T1(工作在方式2)作波特 率发生器,波特率为4800bps,求定时器T1的初值X。 解 设波特率控制位SMOD=0,则: X=256−(11.0592×106×(0+1)/(384×4800) =250=FAH 所以,(TH1)=(TL1)=FAH 系统晶振频率选用11.0592MHZ,是为了使初值为 整数,从而产生精确的波特率。
RX1:
JBC RI , IF_04H SJMP RX1 IF_04H: MOV A , SBUF CJNE A , #04H , TX_FFH MOV A , #00H MOV SBUF , A WAIT1: JBC TI , RX2 SJMP WAIT1 LJMP RX2 TX_FFH: MOV A , #0FFH MOV SBUF , A
MCS-51有一个可编程的全双工串行通信接口,可
作为通用异步接收/发送器UART,也可作为同步移位 寄存器。它的帧格式有8位、10位和11位,可以设置为 固定波特率和可变波特率,给使用者带来很大的灵活 性。
9.2.2 串行口控制寄存器SCON和电源控制寄存器 PCON
1、串行口控制寄存器SCON
串行口控制寄存器SCON决定串行口通信工作方式, 控制数据的接收和发送,并标示串行口的工作状态等。 其位格式为:
SJMP WAIT3
MOV SBUF , A
WAIT4:
AGAIN:
JBC TI , AGAIN
LJMP ENTER
SJMP WAIT4
EN:
RET
小结
串行通信的基本知识
MCS-51单片机串行口的结构与工作方式
主从式多机通信
习题与思考题
1.串行通信有哪几种数据通路形式,试举例说明。 2.串行通信的总线标准是什麽?有哪些内容? 3.MCS-51单片机的串行口有几种工作方式?各有什麽 特点和功能? 4.MCS-51单片机的各种工作方式的波特率是如何确定 的? 5.简述单片机多机通信原理。 6.以8051 的串行口按方式1进行串行通信。假定波特率 为1200,以中断方式传送数据,试编写发送和接收程 序。
WAIT1:
RX1:
JBC TI , RX1
JBC RI , NEXT1
SJMP WAIT1
SJMP RX1
NEXT1: MOV A , SBUF CJNE A , #00H , TX1 TX2: MOV A , R4 MOV SBUF , A ADD A , R5 MOV R5 , A WAIT2: JBC TI , TX3 SJMP WAIT2 TX3 : MOVX A , @DPTR MOV SBUF , A ADD A , R5 MOV R5 , A INC DPTR
WAIT2: SJMP LL1: RX2: SJMP LL2: MOV MOV RX3: SJMP
相关文档
最新文档