串行通信原理与应用课件

上传人:我*** 文档编号:142575016 上传时间:2020-08-21 格式:PPT 页数:33 大小:817KB
返回 下载 相关 举报
串行通信原理与应用课件_第1页
第1页 / 共33页
串行通信原理与应用课件_第2页
第2页 / 共33页
串行通信原理与应用课件_第3页
第3页 / 共33页
串行通信原理与应用课件_第4页
第4页 / 共33页
串行通信原理与应用课件_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《串行通信原理与应用课件》由会员分享,可在线阅读,更多相关《串行通信原理与应用课件(33页珍藏版)》请在金锄头文库上搜索。

1、串行通信原理及应用,让计算机相互通信!,HOW?,什么是通信,两个设备之间交换数据的过程我们称之为通信,单工,双工,A,B,通信的方式,从同时传输的数据位数来分为:,1、并行通信(Parrel),2、串行通信(Serial),串并行方式各自特点,相对快,相对慢,短,远,贵,廉价,如何并行通信(有时间再讲),DB0-DB7 WR RD CS ALE信号等 举例:内存的写数据过程(两部分)。 通过时序图让学生明白,CLK,A15:0,ALE,WR,Phase 2,Phase 1,Address,D7:0,Data,如何串行通信,就用极少的数据线就能实现数据通信,那么是如何实现的呢? 桢的概念:起始

2、位,数据位,速率(波特率),应答位或停止位。,举例说明,串行通信桢格式,常见的串行通信协议,USART特点,支持同步串行通信和异步串行通信 支持全双工 桢格式可编程,串行输出原理,串行输入原理,PIC的USART结构,串行通信时必须要考虑的问题,硬件如何连接?传输速度是多少?通信格式是什么样的?要发送或接收的数据放在哪里?如何判断发送或接收完毕?,MCU通过UART与PC连接图,5V 代表 1 0V 代表 0,+12V 代表 1 12V 代表 0,PC,MAX232 电平转换器 12V/-12V+5V/0V,寄存器设置,PORTC:TXD Transmitter PORTC:RXD Recei

3、ver,RXSTA:1,考虑传输速率问题,可能出现设备之间的主频不同的情况,为了解决这个问题,两个设备之间必须协商通信速率。 对于UART而言,传输速率是两个设备之间预先协商好的,通过设置相应寄存器来实现。,传输速率相关寄存器及标志位,波特率发生寄存器:SPBPG(99H) 高波特率标志位:BRGHTXSTA 同步收发标志位:SYNCTXSTA,常用SPBPG的值:当主频是4Mhz时,速度希望采用9600bps进行异步通信 则SPBRG=25,BRGH1,SYNC0,串行通信格式图,相关寄存器有两个: TXSTA: 发送控制寄存器 RCSTA:接收控制寄存器,TXSTA(98H):发送控制寄存

4、器,功能: 控制UART发送数据的格式,TXSTA(98H):发送控制寄存器,9位发送使能,发送使能,同步模式使能,高波特率使能,发送位第9位,无用位,清0,TXSTA(98H):发送控制寄存器,思考题:我想让PIC的USART模块采用8位数据位发送数据,异步方式,高速状态,请问TXSTA该设定何值?,RCSTA:接收控制寄存器,功能: 控制UART接收数据的格式和状态,RCSTA:接收控制寄存器,串口使能,9位使能,连续接收使能,桢格式错,溢出错,接收的第9位,未用,置0,思考题:我想让PIC的USART模块在异步方式下采用8位数据位接收数据,请问RCSTA该设定何值?,要发送或接收的数据放

5、在哪里?,要发送的数据放在TXREG里 收到的数据放在RCREG里 TXREG和RCREG都在0体中,TXREG=A;,char var=RCREG;,如何判断发送成功?,对于发送而言,当一个字节发送完毕后PIR1的TXIF标志位会被自动置1,通过判断此位就可得知数据发送是否完毕,当TXREG被赋值后,TXIF自动被清空。,思考题:如何用程序判断是否发送成功?,PIR1:,如何判断接收完毕?,对于接收而言,当接收到一个字节后PIR1的RCIF标志位会置1,通过判断此位可得知是否收到一个数据,当RCREG被读取后,RCIF自动被清空。,思考题:如何用程序判断是否接收完毕?,PIR1:,例题1,电

6、路图如上图通过PIC16F877向PC的COM1不停的发送字符A,要求波特率为9600bps8位数据位,无奇偶校验位,一位停止位,无数据流控,请编程实现。,流程图,程序源代码,MAIN() RCSTA=0b10010000; SPBRG=25; TXSTA=0b00100100; TXREG=A; while(1) if(PIR1 ,例题2,电路图如上图用超级终端软件通过PC的COM1向PIC发送一个字符(由键盘输入),MCU收到后把此字符加一后回传给PC。 要求波特率为9600bps,8位数据位,无奇偶校验位,一位停止位,无数据流控,请编程实现。,流程图,程序源代码,MAIN() RCSTA=0b10010000; SPBRG=25; TXSTA=0b00100100; while(1) if(PIR1 ,作业,PIC16F877的主频为4Mhz,通过MAX232与PC的COM1正确相连,编程实现PC通过超级终端发给MCU一个字符串(以r结尾),MCU收到此字符串把此串长度反馈给PC,而后循环此过程,通信方式为:波特率9600bps,8位数据位,奇偶校验位无,1位停止位,数据流控制为无。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号