8.3 8051单片机串行口工作方式
8051单片机的串行口-26页精选文档

RXD 8051
TXD
P1.0
A
B
74LS164
CLK STB
2. 数据接收 要实现数据接收,必须首先把SCON中的允许接收位REN设置为
1。当REN设置为1时,数据就在移位脉冲的控制下,从RXD端输入。 当接收到8位数据时,置位接收中断标志位RI,发生中断请求。 其接口逻辑如下图所示。由逻辑图可知,通过外接74LS165,串 行口能够实现数据的并行输入。
方式2的波特率时固定的,而且有两种。一种是晶振频率的 三十二分之一;另一种是晶振频率的六十四分之一。即fosc/32 和fosc/64。如用公式表示则为:
波特率2S= MODfosc 64
由此公式可知,当SMOD为0时,波特率为fosc/64,当SMOD 为1时,波特率为fosc/32
串行工作方式3 方式3同方式2几乎完全一样,只不 过方式3的波特率是可变的,有用户来确 定。其波特率的确定同方式1。
率为设定值。当系统复位时,SMOD=0。
8051单片机串行通信工作方式
串行口的工作方式由SM0和SM1确定,编码和功能如下表 所示
SM0 SM1
方式
功能说明
波特率
0
0
方式0 移位寄存器方式 fosc/12
0
1
1
0
1
1
方式1 方式2 方式3
8位UART 9位UART 9位UART
可变
fosc/64 或者 fosc/32
单片机的串行通信使用的是异步串行通信,所谓异步 就是指发送端和接收端使用的不是同一个时钟。异步串行 通信通常以字符(或者字节)为单位组成字符帧传送。
1、字符帧的帧格式
字符帧由四部分组成,分别是起始位、数据位、奇偶校验
串行口的四种工作方式标准版文档

RB8 停止位
RI(中断标志)
接收时,数据从右边移入输入移位寄存器。当位检测逻辑 采样到RXD上的负跳变,便开始接收1帧数据。在接收完第九 位数据后,满足下列条件,才能真正接收到1个字符。
当RI=0,且SM2=0(或接收到的第9位数据为1)时,接收到 的数据装入接收缓冲器SBUF和RB8(接收数据的第9位), 置RI=1,向CPU请求中断。如果条件不满足,则数据丢失, 且不置位RI,继续搜索RXD引脚的负跳变。
❖解:设数据的发送不采用串行口,即用一段程序模拟 串口方式0的操作,选择用P2.1传数据,P2.0传时钟。
DOUT CLK
BIT P2.1 BIT P2.0
DP12: MOV R2, #8 MOV A, @R0
DP13: RLC A MOV DOUT, C CLR CLK SETB CLK DJNZ R2, DP13 RET
先输出低位吗?
能改变吗?
开始 循环次数设置 取显示数据 数据码左移一位 送一位数据至P2.1 输出一个移位脉冲
够8次了? Y
RET
读图练习--实验六的原理图
D
PY
1 a
2
a
b
3
c
f
b
4
g
d
5
ee
c
6 f
d dp
7 g d p
8
2
0
D
PY
1 a
2
a
b
3
c
f
b
4
g
d
5
ee
c
6 f
d dp
7 g d p
方式2和方式3
方式2或方式3时为11位数据的异步通信口。TXD为数据发
串行接口工作方式0应用举例

