8第八章.串行接口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
停止位=1时才发生上述操作; 停止位=0时,数据不装入SBUF,无效数据;
RI=1,所接收的数据不装入SBUF,数据丢失。
无论哪种情况,接收控制器都将继续采样RXD 引脚,以便接收下一帧信息。
3. 方式2和方式3
方式2和方式3都为9位异步通信方式。 以每帧11位异步通信格式收发数据:1位起始位、
波特率 T1的溢出率 2SMOD / 32
当定时器T1作波特率发生器使用时,一 般选用可自动装入初值模式(工作方式2)。
T1的溢出率
fosc
12 (256 X)
波特率
fosc
2SMOD / 32
12 (256 X)
X 256 2SMOD fosc 3212 波特率
溢出率决定。
7.3.2 MCS-51单片机的串行接口
2 串行接口结构
组成:
发送数据缓冲器SBUF、发送控制器、输出控制 门
接收数据缓冲器SBUF、接收控制器、输入移位 寄存器
发送数据寄存器
输出控制门
器
接收数据寄存器
图7.15 串行接口结构框图
用户角度看,串口由三个特殊功能寄存器组成:
(2)方式0接收过程
当RI=0时,置位REN后启动一次接收。 RXD为数据输入,TXD为同步移位信号输出端。 接收到的8位数据存储在接收缓冲器SBUF后置位中断
标志RI。 从接收缓冲器SBUF取出数据后须软件清零RI。
2. 工作方式1
工作方式1用于串行发送或接收数据,为8位异步 通信方式。
串行发送中断标志TI和接收中断标志RI是同一个中断 源,必须用软件来判别是发送中断请求还是接收中 断请求。
整机复位时,SCON各位均被清0。
4. 电源控制寄存器PCON
PCON字节地址为87H,其中只有一位SMOD与 串行口工作有关:
D7 D6 D5 D4 D3 D2 D1 D0 SMOD
先发送低电平的起始位 把发送数据缓冲器中的内容按低位在前高位在后的顺
序一位一位发送; 高电平的停止位;
一个字符发送完,发送中断标志TI置位;
接收
串口控制寄存器SCON中的REN位置1时,接收 控制器开始工作;
接收数据线采样到高电平到低电平的负跳变Байду номын сангаас, 开始接收数据;
接收的前8位数据依次移入输入移位寄存器,第 9位数据置入SCON的RB8位;
如接收有效,移位寄存器的数据置入接收数据缓 冲器,并置接收中断位RI=1。
3. 串行口控制寄存器SCON (98H)
SCON用于确定工作方式选择、接收和发送控制 以及串行口的状态标志;
可位寻址,位地址为98H~9FH。
SCON(98H)
D7 D6 D5 D4 D3 D2 D1 D0 SM0 SM1 SM2 REN TB8 RB8 TI RI
的TB8中。 向SBUF写入数据启动数据发送。 一帧数据发送完毕置中断标志TI为1。
(2)方式2,3接收
与方式1类似,置位REN后启动一次接收。 不同的是,第9位数据是发送过来的TB8位,接
收后存放到RB8中。 对接收是否有效,判断也是用接收的第9位,而
不是用停止位。其余情况与方式1相同。
器件的同步时钟信号; 发送和接收数据时低位在前高位在后,长度为8位。
方式0发送和接收电路
(1)方式0发送过程
TI=0时,当CPU执行一条向SBUF写数据的命令时,就 启动发送8位数据;
低位在前高位在后从RXD依次发送数据,TXD端输出 移位同步信号;
8位数据发送完时中断标志TI置位,向CPU申请中断; 再次发送时须软件将TI清零,并再次执行写SBUF命令。
串行口的编程及应用
串行口的初始化编程
串行口控制寄存器SCON位的确定
工作方式:SM0、SM1; 对于方式2和3,确定SM2; 如果是接收端,REN=1; 如果是方式2,3,发送数据,第9位写入TB8中。
设置波特率
1. 方式0的波特率
不需要设置,波特率为振荡频率的十二分 之一,即fosc/12。
TXD端输出数据。 发送时钟由定时/计数器T1的溢出信号16或32分频得到。 TXD端送出一个低电平起始位,然后是8位数据,接着
是高电平的停止位。 从发送缓冲器SBUF取出数据后须软件清零TI。
(2)方式1接收
置位REN后启动一次接收。 以所选波特率的16倍速率对RXD引脚上的电平
此外,它还能利用校验位检测错误,所以,串行异 步通信方式应用较为广泛。
(2)串行同步通信
串行同步通信方式的特点是数据在线路上传送时 以字符块为单位,一次传送多个字符,传送时须 在前面加上1个或2个同步字符,后面加上校验位。
同步字符1 同步字符2 数据块 校验字符1 校验字符2
一次连续传送多个字符,传送的位数多,对发送 时钟和接收时钟要求较高。
(
状态
或
外
设
)
(a)并行通信
计
计
算
算
机
机
(
或
外
设
)
(b)串行通信
图7.7 计算机与外界通信的基本方式
并行通信
优点: 传送速度快,效率高。 缺点: 传输信号线多,硬件设备复杂,成本高。 并行通信适合于近距离通信和对速度要求较高
的场合。
串行通信
优点: 传送数据线少,通信距离远、成本低。 缺点: 传输速度慢,效率低。 串行总线适合于长距离通信。
采样。采集到1到0的负跳变后启动接收控制器 开始接收数据。
在移位脉冲的控制下,依次把所接收到的数据 移入移位寄存器。
8位数据及停止位全部移入后,根据以下状态, 进行响应:
RI=0、SM2=0,数据装入SBUF,停止位装入RB8, 令RI=1,从而申请CPU中断;
RI=0、SM2=1,
(TH1)=(TL1)=F4H。
表7-2串行口工作方式的选择
SM0 SM1
工作 方式
功能
00
0 移位寄存器方式,波特率=fosc/12
01 10 11
1
8位异步通信方式,波特率可变
波特率 T1溢出率 2SMOD / 32
2
9位异步通信方式:
波特率 fosc 2SMOD / 64
3
9位异步通信方式,波特率可变
波特率 T1溢出率 2SMOD / 32
RB8:
在工作方式2和工作方式3中,它是接收到的第9位数据, 既可以作为约定好的奇偶校验位,也可以作为多机通信时 的地址帧或数据帧标志。
在工作方式1,若SM2=0,则RB8是接收到的停止位。 工作方式0时不使用RB8。
TI:发送中断标志位,硬件置位,须软件清零。 RI:接收中断标志位,硬件置位,须软件清零。
在工作方式1时,若SM2=1,则只有接收到有效停止位 时,接收才有效。
在工作方式0时,SM2必须设为0。
REN:允许接收控制位
REN=1,允许接收; REN=0,禁止接收(可发送)。
TB8:
在工作方式2和工作方式3中,它是准备发送的第9位数据 位;
可作为数据的奇偶校验位; 也可在多机通信中作为地址帧或数据帧的标志:
SMOD称为波特率选择位。
若SMOD=1,则波特率提高一倍; 若SMOD=0,则波特率不加倍; 整机复位时,SMOD=0。
7.3.3串行接口的四种工作方式
1. 工作方式0 (SM0 SM1=00) 用于外接移位寄存器,用作扩展I/O口; 波特率固定为晶体振荡器频率的1/12; 串行数据通过RXD(P3.0)端输入或输出; 同步移位时钟由TXD(P3.1)端送出,作为外接
9位数据位和1位停止位。
发送的第9位数据放于TB8中; 接收的第9位数据放于RB8中;
方式2和3的区别在于波特率不同:
方式2的波特率 fosc 2SMOD / 64 方式3的波特率 T1溢出率 2SMOD / 32
(1)方式2,3发送
发送的数据为9位,加起始位,停止位共11位。 启动发送之前,要发送的第9位数据装入SCON
发送数据寄存器和接收数据寄存器合用一个特殊功能寄 存器SBUF(串行口数据寄存器),字节地址为99H。
串行口控制寄存器SCON:用于设置串口的工作方式、 控制数据的接收和发送等。
电源控制寄存器PCON:用于控制串口的波特率。
发送
执行一条向SBUF写入数据的指令,启动发送; 在发送时钟的控制下
(3)波特率
波特率是指串行通信中,单位时间传送的二进制 位数,单位为bps
例:数据传送的速率每秒200帧,每帧包含11个位信息 (1个起始位、8个数据位、1个校验位、1个停止位), 求波特率。 波特率= 11×200字符/秒=2200波特(bps)
7.3.2 MCS-51单片机的串行接口
串行通信,按信息传送的方向:
单工 半双工 全双工
(a)单工
(b)半双工
(c)全双工
按照信息的格式,串行通信可分为:
串行异步通信 串行同步通信
(1)串行异步通信
串行异步通信中,数据或字符按帧(即一个字符或 字节)在线路上传送。空闲时线路为高电平。
帧由四个部分组成: 起始位:低电平 “0” 数据位: 5-8位数据,低位在前,高位在后 奇偶校验位: (可省略) 停止位:高电平的停止位“1” 1位,1位半,或2位
第n个字符
第n+1个字符
0 D0 D1 D2 D3 D4 D5 D6 D7 1 0 D0 D1 D2 D3 D4 D5 D6 D7 1
起始位
数据位
奇偶校验位 停止位 起始位
由于异步串行通信每传送一帧数据都有固定格式, 通信双方只需按约定的帧格式来发送和接收数据, 所以,硬件结构比串行同步通信方式简单;
SM2:多机通信控制位
在方式2和3中,用于主—从式多机通信的控制位。 SM2=1:
如果第9位数据(RB8)为1,移位寄存器中的数据装入接收数据缓 冲器,并置中断标志RI=1。
则当接收到的第9位数据(RB8)为0,接收无效;
SM2=0:
接收到一帧数据后,无论第9位是0还是1,都置中断标志RI=1, 移位寄存器中的数据都装入接收数据寄存器中。
1 功能
MCS-51有1个全双工串行异步通信接口,可同时 发送接收数据。
发送、接收数据的过程均可工作在查询方式或中 断方式,使用灵活。
四种工作方式:
方式0:
同步移位寄存器方式
方式1:
8位的异步通信方式
方式2和3: 9位的异步通信方式
不同的工作方式,波特率不同:
方式0和2的波特率直接由系统时钟产生; 方式1和3的波特率可变,由定时/计数器T1的
2. 方式2的波特率
仅需设置PCON中SMOD位的值:
方式2的波特率 fosc 2SMOD / 64
当SMOD=0时,波特率为fosc的1/64; 若SMOD=1时,则波特率为fosc的1/32;
3. 方式1和方式3的波特率
方式1和方式3 设置SMOD的值 设置TMOD和T1的初值,确定定时/计数器T1的 溢出率
7.3 串行接口
主要内容
7.3.1 通信的基本概念 7.3.2 MCS-51单片机串行口的功能和结构 7.3.3 串行口的工作方式 7.3.4 串行口的编程及应用
7.3.1通信的基本概念
(a)并行通信
(b)串行通信
7.3.1通信的基本概念
D0~D7
D0~D7
计
计
算
算
机
机 控制或选通
收发一帧数据的格式为:
1位起始位 8位数据位 1位停止位
TXD用于发送数据,RXD用于接收数据;
波特率 T1溢出率 2SMOD / 32
其中,SMOD为波特率倍增选择位,可取0或1,T1的溢出 率取决于计数速率和定时器的初值。
(1)方式1发送
TI=0时,当CPU执行一条向SBUF写数据的命令时,就 启动数据发送。
例:已知805l单片机时钟振荡频率为11.0592 MHZ,选用定时器T1工作方式2作波特率发 生器,波特率为2400波特,求初值X。
解:设波特率控制位SMOD=0,则有:
波特率
fosc
2SMOD / 32
12 (256 X)
X 256 20 11.0592106 244 F4H 3212 2400
RI=1,所接收的数据不装入SBUF,数据丢失。
无论哪种情况,接收控制器都将继续采样RXD 引脚,以便接收下一帧信息。
3. 方式2和方式3
方式2和方式3都为9位异步通信方式。 以每帧11位异步通信格式收发数据:1位起始位、
波特率 T1的溢出率 2SMOD / 32
当定时器T1作波特率发生器使用时,一 般选用可自动装入初值模式(工作方式2)。
T1的溢出率
fosc
12 (256 X)
波特率
fosc
2SMOD / 32
12 (256 X)
X 256 2SMOD fosc 3212 波特率
溢出率决定。
7.3.2 MCS-51单片机的串行接口
2 串行接口结构
组成:
发送数据缓冲器SBUF、发送控制器、输出控制 门
接收数据缓冲器SBUF、接收控制器、输入移位 寄存器
发送数据寄存器
输出控制门
器
接收数据寄存器
图7.15 串行接口结构框图
用户角度看,串口由三个特殊功能寄存器组成:
(2)方式0接收过程
当RI=0时,置位REN后启动一次接收。 RXD为数据输入,TXD为同步移位信号输出端。 接收到的8位数据存储在接收缓冲器SBUF后置位中断
标志RI。 从接收缓冲器SBUF取出数据后须软件清零RI。
2. 工作方式1
工作方式1用于串行发送或接收数据,为8位异步 通信方式。
串行发送中断标志TI和接收中断标志RI是同一个中断 源,必须用软件来判别是发送中断请求还是接收中 断请求。
整机复位时,SCON各位均被清0。
4. 电源控制寄存器PCON
PCON字节地址为87H,其中只有一位SMOD与 串行口工作有关:
D7 D6 D5 D4 D3 D2 D1 D0 SMOD
先发送低电平的起始位 把发送数据缓冲器中的内容按低位在前高位在后的顺
序一位一位发送; 高电平的停止位;
一个字符发送完,发送中断标志TI置位;
接收
串口控制寄存器SCON中的REN位置1时,接收 控制器开始工作;
接收数据线采样到高电平到低电平的负跳变Байду номын сангаас, 开始接收数据;
接收的前8位数据依次移入输入移位寄存器,第 9位数据置入SCON的RB8位;
如接收有效,移位寄存器的数据置入接收数据缓 冲器,并置接收中断位RI=1。
3. 串行口控制寄存器SCON (98H)
SCON用于确定工作方式选择、接收和发送控制 以及串行口的状态标志;
可位寻址,位地址为98H~9FH。
SCON(98H)
D7 D6 D5 D4 D3 D2 D1 D0 SM0 SM1 SM2 REN TB8 RB8 TI RI
的TB8中。 向SBUF写入数据启动数据发送。 一帧数据发送完毕置中断标志TI为1。
(2)方式2,3接收
与方式1类似,置位REN后启动一次接收。 不同的是,第9位数据是发送过来的TB8位,接
收后存放到RB8中。 对接收是否有效,判断也是用接收的第9位,而
不是用停止位。其余情况与方式1相同。
器件的同步时钟信号; 发送和接收数据时低位在前高位在后,长度为8位。
方式0发送和接收电路
(1)方式0发送过程
TI=0时,当CPU执行一条向SBUF写数据的命令时,就 启动发送8位数据;
低位在前高位在后从RXD依次发送数据,TXD端输出 移位同步信号;
8位数据发送完时中断标志TI置位,向CPU申请中断; 再次发送时须软件将TI清零,并再次执行写SBUF命令。
串行口的编程及应用
串行口的初始化编程
串行口控制寄存器SCON位的确定
工作方式:SM0、SM1; 对于方式2和3,确定SM2; 如果是接收端,REN=1; 如果是方式2,3,发送数据,第9位写入TB8中。
设置波特率
1. 方式0的波特率
不需要设置,波特率为振荡频率的十二分 之一,即fosc/12。
TXD端输出数据。 发送时钟由定时/计数器T1的溢出信号16或32分频得到。 TXD端送出一个低电平起始位,然后是8位数据,接着
是高电平的停止位。 从发送缓冲器SBUF取出数据后须软件清零TI。
(2)方式1接收
置位REN后启动一次接收。 以所选波特率的16倍速率对RXD引脚上的电平
此外,它还能利用校验位检测错误,所以,串行异 步通信方式应用较为广泛。
(2)串行同步通信
串行同步通信方式的特点是数据在线路上传送时 以字符块为单位,一次传送多个字符,传送时须 在前面加上1个或2个同步字符,后面加上校验位。
同步字符1 同步字符2 数据块 校验字符1 校验字符2
一次连续传送多个字符,传送的位数多,对发送 时钟和接收时钟要求较高。
(
状态
或
外
设
)
(a)并行通信
计
计
算
算
机
机
(
或
外
设
)
(b)串行通信
图7.7 计算机与外界通信的基本方式
并行通信
优点: 传送速度快,效率高。 缺点: 传输信号线多,硬件设备复杂,成本高。 并行通信适合于近距离通信和对速度要求较高
的场合。
串行通信
优点: 传送数据线少,通信距离远、成本低。 缺点: 传输速度慢,效率低。 串行总线适合于长距离通信。
采样。采集到1到0的负跳变后启动接收控制器 开始接收数据。
在移位脉冲的控制下,依次把所接收到的数据 移入移位寄存器。
8位数据及停止位全部移入后,根据以下状态, 进行响应:
RI=0、SM2=0,数据装入SBUF,停止位装入RB8, 令RI=1,从而申请CPU中断;
RI=0、SM2=1,
(TH1)=(TL1)=F4H。
表7-2串行口工作方式的选择
SM0 SM1
工作 方式
功能
00
0 移位寄存器方式,波特率=fosc/12
01 10 11
1
8位异步通信方式,波特率可变
波特率 T1溢出率 2SMOD / 32
2
9位异步通信方式:
波特率 fosc 2SMOD / 64
3
9位异步通信方式,波特率可变
波特率 T1溢出率 2SMOD / 32
RB8:
在工作方式2和工作方式3中,它是接收到的第9位数据, 既可以作为约定好的奇偶校验位,也可以作为多机通信时 的地址帧或数据帧标志。
在工作方式1,若SM2=0,则RB8是接收到的停止位。 工作方式0时不使用RB8。
TI:发送中断标志位,硬件置位,须软件清零。 RI:接收中断标志位,硬件置位,须软件清零。
在工作方式1时,若SM2=1,则只有接收到有效停止位 时,接收才有效。
在工作方式0时,SM2必须设为0。
REN:允许接收控制位
REN=1,允许接收; REN=0,禁止接收(可发送)。
TB8:
在工作方式2和工作方式3中,它是准备发送的第9位数据 位;
可作为数据的奇偶校验位; 也可在多机通信中作为地址帧或数据帧的标志:
SMOD称为波特率选择位。
若SMOD=1,则波特率提高一倍; 若SMOD=0,则波特率不加倍; 整机复位时,SMOD=0。
7.3.3串行接口的四种工作方式
1. 工作方式0 (SM0 SM1=00) 用于外接移位寄存器,用作扩展I/O口; 波特率固定为晶体振荡器频率的1/12; 串行数据通过RXD(P3.0)端输入或输出; 同步移位时钟由TXD(P3.1)端送出,作为外接
9位数据位和1位停止位。
发送的第9位数据放于TB8中; 接收的第9位数据放于RB8中;
方式2和3的区别在于波特率不同:
方式2的波特率 fosc 2SMOD / 64 方式3的波特率 T1溢出率 2SMOD / 32
(1)方式2,3发送
发送的数据为9位,加起始位,停止位共11位。 启动发送之前,要发送的第9位数据装入SCON
发送数据寄存器和接收数据寄存器合用一个特殊功能寄 存器SBUF(串行口数据寄存器),字节地址为99H。
串行口控制寄存器SCON:用于设置串口的工作方式、 控制数据的接收和发送等。
电源控制寄存器PCON:用于控制串口的波特率。
发送
执行一条向SBUF写入数据的指令,启动发送; 在发送时钟的控制下
(3)波特率
波特率是指串行通信中,单位时间传送的二进制 位数,单位为bps
例:数据传送的速率每秒200帧,每帧包含11个位信息 (1个起始位、8个数据位、1个校验位、1个停止位), 求波特率。 波特率= 11×200字符/秒=2200波特(bps)
7.3.2 MCS-51单片机的串行接口
串行通信,按信息传送的方向:
单工 半双工 全双工
(a)单工
(b)半双工
(c)全双工
按照信息的格式,串行通信可分为:
串行异步通信 串行同步通信
(1)串行异步通信
串行异步通信中,数据或字符按帧(即一个字符或 字节)在线路上传送。空闲时线路为高电平。
帧由四个部分组成: 起始位:低电平 “0” 数据位: 5-8位数据,低位在前,高位在后 奇偶校验位: (可省略) 停止位:高电平的停止位“1” 1位,1位半,或2位
第n个字符
第n+1个字符
0 D0 D1 D2 D3 D4 D5 D6 D7 1 0 D0 D1 D2 D3 D4 D5 D6 D7 1
起始位
数据位
奇偶校验位 停止位 起始位
由于异步串行通信每传送一帧数据都有固定格式, 通信双方只需按约定的帧格式来发送和接收数据, 所以,硬件结构比串行同步通信方式简单;
SM2:多机通信控制位
在方式2和3中,用于主—从式多机通信的控制位。 SM2=1:
如果第9位数据(RB8)为1,移位寄存器中的数据装入接收数据缓 冲器,并置中断标志RI=1。
则当接收到的第9位数据(RB8)为0,接收无效;
SM2=0:
接收到一帧数据后,无论第9位是0还是1,都置中断标志RI=1, 移位寄存器中的数据都装入接收数据寄存器中。
1 功能
MCS-51有1个全双工串行异步通信接口,可同时 发送接收数据。
发送、接收数据的过程均可工作在查询方式或中 断方式,使用灵活。
四种工作方式:
方式0:
同步移位寄存器方式
方式1:
8位的异步通信方式
方式2和3: 9位的异步通信方式
不同的工作方式,波特率不同:
方式0和2的波特率直接由系统时钟产生; 方式1和3的波特率可变,由定时/计数器T1的
2. 方式2的波特率
仅需设置PCON中SMOD位的值:
方式2的波特率 fosc 2SMOD / 64
当SMOD=0时,波特率为fosc的1/64; 若SMOD=1时,则波特率为fosc的1/32;
3. 方式1和方式3的波特率
方式1和方式3 设置SMOD的值 设置TMOD和T1的初值,确定定时/计数器T1的 溢出率
7.3 串行接口
主要内容
7.3.1 通信的基本概念 7.3.2 MCS-51单片机串行口的功能和结构 7.3.3 串行口的工作方式 7.3.4 串行口的编程及应用
7.3.1通信的基本概念
(a)并行通信
(b)串行通信
7.3.1通信的基本概念
D0~D7
D0~D7
计
计
算
算
机
机 控制或选通
收发一帧数据的格式为:
1位起始位 8位数据位 1位停止位
TXD用于发送数据,RXD用于接收数据;
波特率 T1溢出率 2SMOD / 32
其中,SMOD为波特率倍增选择位,可取0或1,T1的溢出 率取决于计数速率和定时器的初值。
(1)方式1发送
TI=0时,当CPU执行一条向SBUF写数据的命令时,就 启动数据发送。
例:已知805l单片机时钟振荡频率为11.0592 MHZ,选用定时器T1工作方式2作波特率发 生器,波特率为2400波特,求初值X。
解:设波特率控制位SMOD=0,则有:
波特率
fosc
2SMOD / 32
12 (256 X)
X 256 20 11.0592106 244 F4H 3212 2400