串行接口及串行通信技术
rs232、rs422与rs485接口标准及应用技术

rs232、rs422与rs485接口标准及应用技术RS232、RS422和RS485都是串行通信接口标准,用于在计算机和外部设备之间传输数据。
它们之间的主要区别在于传输距离、速率和信号电平。
1. RS232:RS232是最早的串行通信标准,常用于连接计算机和调制解调器、终端设备、打印机等。
它使用单端口传输数据,信号电平为正负12V,传输距离最远为50英尺(约15米),最高速率为115.2 kbps。
RS232常用的连接线有DB9和DB25两种,其中DB9是9针连接器,DB25是25针连接器。
2. RS422:RS422是一种差分信号传输的串行通信标准,可用于长距离传输和高速率通信。
它使用两对信号线(正负)进行数据传输,信号电平为正负2V到正负6V。
RS422的传输距离可达4000英尺(约1200米),最高速率可达10 Mbps。
RS422常用于工业控制系统、远程监控和数据采集等领域。
3. RS485:RS485也是一种差分信号传输的串行通信标准,与RS422相似,但支持多点通信。
它可以连接多个设备,每个设备都有一个独立的地址,可以进行全双工通信。
RS485的信号电平和传输距离与RS422相同,但最高速率可达10 Mbps。
RS485常用于工业自动化、楼宇自控、安防系统等需要多点通信的场景。
应用技术:1. 硬件连接:- RS232通常使用DB9或DB25连接器,通过串行线缆连接计算机和外部设备。
- RS422和RS485通常使用终端电阻和平衡线连接设备,可以使用不同的连接器,如RJ45。
2. 通信协议:- 通信协议是定义数据传输格式和控制信号的规范。
常见的通信协议包括MODBUS、Profibus、DMX等。
- 通信协议可以根据应用需求进行定制,以满足特定的数据传输和控制要求。
3. 信号转换:- 由于不同设备可能使用不同的串口标准,可能需要使用信号转换器进行转换,以实现不同标准之间的互连。
总结:RS232、RS422和RS485是常用的串行通信接口标准,用于计算机和外部设备之间的数据传输。
第8章 串行口原理及其应用

TXD(移位脉冲)
成于大气 信达天下
串行口的工作方式
Chengdu University of Information Technology
二、方式1
方式1是10位数据的异步通信口。TXD为数据发送引脚, RXD为数据接收引脚,传送一帧数据的格式如图所示。其中1 位起始位,8位数据位,1位停止位。
RS-422A接口 RS-485接口
成于大气 信达天下
串行通信的基本概念(十)
Chengdu University of Information Technology
RS-232C接口存在的问题
传输距离短,传输速率低 RS-232C总线标准受电容允许值的约束,使用时传输距 离一般不要超过15米(线路条件好时也不超过几十米)。 最高传送速率为20Kbps。 有电平偏移 RS-232C总线标准要求收发双方共地。通信距离较大时, 收发双方的地电位差别较大,在信号地上将有比较大的 地电流并产生压降。 抗干扰能力差 RS-232C在电平转换时采用单端输入输出,在传输过程 中当干扰和噪声混在正常的信号中。为了提高信噪比, RS-232C总线标准不得不采用比较大的电压摆幅。
成于大气 信达天下
串行通信的基本概念(七)
Chengdu University of Information Technology
传输速率与传输距离
传输速率
比特率是每秒钟传输二进制代码的位数,单位是:位/秒 (bps)。如每秒钟传送240个字符,而每个字符格式包含 10位(1个起始位、1个停止位、8个数据位),这时的比特率 为: 10位×240个/秒 = 2400 bps 波特率表示每秒钟调制信号变化的次数,单位是:波特 (Baud)。 波特率和比特率不总是相同的,对于将数字信号1或0直接 用两种不同电压表示的所谓基带传输,比特率和波特率是 相同的。所以,我们也经常用波特率表示数据的传输速率。
微机原理第八章 串行通信及串行接口