串行接口工作方式0应用举例一、串行口工作方式0SM0=0、SM1=0串行口工作于方式0,即串行寄存器方式。
图1是串行接口方式0的结构示意图。
(1)数据从RXD引脚上发送或接收。
一帧信息由8位数据组成,低位在前。
(2)波特率固定,为fosc/12(即为机器周期T)。
(3)同步移位脉冲从TXD引脚上输出。
图1串行口工作方式0结构示意图发送CPU执行一条写SBUF的指令如,MOV SBUF,A 就启动了发送过程。
(1)指令执行期间送来的写信号打开三态门1,将经内部总线送来的8位并行数据写入发送数据缓冲器。
(2)写信号同时启动发送控制器。
(3)此后,CPU与串行口并行工作。
经过一个机器周期,发送控制端SEND有效(高电平),打开门5和门6,应许RXD引脚发送数据,TXD引脚输出同步移位脉冲。
(4)在由时钟信号Sb/触发产生的内部移位脉冲作用下,发送数据缓冲器中的数据逐位串行输出。
每个机器周期从RXD上发送一位数据。
故波/特率为fosc/12。
Sb同时形成同步移位脉冲,一个机器周期从TXD上输出一个同步移位脉冲。
(5)8位数据(一帧)发送完毕后,SEND恢复低电平状态,停止发送数据,且发送控制器硬件置发送中断标志位TI=1,向CPU申请中断。
注:如要再次发送数据,必须用软件将TI清零,并再次执行写SBUF的指令。
接收在RI=0的条件下,将REN(SCON.4)置1就启动一次接收过程。
RXD为串行数据接收端,TXD依然输出同步移位脉冲。
(1)REN置1启动了接收控制器(2)经过一个机器周期,接收控制端RECV有效(高电平),打开了门6,应许TXD输出同步移位脉冲。
该脉冲控制外接芯片逐位输入数据,波特率为fosc/12。
(3)在内部移位脉冲作用下,RXD上的串行输入数据逐位移入移位寄存器。
(4)当8位数据(一帧)全部移入移位寄存器后,接收控制器使RECV失效,停止输出移位脉冲,还发出“装载SBUF”信号,打开三态门2,将8位数据并行送入接收缓冲器SBUF保存。
单片机串行接口工作方式_杨宇翔

电子报/2018年/11月/18日/第009版职教与技能单片机串行接口工作方式四川科技职业学院鼎利学院杨宇翔敬顺德串行口的工作方式0为移位寄存器输入输出方式,方式0发送或接收完8位数据后由硬件置位发送中断标志TI或接收中断标志RI。
1.方式0发送串行数据从RXD引脚输出,TXD引脚输出移位脉冲。
CPU将数据写入发送寄存器(SBUF)时,立即启动发送,将8位数据以fosc/12的固定波特率从RXD输出,低位在前,高位在后,直至最高位(D7位)数字移出后,停止发送数据和移位时钟脉冲。
MOV SCON,#10H;串行口方式0MOV A,SBUF;接收数据JNB RI,$;等待数据接收完毕2.方式0接收方式0接收前,务必先置位REN=1,允许接收数据。
此时,RXD为串行数据输入端,TXD仍为同步脉冲移位输出端。
当RI=0和REN=1同时满足时,就会启动一次接收过程。
接收器以fosc/12的固定波特率接收TXD端输入的数据。
当接收到第8位数据时,将数据移入接收寄存器,并由硬件置位RI,向CPU申请中断。
MOV SCON,#00H;串行口方式0MOV SBUF,A;将数据送出JNB TI,$;等待数据发送完毕工作方式0一般用于对并行输入输出口的扩展,如图1所示。
二、方式1:8位UART方式当SM0=0、SM1=1时,串行口选择方式1,单片机工作于8位数据异步通讯方式(UART)。
在方式1时,传送一帧信息为10位,即1位起始位(0),8位数据位(低位在先)和1位停止位(1)。
方式1的数据格式如图2所示。
1.方式1发送当CPU执行MOV A,SBUF指令将数据写入发送缓冲SBUF,启动发送。
先把起始位输出到TXD,然后把移位寄存器的输出位送到TXD。
接着发出第一个移位脉冲(SHIFT),使数据右移一位,并从左端补入0。
此后数据将逐位由TXD端送出,而其左面不断补入0。
发送完一帧数据后,就由硬件置位TI。
2.方式1接收当REN=1且接收到起始位后,在移位脉冲的控制下,把接收到的数据移入接收缓冲寄存器(SBUF)中,停止位到来后,把停止位送入RB8中,并置位RI,通知CPU接收到一个字符。
80C51单片机的串行口

