论文基于LabVIEW计算器的设计文档格式.docx
《论文基于LabVIEW计算器的设计文档格式.docx》由会员分享,可在线阅读,更多相关《论文基于LabVIEW计算器的设计文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
目 录
前 言
创建3个字符串显示控件num1,num2,num3,其中:
第一个输入数据存储在num1中,第二个输入数据存入num2中,将其赋给num3,并使num2为空,以便输入的数据存入num2,所有的运算是在num1和num3间进行,运算结果都赋给result,同时赋给num1,用于下一次的运算。
创建4个布尔开关按钮change,change1,change2,change3,其中:
Change的真假用来判断是第一个数据还是第二个数据,change1的功能是在输入=,运算完后,不需要初始化即可进行下一次运算,change2用来去掉数据小数末尾的0,change3用来保证backspace键仅对输入的数据有效,对运算结果无效。
创建2个数值显示控件type1,type2,并分别在其后面板的属性——数据类型——表示法中选择U8其中:
type1用来存储运算符号,type2用来保证连续“+、-、*、/”的正确性,所有的运算结果都赋给result,result经过去零处理后得到result1,将数据显示在前面板上。
此计算器可以实现基本的加减乘除以及开方、取倒、取反功能,可以进行数据的连续运算以及简单的报错、纠错功能,在此计算器模版上,可以继续添加条件分支,实现更多功能的运算,但是不支持第二个数位为开方、取反、取倒的功能。
第1章LabVIEW
1.1LabVIEW简介
LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:
其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
与C和BASIC一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。
LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。
LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。
虚拟仪器(virtualinstrumention)是基于计算机的仪器。
计算机和仪器的密切结合是目前仪器发展的一个重要方向。
粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。
随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。
另一种方式是将仪器装入计算机。
以通用的计算机硬件及操作系统为依托,实现各种仪器功能。
虚拟仪器主要是指这种方式。
下面的框图反映了常见的虚拟仪器方案。
1.2主要特点
虚拟仪器的主要特点有:
(1)尽可能采用了通用的硬件,各种仪器的差异主要是软件。
(2)可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
(3)用户可以根据自己的需要定义和制造各种仪器。
虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。
虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。
目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。
虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。
PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。
对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。
目前LabVIEW的最新版本为LabVIEW2009,LabVIEW2009为多线程功能添加了更多特性,这种特性在1998年的版本5中被初次引入。
使用LabVIEW软件,用户可以借助于它提供的软件环境,该环境由于其数据流编程特性、LabVIEWReal-Time工具对嵌入式平台开发的多核支持,以及自上而下的为多核而设计的软件层次,是进行并行编程的首选。
普通的PC有一些不可避免的弱点。
用它构建的虚拟仪器或计算机测试系统性能不可能太高。
目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的仪器。
每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。
这些卡插入标准的VXI机箱,再与计算机相连,就组成了一个测试系统。
VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。
1.3实际应用
虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。
目前使用较多的是IEEE488或GPIB协议。
未来的仪器也应当是网络化的。
LabVIEW(LaboratoryVirtualinstrumentEngineeringWorkbench)是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。
LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。
它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。
这是一个功能强大且灵活的软件。
利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。
图形化的程序语言,又称为“G”语言。
使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或框图。
它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。
它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。
使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。
利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。
像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。
第2章程序流程图
根据实验作出程序流程图如下:
图1程序流程图
第3章实现过程
3.1键入感应
首先建立一个簇
,然后在簇中再建立布尔量,复制20个以满足键的需求。
包括0--9十个数字键,一个小数点键,一个等号键,四则运算键,一个开方键,一个倒数键,一个反号键,一个清零键及一个退出键。
然后通过
将簇中元素按产生的顺序组成一个一维数组,这样就实现了每个键与数字(0--20)之间的对应。
每次按下一个键时,通过
查找出对应的键并把结果(对应的数字)连接到一个case结构,然后执行对应case结构中的程序,至此就完成了对一个键的感应过程(图2):
图2键的感应
3.2数字的读入
图3数字读入程序图
具体赋给哪个操作数通过布尔量change的状态决定,该布尔量状态在输入运算类型键后改变。
这里要注意的是:
在第二个数键入时,要把结果赋给num3,最终是在num1和num3之间进行运算运算,这样做是为了在一种运算结束后能实现连续的运算。
3.3多零问题
进行运算的数不能以多个零开头。
虽然不影响运算结果,但在形式上是错误的。
解决这个问题的方法是如图4:
图4多零问题解决程序图
3.4小数点问题
一个数中不可能出现两个或两个以上的小数点。
解决方法如图5:
图5小数点问题程序图
3.5非小数前面出现0开头的问题
进行运算的非小数不能以零开头。
解决这个问题的思路如图6,具体解决程序在数据输入时(如图6):
图6“0”开头的问题框图
3.6操作类型
当按下运算类型键时,存储对应的数字序号到type,以按下“=”号时进行运算类型的确定。
操作类型默认为“空”。
在此操作类型case中同时执行对change状态转换。
在其中再用一个case结构用于实现“+、-、*、/”的连续运算(如图7):
图7操作类型程序图
3.7常用键
3.7.1等号键
在11键的case中实现加、减、乘、除、开方及倒数运算。
连续按此键可以实现第一操作数对第二操作数的连续运算。
并且对type1、type2、change、change1、num2分别清0、清0、F、T,赋空。
3.7.2清零键
在16键的case中对num1、num2、num3赋空字符,显示框中显示0,change、change1复位F状态,type1、type2赋0。
3.7.3退出键
在17键的case中首先对显示框赋空字符,然后终止程序。
即以不显示任何字符退出程序。
3.7.4开方键
在18键的case中对当前操作数进行开方运算即可。
3.7.5倒数键
在19键的case中对当前操作数进行倒数运算即可。
3.7.6反号键
在20序号的case中对当前操作的进行乘以负1的运算实现反号。
3.7.7backspace键
在21序号的case中对当前操作的进行操作以清除输入的错误键(如图8)。
计算字符串的长度,把长度减1位后显示。
图8backspace程序图
3.8去掉小数末尾为0的功能
由于经过前面的运算,数据都保持6位小数,不可避免的会出现小数末尾为0的情况。
利用while循环,检测result最后一位是否为0,若为0,则减去末位后赋值给本身;
若不为0,则退出循环显示数据,从而实现去0的功能(图9):
图9去掉小数末尾为0程序图
3.9美化面板
对前面板进行美化,把num1、num2、num3、type1、type2、result、change隐藏。
计算器前面板如图10:
图10前面板图11windows系统简易计算器
第4章寄存器及布尔变量的作用解释
num1用来存储第一个输入数据。
第二个输入数据存入num2中,然后将其赋给num3,并使num2为空,以便输入的数据存入num2,所有的运算是在num1和num3间进行,运算结果都赋给num1和result。
Change用来判断是第一个数据还是第二个数据。
change1的功能是在输入=,运算完后,不需要初始化即可进行下一次运算。
change2用来去掉数据小数末尾的0。
change3用来保证backspace键仅对输入的数据有效,对运算结果无效。
type1用来存储运算符号,type2用来保证连续“+、-、*、/”的正确性。
所有的运算结果都赋给result。
result1用来将数据显示在前面板上。
后面板及所有的寄存器及布尔变量的初值如图12:
图12后面板
结 论
经过演示,本计算器可实现界面上所有按键的功能,可实现连续运算、报错提示(除数为0、对负数开方)、纠错(非小数前面为0、多个小数点、多零、清除前一位错误输入)等功能。
具体操作和功能与WINDOWS系统的简易计算器(图11)一样。
但是由于该计算器仅使用了一些比较简单的结构,所以程序框图不够简化,比较繁琐,这是需要改进的地方,但是这不影响其正常使用。
总之,由于LabVIEW能够为用户提供简明、直观、易用的图形编程方式,能够将繁琐复杂的语言编程简化成为以菜单提示方式选择功能,并且用线条将各种功能连接起来,十分省时简便,深受用户青睐。
与传统的编程语言比较,LabVIEW图形编程方式能够节省85%以上的程序开发时间,其运行速度却几乎不受影响,体现出了极高的效率。
使用虚拟仪器产品,用户可以根据实际生产需要重新构筑新的仪器系统。
例如,用户可以将原有的带有RS232接口的仪器、VXI总线仪器以及GPIB仪器通过计算机,联接在一起,组成各种各样新的仪器系统,由计算机进行统一管理和操作。
可以预见,由于LabVIEW这些其他语言无法比拟的优势,已经成为该领域的一朵奇葩!
最终将引发传统的仪器产业一场新的革命。
谢辞
这次毕业设计得到了老师和同学的帮助,另外,感谢校方给予我们这样一次机会,能够独立地完成一个课题,并在这个过程当中,给予我们一些机会,使我们在即将离校的最后一段时间里,能够更多学习一些实践应用知识,增强了我们实践操作和动手应用能力,提高了独立思考的能力。
再一次对我的母校表示感谢。
感谢在整个毕业设计期间给予过我帮助的伙伴们,在大学生活即将结束的最后的日子里,我把一个庞大的,从来没有上手的课题,圆满地完成了。
正是因为有了你们的帮助,才让我不仅学到了本次课题所涉及的新知识,更让我感觉到了知识以外的东西。
最后,感谢所有在这次毕业设计中给予过我帮助的人。
再一次真诚地表示感谢,你们!
参考文献
[1]叶齐鑫侯国屏赵伟.虚拟仪器环境下的频率特性测试方法[J].电测与仪表,2005(6):
10-13.
[2]高聪杰李松岩.基于LabVIEW的信号输出与数据采集系统[J].数采与监测,2008,(24):
135-136.
[3]马银平宣亮亮彭如基于LabVIEW的数据采集系统分析与设计《电子元器件应用》2009年第11卷第10期
[4]夏俊芳周勇张平华.基于虚拟仪器技术的排种器漏播检测技术[J].华中农业大学学报,2008,27(4):
540-544.
[5]刘雁征滕光辉.虚拟仪器技术在设施农业中的应用现状及趋势[J].华中农业大学学报,2004(增刊35):
81-86.
[6]陈秀清.关于虚拟实验室的建设[J].福建广播电视大学学报,2003
(1):
40-43.
[7]杨乐平李海涛.北京LabVIEW高级程序设计[M].北京:
清华大学出版社,2003.1-350.
[8]龙华伟顾永刚.LabVIEW8.2.1与DAQ数据采集[M].北京:
清华大学出版社,2008.
[9]陈锡辉.Labview8.20程序设计从入门到精通[M].北京:
清华大学出版社,2007.
[10][美]RobertHBishop乔瑞萍译.LabVIEW7实用教程[M].北京:
电子工业出版社,2005.
[11]侯国屏王坤叶齐鑫.LabVIEW7.1编程与虚拟仪器设计[M].北京:
清华大学出版社,2005.
[12]张桐陈国顺王正林.精通LabVIEW程序设计[M].北京:
电子工业出版社,2008.