基于LABVIEW的跑马灯的设计Word格式文档下载.docx
《基于LABVIEW的跑马灯的设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于LABVIEW的跑马灯的设计Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
![基于LABVIEW的跑马灯的设计Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-12/7/c8b7b18a-cd6b-4df5-ba56-b47537ad6597/c8b7b18a-cd6b-4df5-ba56-b47537ad65971.gif)
LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。
LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。
虚拟仪器(virtualinstrumention)是基于计算机的仪器。
粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。
随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。
另一种方式是将仪器装入计算机。
以通用的计算机硬件及操作系统为依托,实现各种仪器功能。
虚拟仪器主要是指这种方式。
下面的框图反映了常见的虚拟仪器方案。
虚拟仪器的主要特点有:
◆编程简单;
◆开发周期短;
◆高效性;
◆开放性;
◆自定义性;
◆性价比高,能一机多用。
课题分析:
随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。
跑马灯是一种生活中比较常见的装饰,本文主要通过labview来设计了一个相对简单的对跑马灯的控制,实现了其有规律的亮灭,带来一定的观赏效果。
本文主要是实现了跑马灯的单个流水灯正向闪烁、单个流水灯反向闪烁、由中间到两边对称式闪烁,由两边到中间的对称式闪烁,以此循环。
本程序并控制闪烁的间隔时间,使其运行更具可观性。
总体设计:
采用单片机串口实现单片机跑马灯的运行状态对上位机的发送,并且由上位机接受并且实现状态的显示,使下位机跑马灯的运行状态能够直观的在LABVIEW中实现。
设计总思路:
1)下位机的设计:
因为之前我们在电子实训中已经焊过51的最小系统,所以,在此次课设中,我们不需要做硬件电路,只需要将流水灯的程序和与下位机通信的程序结合修改一下即可。
采用串口调试助手软件进行下位机的调试。
2)上位机的设计:
前面板界面包括设置区即端口IO的设置,命令控件区即启动按钮、停止按钮、退出按钮,显示控件区即8个LED。
3)将上位机与下位机用RS232连接起来,统一进行调试。
下位机调试:
将调试好的程序下载到单片机中,用串口调试助手软件进行调试
图一下位机调试画面
上位机的设计:
后面板的设计:
采用字符形式来进行数据通信,在后面板中,先将传递出来的字符转化成十六进制,然后与特定的数据相与,进而判断灯的状态。
在程序中用到了延时,单位是毫秒,延时的目的是使本程序更具有可观性。
图二后面板设计画面
图三后面板设计画面
图四后面板设计画面
前面板的设计:
1)设置区:
通信口的设置、波特率的设置、数据位的设置、校验位的设置、停止位的设置
2)命令控件区:
即发送按钮、停止按钮、数据清空按钮
3)显示控件区:
8个LED、数据接收显示
图五前面板设计画面
上位机调试
单个流水灯正向闪烁
图六单个流水灯正向闪烁画面
单个流水灯反向闪烁
图七单个流水灯反向闪烁画面
由中间到两边对称式闪烁
图八由中间到两边对称式闪烁画面
由两边到中间的对称式闪烁
图九由两边到中间对称式闪烁画面
运行效果:
单个流水灯正向闪烁→单个流水灯反向闪烁→由中间到两边对称式闪烁→由两边到中间的对称式闪烁
运行控制:
直接点击labview发送按钮进行数据的发送和跑马灯演示。
点击清空按钮清空数据接收显示区的数字,点击停止按钮停止数据的发送。
可自行设置发送周期、波特率等的设置
总结与体会:
本次设计是选择的一个比较熟悉的跑马灯做的课题。
通过控制显示灯的亮灭来达到一定的视觉效果,单个流水灯正向闪烁、单个流水灯反向闪烁、由中间到两边对称式闪烁,由两边到中间的对称式闪烁。
在程序中采用字符形式来进行数据通信,在后面板中,先将传递出来的字符转化成十六进制,然后与特定的数据相与,进而判断灯的状态。
在程序中用到了延时,单位是毫秒,延时的目的是使本程序更具有可观性,最终实现了预定的实验现象。
在这次的课程设计中,采用单片机串口实现单片机跑马灯的运行状态对上位机的发送,并且由上位机接受并且实现状态的显示,使下位机跑马灯的运行状态能够直观的在LABVIEW中实现。
在此次课设中,我遇到的最大的困难就是上位机设计的问题。
由于基础知识的不牢靠,以至于在上位机的调试时浪费了很多时间,但正是这种不断的调试也让我在不断的进步,这也是第一次我们进行上位机与下位机通信的实践,也为我们即将到来的毕业设计打好基础,虽然前面板看起来很简单,不过该程序后面板过于复杂,接线即框图太多,很多地方值得思考精简。
通过这次的虚拟仪器课程设计,让我深深认识到了自己在很多方面还有不足之处。
在这次课程设计期间,我遇到了很多平时在上课期间没有注意到的问题,让人束手无策,所幸的是经过自己不断的查找资料和老师同学的热心帮助,让我的设计达到了基本要求。
附录一:
程序清单
#include<
reg52.h>
#defineucharunsignedchar
#defineuintunsignedint
ucharflag,a;
ucharcodePattern_P1[]=
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfe,0xff,0x7e,0xbd,0xdb,0xe7,0xdb,0xbd,0x7e,0xff
};
voidDelayMS(uintx)
{
uchari;
while(x--)
for(i=0;
i<
120;
i++);
}
voidmain()
uchari;
TMOD=0x20;
//设置定时器1为工作方式2
TH1=0xe6;
TL1=0xe6;
TR1=1;
SM0=0;
SM1=1;
PCON=0x00;
SCON=0x50;
while
(1)
{
for(i=0;
33;
i++)
{
P1=Pattern_P1[i];
DelayMS(600);
SBUF=Pattern_P1[i];
while(!
TI);
TI=0;
}
/*if(flag==1)
{
ES=0;
flag=0;
SBUF=a;
TI=0;
ES=1;
}*/
}
/*voidser()interrupt4
RI=0;
a=SBUF;
;
//P1=SBUF
flag=1;
}*/
附录二:
参考资料
【1】电子技术论坛相关资料
【2】XX文库相关labview操作资料
【3】彭倩《虚拟仪器实验指导书》
【4】江建军孙彪《LABVIEW程序设计教程》第二版电子工业出版社