第7章 MCS-51单片机串行口(3学时)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理与接口技术
(C语言版)
第7章 MCS-51单片机串行口
主 讲:刘汉明
赣南师范学院
第7章 MCS-51单片机串行口
目 录
7.1 7.2 7.3 7.4 7.5 串行通信基本知识 串行口结构及控制 串行口工作方式 串行口应用举例 单片机与PC机通信接口电路
本章要点
本章主要讲述 MCS-51 单片机串行口的 结构、工作原理以及应用。 主要内容包括串行通信基本知识、MCS51 单片机串行口结构、串行口工作方式以 及单片机与PC机通信的接口电路。
SH/LD
并转串IC
7.3.2 串行口方式1 • 方式1用于串行发送或接收。
TXD与RXD分别用于发送、接收数据。
• 帧格式: 1 位起始位、 8 位数据位(低位在 前)、1位停止位,共10位。 • 接收时,停止位进入SCON的RB8。
• 方式1的波特率可调,由T1或T2控制。
• SCON=010xxxxxb , 即 SM0SM1SM2=010 。
SM2:多机通信控制位,方式2或3中使用。
7.2.2 与串行口有关的特殊功能寄存器
D7 SM0 D6 SM1 D5 SM2 D4 REN D3 TB8 D2 RB8 D1 TI D0 RI
TI:发送中断标志。
RI:接收中断标志。 关于TI和RI:TI和RI是属同一中断源,CPU不清楚 是发送还是接收产生的中断请求,所以,在全双 工通信时,必须由软件来判别。
异步通信的帧格式
7.1.2 异步通信和同步通信(12)
2.同步通信(用同一时钟)
• 每个数据块发送之前,先发送一个或两个同步字 符,使发送方与接收方同步,然后再顺序发送数 据。
• 数据块的各个字符间取消起始位和停止位,通信 速度得以提高 。
同步字符1
同步字符2
数据流 数据 数据 …
同步通信帧格式
7.1.3 波特率
• 分析:数据的输出通过 RXD 发送,移位时 钟通过TXD送出,74HC595用于串/并转换。
7.4.1 同步方式应用
方式0扩展输出电路
89C52 RXD DS SH_CP ST_CP MR 输出清0
Store Clock Pulse,锁存器时钟输入。 在上升沿锁存移位寄存器值。
74HC595
TXD
while(x--) for(i=0;i<830;i++);
7.2.2 与串行口有关的特殊功能寄存器
• 多机通信实现:
(1)实现条件:各个从机的SM2设置为1。 (2)实现方法
• 当SM2=1时,若RB8=1,则保留收到的数据;否则, 丢弃。 地址 ①主机先发送从机地址,并置TB8为1。
–此时各从机均可接收此地址,只有目标从机把 SM2清0; 其它从机保留SM2=1。
即 方式2的波特率= 2SMOD×fosc/64
7.2.3 波特率设计
7.2.3 波特率设计
(2)T2作波特率发生器
略
7.3 串行口工作方式
主要内容
7.3.1 串行口方式0 7.3.2 串行口方式1 7.3.3 串行口方式2和方式3
7.3.1 串行口方式0
• 方式 0 为同步移位寄存器输入/ 输出方式,常用于 扩展并行I/O口。
2. 串行通信:单位信息的各位数据被分时逐位依次顺序 传送。 • 并行通信连 线多,速度 快,适合近 P1.0 D0 P1.1 D1 RXD TXD 距离通信; P1.2 D2 TXD RXD 外 外 P1.3 D3 部 • 串行通信连 部 89C52 P1.4 D4 设 设 P1.5 D5 89C52 备 线少,速度 备 P1.6 D6 P1.7 D7 慢,适合远 GND GND GND GND 距离通信。
除方式2、3的多机通信外,SM2应清0
7.3.2 串行口方式1
1、方式1发送
• TI=0、写SBUF启动发送
7.3.2 串行口方式1 2、方式1接收
1)接收条件:SCON的REN置1 2 )接收过程:串口检测接收引脚 RXD ,当 RXD 由高变低时开始移位接收;接收完成后将停止位 装入RB8。 3)接收的数据有效的两个条件 :
1.控制状态寄存器SCON
• 功能:设置串行口的工作方式和标识串行口状态。 REN:允许接收控制位。1,允许;0:禁止。 TB8:发送数据的第9位。
RB8:接收数据的第9位。
7.2.2 与串行口有关的特殊功能寄存器
D7 SM0 D6 SM1 D5 SM2 D4 REN D3 TB8 D2 RB8 D1 TI D0 RI
• 半双工方式:一对传输线允许向两个方向 中的任一方向传送数据,但不能同时进行; • 全双工方式:用两对传输线连接发送方和 接收方,发送和接收可以同时进行。
7.1.5 串行通信接口种类
• 根据串行通信协议(如同步方式、通信速率、数 据块格式等)不同,形成了多种串行通信标准。
• 常见的标准:
UART(通用异步串行通信接口)
串行口工作于方式 1 、 2 和 3 时, SMOD = 1 ,串口 波特率加倍。
• 不能位寻址。
7.2.3 波特率设计
• 方式0和方式2的波特率固定; • 方式 1 和方式 3 的波特率由定时器 T1 溢出率 决定。
增强型单片机,也可以使用T2作波特率发生器。
1.方式0的波特率
方式0为同步移位寄存器方式。 波特率固定为振荡频率的 1/12 。并不受 PCON 寄存器SMOD位影响。
• 波特率表示每秒传送的数据位数,单位为 b/s(记作波特)。
例:数据传送速率为每秒10 个字符,若每个字 符帧为11位,则传送波持率为: 11b/字符×10字符/s=110b/s
• 异步通信速率一般在50~19 200b/s之间 。
7.1.4 通信方向
• 单工方式:一对传输线只允许单方向传送 数据;
}
7.4.1 同步方式应用
•
•
例7-2 用89C52串口外接74HC165并出/ 串入移位寄存器扩展 8 位并行输入口, 8 位并行输入口的每位都接一个拨动开关 ,要求读入开关量的值。 解:数据输入通过 RXD 接收,移位时钟 由 TXD 产生。时钟禁止端接地,使时钟 有效。P1.1接一按键,当按键按下时输入 一次数据。数据接收采用查询方式。
7.2.3 波特率设计
2.方式2的波特率
时钟:接收与发送的时钟直接来自振荡频率 fosc,为fosc/2,与PCON中SMOD位有关。 方式2波特率只有两种(fosc/64或 fosc/32)、 11位的异步通信 ,可多机通信。
• SMOD=0,波特率为fosc/64; • SMOD=1,波特率为fosc/32。
}
void main() { unsigned char dd=0x01; SCON=0x0; while(1) { TI=0; SBUF=dd; dd=_crol_(dd,1); while(TI==0); P3_6=0; P3_6=1; delay10xms(100); } //设置串口方式0 //清除发送结束标志 //发送 //左移1位 //等待发送结束 //输出数据 //延时1s
• 除波特率不同外,方式2和3操作完全一样。 • 每帧 11 位:即 1 位起始位、 8 位数据位(低位在 前)、1位奇偶校验位和1位停止位。
发送时,奇偶位装入SCON的TB8; 接收时,奇偶位进入SCON的RB8。
• SCON=1001 0000b=0x90 方式2接收 • SCON=1101 0000b=0xD0 方式3接收
7.4.1 同步方式应用
方式0扩展输入电路
89C52
RXD
QH CLK
74HC165 SH/LD INH
时钟禁止
TXD
P1.0 P1.1
Shift/Load : =1 ,移位输出; =0 , 装入并行数据。
7.4.1 同步方式应用
#include<reg52.h> sbit LOAD165=P1^0; sbit KEY=P1^1; #include<reg52.h> sbit LOAD165=P1^0; sbit KEY=P1^1; void delay10xms(unsigned char x) { //设晶振为12MHz unsigned int i;
7.1 串行通信基本知识
主要内容
7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 数据通信 异步通信和同步通信 波特率 通信方向 串行通信接口种类
7.1.1 数据通信
• 计算机与外界的信息交换称为通信。
• 基本的通信方式有并行通信和串行通信两种。
1. 并行通信:单位信息的各位数据同时传送。
扩 展 并 行 输 出 扩 展 并 行 输 入
89C52 P3.0 P3.1 TXD P1.0 RXD 1 2 8
Q0 A B CLK 74HC164
Q7
14
+5V
GND CLR 9
7 串转并IC
11 12 13 14 3 4 5 6 89C52 P3.0 P3.1 TXD P1.0 P1.1 RXD 9 2 QH 74HC165 CLK GND SHIFT 时钟禁止 1 15 8 A B C D E F G H 16 +5V
a、RI=0; b、SM2=0,或者SM2=1并且RB8=1 满足以上2条,则将8位数据装入SBUF,且RI置1。 以下情况之一数据无效: a ) RI=1 ; b ) SM2=1 且 RB8=0
7.3.3 串行口方式2和方式3
• 方式2和方式3为每帧11位的异步通信格式。
TXD和RXD发送与接收
7.4 串行口应用举例
主要内容
7.4.1 同步方式应用 7.4.2 异步方式应用
7.4.1 同步方式应用
• MSC-51单片机的串口在方式0,以同步方式 操作。
• 外接串入 / 并出或并入 / 串出器件,可实现 I/O口扩展。
7.4.1 同步方式应用
• 例7-1 用89C52串行口外接74HC595串入/ 并出移位寄存器扩展 8 位并口。 8 位输出口 的每位都接有发光二极管,要求8位发光二 极管循环点亮。
SM0和SM1:串行口工作方式选择位。
SM0 SM1 工作方式 0 0 0 1 方式0 方式1 功能说明 同步移位寄存器 10位异步通信 波特率 fosc/12 可变,T1或T2提供
1
1
0
1Βιβλιοθήκη Baidu
方式2
方式3
11位UART 、可多机
11位UART 、可多机
fosc/64或 fosc/32
可变,T1或T2提供
RXD 为数据端; TXD 产生移位时钟,作为外部的同步 信号。
• 方式0只收/发8位数据,无起始位、奇偶校验位及 停止位,低位在前、高位在后; • 波特率固定为fosc/12。 • 启动发送:TI=0、写SBUF • 启动接收:RI=0、REN置1
用串行口方式0扩展并行输出/输入口
3 4 5 6 10 11 12 13
USB(通用串行总线接口) I2C(集成电路间的串行总线)
SPI(同步串行外设总线)
485总线 CAN总线接口等
7.2 串行口结构及控制
主要内容
7.2.1 MCS-51串行口结构 7.2.2 特殊功能寄存器 7.2.3 波特率设计
7.2.1 与串行口有关的特殊功能寄存器
D7 SM0 D6 SM1 D5 SM2 D4 REN D3 TB8 D2 RB8 D1 TI D0 RI
Q7’
OE
级联输出
P3.6
7.4.1 同步方式应用
#include<reg52.h> #include<intrins.h> sbit P3_6=P3^6;
void delay10xms(unsigned char x) { //设晶振为12MHz unsigned int i; while(x--) for(i=0;i<830;i++);
②主机接着发送数据,并置TB8为0。
–此时目标从机正常接收数据,其它从机均丢弃。
7.2.2 与串行口有关的特殊功能寄存器
2.电源控制寄存器PCON
只有SMOD位与串行口工作有关。
D7 SMOD D6 --D5 --D4 --D3 GF1 D2 GF0 D1 PD D0 IDL
• SMOD:波特率倍增位。
7.1.2 异步通信和同步通信(12)
1.异步通信(时钟不同,甚至频率不同)
• 传送的数据以帧的形式逐帧传送。 第 n帧
停 空 起 止 闲 始 或 位 位 位
… 1 0 0/1
8位数据
0/1 0 /1 0/1 0/1 0 /1 0/1
校 停 空 起 验 止 闲 始 位 位 位 位
.. 0/1 0 /1 1 0 0 /1
(C语言版)
第7章 MCS-51单片机串行口
主 讲:刘汉明
赣南师范学院
第7章 MCS-51单片机串行口
目 录
7.1 7.2 7.3 7.4 7.5 串行通信基本知识 串行口结构及控制 串行口工作方式 串行口应用举例 单片机与PC机通信接口电路
本章要点
本章主要讲述 MCS-51 单片机串行口的 结构、工作原理以及应用。 主要内容包括串行通信基本知识、MCS51 单片机串行口结构、串行口工作方式以 及单片机与PC机通信的接口电路。
SH/LD
并转串IC
7.3.2 串行口方式1 • 方式1用于串行发送或接收。
TXD与RXD分别用于发送、接收数据。
• 帧格式: 1 位起始位、 8 位数据位(低位在 前)、1位停止位,共10位。 • 接收时,停止位进入SCON的RB8。
• 方式1的波特率可调,由T1或T2控制。
• SCON=010xxxxxb , 即 SM0SM1SM2=010 。
SM2:多机通信控制位,方式2或3中使用。
7.2.2 与串行口有关的特殊功能寄存器
D7 SM0 D6 SM1 D5 SM2 D4 REN D3 TB8 D2 RB8 D1 TI D0 RI
TI:发送中断标志。
RI:接收中断标志。 关于TI和RI:TI和RI是属同一中断源,CPU不清楚 是发送还是接收产生的中断请求,所以,在全双 工通信时,必须由软件来判别。
异步通信的帧格式
7.1.2 异步通信和同步通信(12)
2.同步通信(用同一时钟)
• 每个数据块发送之前,先发送一个或两个同步字 符,使发送方与接收方同步,然后再顺序发送数 据。
• 数据块的各个字符间取消起始位和停止位,通信 速度得以提高 。
同步字符1
同步字符2
数据流 数据 数据 …
同步通信帧格式
7.1.3 波特率
• 分析:数据的输出通过 RXD 发送,移位时 钟通过TXD送出,74HC595用于串/并转换。
7.4.1 同步方式应用
方式0扩展输出电路
89C52 RXD DS SH_CP ST_CP MR 输出清0
Store Clock Pulse,锁存器时钟输入。 在上升沿锁存移位寄存器值。
74HC595
TXD
while(x--) for(i=0;i<830;i++);
7.2.2 与串行口有关的特殊功能寄存器
• 多机通信实现:
(1)实现条件:各个从机的SM2设置为1。 (2)实现方法
• 当SM2=1时,若RB8=1,则保留收到的数据;否则, 丢弃。 地址 ①主机先发送从机地址,并置TB8为1。
–此时各从机均可接收此地址,只有目标从机把 SM2清0; 其它从机保留SM2=1。
即 方式2的波特率= 2SMOD×fosc/64
7.2.3 波特率设计
7.2.3 波特率设计
(2)T2作波特率发生器
略
7.3 串行口工作方式
主要内容
7.3.1 串行口方式0 7.3.2 串行口方式1 7.3.3 串行口方式2和方式3
7.3.1 串行口方式0
• 方式 0 为同步移位寄存器输入/ 输出方式,常用于 扩展并行I/O口。
2. 串行通信:单位信息的各位数据被分时逐位依次顺序 传送。 • 并行通信连 线多,速度 快,适合近 P1.0 D0 P1.1 D1 RXD TXD 距离通信; P1.2 D2 TXD RXD 外 外 P1.3 D3 部 • 串行通信连 部 89C52 P1.4 D4 设 设 P1.5 D5 89C52 备 线少,速度 备 P1.6 D6 P1.7 D7 慢,适合远 GND GND GND GND 距离通信。
除方式2、3的多机通信外,SM2应清0
7.3.2 串行口方式1
1、方式1发送
• TI=0、写SBUF启动发送
7.3.2 串行口方式1 2、方式1接收
1)接收条件:SCON的REN置1 2 )接收过程:串口检测接收引脚 RXD ,当 RXD 由高变低时开始移位接收;接收完成后将停止位 装入RB8。 3)接收的数据有效的两个条件 :
1.控制状态寄存器SCON
• 功能:设置串行口的工作方式和标识串行口状态。 REN:允许接收控制位。1,允许;0:禁止。 TB8:发送数据的第9位。
RB8:接收数据的第9位。
7.2.2 与串行口有关的特殊功能寄存器
D7 SM0 D6 SM1 D5 SM2 D4 REN D3 TB8 D2 RB8 D1 TI D0 RI
• 半双工方式:一对传输线允许向两个方向 中的任一方向传送数据,但不能同时进行; • 全双工方式:用两对传输线连接发送方和 接收方,发送和接收可以同时进行。
7.1.5 串行通信接口种类
• 根据串行通信协议(如同步方式、通信速率、数 据块格式等)不同,形成了多种串行通信标准。
• 常见的标准:
UART(通用异步串行通信接口)
串行口工作于方式 1 、 2 和 3 时, SMOD = 1 ,串口 波特率加倍。
• 不能位寻址。
7.2.3 波特率设计
• 方式0和方式2的波特率固定; • 方式 1 和方式 3 的波特率由定时器 T1 溢出率 决定。
增强型单片机,也可以使用T2作波特率发生器。
1.方式0的波特率
方式0为同步移位寄存器方式。 波特率固定为振荡频率的 1/12 。并不受 PCON 寄存器SMOD位影响。
• 波特率表示每秒传送的数据位数,单位为 b/s(记作波特)。
例:数据传送速率为每秒10 个字符,若每个字 符帧为11位,则传送波持率为: 11b/字符×10字符/s=110b/s
• 异步通信速率一般在50~19 200b/s之间 。
7.1.4 通信方向
• 单工方式:一对传输线只允许单方向传送 数据;
}
7.4.1 同步方式应用
•
•
例7-2 用89C52串口外接74HC165并出/ 串入移位寄存器扩展 8 位并行输入口, 8 位并行输入口的每位都接一个拨动开关 ,要求读入开关量的值。 解:数据输入通过 RXD 接收,移位时钟 由 TXD 产生。时钟禁止端接地,使时钟 有效。P1.1接一按键,当按键按下时输入 一次数据。数据接收采用查询方式。
7.2.3 波特率设计
2.方式2的波特率
时钟:接收与发送的时钟直接来自振荡频率 fosc,为fosc/2,与PCON中SMOD位有关。 方式2波特率只有两种(fosc/64或 fosc/32)、 11位的异步通信 ,可多机通信。
• SMOD=0,波特率为fosc/64; • SMOD=1,波特率为fosc/32。
}
void main() { unsigned char dd=0x01; SCON=0x0; while(1) { TI=0; SBUF=dd; dd=_crol_(dd,1); while(TI==0); P3_6=0; P3_6=1; delay10xms(100); } //设置串口方式0 //清除发送结束标志 //发送 //左移1位 //等待发送结束 //输出数据 //延时1s
• 除波特率不同外,方式2和3操作完全一样。 • 每帧 11 位:即 1 位起始位、 8 位数据位(低位在 前)、1位奇偶校验位和1位停止位。
发送时,奇偶位装入SCON的TB8; 接收时,奇偶位进入SCON的RB8。
• SCON=1001 0000b=0x90 方式2接收 • SCON=1101 0000b=0xD0 方式3接收
7.4.1 同步方式应用
方式0扩展输入电路
89C52
RXD
QH CLK
74HC165 SH/LD INH
时钟禁止
TXD
P1.0 P1.1
Shift/Load : =1 ,移位输出; =0 , 装入并行数据。
7.4.1 同步方式应用
#include<reg52.h> sbit LOAD165=P1^0; sbit KEY=P1^1; #include<reg52.h> sbit LOAD165=P1^0; sbit KEY=P1^1; void delay10xms(unsigned char x) { //设晶振为12MHz unsigned int i;
7.1 串行通信基本知识
主要内容
7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 数据通信 异步通信和同步通信 波特率 通信方向 串行通信接口种类
7.1.1 数据通信
• 计算机与外界的信息交换称为通信。
• 基本的通信方式有并行通信和串行通信两种。
1. 并行通信:单位信息的各位数据同时传送。
扩 展 并 行 输 出 扩 展 并 行 输 入
89C52 P3.0 P3.1 TXD P1.0 RXD 1 2 8
Q0 A B CLK 74HC164
Q7
14
+5V
GND CLR 9
7 串转并IC
11 12 13 14 3 4 5 6 89C52 P3.0 P3.1 TXD P1.0 P1.1 RXD 9 2 QH 74HC165 CLK GND SHIFT 时钟禁止 1 15 8 A B C D E F G H 16 +5V
a、RI=0; b、SM2=0,或者SM2=1并且RB8=1 满足以上2条,则将8位数据装入SBUF,且RI置1。 以下情况之一数据无效: a ) RI=1 ; b ) SM2=1 且 RB8=0
7.3.3 串行口方式2和方式3
• 方式2和方式3为每帧11位的异步通信格式。
TXD和RXD发送与接收
7.4 串行口应用举例
主要内容
7.4.1 同步方式应用 7.4.2 异步方式应用
7.4.1 同步方式应用
• MSC-51单片机的串口在方式0,以同步方式 操作。
• 外接串入 / 并出或并入 / 串出器件,可实现 I/O口扩展。
7.4.1 同步方式应用
• 例7-1 用89C52串行口外接74HC595串入/ 并出移位寄存器扩展 8 位并口。 8 位输出口 的每位都接有发光二极管,要求8位发光二 极管循环点亮。
SM0和SM1:串行口工作方式选择位。
SM0 SM1 工作方式 0 0 0 1 方式0 方式1 功能说明 同步移位寄存器 10位异步通信 波特率 fosc/12 可变,T1或T2提供
1
1
0
1Βιβλιοθήκη Baidu
方式2
方式3
11位UART 、可多机
11位UART 、可多机
fosc/64或 fosc/32
可变,T1或T2提供
RXD 为数据端; TXD 产生移位时钟,作为外部的同步 信号。
• 方式0只收/发8位数据,无起始位、奇偶校验位及 停止位,低位在前、高位在后; • 波特率固定为fosc/12。 • 启动发送:TI=0、写SBUF • 启动接收:RI=0、REN置1
用串行口方式0扩展并行输出/输入口
3 4 5 6 10 11 12 13
USB(通用串行总线接口) I2C(集成电路间的串行总线)
SPI(同步串行外设总线)
485总线 CAN总线接口等
7.2 串行口结构及控制
主要内容
7.2.1 MCS-51串行口结构 7.2.2 特殊功能寄存器 7.2.3 波特率设计
7.2.1 与串行口有关的特殊功能寄存器
D7 SM0 D6 SM1 D5 SM2 D4 REN D3 TB8 D2 RB8 D1 TI D0 RI
Q7’
OE
级联输出
P3.6
7.4.1 同步方式应用
#include<reg52.h> #include<intrins.h> sbit P3_6=P3^6;
void delay10xms(unsigned char x) { //设晶振为12MHz unsigned int i; while(x--) for(i=0;i<830;i++);
②主机接着发送数据,并置TB8为0。
–此时目标从机正常接收数据,其它从机均丢弃。
7.2.2 与串行口有关的特殊功能寄存器
2.电源控制寄存器PCON
只有SMOD位与串行口工作有关。
D7 SMOD D6 --D5 --D4 --D3 GF1 D2 GF0 D1 PD D0 IDL
• SMOD:波特率倍增位。
7.1.2 异步通信和同步通信(12)
1.异步通信(时钟不同,甚至频率不同)
• 传送的数据以帧的形式逐帧传送。 第 n帧
停 空 起 止 闲 始 或 位 位 位
… 1 0 0/1
8位数据
0/1 0 /1 0/1 0/1 0 /1 0/1
校 停 空 起 验 止 闲 始 位 位 位 位
.. 0/1 0 /1 1 0 0 /1