您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > 基于LABVIEW的简易计算器设计
吉林建筑大学城建学院电气信息工程学院课程设计第1页共18页第1章绪论1.1虚拟仪器简介虚拟仪器(virtualinstrument)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。上面的框图反映了常见的虚拟仪器方案。虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是国NI公司的LabVIEW。虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。对虚拟仪器和LabVIEW[2]长期、系统、有效的研究开发使得该公司成为业界公认的权威。目前LabVIEW的最新版本为LabVIEW2011,LabVIEW2009为多线程功能添加了更多特性,这种特性在1998年的版本5中被初次引入。使用LabVIEW软件,用户可以借助于它提供的软件环境,该环境由于其数据流编程特性、LabVIEWReal-Time工具对嵌入式平台开发的多核支持,以及自上而下的为多核而设计的软件层次,是进行并行编程的首选。普通的PC有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定VXI标准,这是一种插卡式的仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的VXI机箱,再与计算机相连,就组成了一个测试系统。VXI仪器价格昂贵,目前又推出了一种较为便宜PXI标准仪器。1.2LabVIEW简介LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语吉林建筑大学城建学院电气信息工程学院课程设计第2页共18页言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。LabVIEW软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。LabVIEW开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。与C和BASIC一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大数库。LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench)是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是LabVIEW的程序模块。LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在LabVIEW中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。LabVIEW的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。吉林建筑大学城建学院电气信息工程学院课程设计第3页共18页第2章总体设计2.1设计思想创建3个字符串显示控件num1,num2,num3,其中:1、第一个输入数据存储在num1中2、第二个输入数据存入num2中3、将其赋给num3,并使num2为空,以便输入的数据存入num24、所有的运算是在num1和num3间进行5、运算结果都赋给result,同时赋给num1,用于下一次的运算.创建4个布尔开关按钮change,change1,change2,change3,其中:1、Change的真假用来判断是第一个数据还是第二个数据2、change1的功能是在输入=,运算完后,不需要初始化即可进行下一次运算3、change2用来去掉数据小数末尾的04、change3用来保证backspace键仅输入对的数据有效,对运算结果无效.创建2个数值显示控件type1,type2,并分别在其后面板的属性——数据类型——表示法中选择U8其中:1、type1用来存储运算符号2、type2用来保证连续“+、-、*、/”的正确性3、所有的运算结果都赋给result4、result经过去零处理后得到result1,将数据显示在前面板上。2.2设计框图根据计算器的运算规则,得到本次课程设计的程序框图,如图2-1:图2-1程序框图输入第一个数储存并显示输入运算类型并储存输入第二个数储存并显示进行连续运算显示运行结果吉林建筑大学城建学院电气信息工程学院课程设计第4页共18页第3章具体实现过程3.1程序流程图本次设计中定义了三个变量number1number2、以及number3,首次按下的数据存入第一个number1中,并显示,接着进行运算符号的键入,最后输入第二个变量存入number2中,最后运算并显示在结果result中。具体流程图设计如图3-1:图3-1程序流程图输入第一个数输入运算符号输入第二个数开始按“C”按“=”输出结果结束YESNO吉林建筑大学城建学院电气信息工程学院课程设计第5页共18页3.2基本设置3.2.1前面板的设计和键入感应前面板是LabVIEW的图形用户界面,在LabVIEW环境中可以对这些对象的外观和属性进行设计,LabVIEW提供了非常丰富的界面对象,可以方便地设计出生动、直观、操作方便的用户界面。本系统中前面板显示程序的输入和输出对象,即,控件和显示器。本程序中控件主要是按钮,显示器主要是文本显示。在前面板设计过程中先在前面板整齐排列放置22个确定按钮,将这22按钮的标签隐藏,然后修改这22个确定按钮的名字分别为:0~9十个数字、小数点、正负号、加、减、乘、除、等号、倒数、根号、清零、退格和X的Y次方。前面板还包括一个文本显示控件用于显示计算的结果和计算器的某些提示,通过改变显示控件的大小使之于计算器的大小相适应。计算器的前面板还有程序框图中while循环的停止按钮,当按钮按下时计算器停止工作退出到LabVIEW的编辑界面。为了前面板的美观和防止按钮的移动,分别将前面板的各个按钮和文字进行组合和对前面板进行装饰,装饰采用修饰中的平面框。具体方式如下:首先建立一个簇,然后在簇中建立23个布尔量,其中包括0--9十个数字键,1个小数点键,4个“+、-、*、/”运算键,1个等号键,1个开方键,1个符号转换键,1个倒数键,1个求百分数键,1个清零键,1个退格键,1个退出键。如图3-2所示:图3-2前面板图然后通过簇至数组转换函数将簇中元素按产生的顺序组成一个一维数组,如图3-3所示:吉林建筑大学城建学院电气信息工程学院课程设计第6页共18页图3-3键入感应过程图这样就实现了每个键与数字(1--23)之间的对应。每次按下一个键时,通过搜索一维数组函数查找出对应的键并把其加1后对应的数字连接到一个case结构,然后执行对应case结构中的程序,至此就完成了对一个键的感应过程。3.2.2运算量的初始变化在运行程序之前,首先对需要用到的变量进行初始化,如图3-5所示:图3-5运算量的初始化图在没有键按下的情况下,数值显示控件显示的是0。从上到下的寄存器功能依次为:最上面的用来存储display中的数据,第二个用来存放四则运算的符号,第三个用来前一次运算后输出的数值,最底下的用来给出控制变量。3.3操作设置3.3.1数字的输入由于第一个输入和第二个输入所存放的地方不同(第一个存于num1,第二个存于num2→mun3再清空num2),所以有必要对此分开处理。创建2分支(真、假)的case吉林建筑大学城建学院电气信息工程学院课程设计第7页共18页结构。用change控制分支的选择:在处创建局部变量并转换为读入。由于数字的键入是数据输入,change3用来保证backspace键仅对输入的数据有效,故应设置。分支结构的设计:由于初始化中布尔量改变设置都为“F”,则若change为假,表示数字为第一个输入,将得到的数据送给result1经处理后由result显示,同时送入num1用于即将的运算。考虑到计算的连续性,即:当前一次计算结束后,不需要再次清零即可进行下一次的运算,还需用到change1。由于上一次运算结束后,所得到的结果可能会出现多零现象,所以又必要设置change2状态。具体的设计如图3-6,图3-7:图3-6Change为假时的图Change为真时,表示数据的第二次输入,具体设计如下:图3-7Change为真时的图吉林建筑大学城建学院电气信息工程学院课程设计第8页共18页3.3.2数字0的输入当第一次输入0时,与输入数字1-9的情况相同,现在就零输入时的多零问题进行设计。虽然以多个零开头不影响输出的结果,但考虑到显示形式的正确性,只在小数点前显示一个零。当数据输入后,通过连接字符与00比较,若不等,则将数据直接输出如图3-8所示。图3-8输入不是00时图当数据输入后,通过连接字符与00比较,若相等,则直接输出0,如图3-9所示。图3-9输入是00时图3.3.3小数点的输入在小数点的输入时,最多只能显示出一个。若直接点击小数点,则以“0.”输出。若之前已输入数据,此时再输入小数点首先利用如图3-10所示程序:吉林建筑大学城建学院电气信息工程学院课程设计第9页共18页图3-10判断小数点的有无图判断已输入的数据中是否含有小数点,若不含有,则执行程序“真”,如图3-11所示;图3-11输入不含小数点时图若已输入的数据中含有小数点,则执行程序“假”,如图3-12所示。图3-12输入含小数点图3.3.4“+/-”键的设计首先进行扫描字符串,将字符串数据转换为数值数据,经过取负数后再转换为字符串形式输出。如图3-13所示,其中的顺序结构为去末尾零和去无关小数点的操作。吉林建筑大学城建学院电气信息工程学院课程设计第10页共18页图3-13去0和小数点设计图3.3.5四则运算以加法为例,当簇中输出的数据表示进行加法运算时,程序进入五层的层叠式顺序结构,首先将字符串进行扫描,转换为数值变量,之后,对之前的数据进行运算,以保证连续运算时得到正确的结果。当第一次输入时,默认进行firstrun条件下的程序,若以前已有运算,以减法为例,先将之前的两个数进行相减运算,并进行去零操作,之后再将本次的运算符号送入“运算符号”的局部变量,以便于进行下次运算。如图3-14为加法运算图。图3-14加法运算图减法运算图如图3-15:吉林建筑大学城建学院电气信息工程学院课程设计第11页共18页图3-15减法运算图乘法运算图如图3-16:图3-16乘法运算图除法运算图如图3-17:图3-17除法运算图吉林建筑大学城建学院电气信息工程学院课程设计第12页共18页3.3.6等号键实现最终的运算结果,将结果进行去零操作后输出到display中,同时将代表运算符号的移位寄存器置为空字符串。以加法为例。如图3-18所示:图3-18输出运算结果图3.3.7C键设计将程序中所有用到的变量均进行复位,达到清零复位的目的,如图3-19所示。图3-19C键设计图3.
本文标题:基于LABVIEW的简易计算器设计
链接地址:https://www.777doc.com/doc-6726152 .html