1. 可编程串行接口典型结构
✓状态寄存器
✓控制寄存器
✓数据输入寄存器--串行输入/并行 输出移位寄存器
✓数据输出寄存器--并行输入/串行 输出移位寄存器
2. 串行通信基本概念
在串行通信时,数据和联络信号使用同一条信号线 来传送,所以收发双方必须考虑解决如下问题: ❖ 波特率---双方约定以何种速率进行数据的发送和接收 ❖ 帧格式---双方约定采用何种数据格式 ❖ 帧同步---接收方如何得知一批数据的开始和结束 ❖ 位同步--- -接收方如何从位流中正确地采样到位数据 ❖ 数据校验--- -接收方如何判断收到数据的正确性 ❖差错处理---收发出错时如何处理 收发双方必须遵守一些共同的通信协议才能解决上述问题。
串行通信适于长距离、中低速通信
并行通信
将数据的各位同时在多根并行传输线上进行传输。
D0 0
D1 1
D2 0
源
D3 1
D4 D5
0 1
D6 1
D7 0
D0 D1 D2 D3 目 D4 的 D5 D6 D7
数据的各位同时由源到达目的地 → 快 多根数据线 → 短距离(远程费用高)
并行通信适于短距离、高速通信
工作方式下。
(8)错误检测 • 传输错误 • 覆盖错误
二、 接口与系统的连接
从结构上,可把接口分为两个部分,其中和 外设相连的接口结构与具体外设的传输要求及数 据格式相关,因此,各接口的该部分互不相同; 而与系统总线相连的部分,各接口结构类似,一 般都包括:
1. 总线收发器和相应的逻辑电路
2. 联络信号逻辑电路
接收端需要一个时钟来测定每一位的
时间长度。
波特率/位传输率---每秒传输的离散信号 的数目/每秒传输的位数。 波特率因子---
《单片机原理及应用教程》第7章:单片机的串行通信及接口

串行通信接口标准详解

