实验内容 通过串口向电脑发送数据
实验目的 了解单片机串口的使用方法。了解和电脑通信的方法。
硬件电路
相关点评
串口是单片机很有意思的一块内容,有了串口使单片机不在“孤单”,可以与很多电子系统进行通信对话,串口的操作其实很简单,但又不简单,还是有很多学问的,在这里不可能全部写到,得靠大家在实际的开发中逐渐去领会了。现在用的最多的是9针串口,在平时的一般使用中简化到3跟线:发送线,接收线,地线。常用到MAX232芯片来进行电平的转换,这主要是因为单片机与电脑的逻辑电平值不统一,所以要进行一个小小的转换。
很多人刚开始调试串口总会遇到这样或那样的困难,为了给大家增强信心,我们就来做一个小小的简单串口通信,让单片机给电脑发送问候语:“Hello Friend!”。首先大家按照第一讲讲的内容建立一个工程,并把下面的代码写进去。这里需要解释和请大家注意的是:
C 语言中常用的格式化打印函数“printf/sprintf”默认的输入输出终端是单片机的串口,但用在单片机的程序中时要特别谨慎。printf/sprintf 是一个非常大的函数,一旦使用,你的程序代码长度就会增加很多。除非是在编写试验性质的代码,可以考虑使用格式化打印函数以简化测试程序;一般的最终产品设计都是自己编写最精简的代码实现特定格式的数据显示和输出。本来,在单片机应用中输出的数据格式都相对简单而且固定,实现起来应该很容易。
因此,小容量的单片机用printf函数的时候要记住,你也许花费不起这个"高档"的函数。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& // 描述: // 该程序为串口通讯程序 // 在串口调试程序上显示Hello Friend! //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息! //【声明】 作者: PIAE小组
#include #include void main(void) { SCON = 0x50; //串口方式1,允许接收 TMOD = 0x20; //定时器1 定时方式2 TCON = 0x40; //设定时器1 开始计数 TH1 = 0xE8; //11.0592MHz 1200 波特率 TL1 = 0xE8; TI = 1; TR1 = 1; //启动定时器 while(1) { printf ("Hello Friend!\n"); //显示Hello World } }
|
然后大家随便用一款串口调试工具,比如串口调试助手,串口调试精灵,ComTools等软件进行调试,选择好串口号以及波特率(这里是1200),然后以字符(ASCII码)的格式进行接收,看看有没有问候语呢?下图是我用ComTools接收的结果,看来单片机已经能够与电脑打交道了。串口简单吗?这只是一个最最简单的应用,后面几个实验涉及到了上位机的编程,我们用目前业界最为流行的LABVIEW虚拟仪器软件进行编程,让电脑可以给单片机下命令,单片机也可以给电脑下命令。大家加油啊!
有关串口的使用在附件中还会详细说明,因为Labview的使用就是通过串口,所一这部分大家一定要认真掌握!
软件程序 参考serial_port目录下的程序。
实验步骤和实验现象与结果
(1) 插上USB电源线,观察红色LED15亮。亮,说明USB线正常。
(2) 下载程序,观察到串口指示灯LED11、LED12闪烁。
(5) 下载完毕后,电脑会接收到“Hello Friend!”的问候语。
实验注意事项
注意:有时候如果接收到乱码,可能是下载后没有正确复位,只需按一下开发板上的复位键,再正确选择波特率,设置成字符接收,就可以看到来自单片机的问候了!
文章评论(0条评论)
登录后参与讨论