- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章4-串行通信接口祥解.ppt
第三章 MCS-51单片机的 串行通信接口 单片机与应用 3-4、串行通信接口 单片机应用系统中,数据通信主要采用异步串行通信方式。 异步串行通信常用的接口标准有三类: RS-232C (EIA - 美国电子工业协会) RS-422 (EIA) RS-485 (EIA) 接口标准的选择: 通信速度和通信距离 抗干扰能力要求 1、RS-232C接口标准 距离: ≤15m 速度: ≤115.2kbps 信号电平: 单端,负逻辑,±15V 应用场合: 低噪声干扰场合 接口定义: 9芯引脚 功能说明 9芯引脚 功能说明 1 载波检测 6 数据装置就绪 2 数据接收(RXD) 7 请求发送 3 数据发送(TXD) 8 清除发送 4 数据终端就绪 9 振铃指示 5 信号地(GND) 1 2 3 4 5 6 7 8 9 1、 RS-232C接口标准 距离: ≤15m 速度: ≤115.2kbps 信号电平: 单端,负逻辑,±15V 应用场合: 低噪声干扰场合,点对点 接口定义: 2、 RS-422接口标准 距离: ≤1200m(低速时) 速度: ≤10Mbps 信号电平: 差分 应用场合: 工业环境,点对多,全双工 说明: 3、 RS-485接口标准 距离: ≤1200m(低速时) 速度: ≤10Mbps 信号电平: 差分 应用场合: 工业环境,半双工 说明:一般使用中不是很在意RS-485和RS-422的区别。 单片机的串行通信接口设计时,需考虑如下问题。 (1)首先确定通信双方的数据传输速率。 (2)由数据传输速率确定采用的串行通信接口标准。 (3)在通信接口标准允许的范围内确定通信的波特率。为减小波特率的误差,通常选用11.0592MHz的晶振频率。 (4)根据任务需要,确定收发双方使用的通信协议。 (5)通信线的选择,这是要考虑的一个很重要的因素。通信线一般选用双绞线较好,并根据传输的距离选择纤芯的直径。如果空间的干扰较多,还要选择带有屏蔽层的双绞线。 (6)通信协议确定后,进行通信软件编程,请见下面介绍。 单片机串行通信 AT89S51 单片机 MAX232 MAX232 单片机 或其他系统 TXD Tin Tout Rout Rin RXD RXD Rout Rin Tin Tout TXD GND GND 单片机串行通信 MAX232 C1、C2、C3、C4为片内电荷泵电路用电容,用于产生±10V。 注意输入输出的方向 0x35 起始位 停止位 数据 0 1 0 1 0 1 1 0 0 1 0V 5V 起始位 停止位 数据 0 1 0 1 0 1 1 0 0 1 -10V +10V LSB MSB LSB MSB 一帧 一帧 正逻辑 负逻辑 例:要求编程实现在每次按键时,将本次的按键代码通过串口发送出去,波特率9600bps。 分析: 1、键盘扫描使用kbscan( )函数完成; 2、每次按键只需发送一个字节,可以考虑使用查询方式进行发送,简化编程。 #include reg51.h unsigned char kbscan( ); void main() { unsigned char key; /*串口功能初始化*/ SCON=0x50; PCON=0x00; TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; while(1) { /*按键扫描和串口发送*/ key = kbscan(); if(key != 0x00) { SBUF = key; while(TI==0); TI = 0; } } } 例:要求设计A、B两种电子器件的电气参数测量系统,并可根据计算机的指令要求分别将A器件或者B器件的测量结果通过串口发送给计算机。 分析:(仅讨论数据发送功能的实现) 1、计算机通过发送不同的指令(即特定的数据)要求测量系统有选择地发送测量结果; 2、不妨定义: 计算机发送0x01,则上传A器件的测量结果; 计算机发送0x10,则上传B器件的测量结果; 3、不考虑握手机制、校验机制以简化编程; 并且测量系统采用全局变量数组存储测量结果 #include reg51.h unsigned char Data_A[20]; unsigned char Data_B[20]; unsigned char i = 0; unsigned char j = 0; void main() { unsigned char key; /*串口功能初始化*/ SCON=0x50; PCON=0x00; TMOD=0x20; TH1=0xfd; TL1=
文档评论(0)