串行口工作方式0及应用举例
串行口的四种工作方式标准版文档

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为数据发
串行通信应用举例

串行通信应用举例
1.1 串行口的编程
串行口需初始化后,才能完成数据的输入、输出。初始化过程如下:
➢按选定串行口的工作方式设定SCON的SM0、SM1; ➢对于工作方式2或3,应根据需要在TB8中写入待发送的第9位 数据; ➢若选定的工作方式不是模式0,还需设定接收/发送的波特率; ➢设定SMOD的状态,以控制波特率是否加倍; ➢若选定工作方式1或3,则应对定时器T1进行初始化操作,即设定T1的工 作方式
MOV @R0,A
;存接收数据
INC R0
;指向下一数据存储单元
DJNZ R2,RDSB ;判16个数据接收完否?未完继续
SJMP $
;循环等待
END
;汇编结束
C语言参考程序:
甲机发送程序:
#include<reg51.h>
//包含特殊功能寄存器库
#define uchar unsigned char //定义uchar为无符号字符数据类型
#include<reg51.h>
//包含特殊功能寄存器库
#define uchar unsigned char //定义uchar为无符号字符数据类型
uchar i;
;禁止T1中断 ;T1启动 ;置串行方式1,禁止接收 ;置SMOD=0(SMOD不能位操作) ;禁止串行中断
MOV R0,#50H
;置接收数据区首地址
MOV R2,#16 ;置接收数据长度
SETB REN
;启动接收
RDSB:JNB
RI,$
;等待一帧数据接收完毕
CLR RI
;清接收中断标志
MOV A,SBUF
解: 串行方式1波特率取决于T1溢出率(设SMOD=0), 计算T1定时初值
MCS-51串行口的工作方式

方ห้องสมุดไป่ตู้0——同步移位寄存器
时序
1.2 方式1——8位UART
数据在TxD发送,接收使用RxD 帧格式固定,每一帧数据共有10位,包括1个起始位、8个数据
位(最低有效位在前)、1个停止位 接收到的停止位保存到SCON的RB8中 波特率可变取决于T1或T2的溢出率、和PCON中的SMOD位 波特率因子为16
单片机原理与应用
MCS-51串行口的工作方式
方式0——同步移位寄存器 方式1——8位UART 方式2和3——9位UART
1.1 方式0——同步移位寄存器
串行数据通过RxD引脚输入或输出 TxD输出移位时钟 发送和接收不可同时进行 发送或接收的均为8位数据,最低有效位在前 波特率固定为单片机振荡频率的1/12
方式1——8位UART
时序
1.3 方式2和3——9位UART
数据在TxD发送,接收使用RxD 帧格式固定,每一帧数据共有11位,包括1个起始位、8个数据
位(最低有效位在前)、1个可编程的第9位数据、1个停止位。第 9位数据在发送时通过TB8赋值为0或1 接收时将第9位数据存入RB8中 波特率
方式2:只能为振荡器频率的1/32或1/64 方式3:与方式1时相同
方式2和3——9位UART
时序
单片机原理与应用
电子信息工程技术《串行口工作方式1》

