串口的工作方式
—51
系列单片机
串行口分四种工作方式,由
SCON
中的
SMO
、
SM1
二位选择决定。
1.
方式
0
(
1
)特点
1.
用作串行口扩展,具有固定的波特率,为
Fosf/12
。
2.
同步发送
/
接收,由
TXD
提供移位脉冲,
RXD
用作数据输入
/
输出通道。
3.
发送
/
接收
8
位数据,低位在先。
(
2
)发送操作
当执行一条
“MOV SBUF
,
A”
指令时,启动发送操作,由
TXD
输出移位脉冲,由
RXD
串行发送
SBUF
中的数据。发送
完
8
位数据后自动置
TI=1
,请求中断。要继续发送时,
T1
必须有指令清零。
(
3
)接收操作
在
RI=0
条件下,置
REN=1
,启动一帧数据的接收,由
TXD
输出移位脉冲,由
RXD
接收串行数据到
A
中。接收完一
帧自动置位
RI
,请求中断。想继续接收时,要用指令清零
RI
。
2.
方式
1
(
1
)特点
1.8
位
UART
接口。
2.
帧结构为
10
位,包括起始位(为
0
),
8
位数据位,
1
位停止位。
3.
波特率由指令设定,由
T1
的溢出率决定。
(
2
)发送操作
当执行一条
“MOV SBUF
,
A”
指令时
,
启动发送操作
,
A
中的数据从
TXD
端实现异步发送
。
发送完一帧数据后自动置
TI=1
,
请求中断。要继续发送时,
TI
必须由指令清零。
(
3
)接收操作
当置
REN=1
时,串行口采样
RXD
,当采样到
1
至
0
的跳变时,确认串行数据帧的起始位,开始接收一帧数据,直到停
止位到来时,把停止位送入
RB8
中。置位
RI
请求中断。
CPU
取走数据后用指令清零
RI
。
3.
方式
2
和方式
3
方式
2
和方式
3
具有多机通信功能,这两种方式除了波特率不同以外,其余完全相同。
(
1
)特点
1.9
位
UART
接口。
2.
帧结构为
11
位,包括起始位(为
0
)、
8
位数据位、
1
位可编程位
TB8/RB8
和停止位(为
1
)。
3.
波特率在方式
2
时为固定
FOSC/32
或
FOSC/64
,
由
SMOD
位决定
,
当
SMOD=1
时
,
波特率为
FOSC/32
;
当
SMOD=0
时,波特率为
FOSC/64
。方式
3
的溢出率由
T1
的溢出率决定。
(
2
)发送操作
发送数据之前,由指令设置
TB8
(如作为奇偶校对位或地址
/
数据位),将要发送的数据由
A
写入
SBUF
中启动发送操
作。在发送中,内部逻辑会把
TB8
装入发送移位寄存器的第
9
位位置,然后发送一帧完整的数据,发送完毕后置位
TI
。
TI
须由指令清零。
(
3
)接收操作
当置位
SEN
位且
RI=0
时,启动接收操作,帧结构上的第
9
位送入
RB8
中,对所接收的数据视
SM2
和
RB8
的状态决
定是否会使
RI
置位。
当
SM2=0
时,
RB8
不论什么状态
RI
都置
1
,串行口都接收数据。
当
SM2=1
时,为多机通信方式,接收到的
RB8
为地址
/
数据表识位。
当
RB8=1
时,接收的信息为地址帧,此时置位
RI
,串行口接收发送来的数据。
当
RB8=0
时,接收的信息为数据帧,若
SM2=1
时,
RI
不会置位,此数据丢弃;若
SM2=0
,则
SBUF
接收发送来的数
据。