串口通信原理及操作流程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RXD TXD GND
微机其他 设备
电 平 转 换 RXD TXD GND
RXD
TXD GND
远距离传送电路


微 机
调 制 解 调 器
电 话 分 机
电 话 分 机
调 制 解 调 器


微 机
数字信号通过调制器变成模拟信号通过电话线传送到 对方,接收方通过解调器将模拟信号转换成数字信号 接收。
MCS—51之间的双机通信
串行口4种工作方式对应波特率: (见P131) (串口常用工作方式1) 电源管理寄存器PCON SMOD-串口通信波特率有关 SMOD=0:串口方式1,2,3时,波特率正常 SMOD=1:串口方式1,2,3时,波特率加倍 TI溢出率: T1定时器溢出的频率,即 TI定时器每次溢出所需 时间T的倒数1/T。
ES=1; //退出进再开串行中断
} } }
中断函数程序分析
void serial() interrupt 4 //串行中断函数 { P1=SBUF; //将数据发送给 P1 口显示(测试用) a=SBUF; //收取数据 flag=1; //标志置位 RI=0; }
单片机串口
串行通信接口总线标准
测控系统中,计算机通信主要采用异步串行通信方式,常用的异 步总线标准有三种: ●RS-232(RS-232A RS-232B RS-232C) ●RS-449 (RS422 RS423 RS485) ●20mA电流环 这里重点介绍RS-232 RS-232C:速率:20Kbit/S, 最大通信距离: 15m RS422: 10Mbit/s: 300m 90Kbit/s: 1200m
SM0=0; //串口通信模式设置
SM1=1; REN=1; //串口允许接收数据 EA=1; //开总中断 ES=1; //开串Hale Waihona Puke Baidu中断 }
主函数分析
void main() { init(); while(1) { if(flag==1) //如果有数据则进入这个语句 { ES=0; //进入发送数据时先关闭串行中断 flag=0; SBUF=a; //将数据原样发回 while(!TI); //等待数据发完 TI=0;
SM2:多机通信控制位 主要用于方式2、3。在不同串口工作方式下,通 过控制SM2,可以实现多机通信。 SM2作用: 在方式2,3中,发送机SM2=1(程序设置). 接收机SM2=1,若RB8=1,激活RI,引起接收中断RB8=0, 不激活RI,不引起接断。SM2=0,无论RB8=1还是RB8=0 均激活RI引起接收中断。在方式 0 中, SM2应置为0。 在方式1中, 当接收时SM2=1, 则只有收到有效停止位 才激活RI。
RS-232电平与TTL电平的转换
<1>计算机为 RS-232电平信号 ,单片机为TTL电 平信号(TXD P3.1口 发送 RXD P3.0口 接收) <2>计算机与单片机的通信根本在于不同电平信号 之间的转换和传输
单片机串口原理图
波特率和定时器初值的设定
波特率:每秒传输二进制代码的位数。(1波特=1位/ 秒,单位bps(位/秒))
#include<reg52.h> #define uchar unsigned char uchar a,flag; void init() { TMOD=0x20; //设置定时器 1 为模式 2 TH1=0xfd; //装初值设定波特率 TL1=0xfd; TR1=1; //启动定时器
串口初始化程序分析
串行口通讯原理及操作流程
并行与串行通信方式比较
并行通信方式 8位数据同时传送 串行通信方式 8位数据顺位传送 数据传输速度相对较慢 传输线少 长距离传输成本低 数据传输控制较为复杂
数据传输速度快
传输线多 长距离传输成本高 数据传输较为简单
异步与同步串行通信方式
异步串行通信方式 不要求收发双方时钟严格一致 每个字符要附加2~3位(起始位、 校验位、停止位) 各帧之间有任意间隔,位之间间 隔一定 用于单片机和单片机,单片机与 计算机之间通信 同步串行通信方式 发送方时钟对接收方时钟的直接控 制,使双方完全同步 每个字符之间不留空隙,既保持位 同步关系也保持字符同步关系 以特定的位组合01111110作为帧的 开始和结束标志 实现的硬件设备较为复杂
PC机 COM1 或 COM2
C5
F C1=C2=C3=C4=C5=1
51单片机串行口结构
<1>51单片机串行口是可编程全双工的通信接口,能同时进行数据的发送和 接收, 也可作为同步移位寄存器使用。
<2>51单片机串行口组成: 1. 两个独立的串行数据缓冲寄存器SBUF(一个发送缓冲寄存器,一个 接收缓冲寄存器 2.发送控制器 3.接受控制器 4.输入移位寄存器 5.若干控制门电路 单片机通过特殊功能寄存器SBUF对串行接收或串行发送寄存器进行访问, 两个寄存器共用一个地址,但在物理意义上是两个独立的寄存器。
串行口基本结构
发送 SBUF (99H)
控制门 TXD(P3.1)
发送控制器 定 时 器 T1 TI
A
RI

中断
接收控制器
接收 SBUF (99H)
输入移位寄存器
RXD(P3.0)
串行口控制寄存器SCON
SM0 SM1 SM2 REN TB8 RB8 TI RI 方式选择 多机控 串行接收 欲发的 收到的 发送中 接收中 制 允许/ 禁 第九位 第九位 断有/ 断有/ 无 无 止 SM0.SM1:串行口工作方式控制位。 0 0---方式0, 0 1---方式1 1 0---方式2, 1 1---方式3 REN:串行接收允许位。 0---禁止接收, 1---允许接收 TB8: 在方式2,3中,TB8是发送机要发送的第9位数据。
RXD TXD GND
8xx51
TXD GND
8xx51
51单片机与计算机的通信
+5V TXD RXD C1 T1IN R1OUT
C
1
VCC
R1IN T1OUT
1
EA
RST
6 7 8 9
1 2 3 4 5
C
C
1
89C51
2
V+ VCC
C3 +5V
C4
C2
C
2
MAX232
XTAL1 XTAL2 GND GND V-
串行口方式1编程与实现
串行口工作方式1数据形式: 10位数据,1位起始位(0),8位数据 位(最低位在前,最高位在后),1位停止位(1)。 帧之间可有空闲也可无空闲。 数据输出时序图:
串口初始化设置:<1>确定T1的工作方式(编程 TMOD寄存器)<2>计算T1的初值,装载TH1,TL1; <3>启动T1(编程TCON中的TR1位)<4>确定串行 口工作方式(编程SCON寄存器)<5>串行口工作 在中断方式时,进行中断设置(编程IE,IP寄存 器) 数据输入时序图:
常用波特率初值表
注: 串口方式1定时器1方式2 常用晶振11.0592(MHZ) 波特率9600 SMOD=0 初值: TL0=0xfd TH0=0xfd 十进制数:(253)
近距离传送电路
RXD TXD GND RXD TXD GND
微机
RXD TXD GND 电 平 转 换
较远距离传送电 路
RB8:在方式2,3中,RB8是接受机收到的第9位数据, 该数据来自发送机的TB8。 TI:发送中断标志位。发送前必须用软件清零,发 送过程中TI保持零电平,发送完一帧数据后,由 硬件置 “1”,如果再发送,必须用软件再清零。 RI:接收中断标志位。接收前,必须用软件清零,接 收过程中RI保持零电平,接收完一帧数据后由 片内硬件自动置“1”。如果再接收必须用软件清 零。
相关文档
最新文档