8951单片机串口通信.
RX CLOCK
RXD
起始位
D0
位检测器采样时间
D1
D2
D3
D4
D5
D6
D7
停止位
SHIFT
RI
置REN为1时,接收方器式1接检收时测序 到RXD引脚输入电平发生 负跳变时,则说明起始位有效,将其移入输入移位寄 存器,并开始接收这一帧信息的其余位。
当RI=0,且SM2=0(或接收到的停止位为1)时,将
RCV2: DJNZ R7,RCV0 ; 判断是否已读入预定的字节数
…………
; 对读入数据进行处理
2019/5/10
36
例2 用两片8位串入并出移位寄存器74HC164扩展16 位输出接口。
T1 溢出率 = fosc /{12×[256 -(TH1)]}
T1方式2,TR1=1(以启动定时器)
2019/5/10
31
2019/5/10
32
串行口初始化具体步骤:
确定T1的工作方式(编程TMOD寄存器); 计算T1的初值,装载TH1、TL1; 启动T1(编程TCON中的TR1位); 确定串行口控制(编程SCON寄存器);
T X CLOCK
写入SBUF
SEND DAT A
S1 P 1
SHIFT T XD
起始位
D0
D1
D2
D3
D4
D5
D6
D7
T B8 停止位
TI ST OP BIT GEN
先把起始位0输出到方式2T发送X时序D,然后发送移位寄存器的 输出位(D0)。每一移位脉冲都使输出移位寄存器 的各位移动一位,并由TXD引脚输出。
RCV1: MOV SCON,#10H ; 设串行口方式0并启动接收
JNB RI,$
; 等待接收一帧数据
CLR RI
; 清除接收中断标志
MOV A,SBUF
; 取缓冲器数据
INC R0
CPL F0
JB F0,RCV2
; 判断是否接收完偶数帧, 接收完则重新并行置入
DEC R7
SJMP RCV1
; 否则再接收一帧
收到的9位数据的前8位装入SBUF,Title第9位(停止位)
进入RB8,并置RI=1,向CPU请求S中iBze 断Num。ber
Date: File:
16-Mar-2009
E:\教材参编\第七章图\ch7gzsx.ddb
4
5
Revision
Sheet of Drawn By :
6
2019/5/10
D0 D1 D2 D3 D4 D5 D6 D7
D0 D1 D2 D3 D4 D5 D6 D7
P3.0 89S51
数据输入
+5V
65 9 QH 16 VCC 8 GND
移位脉冲
P3.1 P1.0
4 3 14 13 12 11 SIN
74HC165(1)
CK
S/ L
2
1
65 9 QH +5V 16 VCC 8 GND
解调器把从通信线路上收到的模拟信号转 换成数字信号。
RS-232C
DCE DTE
2019/5/10
电话网
12
RS-232C
DCE DTE
串行通信的错误校验
奇偶校验 代码和校验 循环冗余校验
传输速率与传输距离 传输速率
比特率:每秒钟传输二进制代码的位数 波特率:每秒钟调制信号变化的次数,单位是:波特 (Baud)。
写入SBUF
S6 P 2
D
SEND
SHIFT
RXD(DAT A OUT )
D0
D1
D2
D3
D4
D5
D6
D7
T XD(SHIFT CLOCK) S3P1 S6P1
TI
2019/5/10
方式0发送时序
24
方式0接收
清除SCON中的RI位
RI RECEIVE
B
SHIFT
RXD(DAT A IN)
D0
D1
RI,接收中断标志位。
方式0时,串行接收第8位数据结束时 其它方式,串行接收停止位的中间时 硬件使RI置1,发中断申请。必须在中断服务程序中 用软件将其清0。
2019/5/10
20
2、电源功能寄存器PCON (87H)
PCON (87H) SMOD
SMOD, 波特率倍增位。 在方式1、2、3时,波特率与SMOD有关: SMOD=1时,波特率提高一倍。复位时, SMOD=0。
Fosc/64或fosc/32
11位UART
可变,由定时器 控制
其中fosc为晶振频率。
2019/5/10
23
7.2.1 工作方式0
方式0
同步移位寄存器的输入输出方式。用于扩展并行输入或
输出口。数据由RXD引脚输入或输出,移位脉冲由TXD引
脚输出。8位数据。波特率为fosc/12。
方式0发1送
2
3
27
7.2.3 工作方式2、3
方式2和方式3
11位数据的异步通信。
1帧共11位
起 空始 闲位
数据位9位
停 止空 位闲
D0
D7
RB8/TB8
LSB
MSB
起始位1位,数据9位,停止位1位 方式2的波特率固定为晶振频率的1/64或1/32 方式3的波特率由定时器T1的溢出率决定
2019/5/10
28
方式2和方式3发送
2019/5/10
21
7.2 串行口的工作方式
工作方式0 工作方式1 工作方式2 工作方式3
2019/5/10
22
串行口工作方式
SM0、SM1 工作方式
00
方式0
01
方式1
10
方式2
11
方式3
功能描述
波特率
8位同步移位寄 Fosc/12 存器
10位UART
可变,由定时器 控制
11位UART
2
3
4
10位数据的异步通信。帧格式如图所示。
D
起 空始 闲位
1帧共10位 数据位8位
停 止空 位闲
D0
D7
LSB
MSB
C
方式1发送
T X CLOCK
写入SBUF
SEND DAT A
S1 P 1
B
SHIFT
T XD
起始位
D0
D1
D2
D3
D4
D5
D6
D7
停止位
TI
2019/5/10
方式1发送时序 26
方式1接收
4 3 14 13 12 11 SIN
74HC165(2)
CK
S/ L
2
1
2019/5/10
35
MOV R7,#20
; 设置读入字节数
MOV R0,#50H
; 设片内RAM指针
SETB F0
; 设置读入字节奇偶数标志
RCV0: CLR P1.0
; 允许并行置入数据
SETB P1.0
; 允许串行移位
2019/5/10
13
波特率和比特率不总是相同的,但对于基带传输, 比特率和波特率是相同的。
传输距离与传输速率的关系 传输距离随传输速率的增加而减小。
2019/5/10
14
7.1 串行口UART
串行口的结构 串行口的控制
2019/5/10
15
7.1.1 串行口的结构
内
波
部
特
总
率
线
发
生
器
方式:
并行通信 串行通信
2019/5/10
3
并行通信:数据多位同时传送
8位同时传送 1
0
接
1
发
0
收 设
1
送
1 0
设
备
0
备
询问
应答
控制简单,传输速度快,传输线较多
2019/5/10
4
串行通信:数据字节一位一位在一条传输 线上逐个传送。
接
发
收
D0
D7
送
设 备
8位顺次传送
设 备
传输线少,可利用电话网,但传送控制复杂。
SBUF 发送(99H)
逻辑门电路
发送控制器
TI
串行口中断
≥1
RI
接收控制器
SBUF 接收(99H)
移位寄存器
串 行 口 控 制 寄 存 器 SCON
TXD(P3.1)
RXD(P3.0)
2个物理上独立的接收、发送缓冲器SBUF,占用同一地 址99H ;接收器是双缓冲结构 。
2019/5/10
16
7.1.2 串行口的控制
1、串行口控制寄存器SCON (98H)
设定工作方式、接收/发送控制以及设置状态标志 SCON (98H) SM0 SM1 SM2 REN TB8 RB8 TI RI
SM0、SM1:工作方式设置位
2019/5/10
17
SM2,多机通信控制位。
主要用于方式2和方式3。对于接收机
SM2=0,收到RB8(0或1)既可使收到的数据进入SBUF,并 激活RI。
起 空始 闲位
一个字符帧 数据位
校停 验止 位位
空 下一字符 闲 起始位
LSB
2019/5/10
MSB
7
同步通信
发送方时钟与接收方时钟同步。既保持位同 步,也保持字符同步。同步方法:Βιβλιοθήκη 01101计 数据
计
算