当前位置:   article > 正文

单片机实验八 RS232串口通信实验(接收与发送)_单片机串口通信的接收与发送

单片机串口通信的接收与发送

实验八 RS232串口通信实验(接收与发送)

一、实验目的

1.熟悉实验软件和硬件,进行正确的接线;
2.通过实验了解串口的基本原理及使用,理解并掌握对串口进行初始化;
3.使用串口调试助手做为上位机来做收发试验;
4.利用串口调试助手中字符串输入进行数据发送,接受窗口显示收到的数据。

二、实验软硬件

1.Keil uVision4
2.PZISP自动下载软件
3.HC6800S开发板

三、实验原理

串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。
在这里插入图片描述

跳线帽位置选择
需要注意的是波特率的概念——这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。
在这里插入图片描述

串口原理图

四、软件流程图

在这里插入图片描述

RS232串口通信实验软件流程图

五、实验代码

1.#include<reg51.h>  
2.  
3.void main()  
4.{  
5.    SCON=0X50;           //设置为工作方式1  
6.    TMOD=0X20;          //设置计数器工作方式2  
7.    PCON=0X80;          //波特率加倍  
8.    TH1=0XF3;          //计数器初始值设置,波特率是4800的  
9.    TL1=0XF3;  
10.ES=1;               //打开接收中断  
11.    EA=1;               //打开总中断  
12.TR1=1;  
13.while(1){}  
14.}  
15.  
16.void Usart() interrupt 4  
17.{  
18.    unsigned char receiveData;  
19.    receiveData=SBUF;    //出去接收到的数据  
20.    RI = 0;             //清除接收中断标志位  
21.    SBUF=receiveData;   //将接收到的数据放入到发送寄存器  
22.    while(!TI);       //等待发送数据完成  
23.    TI=0;             //清除发送完成标志位  
24.} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

六、实验步骤

1.本实验无需连线,直接通过下载模块进行串口实验

跳线帽接线图
2.编写串口返回接收到的数据实验程序
定时器的初始化、中断的初始化。定时器工作在方式2,波特率设置为4800。在中断中读取SBUF中的数据,随后把这个数据再写入SBUF中。
3.下载串口返回接收到的数据实验程序

程序下载界面
4.调试验证实验结果
打开串口调试助手SSCOM,调整波特率4800,选择相应串口号,数据位为8,停止位为1,无校验位。然后输入字符串“Hello,World! 我爱单片机。”点击发送,串口调试助手接收数据区显示同样的字符串,表示实验成功。如果波特率不匹配则会出现乱码,也可以点击定时发送,这样屏幕就会不断地接收到相应的字符串。

七、实验思考

串口接收实验非常有趣,打开SSCOM串口调试工具,向单片机发送一条消息,然后单片机回复一条相同的消息。但如果我设置的波特率和代码里面设置的波特率不匹配,那么这项工作将无法完成。单片机将会对于我发给他的东西产生“误解”,然后发送回一个错误的回复。其实,和人之间的交流非常相像,两个人交流必须在同一个频道上,要不然只能像吵架一样“边听边骂”。
串口接收实验非常有用,之后单片机的大作业很多都用到了串口通信。这为之后的大作业打下坚实的基础。以后,在做类似的单片机应用开发,我想也离不开串口通信。因此,我觉得这次实验受益匪浅。
但是,51单片机只有一个串口,只能满足和一个单片机或者一台电脑或者一个传感器的通信。可以采用串口扩充,也可以选择串口资源丰富的Stm32单片机。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/982116
推荐阅读
相关标签
  

闽ICP备14008679号