基于LABVIEW跑马灯设计毕业论文.docx
《基于LABVIEW跑马灯设计毕业论文.docx》由会员分享,可在线阅读,更多相关《基于LABVIEW跑马灯设计毕业论文.docx(12页珍藏版)》请在冰豆网上搜索。
![基于LABVIEW跑马灯设计毕业论文.docx](https://file1.bdocx.com/fileroot1/2023-2/1/f1f70afd-ea55-449d-a770-add92a0ba5be/f1f70afd-ea55-449d-a770-add92a0ba5be1.gif)
基于LABVIEW跑马灯设计毕业论文
电控学院
课程设计(论文)
课程名称:
虚拟仪器
题目:
基于LABVIEW跑马灯设计
院(系):
测控技术与仪器
专业班级:
姓名:
学号:
指导教师:
2014年1月9日
基于LABVIEW跑马灯的设计
【摘要】虚拟仪器(virtualinstrumention)是基于计算机的仪器。
计算机和仪器的密切结合是目前仪器发展的一个重要方向。
使用虚拟仪器用户可以通过操作显示屏上的“虚拟”按钮或面板,完成对数据的采集、传输、显示等功能。
本文设计就是建立在VI基础上,在此平台上完成数据通信的功能。
【关键字】虚拟仪器;VI;数据通信
前言
LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:
其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW
使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
与C和BASIC一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。
LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。
LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。
虚拟仪器(virtualinstrumention)是基于计算机的仪器。
计算机和仪器的密切结合是目前仪器发展的一个重要方向。
粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。
随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。
另一种方式是将仪器装入计算机。
以通用的计算机硬件及操作系统为依托,实现各种仪器功能。
虚拟仪器主要是指这种方式。
虚拟仪器的主要特点有:
◆编程简单;
◆开发周期短;
◆高效性;
◆开放性;
◆自定义性;
◆性价比高,能一机多用。
1.设计任务
随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。
跑马灯是一种生活中比较常见的装饰,本文主要通过labview来设计了一个相对简单的对跑马灯的控制,实现了其有规律的亮灭,带来一定的观赏效果。
本文主要是实现了跑马灯的单个流水灯按照学生学号来决定亮灭,例如学号中有数字6,则对应LED6亮,剩余灯灭,以此循环。
本程序并控制闪烁的间隔时间,使其运行更具可观性。
2.系统设计方案选择
2.1整体设计
采用单片机串口实现单片机跑马灯的运行状态对上位机的发送,并且由上位机接受并且实现状态的显示,使下位机跑马灯的运行状态能够直观的在LABVIEW中实现。
2.2通信协议
目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS485较远),若距离较远,需附加调制解调器(MODEM)。
最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本次设计直接用RS232相连
2.2.1DB9和DB25的常用信号脚说明
9针串口(DB9)
25针串口(DB25)
针号
功能说明
缩写
针号
功能说明
缩写
1
数据载波检测
DCD
8
数据载波检测
DCD
2
接收数据
RXD
3
接收数据
RXD
3
发送数据
TXD
2
发送数据
TXD
4
数据终端准备
DTR
20
数据终端准备
DTR
5
信号地
GND
7
信号地
GND
6
数据设备准备好
DSR
6
数据准备好
DSR
7
请求发送
RTS
4
请求发送
RTS
8
清除发送
CTS
5
清除发送
CTS
9
振铃指示
DELL
22
振铃指示
DELL
表1信号脚说明
2.2.2RS232C串口通信接线方法(三线制)
首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:
同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连
∙同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连;
∙两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串
口)
9针-9针
25针-25针
9针-25针
2
3
3
2
2
2
3
2
2
3
3
3
5
5
7
7
5
7
表2接线方法
上面表格是对微机标准串行口而言的,还有许多非标准设备,如接
收GPS数据或电子罗盘数据,只要记住一个原则:
接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接。
2.3下位机总体设计
因为之前我们在电子实训中已经焊过51的最小系统,所以,在此次课设中,我们不需要做硬件电路,只需要将流水灯的程序和与下位机通信的程序结合修改一下即可。
采用串口调试助手软件进行下位机的调试。
2.4上位机总体设计
前面板界面包括设置区即端口IO的设置,命令控件区即启动按钮、停止按钮、退出按钮,显示控件区即8个LED。
3.下位机设计
3.1最小系统
对51系列单片机来说,最小系统一般应该包括:
单片机、时钟电路、复位电路、输入/输出设备等(见图1)。
图3-1-1单片机最小系统框图
图3-2-151系列单片机最小系统
3.2时钟电路
XTAL1(19脚):
芯片内部振荡电路输入端。
XTAL2(18脚):
芯片内部振荡电路输出端。
XTAL1和XTAL2是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动。
图2中采用的是内时钟模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。
一般来说晶振可以在1.2~12MHz之间任选,甚至可以达到24MHz或者更高,但是频率越高功耗也就越大。
3.3复位电路
在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。
MCS-5l系列单片机的复位引脚RST(第9管脚)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
复位操作通常有两种基本形式:
上电自动复位和开关复位。
图2中所示的复位电路就包括了这两种复位方式。
上电瞬间,电容两端电压不能突变,此时电容的负极和RESET相连,电压全部加在了电阻上,RESET的输入为高,芯片被复位。
随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。
并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。
一般来说,只要RST管脚上保持10ms以上的高电平,就能使单片机有效的复位。
4.上位机设计
4.1前面板设计
1)设置区:
通信口的设置、波特率的设置、数据位的设置、校验位的设置、停止位的设置
2)命令控件区:
即发送按钮、停止按钮、数据清空按钮
3)显示控件区:
8个LED、数据接收显示
图4-1-1前面板设计
4.2后面板设计
采用字符形式来进行数据通信,在后面板中,先将传递出来的字符转化成十六进制,然后与特定的数据相与,进而判断灯的状态。
在程序中用到了延时,单位是毫秒,延时的目的是使本程序更具有可观性。
图4-2-1后面板设计
5.系统调试
5.1下位机调试
将调试好的程序下载到单片机中,用串口调试助手软件进行调试
图5-1-1下位机调试
5.2上位机调试
图5-2-1上位机调试
6.结论
直接点击labview发送按钮进行数据的发送和跑马灯演示。
点击清空按钮清空数据接收显示区的数字,点击停止按钮停止数据的发送。
等按照学号亮灭,可自行设置发送周期、波特率等的设置
7.总结
本次设计是选择的一个比较熟悉的跑马灯做的课题。
通过控制显示灯的亮灭来达到一定的视觉效果。
在程序中采用字符形式来进行数据通信,在后面板中,先将传递出来的字符转化成十六进制,然后与特定的数据相与,进而判断灯的状态。
在程序中用到了延时,单位是毫秒,延时的目的是使本程序更具有可观性,最终实现了预定的实验现象。
在这次的课程设计中,采用单片机串口实现单片机跑马灯的运行状态对上位机的发送,并且由上位机接受并且实现状态的显示,使下位机跑马灯的运行状态能够直观的在LABVIEW中实现。
在此次课设中,我遇到的最大的困难就是上位机设计的问题。
由于基础知识的不牢靠,以至于在上位机的调试时浪费了很多时间,但正是这种不断的调试也让我在不断的进步,这也是第一次我们进行上位机与下位机通信的实践,也为我们即将到来的毕业设计打好基础,虽然前面板看起来很简单,不过该程序后面板过于复杂,接线即框图太多,很多地方值得思考精简。
通过这次的虚拟仪器课程设计,让我深深认识到了自己在很多方面还有不足之处。
在这次课程设计期间,我遇到了很多平时在上课期间没有注意到的问题,让人束手无策,所幸的是经过自己不断的查找资料和老师同学的热心帮助,让我的设计达到了基本要求。
8.参考文献
[1]虚拟仪器实验指导书,彭倩编.西安科技大学出版社.
[2]杨乐平,李海涛,赵勇等.LabVIEW高级程序设计.北京:
清华大学出版社,2013
[3]王磊,陶梅.精通LabVIEW8.0.北京:
电子工业出版社,2007.
9.附录
附录一:
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeLED[]=
{0xfe,0xff,0xff,0xdf,0xff,0xbf,0xff,0xfe,0xfe,0xef};//定义流水
灯点亮顺序
voiddelay(uintx)//延迟函数
{uchari;
while(x--)
for(i=0;i<120;i++);
}
voidPort(charc)//定义单片机向串口输出数据子函数
{SBUF=c;
while(TI==0);
TI=0;
}
voidmain(void)
{SCON=0x40;//设置串口工作于方式1
TMOD=0x20;//设置定时器工作于方式2
PCON=0x00;//设置SMOD
TH1=0xe6;//设置波特率
TL1=0xe6;
TI=0;//允许向串口发送数据
TR1=1;//启动TI
while
(1)
{uchari;
for(i=0;i<10;i++)//正向点亮流水灯并将流水灯状态
发送至串口
{P1=LED[i];
Port(LED[i]);
delay(500);
}
}
}
附录二:
图9-1设计流程图