本文是基于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 “弧度,角度,梯度的轉換”的程序框圖
(一)加減乘除驗證

(二)一些特殊功能驗證