方式1的波特率: 其是可变的,为: ×定时器T1溢出率 即为:定时器1溢出率/16或定时器1溢出率/32
2SMOD 32
第三页,共七页。
工作方式1数据传输过程:
发送过程:在工作方式l下发送数据时,CPU执行一条写入SBUF的指令就启动发送,数 据从TD引脚输出,发送完一帧数据时,硬件置位中断标志TI。
接收过程:当REN=1时,接收器对RD引脚进行采样,采样脉冲频率是所选波特率的16倍。 当样到RD引脚上出现从高电平“1〞到低电平“0〞的负跳变时,就启动接收器接收数据。如果接 收到的不是有效起始位,那么重新检测负跳变。接收器按“三中取二〞原那么接收的值是3次采样 中至少两次相同的值来确定采样数据的值以保证采样接收准确无误。
微控制器原理与应用
串行口工作方式1
第一页,共七页。
引入
串行口有四种工作方式,但串行通信主要使用方式1、方式2、方式3。 方式0主要用于扩展并行输入/输出口。
第二页,共七页。
工作方式1:
串行口在方式1下工作于异步通信方式,规定发送或接收一帧数据有10位,包括1位起始位,8位数据位和1 位停止位。串行口采用该方式时,特别适合于点对点的异步通信。方式1的波特率可以改变。
第四页,共七页。
串行口工作方式1:
➢ 工作方式1特点; ➢ 工作方式1数据传输过程;
Su小 结mm
注意:方式1只有在满足以下两个条件 :① RI=0;② SM2=0或接收到的停止位 为1,那么接收到的数据才有效。把接收到
第五页,共七页。
微控制器原理与应用
第六页,共七页。
内容总结
微控制器原理与应用。串行口有四种工作方式,但串行通信主要使用方式1、方式2、方式3。发送 过程:在工作方式l下发送数据时,CPU执行一条写入SBUF的指令就启动发送,数据从TD引脚输出, 发送完一帧数据时,硬件置位中断标志TI。接收过程:当REN=1时,接收器对RD引脚进行采样,采样 脉冲频率是所选波特率的16倍。当采样到RD引脚上出现从高电平“1〞到低电平“0〞的负跳变时, 就启动接收器接收数据。再见
51单片机串口工作方式0和1

ACALL DELAY
CLR TI
; 手动清中断标志
RR A ; 循环位移
; 80H、40H、20H、10H、08H …
CLR P1.0
; CD4094 输出并口关闭
MOV SBUF,A ; 数据传出,产生中断
RETI
END
注: 延时子程序 DELAY 未给出
2021/5/15
方式 0 用于扩展并行 I/O口
=
/32
9600bps 1200bps
=
/12/计次/16
计1次 计3次 计3次 计6次 计12次 计24次
9.6kbit/s 实际10.416 = 6MHz/12/计次/16 1
0
2
FDH
1.2kbit/s 实际1.302 = 6MHz/12/计次/32 0
0
2
F4H
时钟振荡频率为6MHz或12 MHz时,产生的比特率偏差较大,
写入SBUF后自动开始发 送
2021/5/15
图5-1
请求中断
CPU响应中断后:CLR TI
5.2 用AT89C51的串行口扩展并行口
5.2.2 用74LS164扩展并行输出口
74LS164:8位串入并出移位寄存器。
图是利用74LS164扩展二个8位并行输出口的接口电路。
每当新数据写入SBUF,即把SBUF中的8位数据以串行移
• 数据区
发送数据区首址 20H,接收数据区首址 40H
• 主频选用
fosc = 6MHz
• T1 设置
,同时RI=0)时,串行口即开始接收数据。RXD为数据输入端
,TXD为移位脉冲信号输出端,也以fosc/12的固定比特率,
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
51单片机串口工作方式0和1解析

RXD
7.1.1 串行口控制寄存器SCON b7 b6 b5 b4 b3 b2 b1 TI b0 RI
SM0 SM1 SM2 REN TB8 RB8
9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
SM0、SM1 —— 串行接口工作方式定义位
• SM0、SM1 = 00 —— 方式 0,8位同步移位寄存器 • SM0、SM1 = 01 —— 方式 1,10 位异步接收发送 • SM0、SM1 = 10 —— 方式 2,11 位异步接收发送 • SM0、SM1 = 11 —— 方式 3,11 位异步接收发送 注意: 方式 0 的特点,方式 2、方式 3 的差异
寄存器 SCON、PCON、SBUF
寄存器 IE、IP
• MCS-51 单片机串Fra bibliotek接口工作方式 方式 0 方式 2 方式 1 方式 3
有两个数据缓冲寄存器 SBUF,一个输入移位寄存器,一个 串行控制寄存器SCON和一个特殊功能寄存器PCON等组成。 8 位SBUF是全双工串行接口寄存器, 它是特殊功能寄存器, 地址为 99H,不可位寻址;串行输出时为发送数据缓冲器,发送
时钟振荡频率为6MHz或12 MHz时,产生的比特率偏差较大, 故用到串口通信时通常选用11.0592MHZ晶体振荡器。
串行口的结构
• MCS-51 单片机串行接口的硬件
P3.0 位的第二功能 —— 收端 RXD P3.1 位的第二功能 —— 发端 TXD
• MCS-51 单片机串行接口的控制
比特率 比特率
= /12
P.110
=
/32 计1次 计3次 计3次 计6次 计12次 计24次
=
/12/计次/16
串行通信

