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