单片机串口通信实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息工程学院实验报告
课程名称:单片机原理及接口
实验项目名称:串口通信实验实验时间:2017、5
一、实验目得:
1.了解什么就是串口,串口得作用等。
2、了解串口通信得相关概念
3、利用keil软件,熟悉并掌握中串口通信得使用
4、通过实验,熟悉串口通信程序得格式,串口通信得应用等
二、实验原理
1、串口通信概念:
单片机应用与数据采集或工业控制时,往往作为前端机安装在工业现场,远离主机,现场数据采用串行通信方式发往主机进行处理,以降低通信成本,提高通信可靠性。如下图所示。
2、串口数据通信方式及特点
★数据通信方式有两种:并行通信与串行通信
★并行通信: 所传送数据得各位同时发送或接收,
ﻩ数据有多少位就需要多少根数据线。
特点: 速度快,成本高,适合近距离传输
如计算机并口,打印机,8255 。
★串行通信:所传送数据得各位按顺序一位一位
地发送或接收。
只需一根数据,一根地线,共2 根
特点:成本低,硬件方便,适合远距离通信,
传输速度低。
串行通信与并行通信示意图如下:
成绩:
指导老师(签名):
3、串行通信基本格式
①单工通信:数据只能单向传送。
②半双工通信:通信就是双向得,但每一时刻,数据流通得方向就是单向得。
③全双工通信:允许数据同时在两个方向流动,即通信双方得数据发送与接收就是同时进行得。
4、异步串行通信/同步串行通信
①异步串行通信:
异步串行通信采用如下得帧结构:
起始位+ 8位数据位+ 停止位或起始位+ 9位数据位+停止位
其中:起始位为低电平,停止位为高电平。
优点:硬件结构简单
缺点:传输速度慢
②同步串行通信:
在同步通信中,发送方在数据或字符开始处就用同步字符(常约定1~2个字节)指示一帧得开始,由时钟来实现发送端与接收端同步,接收方一旦检测到与规定得同步字符符合,下面就连续按顺序传送若干个数据,最后发校验字节。见下图:
5、串行通信过程与UART
基本得计算机异步串行通信系统中,两台计算机之间通过三根信号线TxD、RxD与GND连接起来,TxD与GND构成发送线路,RxD与GND构成接收线路。一台计算机得TxD、RxD线分别与另一台计算机得RxD、TxD线相连。
由于在串行通信过程中得并串转换、串并转换、线路检测、采样判决、组帧、
拆帧、发送与接收等操作需消耗CPU大量时间,以至CPU无法处理其它工
作,因而开发出专用于处理异步串行通信发送与接收工作得芯片UART(通用
异步串行通信接收发送器)。
CPU只需将要发送得一个字节数据交给UART,其它发送工作由UART自动完成,当UART将一帧数据发送完毕,会通知CPU 已发送完,可提交下一个字节。
UART自动监测线路状态并完成数据接收工作,当接收到一个字节数据后,UART会通知CPU来读取。采用UART 后,CPU得负担大大减轻了。
6、MCS—51得串行通信接口
MCS-51单片机内部集成有一个UART,用于全双工方式得串行通信,可以同时发送、接收数据。它有两个互相独立得接收、发送缓冲器,这两个缓冲器同名SBUF,共用一个地址号(99H)。
发送SBUF:只能写,不能读;SBUF= a;
接收SBUF:只能读,不能写。 a =SBUF;
串行接口有四种工作方式,有得工作方式时其波特率就是可变得。用户可以用软件编程得方法在串行控制寄存器SCON 中写入相应得控制字就可改变串行口得工作方式。
串行口结构图如下:
串行通信得传送过程说明:
甲方发送时,CPU执行指令SBUF =A 启动了发送过程,数据并行送入SBUF ,在发送时钟shift得控制下由低位到高位一位一位发送,乙方在接收时钟shift得控制下由低位到高位顺序进入移位寄存器SBUF ,甲方一帧数据发送完毕,置位发送中断标志TI,该位可作为查询标志(或引起中断),CPU可再发送下一帧数据。乙方一帧数据到齐即接收缓冲器满,置位接收中断标志RI,该位可作为查询标志(或引起接收中断),通过A=SBUF CPU将这帧数据并行读入。
由上述可知:
1.甲、乙方得移位时钟频率应相同,即应具有相同得波特率,否则会造成数据丢失。
2.发送方就是先发数据再查标志,接收方就是先查标志再收数据。
通信过程图如下:
7、串行接口得控制寄存器:
串行接口得控制寄存器有两个,串行控制寄存器SCON与能改变波特率得特殊功能寄存器PCON。其作用如下:
(1)SCON,字节地址98H,(可位寻址)
SCON用于确定串行通道得操作方式与控制串行通道得某些功能。也可用于发送与接收第九个数据位(TB8、RB8),并有接收与发送中断标志( RI及TI)位。SCON各位得意义如下:
此处,SM0、SM1指定了串行通信得工作方式,若设振荡器频率为fosc,则规定如下图:
SM2:在方式2、3时,多机通信得控制位。
方式0:SM2=0;
方式1:①若SM2=0,只要接收到8位数据,就激发中断标志(RI=1);
②若SM2=1,则只有在接收到有效停止位时才能激发中断标志(RI=1),否则接收数据无效,且RI仍为0。
8、串行口波特率计算方式:
9、串行口得波特率有两种方式:固定波特率与可变波特率
10、串行通信编程方式:查询方式与中断方式。
查询方式:查TI或Ri就是否为“1”。
中断方式:如果预先开了中断,当TI、RI为“1”,会自动产生中断。
注意:两种方式中当发送或接受数据后都要注意清Ti或RI。
查询方式发送程序: (先发后查)
发送一个数据→查询TI→发送下一个数据
查询方式接收程序:(先查后收)
查询RI→读入一个数据→查询RI→读下一个数据
中断方式发送程序:
发送一个数据→等待中断,在中断中再发送下一个数据。
中断方式接收程序:
等待中断,在中断中再接收一个数据。
查询方式发送流程图以及接收流程图: