labview計(jì)算器、xy記錄儀及溫度測(cè)量?jī)x表程序_第1頁(yè)
labview計(jì)算器、xy記錄儀及溫度測(cè)量?jī)x表程序_第2頁(yè)
labview計(jì)算器、xy記錄儀及溫度測(cè)量?jī)x表程序_第3頁(yè)
labview計(jì)算器、xy記錄儀及溫度測(cè)量?jī)x表程序_第4頁(yè)
labview計(jì)算器、xy記錄儀及溫度測(cè)量?jī)x表程序_第5頁(yè)
已閱讀5頁(yè),還剩86頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1061112051120121725吳進(jìn)軍2任務(wù)一 簡(jiǎn)易計(jì)算器任務(wù)要求:設(shè)計(jì)一個(gè)可以實(shí)現(xiàn)加、減、乘、除、取負(fù)、求倒、開方等運(yùn)算的簡(jiǎn)易計(jì)算器。 計(jì)算器前面板如右圖所示。3流程圖:4設(shè)計(jì)思路 前面板的按鍵經(jīng)過響應(yīng),判斷是哪個(gè)按鍵并進(jìn)行相應(yīng)的操作,將結(jié)果顯示出來。 為了實(shí)現(xiàn)這個(gè)功能,建立一個(gè)簇,在簇內(nèi)添加了22個(gè)確定按鈕并進(jìn)行排序。在后面板中,將該簇轉(zhuǎn)換成一維數(shù)組以能夠進(jìn)行搜索,將索引作為條件結(jié)構(gòu)分支選擇器,在條件結(jié)構(gòu)的不同分支進(jìn)行相應(yīng)的操作。 由于顯示最新數(shù)據(jù)之前,要進(jìn)行多零處理,因此添加一個(gè)多零處理模塊。 為了使程序更完善,還添加了四個(gè)布爾控件,分別用于確定輸入的是第一個(gè)還是第二個(gè)數(shù)據(jù)、處理多

2、零問題、使backspace僅針對(duì)輸入以及保證計(jì)算的連續(xù)性。另外又添加了兩個(gè)數(shù)值顯示控件,用來儲(chǔ)存運(yùn)算符號(hào)和保證運(yùn)算的連續(xù)性。5設(shè)計(jì)步驟:前面板操作1、建一個(gè)簇,簇里面放置22個(gè)確定按鈕,包括“0-9”、“+”、“-”、“*”、“/”、“.”、“+/-”、“1/x”、“=”、“”、“”、“C”以及“CE”;(顯示)2、放置一個(gè)字符串顯示控件;(顯示)3、添加一個(gè)確定按鈕作為開關(guān);(顯示)4、設(shè)置4個(gè)開關(guān)按鈕 ,功能分別為確定輸入第一個(gè)數(shù)還是第二個(gè)數(shù)、保證計(jì)算的連續(xù)性、處理多零現(xiàn)象以及使只適用于輸入;(隱藏)5、設(shè)置5個(gè)字符串顯示控件,分別顯示輸入的第一個(gè)數(shù)據(jù)(參與運(yùn)算的第一個(gè)數(shù)字)、輸入的第二

3、個(gè)數(shù)據(jù)、參與運(yùn)算的第二個(gè)數(shù)字、初始結(jié)果以及最終結(jié)果;(隱藏)6、設(shè)置兩個(gè)數(shù)字顯示控件(表示法設(shè)為U8),功能是儲(chǔ)存運(yùn)算符號(hào)(實(shí)質(zhì)上是存儲(chǔ)索引)和保證運(yùn)算的連續(xù)性。(隱藏)60、按鍵的輸入和響應(yīng):通過簇變數(shù)組和搜索一維數(shù)組函數(shù)得到索引,用條件結(jié)構(gòu)判斷,針對(duì)不同的索引進(jìn)行不同的操作,這樣就感應(yīng)到了按鍵。具體實(shí)現(xiàn)如右圖所示。后面板操作71、默認(rèn)狀態(tài)為了防止沒有按鍵時(shí),仍然不停響應(yīng)上一次所按的鍵,應(yīng)該設(shè)置默認(rèn)狀態(tài)(不按鍵)時(shí),不進(jìn)行任何處理。82、數(shù)字0的輸入:因?yàn)?比較特殊(涉及多零問題),因此單獨(dú)處理。當(dāng)輸入第二個(gè)數(shù)時(shí):首先確定是否加0(根據(jù)是否等于0)910然后及時(shí)將得到的新數(shù)字賦給參與運(yùn)算的第

4、二個(gè)數(shù)字11同時(shí)不能丟失了已經(jīng)輸入的運(yùn)算符號(hào)12輸入第一個(gè)數(shù)時(shí):首先確定是否加0(根據(jù)是否等于0)13由于輸入第一個(gè)參與運(yùn)算的數(shù)字時(shí),之前并未輸入運(yùn)算符號(hào)或之前輸入的運(yùn)算符號(hào)不再使用,因此不必存儲(chǔ)運(yùn)算符號(hào)143、1-9的輸入輸入第二個(gè)數(shù)時(shí):除了多零問題有些區(qū)別外,其它的程序就自然寫出來了新數(shù)據(jù)的獲得是通過字符串實(shí)現(xiàn)的,因此要進(jìn)行字符串與數(shù)值的轉(zhuǎn)換(“數(shù)值到十進(jìn)制字符串”控件),輸入之后要進(jìn)行簡(jiǎn)單的多零處理(采用條件結(jié)構(gòu)判斷)151617輸入第一個(gè)數(shù)時(shí):這里用到“保證計(jì)算的連續(xù)性”,是為了在前一次計(jì)算結(jié)束(按了等于號(hào))后,不需要再次清零即可進(jìn)行下一次的運(yùn)算18194、加減乘除的輸入在運(yùn)算時(shí),防止

5、默認(rèn)情況下總是進(jìn)行加減乘除中的一種運(yùn)算,設(shè)置了默認(rèn)分支,值為0是因?yàn)槌跏蓟O(shè)為0.這里還用到“分?jǐn)?shù)/指數(shù)字符串到數(shù)值”和“數(shù)值到小數(shù)字符串”兩個(gè)控件。下圖是默認(rèn)情況20加法:21減法:22乘法:23除法:進(jìn)行除法運(yùn)算時(shí)要考慮除數(shù)是否為0的情況24255、等號(hào)的輸入鍵入等號(hào)后和鍵入運(yùn)算符號(hào)后的處理大體一致,這里用到儲(chǔ)存運(yùn)算符號(hào),是因?yàn)橹蟆氨WC運(yùn)算的連續(xù)性”會(huì)被清零,以防止等號(hào)之后輸入新符號(hào)出錯(cuò)(多運(yùn)算一次)26加法:27減法:28乘法:29除法:3031此處不將”儲(chǔ)存運(yùn)算符號(hào)“清零,保證等號(hào)之后,可以多次按等號(hào)計(jì)算下去326、小數(shù)點(diǎn)的輸入輸入第二個(gè)數(shù)時(shí):輸入小數(shù)點(diǎn)時(shí),要處理數(shù)據(jù)中已有小數(shù)點(diǎn)的情

6、況33343536輸入第一個(gè)數(shù)時(shí):37387、backspace輸入第二個(gè)數(shù)時(shí):3940輸入第一個(gè)數(shù)時(shí):4142438、C鍵449、CE鍵輸入第二個(gè)數(shù)時(shí):454647輸入第一個(gè)數(shù)時(shí):4810、開方開方時(shí)針對(duì)開方數(shù)是否為負(fù)進(jìn)行不同處理495011、求倒求倒時(shí)針對(duì)分母(除數(shù))是否為0,進(jìn)行不同處理515212、取負(fù)5313、多零處理模塊54555614、數(shù)據(jù)顯示每次大的循環(huán)(每次按鍵),要進(jìn)行三個(gè)模塊的處理,第一個(gè)是主模塊,對(duì)輸入的內(nèi)容進(jìn)行主要的直接處理;第二個(gè)是多零處理模塊,對(duì)主模塊處理后得到的初始結(jié)果進(jìn)行多零處理;第三個(gè)是顯示模塊,實(shí)時(shí)顯示最新得到的數(shù)據(jù)5715、整體框圖58實(shí)驗(yàn)過程中出現(xiàn)的問

7、題及解決辦法1、雖然進(jìn)行了多零處理,但是多零現(xiàn)象仍然存在。錯(cuò)誤:多零處理,在截取字符串后,應(yīng)將最右的數(shù)字與0比較。修改之前,連接在“剩余長(zhǎng)度”接線端,以致將左半段與0比較。修改:連接在“偏移量”接線端。592、進(jìn)行一次簡(jiǎn)單計(jì)算按了等號(hào)得出結(jié)果后,再按等號(hào)進(jìn)行的總是加法或則不再進(jìn)行運(yùn)算。錯(cuò)誤:在按了等號(hào)之后,對(duì)“保證運(yùn)算的連續(xù)性”及“儲(chǔ)存運(yùn)算符號(hào)”均清零或均不做改變。修改:僅對(duì)“保證運(yùn)算的連續(xù)性”清零。而這樣做之后,“儲(chǔ)存運(yùn)算符號(hào)”確實(shí)起到了儲(chǔ)存的作用。并補(bǔ)加默認(rèn)分支,防止誤操作。603、輸入的數(shù)在進(jìn)行下一個(gè)操作時(shí),失去小數(shù)部分,計(jì)算得到的結(jié)果也沒有小數(shù)部分。錯(cuò)誤:選用了錯(cuò)誤的數(shù)值與字符串轉(zhuǎn)換函

