本文是基于LabVIEW虚拟仪器系统开发与实践等原理、技术而设计出的科学计算器,是利用虚拟仪器技术而完成的。可以用来模拟真实计算器而进行简单的加减乘除四则运算、平方、开根号和倒数运算,以及进行三角函数的数值转换。本次设计运用条件结构、顺序结构以及层叠式顺序结构等实现具体的计算器功能,利用子VI进行相关数值的转换。LabVIEW 是美国国家仪器公司推出的一种基于 G 语言的虚拟仪器软件开发工具。本文首先介绍了LabVIEW科学计算器设计的理论支撑,然后使用LabVIEW设计了详细程序框图和程序的前面板,并对设计过程中所遇问题进行总结,最后对科学计算器进一步的设计优化进行了展望。
在确定计算器功能类型和数量的基础上,查阅相关资料对方案进行论证,完成总体设计。绘制出系统总图和计算器界面总框图。计算器设计流程图如图2所示。

图2 计算器设计流程图
在LabVIEW开发环境下,创建可执行文件必须在“项目”下进行。本程序的项目浏览器窗口如图3所示。

图3项目浏览器
在项目浏览器中,我们可以看到,项目调用了很多子VI,主界面主VI控制着整个程序的逻辑结构和运算过程,主要是对用户界面上的操作输入和运行结果的显示。其他的子VI可以被一些模块调用,即主VI调用子VI。本项目主要使用了七个子VI,如图4所示。

图4 色彩缤纷的子程序图标
本设计的程序框图主要运用了条件结构和事件结构,结合模块化的子VI,可构成我们所需要的功能。多事件结构的程序框图如图5所示。

图5多事件结构的结构框图
三、程序的基本设计
(一)“计算器”程序的前面版
本次设计的计算器共设计40个键码,分别为:0~9 十个数字、小数点、正负号、加、减、乘、除、等号、倒数、开方、平方、 π、sin、cos、tan、角度转换和清零,还有一个数据显示和一个时间显示。具体设计如图6所示。

图6 前面板
(二)“计算器”程序的程序框图
本程序框图通过一个while循环套用一个事件结构和一个条件结构,以及一个调用节点完成对函数的调用,进而完成对计算器的两个输入数据的加、减、乘、除运算和一些特殊运算。整体程序框图如图7所示。
图7 整体程序框图
(一)简单子VI的程序框图
子VI相当于普通编程语言中的子程序,也就是被其他的VI调用的 VI。下图几个框图显示了加减计算、乘除计算、括号、抽离上一元素、和删除多余的零等一些子VI的程序框图。

图8“加减计算”的程序框图

图9“乘除计算”的程序框图

图10“括号”的程序框图

图11“抽离上一元素”的程序框图

图12“删除多余的零”的程序框图

图13“清零”的程序框图
(二)特殊计算子VI的程序框图
特殊计算子VI就是对一些除加减乘除除外的特殊符号的运算,包括角度求值、平方求值、阶乘等。其中正切和余弦函数的程序框图如图14、图15所示。

图14 “正切”的程序框图

图15 “余弦”的程序框图
(三)时间显示和背景控件
主界面调用一些控件和函数进行运算操作,利用分模块编写子VI的方式调用。有利于调试、修改和调用。时间控件给前面版添加了显示时间的功能。背景模块给前面板添加了背景转换的功能,数据显示控件和背景模块的程序框图如图16、图17所示。

图16 时间显示模块的程序框图

图17前面板背景控件的程序框图
(四)弧度,角度,梯度的相互转换


图17 “弧度,角度,梯度的转换”的程序框图
(一)加减乘除验证

(二)一些特殊功能验证