实验八 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;
6. TMOD=0X20;
7. PCON=0X80;
8. TH1=0XF3;
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.编写串口返回接收到的数据实验程序 定时器的初始化、中断的初始化。定时器工作在方式2,波特率设置为4800。在中断中读取SBUF中的数据,随后把这个数据再写入SBUF中。 3.下载串口返回接收到的数据实验程序
程序下载界面 4.调试验证实验结果 打开串口调试助手SSCOM,调整波特率4800,选择相应串口号,数据位为8,停止位为1,无校验位。然后输入字符串“Hello,World! 我爱单片机。”点击发送,串口调试助手接收数据区显示同样的字符串,表示实验成功。如果波特率不匹配则会出现乱码,也可以点击定时发送,这样屏幕就会不断地接收到相应的字符串。
七、实验思考
串口接收实验非常有趣,打开SSCOM串口调试工具,向单片机发送一条消息,然后单片机回复一条相同的消息。但如果我设置的波特率和代码里面设置的波特率不匹配,那么这项工作将无法完成。单片机将会对于我发给他的东西产生“误解”,然后发送回一个错误的回复。其实,和人之间的交流非常相像,两个人交流必须在同一个频道上,要不然只能像吵架一样“边听边骂”。 串口接收实验非常有用,之后单片机的大作业很多都用到了串口通信。这为之后的大作业打下坚实的基础。以后,在做类似的单片机应用开发,我想也离不开串口通信。因此,我觉得这次实验受益匪浅。 但是,51单片机只有一个串口,只能满足和一个单片机或者一台电脑或者一个传感器的通信。可以采用串口扩充,也可以选择串口资源丰富的Stm32单片机。
|