80C51单片机的串行口在单片机的世界里,80C51 单片机凭借其稳定性和广泛的应用一直占据着重要的地位。
而串行口作为 80C51 单片机的重要通信接口,发挥着至关重要的作用。
要理解 80C51 单片机的串行口,首先得知道串行通信的概念。
简单来说,串行通信就是数据一位一位地依次传输,相比并行通信,它只需要较少的数据线,这在很多场景下能大大减少硬件成本和布线难度。
80C51 单片机的串行口有 4 种工作方式,分别是方式 0、方式 1、方式 2 和方式 3。
方式 0 是同步移位寄存器输入/输出方式。
在这种方式下,数据以 8 位为一帧,低位在前,高位在后,没有起始位和停止位。
它通常用于扩展并行 I/O 口,例如外接串入并出的移位寄存器 74LS164 或并入串出的移位寄存器 74LS165。
方式 1 是 8 位异步通信方式,波特率可变。
这是最常用的串行通信方式之一。
一帧数据由 1 位起始位(低电平)、8 位数据位(低位在前)和 1 位停止位(高电平)组成。
发送和接收都是通过专门的寄存器来实现的。
方式 2 是 9 位异步通信方式,波特率固定。
一帧数据由 1 位起始位、8 位数据位、1 位可编程的第 9 位数据和 1 位停止位组成。
这种方式常用于多机通信,第 9 位数据可以作为地址/数据的标识位。
方式 3 与方式 2 类似,也是 9 位异步通信方式,但波特率可变。
串行口的波特率是一个非常关键的概念。
波特率决定了数据传输的速度。
在 80C51 单片机中,方式 0 和方式 2 的波特率是固定的,而方式 1 和方式 3 的波特率则是由定时器 T1 的溢出率来决定的。
通过设置定时器 T1 的工作方式和初值,可以得到不同的波特率,以适应不同的通信需求。
在实际应用中,要使用 80C51 单片机的串行口进行通信,还需要对相关的寄存器进行配置。
比如,串行控制寄存器 SCON 用于设置串行口的工作方式、接收/发送控制等;电源控制寄存器 PCON 中的 SMOD 位用于控制方式 1、2、3 的波特率加倍。
51单片机教程:单片机串行口介绍

51单片机教程:单片机串行口介绍
串行口是单片机与外界进行信息交换的工具。
8051 单片机的通信方式有两种:
并行通信:数据的各位同时发送或接收。
串行通信:数据一位一位次序发送或接收。
参看下图:
串行通信的方式:
异步通信:它用一个起始位表示字符的开始,用停止位表示字符的结束。
其每帧的格式如下:
在一帧格式中,先是一个起始位0,然后是8 个数据位,规定低位在前,高位在后,接下来是奇偶校验位(能省略),最后是停止位1。
用这种格式表示字符,则字符能一个接一个地传送。
在异步通信中,CPU 与外设之间必须有两项规定,即字符格式和波特率。
字符格式的规定是双方能够在对同一种0 和1 的串理解成同一种意义。
原则上字符格式能由通信的双方自由制定,但从通用、方便的角度出发,一般还是使用一些标准为好,如采用ASCII 标准。
波特率即数据传送的速率,其定义是每秒钟传送的二进制数的位数。
例如,数据传送的速率是120 字符/s,而每个字符如上述规定包含10 数位,则传送波特率为1200 波特。
同步通信:在同步通信中,每个字符要用起始位和停止位作为字符开始和结束的标志,占用了时间;所以在数据块传递时,为了提高速度,常去掉这些标志,采用同步传送。
由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,故硬件较复杂。
8051的串行口