P1_7=0; _nop_(); //延时一个机器周期 _nop_(); //延时一个机器周期,保证清0完成 P1_7=1; SBUF=j; while (!TI) { ;} TI=0; for (i=0;i<=30000;i++) {;} //延时 j=j*2; if (j==0x00) j=0x01; } }
以RXD(P3.0)端作为数据移位的输入/输出端, 以TXD(P3.1)端输出移位脉冲。 移位数据的发送和接收以8位为一帧,不设起始位和停止 位,无论输入/输出,均低位在前高位在后。波特率固定为 fosc/12。
方式0可将串行输入输出数据转换成并行输出口使用时,要有“串入并出”的移位 寄存器配合。
2、 同步通信
同步通信依靠同步字符保持通信同步。
同步通信是由1~2个同步字符和多字节 数据位组成,同步字符作为起始位以触发同 步时钟开始发送或接收数据;多字节数据之 间不允许有空隙,每位占用的时间相等;空 闲位需发送同步字符。
同步通信传输速度较快,但要求有准确的 时钟来实现收发双方的严格同步,对硬件要求 较高,适用于成批数据传送。
异步通信依靠起始位、停止位保持通信同步。
异步通信数据传送按帧传输,一帧数据包含 起始位、数据位、校验位和停止位。
异步通信对硬件要求较低,实现起来比较简单 、灵活,适用于数据的随机发送/接收,但因每个 字节都要建立一次同步,即每个字符都要额外附 加两位,所以工作速度较低,在单片机中主要采 用异步通信方式。
sbit CLK = P3^1;
//74HC165移位时钟引脚
sbit SPL = P3^2;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机的串行口
-串行口工作方式0及应用杨凌霄教授河南理工大学
一、方式0的功能特点
▼又叫同步移位寄存器方式;
▼以8位数据为一帧,没有起始位和停止位,先输入或输出最低位;
▼数据从RXD端串行输入或输出,同步移位时钟信号从TXD端输出;
▼输入或输出完一帧数据RI或TI置1。
▼波特率固定不变,为fosc/12;
二、方式0的作用
▼扩展一个并行I/O口的目的,弥补单片机并行口的不足。
例如:
74LS16474LS165
▼例:利用单片机的串行口扩展出一个8位并行输出口,驱动共阳极数码管循环显示数据0~9。
▼分析:单片机需要外接一个串入并出移位寄存器。
常用的串入并出移位寄存器有:CD4094、74LS164等,现选用74LS164。
▼74LS164是8位串入并出移位寄存器,由8个带清
零功能的正边沿D触发器组成。
▼74LS164的工作原理为:
1)清零端低电平有效。
若清零端为低电平,输出端都为0;若清零端为高电平,且时钟端出现上升沿,则输出端Q锁存输入端D的电平;
2)前级Q端与后级D端相连——实现移位作用,最先接收到的数将进入最高位。
74LS164的连接:
74LS164——单片机数据输入端1(2)——RXD 时钟端8——TXD
74LS164——数码管Q1~Q7——g~a 74LS164的清零端9——Vcc
程序:串行口初始化+数据传送
(1)串行口初始化
▼SM0SM1=00,REN=0,TI = 0
▼SCON=0
(2)数据传送
//发送一个字节的程序段
SBUF=DATA; //发送数据DATA
while (!TI); // TI=0→发送进行中;TI=1→发送完成;
TI=0; //为下次发送做准备
小结
51单片机串行口的工作方式0——同步移位寄存器方式及应用:▼作用是扩展单片机的并行I/O口;
▼数据格式是8位数据,没有起始位和停止位;
▼从RXD输入输出数据,从TXD发出时钟信号;
▼输入输出完一帧数据RI/TI置1;
▼波特率固定不变:为fosc/12;
▼并通过实例说明了方式0下硬件连接方法和软件编写方法。