几种串行通信接口标准详解在数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来交换数据和信息。
1969年,美国电子工业协会(EIA)公布了RS-232C作为串行通信接口的电气标准,该标准定义了数据终端设备(DTE)和数据通信设备(DCE)间按位串行传输的接口信息,合理安排了接口的电气信号和机械要求,在世界范围内得到了广泛的应用。
但它采用单端驱动非差分接收电路,因而存在着传输距离不太远(最大传输距离15m)和传送速率不太高(最大位速率为20Kb/s)的问题。
远距离串行通信必须使用Modem,增加了成本。
在分布式控制系统和工业局部网络中,传输距离常介于近距离(<20m=和远距离(>2km)之间的情况,这时RS-232C(25脚连接器)不能采用,用Modem又不经济,因而需要制定新的串行通信接口标准。
1977年EIA制定了RS-449。
它除了保留与RS-232C兼容的特点外,还在提高传输速率,增加传输距离及改进电气特性等方面作了很大努力,并增加了10个控制信号。
与RS-449同时推出的还有RS-422和RS-423,它们是RS-449的标准子集。
另外,还有RS-485,它是RS-422的变形。
RS-422、RS-423是全双工的,而RS-485是半双工的。
RS-422标准规定采用平衡驱动差分接收电路,提高了数据传输速率(最大位速率为10Mb/s),增加了传输距离(最大传输距离1200m)。
RS-423标准规定采用单端驱动差分接收电路,其电气性能与RS-232C几乎相同,并设计成可连接RS-232C和RS-422。
它一端可与RS-422连接,另一端则可与RS-232C连接,提供了一种从旧技术到新技术过渡的手段。
同时又提高位速率(最大为300Kb/s)和传输距离(最大为600m)。
因RS-485为半双工的,当用于多站互连时可节省信号线,便于高速、远距离传送。
许多智能仪器设备均配有RS-485总线接口,将它们联网也十分方便。
RS232、RS485串行通信接口标准.

逻辑1 70%Vcc~Vcc -15~5V
为什么要电平转换?距离。来自 为什么要使用MAX232?
MAX232芯片内部有一个电源电压转换器,可以把 输入的+5V电源电压变换成为RS-232输出电平所 需要的正负10V电压,所以,采用此芯片的串行 通信系统只需单一的5V电源就可以了。加上价格 适中,硬件接口简单。故被广泛采用。
PC控制的单片机 485现场检测系统
轮询节点信 息,收集并 导入数据库
被监测设备
数据 采集 MCU
数据采 集器
485接口
节点N
… … …
被监测设备 被监测设备
主控机 (PC)
MCU
MCU
485接口
节点2
485接口
节点1
232/485接口卡
RS485总线
5.2.1 RS485总线介绍 1、 RS-232接口的主要缺点:
5.1、 RS-232总线标准
RS-232总线标准接口及其电气特性 RS-232C 修改次数 标识号 推荐标准
RS-232是美国EIA制定的一种串行物理 接口标准。
RS232接口标志主要对串行通信的连接电缆、机械、 电气特性信号功能以及传送的过程进行了明确的规定。
DTE
最初的 想法
RS232C
DCE
8
9
CTS*
RI *
PC机←对方
PC机←对方
对方已经切换到接收状态
通知PC机,线路正常
TXD RXD RTS CTS DSR DTR DCD signal RI
发送数据 transmitted data 接收数据 received data 请求发送 request to send 允许发送 clear to send 数据装置就绪 DCE ready 数据终端准备好 DTR ready 数据载波检出 receive line detector 振铃提示 ring indicator
sci串口通信原理 -回复
sci串口通信原理-回复SCI(串行通信接口)是一种常见的串口通信协议,被广泛应用于各种电子设备中。
在本文中,我们将一步一步回答关于SCI串口通信原理的问题,包括它的工作原理、常见的应用场景以及一些技术细节。
首先,让我们来了解SCI串口通信的工作原理。
SCI是一种串行通信接口,它通过使用单一的线路来传输数据。
这条线路被分为两个方向,一个用于传输数据(TX),一个用于接收数据(RX)。
通过在这两个方向上的电位变化,可以实现数据的传输。
SCI串口通信一般使用异步传输模式,即数据按照一个位一个位地传输,每个位之间使用起始位和停止位进行分隔。
在SCI串口通信中,每个数据位通常是8位或9位。
其中,8个数据位中的7个用于传输数据的真正内容,而最高位为校验位。
校验位有助于检测数据传输错误,提高数据传输的可靠性。
在接收端,接收器会比对接收到的校验位和传输过程中计算得到的校验位,以检测并纠正任何可能的错误。
除了数据位外,SCI串口通信还使用两个控制信号:RTS(请求发送)和CTS(清除发送)。
RTS信号由发送端控制,用于请求发送数据。
而CTS 信号由接收端控制,用于指示接收端是否准备好接收数据。
这两个控制信号的使用可以有效地控制数据的传输速率,避免数据传输丢失或溢出的情况发生。
SCI串口通信可以应用于多种场景中。
例如,它常用于个人电脑与其他外部设备之间的通信,如打印机、调制解调器、数码相机等。
此外,它还可以用于嵌入式系统中,如工业自动化、机器人控制、仪器仪表等。
由于SCI串口通信具有简单、可靠、成本低廉等特点,因此在各种场景下都有广泛的应用。
在SCI串口通信中,还有一些技术细节需要考虑。
首先是波特率的选择,波特率表示数据传输速度,常用的波特率有9600、19200、38400等。
选择合适的波特率能够平衡数据传输速度和系统资源的利用率。
其次是数据格式的设置,包括数据位数、校验位和停止位。
不同的应用场景可能需要不同的数据格式设置,需要根据具体需求进行调整。
串行通信接口标准
接口技术
RS- 232C
RXD
TXD
1
16
MAX 232
2
15
3
14
4 13
5
12
6
11
7
10
8
9
1
8
2
7
3
4
MAX 485
RS-485 R-/T-
R+/T+
DTR RS-232C与RS-485电平转换原理图
微型计算机基本原理与接口技术
1.1 RS-232C接口标准
接口技术
传送距离较远:传送距离一般可达30m。 若采用光电隔离20mA的电流环进行传送,其 传送距离可以达到1000m。
采用负逻辑传送:
规定逻辑“1”电平为-5V~-15V 逻辑“0”电平为+5V~+15V。
1.1 RS-232C接口标准
接口技术
2.RS-232C信号定义及说明
微型计算机基本原理与接口技术
串行通信接口标准
接口技术
串行通信接口标准在机械特性、电气特性 和信号功能等方面作了规定。
机械特性:对用于通信接口连接的插头、插 座的尺寸、插脚数目、引脚分配、插脚与插 孔的尺寸等进行规定。
电气特性:对通信信号的逻辑电平、最高传 送速率、发送与接收电路的特性进行规定。
信号功能:对通信信号的名称、含义、传送 方向及相互关系等进行说明。
RS-232C标准接口共有25条,常用的如下:
发送数据(TXD)、
接收数据(RXD)
信号地(SG)
数据准备好(DSR)
数据终端准备就绪(DTR)
接收线路信号检出(DCD)
振铃(RI)
1.1 RS-232C接口标准
sci串行通信接口工作原理
sci串行通信接口工作原理
SCI(Serial Communication Interface)是一种串行通信接口,用于在数字系统中进行串行数据传输。
SCI通常包括发送和接收端,通过串行方式传递数据,它在嵌入式系统和通信领域中被广泛使用。
以下是SCI串行通信接口的基本工作原理:
1.帧结构:SCI通信以帧为单位,每一帧包含了一定数量的比特,通常包括起始位、数据位、奇偶校验位(可选)、停止位等。
这种帧结构有助于接收端正确解析和识别数据。
2.波特率设置:波特率是SCI通信的速率,表示每秒传输的比特数。
在SCI通信中,发送端和接收端必须配置相同的波特率,以确保数据的正确传输。
3.起始位和停止位:为了使接收端能够准确识别帧的起始和结束,通常在每帧的开始设置一个起始位,结束时设置一个或多个停止位。
4.数据传输:数据以二进制形式传输,由发送端按照事先定义好的帧结构进行发送。
接收端在正确配置的情况下,能够识别并解析这些帧,将二进制数据还原为原始数据。
5.同步机制:为确保数据的同步传输,通常在帧的开始设置一个起始位,作为同步信号,帮助接收端正确解析后续的数据。
6.协议选择:在SCI通信中,数据的传输可以使用不同的协议,例如异步传输和同步传输。
异步通信不需要与时钟同步,而同步通信则需要与外部时钟同步。
总体而言,SCI串行通信接口通过在帧中使用起始位、数据位、停止位等结构,按照事先定义好的协议传输数据。
这种方式具有灵活性和可靠性,适用于许多嵌入式系统和通信场景。
单片机串行口几种工作方式的波特率
单片机串行口几种工作方式的波特率单片机串行口是单片机与外部设备进行通信的重要接口之一。
在串行口通信中,波特率是一个关键参数。
波特率是指每秒钟传送的波特数量,用于衡量数据的传输速率。
单片机串行口的波特率通常选择常见的标准波特率,例如9600、19200、38400等。
单片机串行口的工作方式有多种,下面将详细介绍几种不同的工作方式下的波特率设置。
1. 同步串行口同步串行口是指在传输数据时,发送端和接收端通过一个时钟信号来同步数据的传输。
在同步串行口中,波特率的设置是固定的,因为发送端和接收端需要以相同的波特率来同步数据传输。
常见的同步串行口波特率包括115200、230400等。
2. 异步串行口异步串行口是指在传输数据时,发送端和接收端通过起始位、停止位来进行数据的同步。
在异步串行口中,波特率的设置是非常重要的,因为发送端和接收端需要以相同的波特率来正确解析数据。
常见的异步串行口波特率包括9600、19200、38400等。
3. 高速串行口随着单片机技术的进步和应用的广泛,对串行口的传输速率要求也越来越高。
高速串行口通常指的是波特率在1Mbps及以上的串行口。
高速串行口通常应用于需要大量数据传输的场景,例如高速数据采集、图像传输等。
4. 自适应波特率有些情况下,单片机需要与多种速率不同的设备通信,这就需要单片机具备自适应波特率的能力。
自适应波特率指的是单片机可以根据外部设备的对应波特率来自动调整自身的波特率。
这种方式可以极大地提高单片机的通信灵活性和适用性。
在实际应用中,程序员需要根据具体的通信需求选择合适的波特率,并在程序中进行相应的设置和配置。
还需要注意波特率的选取要与外部设备相匹配,以确保数据的正确传输和解析。
通过上述对单片机串行口几种工作方式的波特率的介绍,我们可以更好地理解单片机串行口通信中波特率的重要性以及不同工作方式下的波特率设置方法。
在实际应用中,合理选择和设置波特率将有利于提高通信的可靠性和稳定性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第9章 串行接口及串行通信技术 U 难点
• 串行通信的四种工作方式 @ 要求
掌握: • 串行通信的控制寄存器 • 串行通信的工作方式0和方式1 了解: • 串行通信的基础知识 • 串行通信的工作方式2和方式3
9.1 串行通信的基础知识 9.2 MCS-51单片机串行通信的控制寄存器 9.3 MCS-51单片机串行通信工作方式
9.1 串行通信的基础知识 串行数据通信要解决两个关键技术问题,一个是数据传送,另一个是数据转换。所谓数据传送就是指数据以什么形式进行传送。所谓数据转换就是指单片机在接受数据时,如何把接收到的串行数据转化为并行数据,单片机在发送数据时,如何把并行数据转换为串行数据进行发送。 9.1.1 数据传送 单片机的串行通信使用的是异步串行通信,所谓异步就是指发送端和接收端使用的不是同一个时钟。异步串行通信通常以字符(或者字节)为单位组成字符帧传送。字符帧由发送端一帧一帧地传送,接收端通过传输线一帧一帧地接收。 1. 字符帧的帧格式
字符帧由四部分组成,分别是起始位、数据位、奇偶校验位、停止位。如图9.1所示: 1) 起始位:位于字符帧的开头,只占一位,始终位逻辑低电平,表示发送端开始发送一帧数据。 2) 数据位:紧跟起始位后,可取5、6、7、8位,低位在前,高位在后。 3) 奇偶校验位:占一位,用于对字符传送作正确性检查,因此奇偶校验位是可选择的,共有三种可能,即奇偶校验、偶校验和无校验,由用户根据需要选定。 4) 停止位:末尾,为逻辑“1”高电平,可取1、1.5、2位,表示一帧字符传送完毕。
图9.1 字符帧格式 异步串行通信的字符帧可以是连续的,也可以是断续的。连续的异步串行通信,是在一个字符格式的停止位之后立即发送下一个字符的起始位,开始一个新的字符的传送,即帧与帧之间是连续的。而断续的异步串行通信,则是在一帧结束之后不一定接着传送下一个字符,不传送时维持数据线的高电平状态,使数据线处于空闲。其后,新的字符传送可在任何时候开始,并不要求整倍数的位时间。 2. 传送的速率
串行通信的速率用波特率来表示,所谓波特率就是指一秒钟传送数据位的个数。每秒钟传送一个数据位就是1波特。即:1波特=1bps(位/秒) 在串行通信中,数据位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制。时钟频率高,则波特率高,通信速度就快;反之,时钟频率低,波特率就低,通信速度就慢。 9.1.2 数据转换 MCS-51单片机只能处理8位的并行数据,所以在进行串行数据的发送时,要把并行数据转换为串行数据。而在接收数据时,只有把接收的串行数据转换成并行数据,单片机才能进行处理。 能实现这种转换的设备,称为通用异步接收发送器(Universal Asynchronous Receiver /Transmitter)。这种设备已集成到单片机内部,称为串行接口电路。串行接口电路为用户提供了两个串行口缓冲寄存器(SBUF),一个称为发送缓存器,它的用途是接收片内总线送来的数据,即发送缓冲器只能写不能读。发送缓冲器中的数据通过TXD引脚向外传送。另一个称为接收缓冲器,它的用途是向片内总线发送数据,即接收缓冲器只能读不能写。接收缓冲器通过RXD引脚接收数据。因为这两个缓冲器一个只能写,一个只能读,所以共用一个地址99H。串行接口电路如图9.2所示。
图9.2 MCS-51串行口寄存器结构 9.2 MCS-51单片机串行通信的控制寄存器 1. 串行口控制寄存器(SCON) SCON是MCS-51单片机的一个可位寻址的专用寄存器,用于串行数据通信的控制。单元地址为98H,位地址为98H~9FH。寄存器的内容及位地址表示如下: 位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H 位符号 SM0 SM1 SM2 REN TB8 RB8 TI RI 各位的说明如下: 1) SM0 、SM1——串行口工作方式选择位 其状态组合和对应工作方式为: SM0 SM1 工作方式 0 0 方式0 0 1 方式1 1 0 方式2 1 1 方式3 2) SM2——允许方式2、3的多机通信控制位 在方式2和3中,若SM2=1且接收到的第九位数据(RB8)为1,才将接收到的前8位数据送入接收SBUF中,并置位RI产生中断请求;否则丢弃前8位数据。若SM2=0,则不论第九位数据(RB8)为1还是为0,都将前8位送入接收SBUF中,并产生中断请求。 方式0时,SM2必须置0。 3) REN——允许接收位 REN=0 禁止接收数据 REN=1 允许接收数据 4) TB8——发送数据位8 在方式2、3时,TB8的内容是要发送的第9位数据,其值由用户通过软件来设置。 5) RB8——接收数据位8 在方式2、3时,RB8是接收的第9位数据。 在方式1时,RB8是接收的停止位 在方式0时,不使用RB8 6) TI——发送中断标志位 在方式0时,发送完第8位数据后,该位由硬件置位。 在其它方式下,于发送停止位之前,由硬件置位。 因此,TI=1表示帧发送结束,其状态既可供软件查询使用,也可请求中断。 TI由软件清“0”。 7) RI——接收中断标志位 在方式0时,接收完第8位数据后,该位由硬件置位。 在其它方式下,于接收到停止位之前,该位由硬件置位。 因此,RI=1表示帧接收结束,其状态既可供软件查询使用,也可请求中断。 RI由软件清“0”。 2. 电源控制寄存器(PCON)
PCON不可位寻址,字节地址为87H。它主要是为CHMOS型单片机80C51的电源控制而设置的专用寄存器。其内容如下: 与串行通信有关的只有D7位(SMOD),该位为波特率倍增位,当SMOD=1时,串行口波特率增加一倍,当SMOD=0时,串行口波特率为设定值。当系统复位时,SMOD=0。 3. 中断允许控制寄存器(IE)
此寄存器在第六章已经介绍过,在此不作赘述。 9.3 MCS-51单片机串行通信工作方式 串行口的工作方式由SM0和SM1确定,编码和功能如表8-1所示。 表8-1 串行口工作方式 SM0 SM1 方式 功能说明 波特率 0 0 方式0 移位寄存器方式 fosc/12 0 1 方式1 8位UART 可变 1 0 方式2 9位UART fosc/64 或者fosc/32 1 1 方式3 9位UART 可变 方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由T1的溢出率决定。 9.3.1 串行工作方式0 串行口工作在方式0时,串行口作同步移位寄存器使用。以RXD(P3.0)端作为数据的输入或输出端,而TXD(P3.1)提供移位的时钟脉冲。外接移位寄存器,实现数据并行输入或输出。工作在方式0时,波特率为fosc/12,即一个机器周期移位一次。 1. 数据输出(发送)
当数据写入SBUF后,数据从RXD端在移位脉冲(TXD)的控制下,逐位移入74LS164,74LS164能完
位序 D7 D6 D5 D4 D3 D2 D1 D0 位符号 SMOD / / / GF1 GF0 PD IDL 成数据的串并转换。当8位数据全部移出后,TI由硬件置位,发生中断请求。若CPU响应中断,则从0023H单元开始执行串行口中断服务程序,数据由74LS164并行输出。其接口逻辑如图9.3所示。由逻辑图可知,通过外接74LS164,串行口能够实现数据的并行输出。
图9.3 外接移位寄存器输出 2. 数据输入(接收)
要实现接收数据,必须首先把SCON中的允许接收位REN设置为1。当REN设置为1时,数据就在移位脉冲的控制下,从RXD端输入。当接收到8位数据时,置位接收中断标志位RI,发生中断请求。其接口逻辑如图9.4所示。由逻辑图可知,通过外接74LS165,串行口能够实现数据的并行输入。
图9.4 外接移位寄存器输入 【例8-1】使用74LS164的并行输出端接8支发光二极管,利用它的串入并出功能,把发光二极管从左到右依次点亮,并反复循环。假定发光二极管为共阴极接法。
图9.5 电路设计 解:电路如图9.5。软件部分如下: ORG 0000H LJMP MAIN ORG 1000H MAIN: MOV SCON,#00H ;串行口工作在方式0
CLR ES ;禁止串行中断
MOV A, #80H ;发光二极管从左边亮起
DELR: CLR P1.0 ;关闭并行输出
MOV SBUF, A ;串行输出
WAINT: JNB TI, WAIT ;状态查询 SETB P1.0 ;开启并行输出
ACALL DELAY ;调用延时子程序
CLR TI ;清发送中断标志
RR A ;发光右移
AJMP DELR ;继续
EDN 9.3.2 串行工作方式1 方式1为10位为一帧的异步串行通信方式。其帧格式为1个起始位、8个数据位和1个停止位。如图9.6所示。
图9.6 方式1的帧格式 1. 数据输出(发送)
数据写入SBUF后,开始发送,此时由硬件加入起始位和停止位,构成一帧数据,由TXD串行输出。输出一帧数据后,TXD保持在高电平状态下,并将TI置位,通知CPU可以进行下一个字符的发送。 2. 数据输入(接收)
当REN=1且接收到起始位后,在移位脉冲的控制下,把接收到的数据移入接收缓冲寄存器(SBUF)中,停止位到来后,把停止位送入RB8中,并置位RI,通知CPU接收到一个字符。 3. 波特率的设定
工作在方式1时,其波特率是可变的,波特率的计算公式为:
其中,SMOD为PCON寄存器最高位的值,其值为1或0。 当定时器1作波特率发生器使用时,选用工作方式2(即自动加载定时初值方式)。选择方式2可以避免通过程序反复装入定时初值所引起的定时误差,使波特率更加稳定。假定计数初值为X,则计数溢出周期为:
溢出率为溢出周期的倒数。则波特率的计算公式为:
实际使用中,波特率是已知的。因此需要根据波特率的计算公式求定时初值X。用户只需要把定时初值设置到定时器1,就能得到所要求的波特率。 4. 应用举例(用方式1实现双机串行通信)
(1)通信双方的硬件连接 作为应用系统首先要研究通信双方如何连接。一种办法是把两片8051的串行口直接相连,一片8051的TXD与另一片的RXD相连,RXD与另一片的TXD相连,地与地连通。由于8051串行口的输出是TTL电平,两片相连所允许的距离极短。
(2)通信双方的软件约定 通信双方除了在硬件上进行连接外,在软件还必须作如下约定: 作为发送方,必须知道什么时候发送信息,发什么,对方是否收到,收到的内容有没有错误,要不要重发,怎样通知对方结束。 作为接收一方,必须知道对方是否发送了信息,发的是什么,收到的信息是否有错误,如果有错误