8051
8051
并行通信
并行通信是指数据的各位同时进行 传送(发送或接收)的通信方式。 传送(发送或接收)的通信方式。 其优点是传送速度快; 其优点是传送速度快; 缺点是数据有多少位, 缺点是数据有多少位,就需要多少 数据有多少位 根传送线。 根传送线。 并行通信在位数多、 并行通信在位数多、传送距离又远 时就不太合适了。 时就不太合适了。 89C51单片机与打印机之间的数据 单片机与打印机之间的数据 传送就属于并行通信。 传送就属于并行通信。
89C51串行口是可编程接口,对它初始化编程只用 串行口是可编程接口, 串行口是可编程接口 控制字分别写入特殊功能寄存器SCON(98H)和 两个控制字分别写入特殊功能寄存器 ( ) 两个控制字分别写入特殊功能寄存器 电源控制寄存器PCON(87H)中即可。 电源控制寄存器 ( )中即可。
2、串行控制寄存器SCON(地址 地址98H) )
8051的串行口 8051的串行口
串行通信基础
在实际工作中,计算机的CPU与外部设备之间常常要进行 在实际工作中,计算机的CPU与外部设备之间常常要进行 CPU 信息交换, 信息交换,一台计算机与其他计算机之间也往往要交换信 所有这些信息交换均可称为通信。 息,所有这些信息交换均可称为通信。 通信方式有两种,即并行通信和串行通信。 通信方式有两种, 并行通信和串行通信。
8051
串行通信
串行通信指数据是一位一位按顺 序传送的通信方式。 序传送的通信方式。 它的突出优点是只需一对传输线 它的突出优点是只需一对传输线( 一对传输线 利用电话线就可作为传输线), 利用电话线就可作为传输线 ,这 样就大大降低了传送成本, 样就大大降低了传送成本,特别 适用于远距离通信; 适用于远距离通信; 其缺点是传送速度较低。 其缺点是传送速度较低。假设并 行传送N位数据所需时间位 , 行传送 位数据所需时间位T,那 位数据所需时间位 么串行传送的时间至少为NT,实 么串行传送的时间至少为 , 际上总是大于NT的 际上总是大于 的。
51单片机串行口的工作方式

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
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
发送端:TXD(P3.1) 接收端:RXD(P3.0) 。
空 闲
T1提供移位脉冲,其波特率=2SMOD×fosc/[32×12×(256-x)]
起 始 位 D0 1帧共11位 数据位9位 D8 停 止 位 空 闲
二、串行口工作方式 方式1-发送
(3)所有从机接收到地址帧后,与自身地址相比较。 (4)地址相符的从机SM2=0,可以接收到主机随后发来的信息。 (5)通信结束后,被寻址从机置SM2=1,恢复多机通信系统原有 的状态。等待进行下次通信。
作 业
课后习题 132 页 :3 、 4 、 5
···
当REN为1时,接收器以波特率的16倍速率采样RXD引脚电平, 检测到RXD引脚输入电平发生负跳变时,就启动接收器接收。
接收的值时3此采样中至少两次相同的值,避免传送错误。
若接收的第一位不是0,则起始位无效,复位接收电路。 若接收的第一位是0,则起始位有效,接收器开始接收本帧其余 数据。 在方式1接收中,若下列两个条件成立则RI=1,8位数据进入SBUF,停 止位进入RB8。这两个条件是
若接收的第一位不是0,则起始位无效,复位接收电路。 若接收的第一位是0,则起始位有效,接收器开始接收本帧其余 数据。 在方式1接收中,若下列两个条件成立则RI=1,9位数据进入SBUF,停 止位进入RB8。这两个条件是
பைடு நூலகம்
1、RI=0 2、SM2=0,或接收到第9位为1
二、串行口工作方式 方式3
11位异步通信方式(1个起始位0、9个数据位、1个停止位)。 其中发送的第9位由SCON的TB8提供,接收的第9位存在SCON的RB8 发送端:TXD(P3.1) 接收端:RXD(P3.0)
写入SBUF TXD TI(中断标志) 起始
D0 D1 D2 D3 D4 D5 D6 D7 TB8
停止位
二、串行口工作方式 方式2-接收
当REN为1时,接收器以波特率的16倍速率采样RXD引脚电平, 检测到RXD引脚输入电平发生负跳变时,就启动接收器接收。
接收的值是3次采样中至少两次相同的值,避免传送错误。
串行口工作方式
2
二、串行口工作方式 方式0
串行口为同步移位寄存器的输入输出方式。 主要用于扩展并行输入或输出口。 数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1) 引脚输出。发送和接收均为8位数据,低位在先,高位在后。 波特率固定为fosc/12。
二、串行口工作方式 方式1
CPU执行一条写入SBUF的指令就启动串行口的发送。
首先发送起始位0,此后每经过一个时钟周期产生一个移位脉冲, 并且由TXD引脚输出一个数据位。 当10位数据全部发送后,使TI置1.
写入SBUF TXD TI(中断标志) 起始
D0 D1 D2 D3 D4 D5 D6 D7
停止位
二、串行口工作方式 方式1-接收
单片机原理及应用
8051 单片机串行口工作方式
···
复 习 回 顾
SCON 寄存器各标志位功能? 发送缓冲器 SBUF功能、特点?
接收缓冲器SBUF功能 特点?
、
SCON寄存器为串行口控制寄存器。
SCOD
位地址
S
9FH 9EH
SM0 SM1
C
9DH
SM2
9CH
REN
O
9BH
TB8
9AH
RB8
N
99H
波特率=2SMOD×fosc/[32×12×(256-x)]
一、串行口波特率设计 计算
方式1和方式3:波特率是可变的,以T1作波特率发生器,其值由T1 的计数溢出率来决定,其公式为:
波特率=2SMOD/64×(T1溢出率)
当T1作波特率发生器使用时,选用模式2(即8位自动加载方式)。假定 计数初值为X,则计数溢出周期为: 12×(256-x)/fosc
空 闲 起 始 位 D0 1帧共11位 数据位9位 RB8 停 止 位 空 闲
二、串行口工作方式 方式2-发送
CPU执行一条写入SBUF的指令就启动串行口的发送。 把TB8的内容送入发送寄存器第9位。
首先发送起始位0,此后每经过一个时钟周期产生一个移位脉冲, 并且由TXD引脚输出一个数据位。 当11位数据全部发送后,使TI置1.
波特率=fosc/12
方式2:波特率固定不变,仅与系统的振荡频率fosc有关。
波特率=2SMOD×fosc/64
一、串行口波特率设计 波特率设计
方式1和方式3:波特率是可变的,以T1作波特率发生器,其值由T1 的计数溢出率来决定,其公式为:
波特率=2SMOD/64×(T1溢出率)
当T1作波特率发生器使用时,选用模式2(即8位自动加载方式)。假定 计数初值为X,则计数溢出周期为: 12×(256-x)/fosc 则方式1和方式3波特率计算公式为:
TI
98H
RI
(98H) 标志位
串行口 波特率设计
1
一、串行口波特率设计 波特率(概念)
每秒传送的二进制位数称为波特率:
1波特=1bit/s
例如:电传打字机的传送速率每秒10个字符,若每个字符为11bit, 则波特率为
11×10bit/s=110bit/s
一、串行口波特率设计 波特率设计
方式0:波特率固定不变,仅与系统的振荡频率fosc有关。
T1提供移位脉冲,其波特率=2SMOD×fosc/[32×12×(256-x)]
接收、发送与方式2相同。
串行口应用举例
3
三、串行口应用举例 双机通信-通信协议
1、通信双方波特率均为9600bps,均为串行口方式1。甲机发送,乙机接收。 2、甲机开始发送时,先发一个呼叫信号“0FH”,乙机接收后,若同意接收数 据就发一个应答信号“01H”。 3、当甲机接到“01H”后,开始发送数据。假设发送的数据块首地址是片内 RAM40H单元,数据块长度64H。数据块发送结束后,发送累加校验和。 累加校验和是指数据块中每个字节的算术累加和。 4、乙机接收数据并存放在数据缓冲区。假设数据缓冲区的首地址是片内 RAM40H单元。乙机在接收过程中对接收的数据块也作算术累加和,并 与甲机发送的累加和作比较,若相等则表示接收正确,给甲机发“00H”; 若不等则表示接收不正确,给甲机发“FFH”,请求重发。 5、甲机收到“00H”后,结束发送,否则将数据重发一次。
1、RI=0 2、SM2=0,或接收到的停止位为1
二、串行口工作方式 方式2
11位异步通信方式(1个起始位0、9个数据位、1个停止位)。 其中发送的第9位由SCON的TB8提供,接收的第9位存在SCON的RB8 发送端:TXD(P3.1) 接收端:RXD(P3.0)
T1提供移位脉冲,其波特率=fosc/32或fosc/64。 。
二、串行口工作方式 多机通信
在单片机应用系统中,经常需要多个单片机之间协调工作, 8051单片机的串行口的方式2、方式3有一个专门的领域即多机通信, 利用这一功能,8051单片机可以构成主从式分布系统,如图所示:
二、串行口工作方式 多机通信
(1)所有从机SM2均置1,准备接收地址帧。
(2)主机先发送一个地址帧(TB8=1),指出接收从机地址。