51单片机的串行口通信
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.串行通信基础
MAX232电平转换电路图
1.串行通信基础
MAX232电平转换模块
1.串行通信基础
本任务所用硬件设备
1.串行通信基础
RXD(P30) TXD(P31) +5V GND
本任务所用硬件设备
2. 串行口结构与工作原理
65 0100 0001
A
串行口结构示意图
2. 串行口结构与工作原理
SM0 SM1 0 0
0
1
1
0
方式1
方式2
10位UART
11位UART
可变
fosc/64或fosc/32
1
1
方式3
11位UART
可变
表1 串行口的工作方式
3.1 串行口控制寄存器SCON
SM0 0 SM1 1 SM2 0 REN 0 TB8 0 RB8 0 TI RI
0
0
SM2:多机通信控制位,用于方式2和方式3中。 REN:允许串行接收位。由软件置位或清零。REN=1时,允许 接收,REN=0时,禁止接收。
表2 常用波特率初值表
3.4 波特率与定时器设置
单片机或计算机在串口通信时的速率。 定义:每秒传输二进制代码的位数。1波特=1位/秒。 波特率由定时器T1产生(工作方式2 )
TMOD = 0x20; TL1 = 0xfd; TH1 = 0xfd; TR1 = 1;
// 工作方式2
// 波特率9600 // 启动定时器T1
0
SCON = 0x40;
// 工作方式2
3.2 电源及波特率选择寄存器PCON
SMOD 0 × 0 × 0 × 0 GF1 0 GF0 0 PD 0 IDL 0
PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器 ,字节地址为87H,不可以位寻址。在HMOS的AT89C51单片机中, PCON除了最高位以外其它位都是虚设的。 与串行通信有关的只有SMOD位。SMOD为波特率选择位。在方式 1、2和3时,串行通信的波特率与SMOD有关。 当SMOD=1时,通信波特率乘2,当SMOD=0时,波特率不倍增。
51单片机的串行口通信
主讲人:杨德亮
小米董事长兼CEO雷军公开宣布, 小米12亿元投资美的,双方将在智 能家居方面展开合作。
物联网
串行通信接口
项目描述
通过串口,从单片机向计算机发送“Hello, world!” 硬件接线
串行通信基础
串行口的引脚
软件编程
结构与工作原理
特殊功能寄存器
0
TI:发送中断标志位。发送完8位数据后,由硬件置位。因此, TI=1是发送完一帧数据的标志,其状态既可供软件查询使用,也 可请求中断。TI位必须由软件清0。 RI:接收中断标志位。接收完8位数据后,由硬件置位。因此, RI=1是接收完一帧数据的标志,其状态既可供软件查询使用, 也可请求中断。RI位也必须由软件清0。
SBUF = send[i];
buffer[i] = SBUF;
// 发送第i个数据
// 接收数据
3.4 波特率与定时器设置
单片机或计算机在串口通信时的速率。 定义:每秒传输二进制代码的位数。1波特=1位/秒。 波特率由定时器T1产生(工作方式2 ) 波特率 (bps) 2400 4800 9600 19200 定时初值 晶振 误差(%) (MHz) (SMOD=0) (SMOD=1) 11.0592 11.0592 11.0592 11.0592 0XF4 0XFA 0XFD —— 0XE8 0XF4 0XFA 0XFD 0 0 0 0
1.串行通信基础
232电平
TTL电平
1.串行通信基础
逻辑 0 TTL电平 0V RS-232C电平 +5~+15V
逻辑 1
。
+5V
5~15V
RS-232C不能和TTL电平直接相连,否则将使TTL电路烧坏。 实际使用中,RS-232C和TTL电平之间必须进行电平转换。 常用电平转换芯片:MAX232
PCON = 0x00; // 波特率不倍增
PCON = 0x80; // 波特率倍增
串行口结构示意图
3.3 串行口数据缓冲器SBUF
SBUF是两个在物理上独立的接收、发送寄存器。 一个用于存放接收到的数据,一个用于存放待发送 的数据,可同时发送和接收数据。 CPU在写SBUF时,操作的是发送缓冲器;读SBUF时, 就是读接收缓冲器的内容。
串行口结构示意图
3. 寄存器的使用与编程
串行口控制寄存器SCON
电源及波特率选择寄存器PCON 串行口数据缓冲器SBUF
。
波特率与定时器设置 编程实战
3.1 串行口控制寄存器SCON
SM0 0 SM1 1 工作方式 方式0 功能 8位同步移位寄存器 波特率 fosc/12 SM2 REN TB8 RB8 TI RI
等待一帧数据发送完毕
判断TI是否为1,是则表示发送完毕。
3.5 编程实战
while(TI==0);
清零发送中断标志位TI
// 查询等待发送是否完成
TI=0;
// 发送完成,TI由软件清0
继续发送下一帧数据
3.5 编程实战
。
Байду номын сангаас
小小串行口,联通大世界!
谢谢各位领导老师! 欢迎大家批评指正!
。
SCON = 0x40; // 工作方式2 PCON = 0x00; // 波特率不倍增 串口初始化 TMOD = 0x20; // 工作方式2 设置工作方式、波特率、启动定时器 TL1 = 0xfd; // 波特率9600 发送数据 TH1 = 0xfd; 数据送入SBUF,启动发送。 TR1 = 1; // 启动定时器T1 SBUF = send[i]; // 发送第i个数据
0
0
TB8:发送数据的第9位。在方式2和方式3中,由软件置位或复 位。一般可做奇偶校验位。在多机通信中,可作为区别地址帧或数 据帧的标识位,一般约定地址帧时TB8为1,数据帧时TB8为0。 RB8:接收数据的第9位。功能同TB8。
3.1 串行口控制寄存器SCON
SM0 0 SM1 1 SM2 0 REN 0 TB8 0 RB8 0 TI 0 RI 0
教学内容
串行通信基础 串行口结构与工作原理 寄存器的使用与编程
1.串行通信基础
信息传输的位数和数据位数相等 传输线多,硬件成本高 速度快、距离近
数据一位一位顺序传送 传输线少,硬件成本低 速度慢、距离远
1.串行通信基础
A
65
01000001
串行通信数据帧格式