8、數(shù)。61實(shí)驗(yàn)總結(jié)及心得:步步為營(yíng):完成計(jì)算器這樣一個(gè)較大的項(xiàng)目,不可能一步登天。需要我們有一個(gè)整體的思路,然后按著計(jì)劃一步一個(gè)腳印地前進(jìn),將計(jì)算器的功能變得越來越強(qiáng)大!對(duì)癥下藥:實(shí)驗(yàn)中出現(xiàn)了各種各樣的問題,這些問題并不會(huì)單純地集中在一處。我們需要不斷地調(diào)試,根據(jù)實(shí)際現(xiàn)象,思考可能出現(xiàn)的問題。盡善盡美:沒有最完美,只有更完美。就像每一款投入市場(chǎng)的軟件,需要經(jīng)常更新、打補(bǔ)丁以修復(fù)bug一樣。盡管我們已經(jīng)實(shí)現(xiàn)了計(jì)算器的基本功能,然而它還會(huì)在用戶使用過程中出現(xiàn)各種問題,這些問題需要我們持著盡善盡美的態(tài)度來解決。62任務(wù)二 XY記錄儀任務(wù)要求:用DAQ助手設(shè)計(jì)一個(gè)可以采集兩通道連續(xù)數(shù)據(jù)的程序,并顯示為X

9、Y波形圖。程序可以對(duì)波形清零、保存和讀取。記錄儀前面板如右圖所示。63流程圖:64設(shè)計(jì)思路 利用DAQ助手,將采集到的兩通道的數(shù)據(jù)經(jīng)過兩個(gè)索引后分別添加到數(shù)組一、二當(dāng)中,并將兩數(shù)組綁定成簇顯示在XY波形圖中。 為了在開關(guān)為真時(shí)可以清零,使循環(huán)的終止條件“與”上了清零,并在之后進(jìn)行判斷是否清零以進(jìn)行操作。 開關(guān)為假時(shí),則可以清零、保存和讀取。 65設(shè)計(jì)步驟:1、放置一個(gè)xy圖控件;(顯示)2、放置2個(gè)開關(guān)按鈕,功能分別為控制波形記錄的開始/停止和波形的清零;(顯示)3、放置3個(gè)確定按鈕,功能分別為記錄儀的電源和波形的保存讀取;(顯示)4、放置一個(gè)物理通道;(顯示)5、放置兩個(gè)數(shù)組顯示控件;(隱藏

10、)前面板操作66后面板操作開關(guān)為真時(shí),首先進(jìn)行下面的程序。開關(guān)、關(guān)機(jī)和清零決定循環(huán)進(jìn)行下去與否。采集到的數(shù)據(jù)經(jīng)過兩次索引得到兩個(gè)單數(shù)據(jù),分別插入到已經(jīng)得到的兩數(shù)組中。兩數(shù)組綁定成簇顯示在xy中。1、采集并顯示數(shù)據(jù)67為了實(shí)現(xiàn)在開關(guān)打開時(shí)能夠清零,就要在清零時(shí)中斷循環(huán)(如前所說)。循環(huán)結(jié)束,進(jìn)行下面程序,得知循環(huán)中斷原因,決定是否清零。清零后,未將開關(guān)置假,因此可以馬上重新采集數(shù)據(jù)(若是不想,可以根據(jù)實(shí)際情況添加一定的延時(shí))68697071外部清零程序(即開關(guān)為假時(shí)的清零程序) 2、外部清零模塊7273743、保存和讀取模塊75764、整體框圖77實(shí)驗(yàn)過程中出現(xiàn)的問題及解決辦法1、清零不徹底,存

11、在“殘余”,且殘余多種多樣。錯(cuò)誤:如上方左面兩圖所示,得到的xy波形圖留著小尾巴。最初沒留意,認(rèn)為沒什么,后來發(fā)現(xiàn)尾巴的形狀、大小并不固定,會(huì)隨著清零常量的重建而改變。修改:后來經(jīng)過思考,認(rèn)為在清零初始化那里出現(xiàn)了問題。然而初始化時(shí)建立了常量,表面看與0常量無(wú)區(qū)別,實(shí)際上那些沒有看到的數(shù)組元素或簇元素并不是0。最后想到建立一個(gè)數(shù)組常量,將零元素放入,實(shí)現(xiàn)了初始化為0。如右面兩圖所示。782、無(wú)法實(shí)現(xiàn)隨時(shí)清零,即僅在開關(guān)為假時(shí)才可以清零。79錯(cuò)誤:沒有考慮開關(guān)為真時(shí)的清零問題。修改:嘗試過清零模塊直接植入循環(huán)中、清零變量與開關(guān)共同決定循環(huán)開始與否、清零之后對(duì)for循環(huán)次數(shù)或已執(zhí)行次數(shù)進(jìn)行修正等各

12、種方案,均告失敗。源于循環(huán)一旦開始,以上方案不能終止。最終方案如上頁(yè)圖所示。將開關(guān)并為循環(huán)終止決定條件之一,并在循環(huán)結(jié)束之后判斷終止原因,對(duì)不同原因進(jìn)行不同操作。80實(shí)驗(yàn)總結(jié)和心得:每一次失敗的嘗試都讓我更靠近成功:為了實(shí)現(xiàn)開關(guān)打開狀態(tài)可以清零,我嘗試各種方案,后來想想這些方案很錯(cuò),簡(jiǎn)直大錯(cuò)特錯(cuò)。然而我們不能回避這些錯(cuò)誤,因?yàn)榉稿e(cuò)表示不懂。每一次愚蠢的錯(cuò)誤都讓我對(duì)于程序有了更深的理解,也更靠近成功。細(xì)節(jié)決定成?。寒?dāng)時(shí),清零初始化,直接選擇簡(jiǎn)簡(jiǎn)單單地建立了一個(gè)看起來和零常量無(wú)區(qū)別的常量(實(shí)際可能是0.112什么的,因?yàn)閷挾炔粔颍?shù)點(diǎn)之后沒顯示出來),導(dǎo)致后來廢了好大勁才找到原因。不要忽略小錯(cuò)誤

13、,因?yàn)樗赡苁莻€(gè)大錯(cuò)誤:建立的常量因?yàn)樵鼐^小,看起來跟清零差不多,于是忽略了好多次。然而當(dāng)這個(gè)常量隨機(jī)成一個(gè)大值時(shí),這個(gè)錯(cuò)誤可能就會(huì)很嚴(yán)重。81任務(wù)三 溫度測(cè)量?jī)x表任務(wù)要求:設(shè)計(jì)一個(gè)溫度測(cè)量?jī)x表,與硬件結(jié)合,可以將外界溫度轉(zhuǎn)換成電壓值,采集電壓值并將其轉(zhuǎn)換為溫度值,進(jìn)行記錄。要求程序框圖可以對(duì)溫度數(shù)據(jù)保存和讀取,并能在溫度過高和過低時(shí)終止程序。溫度測(cè)量?jī)x表前面板如右圖所示。82流程圖:83設(shè)計(jì)思路 利用DAQ助手,將采集到的單通道數(shù)據(jù)添加到數(shù)組中,然后將數(shù)組顯示在波形圖中并記錄在表格內(nèi)。 開關(guān)為假時(shí),可以保存數(shù)據(jù)到表格和讀取數(shù)據(jù)到表格。 84設(shè)計(jì)步驟:前面板操作1、放置一個(gè)波形圖,實(shí)時(shí)顯示

14、并記錄溫度數(shù)據(jù);(顯示)2、放置4個(gè)豎直輸入控件,分別用來輸入最高溫度、最低溫度、采樣頻率和次數(shù);(顯示)3、放置一個(gè)垂直遙感開關(guān)和三個(gè)圓形指示燈,三個(gè)指示燈分別用來顯示是否正在采集數(shù)據(jù)和溫度是否太高或太低;(顯示)4、放置一個(gè)溫度計(jì);(顯示)5、放置兩個(gè)確定按鈕,功能是保存和讀取數(shù)據(jù);(顯示)6、放置一個(gè)水平刻度條,顯示采集進(jìn)度;(顯示)7、放置一個(gè)表格顯示控件,記錄采集到的數(shù)據(jù);(顯示)8、放置一個(gè)字符串顯示控件,用來顯示當(dāng)前系統(tǒng)時(shí)間。(顯示)85后面板操作1、采集并顯示數(shù)據(jù)86872、保存模塊88 3、讀取模塊894、整體程序框圖90實(shí)驗(yàn)總結(jié)和心得刪繁就簡(jiǎn):當(dāng)時(shí)為保存數(shù)據(jù),建立了兩個(gè)數(shù)組,一個(gè)用于實(shí)時(shí)顯示在波形圖中,另一個(gè)用來存在表格里。精簡(jiǎn)后僅保留了一個(gè)數(shù)組。91課程建議1、減少使用課件甚至不用課件進(jìn)行講授。原因:課件呈現(xiàn)了太多文字化的內(nèi)容,且內(nèi)容死板

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論