基于LabVIEW计算器的设计
摘 要
本次毕业设计是基于LabVIEW所设计的计算器,目的是为了实现两个数之间的加、减、乘、除四则运算及开方、求倒、取负运算,达到简易计算器的功能。编程的思想是完成一种运算的完整过程是:输入第一个数,存储并显示输按“=”或则按其它运算符号“+、-、*、/”进行连续的运算时显示运算结果。
关键词:LabVIEW,计算器,四则运算,函数功能,
Based on the Design of LabVIEW Calculator
ABSTRACT
This experiment is to realize the sum of two Numbers, subtract, multiply, divide and root, then pour, simple operation, to bear the calculator. Programming is a complete thoughts of the operation process is complete, the number, storage and input to the input operations and storage input number of the second type, storage and press "=" or by other operations symbol "+, -, *, /" continuous operation result shows.
KEY WORDS: LabVIEW,Calculator,Arithmetic,Function,
目 录
前 言 .................................................................................................. 1
第1章 LabVIEW ................................................................................ 2
1.1 LabVIEW简介 ........................................................................ 2
1.2主要特点 ................................................................................. 3
1.3实际应用 ................................................................................. 3
第2章 程序流程图 ............................................................................ 5
第3章 实现过程 ................................................................................ 6
3.1 键入感应 ................................................................................ 6
3.2 数字的读入............................................................................. 7
3.3 多零问题 ................................................................................ 7
3.4 小数点问题............................................................................. 8
3.5非小数前面出现0开头的问题.............................................. 9
3.6操作类型 ............................................................................... 10
3.7常用键 ................................................................................... 11
3.7.1 等号键 ........................................................................ 11
3.7.2 清零键 ........................................................................ 11
3.7.3 退出键 ........................................................................ 11
3.7.4 开方键 ........................................................................ 12
3.7.5 倒数键 ........................................................................ 12
3.7.6 反号键 ........................................................................ 12
3.7.7 backspace键 ................................................................ 12
3.8去掉小数末尾为0的功能.................................................... 13
3.9 美化面板 .............................................................................. 13
第4章寄存器及布尔变量的作用解释............................................. 15
结 论 ................................................................................................ 16
谢 辞 .................................................................................................. 17
参考文献 ............................................................................................ 18
前 言
创建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.1 LabVIEW简介
LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
与C和BASIC一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。
虚拟仪器(virtual instrumention)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。下面的框图反映了常见的虚拟仪器方案。
1.2主要特点
虚拟仪器的主要特点有:
(1)尽可能采用了通用的硬件,各种仪器的差异主要是软件。
(2)可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
(3)用户可以根据自己的需要定义和制造各种仪器。
虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。 虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。目前LabVIEW的最新版本为LabVIEW2009,LabVIEW 2009为多线程功能添加了更多特性,这种特性在1998年的版本5中被初次引入。使用LabVIEW软件,用户可以借助于它提供的软件环境,该环境由于其数据流编程特性、LabVIEW Real-Time工具对嵌入式平台开发的多核支持,以及自上而下的为多核而设计的软件层次,是进行并行编程的首选。
普通的PC有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的VXI机箱,再与计算机相连,就组成了一个测试系统。VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。
1.3实际应用
虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是IEEE 488或GPIB协议。未来的仪器也应当是网络化的。
LabVIEW(Laboratory Virtual instrument Engineering Workbench)是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。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.7 backspace键
在21序号的case中对当前操作的进行操作以清除输入的错误键(如图8)。计算字符串的长度,把长度减1位后显示。
图8 backspace程序图
3.8去掉小数末尾为0的功能
由于经过前面的运算,数据都保持6位小数,不可避免的会出现小数末尾为0的情况。利用while循环,检测result最后一位是否为0,若为0,则减去末位后赋值给本身;若不为0,则退出循环显示数据,从而实现去0的功能(图9):
图9 去掉小数末尾为0程序图
3.9 美化面板
对前面板进行美化,把num1、num2、num3、type1、type2、result、