基于labview的多功能秒表設(shè)計(jì)(計(jì)時(shí)器 倒計(jì)時(shí) 節(jié)拍器 日歷 時(shí)鐘)_第1頁(yè)
基于labview的多功能秒表設(shè)計(jì)(計(jì)時(shí)器 倒計(jì)時(shí) 節(jié)拍器 日歷 時(shí)鐘)_第2頁(yè)
基于labview的多功能秒表設(shè)計(jì)(計(jì)時(shí)器 倒計(jì)時(shí) 節(jié)拍器 日歷 時(shí)鐘)_第3頁(yè)
基于labview的多功能秒表設(shè)計(jì)(計(jì)時(shí)器 倒計(jì)時(shí) 節(jié)拍器 日歷 時(shí)鐘)_第4頁(yè)
基于labview的多功能秒表設(shè)計(jì)(計(jì)時(shí)器 倒計(jì)時(shí) 節(jié)拍器 日歷 時(shí)鐘)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于LabVIEW的秒表設(shè)計(jì)摘要數(shù)字式秒表是一種常用的計(jì)時(shí)工具,廣泛用于各種比賽以及各類實(shí)驗(yàn)測(cè)量中。隨著生活節(jié)奏的加快,人們時(shí)間觀念的加強(qiáng),各種計(jì)時(shí)器已經(jīng)成為人們?nèi)粘I钪胁豢苫蛉钡囊徊糠?,并且人們已?jīng)不能滿足于單一的某一種功能了。而如何在秒表的基礎(chǔ)上,根據(jù)人們生活的需要增加相應(yīng)的功能以方便人們的生活,便成為秒表設(shè)計(jì)方面的重點(diǎn)。我基于LabVIEW設(shè)計(jì)的的秒表,具有秒表計(jì)時(shí)器、倒計(jì)時(shí)器、節(jié)拍器、時(shí)鐘和鬧鐘的功能。其具有界面美觀,簡(jiǎn)單易用,功能強(qiáng)大,精確度高等特點(diǎn)。此秒表的所有功能均可以獨(dú)立運(yùn)行,互不干擾,具有很好的用戶體驗(yàn)。關(guān)鍵詞:秒表,計(jì)時(shí),LabVIEWStopwatch design b

2、ased on LabVIEWAbstract Digital stopwatch is a commonly used tool for timing.It is widely used in various competitions and a variety of experimental measurements.With the accelerated pace of life and the strengthening of the concept of time,variety timer has become an indispensable part of everyday

3、life,and it has been unable to meet on a single feature of a certain kind.It has become the focus of the stopwatch design that how to add the corresponding function according to the needs of people's lives based on the stopwatch to convenience to people's lives. Stopwatch witch I designed ba

4、sed on LabVIEW, is with a stopwatch timer, countdown timer, metronome, clock and alarm functions.It has a beautiful interface, easy to use, powerful, high precision characteristics.This stopwatchs all functions can be run independently, means can without disturbing each other, and with good user exp

5、erience.Keywords: stopwatch, timer, LabVIEW 目 錄1.緒 論11.1 引言11.2虛擬儀器的概念及特點(diǎn)11.2.1虛擬儀器11.2.2 虛擬儀器的特點(diǎn)12. 圖形化編程和LabVIEW22.1 圖形化編程簡(jiǎn)介22.2 LabVIEW簡(jiǎn)介22.2.1前面板22.3.2 程序框圖23.秒表介紹及程序設(shè)計(jì)33.1 概述33.2 秒表的發(fā)展33.3 秒表的功能設(shè)計(jì)53.3.1.正計(jì)時(shí)53.3.2 倒計(jì)時(shí)63.3.3.節(jié)拍器63.3.4.時(shí)鐘與鬧鐘64. 程序?qū)崿F(xiàn)74.1秒表計(jì)時(shí)器74.1.1 流程圖74.1.2程序設(shè)計(jì)84.2 倒計(jì)時(shí)器214.2.1流程圖2

6、14.2.2程序設(shè)計(jì)224.3節(jié)拍器254.3.1流程圖254.3.2 程序設(shè)計(jì)264.4時(shí)鐘及鬧鐘284.4.1流程圖284.4.2 程序設(shè)計(jì)28總 結(jié)31致 謝331.緒 論1.1 引言 LabVIEW是一種程序開發(fā)環(huán)境,由美國(guó)國(guó)家儀器(NI)公司研制開發(fā)的,類似于C和BASIC開發(fā)環(huán)境,但是LabVIEW與其他計(jì)算機(jī)語(yǔ)言的顯著區(qū)別是:其他計(jì)算機(jī)語(yǔ)言都是采用基于文本的語(yǔ)言產(chǎn)生代碼,而LabVIEW使用的是圖形化編輯語(yǔ)言G編寫程序,產(chǎn)生的程序是框圖的形式。1.2虛擬儀器的概念及特點(diǎn)1.2.1虛擬儀器 LabVIEW程序又稱虛擬儀器,即VI,其外觀和操作均模仿現(xiàn)實(shí)儀器,如示波器和萬(wàn)用表。每個(gè)V

7、I都使用函數(shù)從用戶界面或其它渠道獲取信息輸入,然后將信息顯示或傳輸至其它文件或計(jì)算機(jī)。1.2.2 虛擬儀器的特點(diǎn) 根據(jù)概念創(chuàng)建者美國(guó)國(guó)家儀器公司(National Instruments)的定義,虛擬儀器(英語(yǔ):Virtual instrumentation)技術(shù)就是利用高性能的模塊化硬件,結(jié)合高效靈活的軟件來(lái)完成各種測(cè)試、測(cè)量和自動(dòng)化的應(yīng)用。只有同時(shí)擁有高效的軟件、模塊化I/O硬件和用于集成的軟硬件平臺(tái)這三大組成部分,才能充分發(fā)揮虛擬 儀器技術(shù)性能高、擴(kuò)展性強(qiáng)、開發(fā)時(shí)間少,以及出色的集成這四大優(yōu)勢(shì)。2. 圖形化編程和LabVIEW2.1 圖形化編程簡(jiǎn)介 圖形化的程序語(yǔ)言,又稱為 “G” 語(yǔ)言

8、。使用這種語(yǔ)言編程時(shí),基本上不寫程序代碼,取而代之的是流程圖或框圖。它可以增強(qiáng)你構(gòu)建自己的科學(xué)和工程系統(tǒng)的能力,提供了實(shí)現(xiàn)儀器編程和數(shù)據(jù)采集系統(tǒng)的便捷途徑。使用它進(jìn)行原理研究、設(shè)計(jì)、測(cè)試并實(shí)現(xiàn)儀器系統(tǒng)時(shí),可以大大提高工作效率。2.2 LabVIEW簡(jiǎn)介 雙擊LabVIEW快捷圖標(biāo),出現(xiàn)啟動(dòng)畫面,打開一個(gè)新的LabVIEW程序,可以看到它由兩個(gè)面板組成。第一個(gè)是前面板窗口;第二個(gè)是后面板窗口。2.2.1前面板 前面板由輸入控件和顯示控件組成。這些控件是VI的輸入輸出端口。輸入控件模擬儀器的輸入裝置,為VI的程序框圖提供數(shù)據(jù)。顯示控件模擬儀器的輸出裝置,用以顯示程序框圖獲取或生成的數(shù)據(jù)。2.3.2

9、 程序框圖 前面板創(chuàng)建完畢后,便可使用圖形化的函數(shù)添加源代碼來(lái)控制前面板上的對(duì)象。程序框圖是圖形化源代碼的集合,圖形化源代碼又稱G代碼或程序框圖代碼。前面板上的對(duì)象在程序框圖中顯示為接線端。3.秒表介紹及程序設(shè)計(jì)3.1 概述 秒表是一種常用的測(cè)時(shí)儀器。又可稱"機(jī)械停表"。由暫停按鈕、發(fā)條柄頭、分針等組成。它是利用擺的等時(shí)性控制指針轉(zhuǎn)動(dòng)而計(jì)時(shí)的。在它的正面是一個(gè)大表盤,上方有小表盤(圖142)。秒針沿大表盤轉(zhuǎn)動(dòng),分針沿小表盤轉(zhuǎn)動(dòng)。分針和秒針?biāo)?的時(shí)間和就是所測(cè)的時(shí)間間隔。在表正上方有一表把,上有一按鈕。旋動(dòng)按鈕,上緊發(fā)條,這是秒表走動(dòng)的動(dòng)力。用大拇指按下按鈕,秒表開始計(jì)時(shí);

10、再按下按鈕, 秒表停止走動(dòng),進(jìn)行讀數(shù);再按一次,秒表回零,準(zhǔn)備下一次計(jì)時(shí)。秒表的精度一般在0102秒,計(jì)時(shí)誤差主要是開表、停表不準(zhǔn)造成的。而使用labview制作的秒表,其精確度可達(dá)到1毫秒。3.2 秒表的發(fā)展 原始人憑天空顏色的變化、太陽(yáng)的光度來(lái)判斷時(shí)間。古埃及發(fā)現(xiàn)影子長(zhǎng)度會(huì)隨時(shí)間改變,發(fā)明日晷在早上計(jì)時(shí),他們亦發(fā)現(xiàn)水的流動(dòng)需要的時(shí)間是固定的,因此發(fā)明了水鐘。古代中國(guó)人亦有以水來(lái)計(jì)時(shí)的工具銅壺滴漏,他們亦會(huì)用燒香計(jì)時(shí)。將香橫放,上面放上連有鋼珠的繩子,有報(bào)時(shí)功能。 中國(guó)古代燒香的鬧鐘。除了用水流來(lái)計(jì)時(shí)外,中國(guó)古代民間亦有利用燃點(diǎn)線香來(lái)計(jì)量時(shí)間。龍舟報(bào)時(shí)更香就是利用燒香來(lái)計(jì)時(shí)的儀器,它更設(shè)有定

11、時(shí)響鬧的作用。龍舟上掛了數(shù)條兩端系著金屬球的幼線,線下放了燃著的香。每隔一段時(shí)間,香便會(huì)燒斷一條線子,當(dāng)金屬球跌進(jìn)下面的盛器時(shí),便會(huì)發(fā)出報(bào)時(shí)響鬧。這種燒香時(shí)計(jì)最早 見于宋代(公元12世紀(jì)中葉)的文獻(xiàn)中。用更香來(lái)計(jì)算時(shí)間的精度不高,但由于它簡(jiǎn)單易行,極之適合民間使用,所以曾經(jīng)十分流行。據(jù)文獻(xiàn)記載有些更香可燃燒一畫夜,有些甚至可以燃燒至一個(gè)月。此更香是根據(jù)文獻(xiàn)及示圖復(fù)原,沒有原物傳世。 1088年,宋朝的科學(xué)家蘇頌和韓工廉等人制造了史上首座以水力作自動(dòng)化機(jī)械操作的水運(yùn)儀象臺(tái),它是把渾儀、渾象和機(jī)械計(jì)時(shí)器組合起來(lái)的裝置。 1276年,中國(guó)元代的郭守敬制成大明燈漏。它是利用水力驅(qū)動(dòng),通過(guò)齒輪系及相當(dāng)復(fù)

12、雜的凸輪結(jié)構(gòu),帶動(dòng)木偶進(jìn)行“一刻鳴鐘、二刻鼓、三鉦、四鐃”的自動(dòng)報(bào)時(shí)。自宋起,十二時(shí)辰分初正即廿四小時(shí)系統(tǒng),一刻即今天的十五分鐘,其準(zhǔn)確度較德國(guó)之桌鐘早三百多年。 1283年在英格蘭的修道院出現(xiàn)史上首座以砝碼帶動(dòng)的機(jī)械鐘。 13世紀(jì)意大利北部的僧侶開始建立鐘塔(或稱鐘樓),其目的是提醒人禱告的時(shí)間。 1360年詹希元?jiǎng)?chuàng)制“五輪沙漏”,以齒輪、時(shí)刻盤合成 16世紀(jì)中在德國(guó)開始有桌上的鐘。那些鐘只有一支針,鐘面分成四部分,使時(shí)間準(zhǔn)確至最近的十五分鐘。 1657年,惠更斯發(fā)現(xiàn)擺的頻率可以計(jì)算時(shí)間,造出了第一個(gè)擺鐘。1670年英國(guó)人威廉·克萊門特(William Clement)發(fā)明錨形擒縱

13、器。 1797年,美國(guó)人伊萊·特里(Eli Terry)獲得一個(gè)鐘的專利權(quán)。他被視為美國(guó)鐘表業(yè)的始祖。 世界上第一座原子鐘建于1949年,位于美國(guó)的國(guó)家標(biāo)準(zhǔn)技術(shù)研究所。第一座準(zhǔn)確的原子鐘于1955年建造,位于英國(guó)國(guó)家物理實(shí)驗(yàn)室。1967年,第十三屆國(guó)際度量衡會(huì)議采用銫-133原子鐘所發(fā)出特定波長(zhǎng)的頻率,作為秒的基準(zhǔn)依據(jù)。當(dāng)此原子鐘某特定波長(zhǎng)所發(fā)出 的光振動(dòng) 9,192,631,770 次所經(jīng)過(guò)的時(shí)間,定義為一秒。原子鐘相當(dāng)穩(wěn)定,不易受環(huán)境變化影響。 計(jì)時(shí)碼表,或稱碼表,是一種有計(jì)時(shí)功能的手表,是將秒表的功能結(jié)合于手表之中。計(jì)時(shí)碼表于 1720年由英國(guó)人 George Graham 發(fā)

14、明。 無(wú)論是機(jī)械手表,石英手表,甚至 LCD顯示數(shù)位表,都有計(jì)時(shí)碼表的產(chǎn)品。LCD數(shù)位手表的價(jià)錢是三者中最低,但計(jì)時(shí)功能卻是最為精確,精度可達(dá)百分之一秒或千分之一秒。石英的計(jì)時(shí)碼表價(jià)錢較貴,精度多數(shù)為十分之一秒 。而機(jī)械計(jì)時(shí)碼表的精度是最差,只能以秒計(jì)算,但由于機(jī)芯結(jié)構(gòu)復(fù)雜,因此價(jià)錢最為昂貴。3.3 秒表的功能設(shè)計(jì)3.3.1.正計(jì)時(shí)我設(shè)計(jì)的秒表的正計(jì)時(shí)器首先具有精確到0.01秒的計(jì)時(shí)功能,最高可以計(jì)時(shí)到99小時(shí)59分59秒99,其他功能如下:以LED七段數(shù)碼管的方式顯示時(shí)間。在計(jì)時(shí)過(guò)程中,可以暫停、繼續(xù)計(jì)時(shí)。在任意狀態(tài)下,可以執(zhí)行復(fù)位操作,清除所有數(shù)據(jù)??梢栽谌我鉅顟B(tài)記錄任意次時(shí)間。在任意狀態(tài)

15、下,可以實(shí)現(xiàn)單人記圈/多人記名的切換,并且切換后自動(dòng)復(fù)位。有毫秒指針,每秒轉(zhuǎn)一圈。3.3.2 倒計(jì)時(shí) 我設(shè)計(jì)的倒計(jì)時(shí)器可以從任意時(shí)間開始倒計(jì)時(shí),并在倒計(jì)時(shí)結(jié)束時(shí)觸發(fā)警報(bào),其他功能如下: 有倒計(jì)時(shí)指針顯示剩余時(shí)間的百分比,且平滑移動(dòng)。 以LED七段數(shù)碼管的方式顯示剩余時(shí)間。 可以設(shè)置不同的提示音。 精確到1秒。 倒計(jì)時(shí)結(jié)束時(shí)指針中間會(huì)出現(xiàn)紅點(diǎn)。3.3.3.節(jié)拍器我設(shè)計(jì)的節(jié)拍器具有如下功能:開始、暫停節(jié)拍器。設(shè)置節(jié)拍,從20拍/分鐘到240拍/分鐘,間隔為20拍/分鐘。3.3.4.時(shí)鐘與鬧鐘我設(shè)計(jì)的時(shí)鐘具有以下功能:以指針?lè)绞斤@示12進(jìn)制的時(shí)間。顯示當(dāng)前日期和時(shí)間,星期。設(shè)置鬧鐘,并可設(shè)置鬧鐘狀態(tài)

16、。4. 程序?qū)崿F(xiàn)4.1秒表計(jì)時(shí)器4.1.1 流程圖通過(guò)對(duì)秒表原理的理解基礎(chǔ)上,在結(jié)合LabVIEW軟件,秒表計(jì)時(shí)器的程序流程圖如圖(4.1)所示:圖4.1程序流程圖4.1.2程序設(shè)計(jì)1. 前面板設(shè)計(jì)程序的前面板如圖4.2所示圖4.2 前面板2.程序框圖 整個(gè)秒表計(jì)時(shí)器的程序框圖如圖4.3所示圖4.3 程序框圖3. 程序設(shè)計(jì)順序計(jì)數(shù)的實(shí)現(xiàn):建立while循環(huán),將i創(chuàng)建顯示控件,從而將計(jì)數(shù)值顯示到前面板上。在循環(huán)中添加等待時(shí)間可以控制計(jì)時(shí)精度。如添加10毫秒等待則是精確到0.01秒。進(jìn)位的實(shí)現(xiàn):進(jìn)位的實(shí)現(xiàn)有幾種備選方案:1)for循環(huán)指定循環(huán)次數(shù)2) 事件結(jié)構(gòu)中設(shè)置比較器,當(dāng)i等于特定值時(shí)觸發(fā)進(jìn)位

17、3) 使用條件結(jié)構(gòu),當(dāng)i等于特定值時(shí)比較器輸出true,激活進(jìn)位4) 算數(shù)計(jì)算由i算出各個(gè)數(shù)位使用前三種方案有一個(gè)弊端:每增加一個(gè)進(jìn)位就會(huì)相應(yīng)的增加一個(gè)嵌套的循環(huán),而循環(huán)越多越容易出現(xiàn)錯(cuò)誤和死循環(huán)。于是我選用第四個(gè)進(jìn)位方法:算數(shù)方法。由于1秒=1000毫秒,1分鐘=60秒,1小時(shí)=60分鐘。我們可以算出,當(dāng)while循環(huán)延遲為1毫秒時(shí),小時(shí)數(shù)為(i/60*60*1000)的整數(shù)商。設(shè)i為(i/60*60*1000)的余數(shù),則分鐘數(shù)為(i/60*1000)的整數(shù)商。設(shè)i”為(i/60*1000)的余數(shù),則秒數(shù)為(i”/1000)的商,其余數(shù)即為毫秒數(shù)。市面上的秒表多數(shù)是精確到0.01秒,也就是1

18、0毫秒,所以我把算出的毫秒數(shù)又進(jìn)行了*10,從而得到0.01秒的精確度。實(shí)現(xiàn)算數(shù)進(jìn)位的子vi程序框圖如圖4.4所示,其中x為輸入端,輸出為一個(gè)含有4位的時(shí)間簇。圖4.4 算數(shù)進(jìn)位函數(shù)暫停計(jì)時(shí)的實(shí)現(xiàn): 暫停計(jì)數(shù)要求在計(jì)數(shù)開始后點(diǎn)擊暫停按鈕時(shí)暫停計(jì)數(shù),再次點(diǎn)擊時(shí)又開始計(jì)數(shù),并且是接著剛才的數(shù)值計(jì)數(shù)。這就要求在整體程序運(yùn)行時(shí),將程序的一部分暫停和恢復(fù)。為了做到這點(diǎn),我先后嘗試了各種結(jié)構(gòu),最終使用了雙層while循環(huán)的嵌套結(jié)構(gòu)。具體是將一個(gè)while循環(huán)外再加一個(gè)while循環(huán),在內(nèi)層while循環(huán)中加入停止按鈕,并且將停止按鈕的動(dòng)作設(shè)置為“釋放時(shí)轉(zhuǎn)換”,同時(shí)將前面板的停止按鈕設(shè)置為開關(guān)的形狀以便于識(shí)

19、別。這樣,這個(gè)內(nèi)層的停止按鈕就會(huì)實(shí)現(xiàn)暫停的功能。 具體程序框圖如圖4.5所示圖4.5 暫停的實(shí)現(xiàn)隨時(shí)退出程序的實(shí)現(xiàn): 我的計(jì)數(shù)方案沒有for循環(huán),所以它不會(huì)自己停止。如果沿用先前的獨(dú)立停止按鈕的設(shè)計(jì),就會(huì)出現(xiàn)一個(gè)嚴(yán)重的問(wèn)題:只能在計(jì)時(shí)過(guò)程中停止。當(dāng)程序處于計(jì)時(shí)狀態(tài)時(shí),內(nèi)部while循環(huán)處于停止?fàn)顟B(tài),點(diǎn)擊停止按鈕會(huì)立即得到響應(yīng);而當(dāng)程序處于暫停計(jì)時(shí)時(shí),內(nèi)部while循環(huán)處于運(yùn)行狀態(tài),從而外部的事件將無(wú)法響應(yīng)。我注意到,當(dāng)在暫停狀態(tài)下點(diǎn)擊停止按鈕后再讓秒表開始計(jì)時(shí),內(nèi)部循環(huán)將會(huì)跳出,而停止命令則會(huì)得到響應(yīng)。由此想到,如果讓程序在我點(diǎn)擊停止的時(shí)候,自動(dòng)讓內(nèi)部while循環(huán)處于運(yùn)行狀態(tài),那么問(wèn)題便迎刃

20、而解了。 由此想法,列出了如下的真值表:暫停端停止端內(nèi)部while循環(huán)101111000011不難看出此真值表與或門完全一致。于是便有了如圖4.6所示的設(shè)計(jì)。使用或門將兩個(gè)按鈕同時(shí)連接到內(nèi)部while循環(huán),并且把觸發(fā)端都放置在最內(nèi)部,消除延遲:圖4.6 停止按鈕設(shè)計(jì)整體框圖如圖4.7所示圖4.7 可以隨時(shí)停止的秒表設(shè)計(jì)計(jì)時(shí)清零的實(shí)現(xiàn): 對(duì)顯示控件的清零有幾種備選方案:1) 事件結(jié)構(gòu)2) 條件結(jié)構(gòu)3) 嵌套while循環(huán) 經(jīng)過(guò)多次實(shí)驗(yàn),發(fā)現(xiàn)事件結(jié)構(gòu)和條件結(jié)構(gòu)容易在while循環(huán)中形成死循環(huán)無(wú)法跳出,故采用嵌套while循環(huán)來(lái)實(shí)現(xiàn)清零功能。由于在前面的程序中停止程序并重啟后i會(huì)自動(dòng)歸零,所以在整個(gè)

21、程序外面再加一個(gè)while循環(huán)。這樣,可以隨時(shí)停止內(nèi)部程序而不中止整個(gè)進(jìn)程。而停止內(nèi)部程序則會(huì)實(shí)現(xiàn)清零的操作。和停止按鈕一樣,如果沿用先前的獨(dú)立停止按鈕的設(shè)計(jì),就會(huì)出現(xiàn)同樣的的問(wèn)題:只能在計(jì)時(shí)過(guò)程中清零。當(dāng)程序處于計(jì)時(shí)狀態(tài)時(shí),內(nèi)部while循環(huán)處于停止?fàn)顟B(tài),點(diǎn)擊清零按鈕會(huì)立即得到響應(yīng);而當(dāng)程序處于暫停計(jì)時(shí)時(shí),內(nèi)部while循環(huán)處于運(yùn)行狀態(tài),從而外部的事件將無(wú)法響應(yīng)。解決此問(wèn)題,同樣根據(jù)真值表可以看出,在內(nèi)循環(huán)添加或門,這樣就可以順利觸發(fā)清零。程序框圖如圖4.7所示.圖4.7 帶停止功能的秒表程序框圖記錄功能的實(shí)現(xiàn):秒表的記錄功能要求能夠在計(jì)時(shí)的過(guò)程中隨時(shí)記錄多次的時(shí)間。首先,我實(shí)現(xiàn)的是記名。為

22、了能夠顯示一個(gè)完整的字符串(如:第1名:0小時(shí)0分鐘1秒.20)我使用字符串連接函數(shù)將多個(gè)字符串和時(shí)間進(jìn)行組合,并使用條件結(jié)構(gòu)控制對(duì)數(shù)據(jù)的采集。在最后添加換行符以換行。為了能夠?qū)崿F(xiàn)實(shí)時(shí)采集,同樣將采集按鈕放在最內(nèi)層循環(huán),并使用或門與其他按鈕相連。為使程序能夠連續(xù)多次記錄,使用反饋節(jié)點(diǎn)儲(chǔ)存數(shù)據(jù)。程序框圖如圖4.8所示。圖4.8 可以連續(xù)記錄的秒表程序框圖隨著記錄功能而來(lái)的一個(gè)問(wèn)題就是清屏。先前的清零只能對(duì)時(shí)間進(jìn)行重置,而字符串卻不行。開始時(shí),我使用了對(duì)顯示控件從新賦值的方法,但這種方法有一個(gè)弊端,就是移位寄存器是不可重置的,這樣就會(huì)導(dǎo)致在執(zhí)行清零后再記錄時(shí),先前清除的內(nèi)容又顯示回來(lái)了。為了解決移

23、位寄存器清零的問(wèn)題,我轉(zhuǎn)而使用了另一種方法:臨時(shí)文件的讀取寫入。臨時(shí)文件可以很好的解決清除數(shù)據(jù)與讀取的問(wèn)題。先將數(shù)據(jù)寫入臨時(shí)文件,再?gòu)奈募凶x取字符串顯示到顯示控件上。每點(diǎn)擊一次采集按鈕,就會(huì)在對(duì)應(yīng)文件的下一行添加一個(gè)記錄字符串。當(dāng)需要清零時(shí)只需要?jiǎng)h除文件內(nèi)的數(shù)據(jù)即可。這樣,當(dāng)點(diǎn)擊清零按鈕時(shí),所有顯示控件都會(huì)清零,并且沒有數(shù)據(jù)殘留。同樣,將該按鈕放置在內(nèi)循環(huán)并使用或門與其它開關(guān)相連。程序框圖如圖4.9所示.圖4.9 可以清零的秒表程序框圖復(fù)位按鈕的實(shí)現(xiàn):秒表上通常會(huì)有一個(gè)復(fù)位按鈕,這個(gè)按鈕會(huì)同時(shí)實(shí)現(xiàn)兩個(gè)功能:清除所有數(shù)據(jù);使秒表處于停止計(jì)時(shí)狀態(tài)。所以我把清零按鈕改為了復(fù)位按鈕,次改進(jìn)需要增加一

24、些觸發(fā)功能。首先,在點(diǎn)擊復(fù)位時(shí)會(huì)清空臨時(shí)文件中的數(shù)據(jù),這一點(diǎn)通過(guò)事件結(jié)構(gòu)實(shí)現(xiàn);其次,在清除數(shù)據(jù)時(shí),將開關(guān)置為暫停狀態(tài),為此創(chuàng)建了暫停按鈕局部變量,通過(guò)對(duì)局部變量的賦值實(shí)現(xiàn)該功能。當(dāng)點(diǎn)擊復(fù)位時(shí),暫停按鈕會(huì)被賦值F,從而暫停計(jì)時(shí)。事件結(jié)構(gòu)具體如圖4.10所示。圖4.10 復(fù)位的程序框圖切換記名/記圈的實(shí)現(xiàn):切換記名/記圈實(shí)現(xiàn)的功能就是當(dāng)點(diǎn)擊切換按鈕時(shí),程序會(huì)在記名模式/記圈模式之間來(lái)回切換,并且在切換的同時(shí)進(jìn)行復(fù)位。為實(shí)現(xiàn)該功能,我使用了一個(gè)條件結(jié)構(gòu),在“真”里面放置“圈”字,在“假”里面放置“名”字,使其共同輸出到一個(gè)顯示控件上。同時(shí),在前面板隱藏該顯示控件,并在程序框圖上創(chuàng)建該顯示控件的局部變

25、量,設(shè)置為讀取模式,將其連接到采集數(shù)據(jù)的長(zhǎng)字符串里面。這樣,就可以把字符串里面的一個(gè)字符在兩個(gè)字之間切換了。程序框圖如圖4.11所示為了能夠在切換的同時(shí)執(zhí)行復(fù)位,我在復(fù)位按鈕的旁邊增加了一個(gè)事件結(jié)構(gòu),設(shè)置觸發(fā)源為切換按鈕值改變,這樣,點(diǎn)擊切換按鈕時(shí),事件結(jié)構(gòu)觸發(fā),輸出一個(gè)T,將其和復(fù)位按鈕以或門相連,便可以實(shí)現(xiàn)多個(gè)觸發(fā)源觸發(fā)一個(gè)功能了。 圖4.11 切換的實(shí)現(xiàn)LED七段數(shù)碼管顯示的實(shí)現(xiàn): 七段數(shù)碼管顯示數(shù)字的效果如圖4.22所示。每一位數(shù)字都是由7個(gè)布爾指示燈拼接而成,每?jī)晌恍纬梢唤M,共同顯示一個(gè)小時(shí)/分鐘/秒/毫秒數(shù)值。在每?jī)蓚€(gè)位之間,有綠色的雙閃LED燈,每秒閃一下。圖4.12 LED七段

26、數(shù)碼管顯示效果 為了實(shí)現(xiàn)LED數(shù)碼管的顯示,首先需要制作一個(gè)數(shù)字轉(zhuǎn)換為L(zhǎng)ED顯示的子VI,否則程序會(huì)很繁雜。該子VI的程序框圖如圖4.13所示,前面板如圖4.14所示。首先,建立一個(gè)十進(jìn)制整形的數(shù)值輸入控件,將其連接至一個(gè)條件結(jié)構(gòu),在條件結(jié)構(gòu)中添加10個(gè)條件分支,分別對(duì)應(yīng)09這10個(gè)數(shù)字。在條件結(jié)構(gòu)的每個(gè)分支中,加入7個(gè)布爾常量,并分別創(chuàng)建顯示控件,將顯示控件設(shè)置為方形指示燈,這7個(gè)指示燈對(duì)應(yīng)7個(gè)數(shù)碼管。對(duì)這7個(gè)指示燈的形狀和大小進(jìn)行調(diào)整,使之成為一個(gè)“8”字。接下來(lái)對(duì)條件結(jié)構(gòu)中的常量進(jìn)行設(shè)定,比如8對(duì)應(yīng)的數(shù)碼管就是7個(gè)T,因?yàn)?的LED顯示中數(shù)碼管都是亮的。同樣的,對(duì)所有10個(gè)條件分支進(jìn)行設(shè)

27、定,使每一個(gè)數(shù)值對(duì)應(yīng)一個(gè)LED顯示樣式。因?yàn)楸境绦蚴亲覸I,不宜有太多輸出,故創(chuàng)建局部變量并將其捆綁為簇,實(shí)現(xiàn)單輸入單輸出。圖4.13 LED顯示子VI程序框圖圖4.14 LED顯示子VI前面板在主程序中,需要調(diào)用8次LED顯示函數(shù)。因?yàn)樵摵瘮?shù)一次只能顯示一位,所以要把時(shí)間的兩位數(shù)變?yōu)閮蓚€(gè)一位數(shù)。對(duì)一個(gè)兩位數(shù)除10取余和商便可達(dá)到這一目的。將簇解除捆綁之后,把每一位除以10,將商和余數(shù)分別接入LED顯示子VI,并在子VI上創(chuàng)建顯示控件,便可在前面板上顯示出LED的數(shù)字了。程序框圖如圖4.15所示.為實(shí)現(xiàn)每?jī)蓚€(gè)數(shù)字中間的閃爍燈,我在秒的位置增加了除以2的操作,通過(guò)余數(shù)來(lái)判斷奇偶,當(dāng)?shù)玫狡鏀?shù)時(shí),使

28、用條件結(jié)構(gòu)給8個(gè)布爾指示燈賦值T,使之點(diǎn)亮。當(dāng)?shù)玫脚紨?shù)時(shí),使用條件結(jié)構(gòu)給8個(gè)布爾指示燈賦值F,使之滅。程序框圖如圖4.15所示。圖4.15 主函數(shù)部分LED顯示圖4.15 閃爍燈程序框圖秒針轉(zhuǎn)盤的實(shí)現(xiàn): 在前面板上創(chuàng)建一個(gè)量表,并進(jìn)行自定義,使之成為圖4.16中的樣子,并將其最大值設(shè)置為100.這樣,即可實(shí)現(xiàn)每秒鐘轉(zhuǎn)一圈的秒表指針了。圖4.16 毫秒指針4.2 倒計(jì)時(shí)器4.2.1流程圖倒計(jì)時(shí)器的流程圖如圖4.17所示。圖4.17 倒計(jì)時(shí)器流程圖4.2.2程序設(shè)計(jì)1. 前面板設(shè)計(jì)程序的前面板如圖4.18所示。圖4.18 倒計(jì)時(shí)器的前面板2. 程序框圖倒計(jì)時(shí)器的程序框圖如圖4.19所示。圖4.19

29、 倒計(jì)時(shí)器的程序框圖3. 程序設(shè)計(jì)初始時(shí)間設(shè)置的實(shí)現(xiàn): 倒計(jì)時(shí)所輸入的時(shí)間為小時(shí):分鐘:秒,想將這些時(shí)間轉(zhuǎn)化為秒,則需要把小時(shí)*3600+分鐘*60+秒。 數(shù)值倒計(jì)的實(shí)現(xiàn): 得到秒的數(shù)值之后,只需要把該數(shù)值減去循環(huán)次數(shù)i就可以實(shí)現(xiàn)倒計(jì)時(shí)了。而將while循環(huán)的間隔設(shè)置為1秒就可以實(shí)現(xiàn)每秒減1的倒計(jì)時(shí)了。在實(shí)際設(shè)計(jì)中,倒計(jì)時(shí)提示會(huì)在程序運(yùn)行時(shí)響起,因?yàn)榇藭r(shí)計(jì)數(shù)數(shù)值也是0.為解決此問(wèn)題,我在-i之前對(duì)數(shù)值*100,在-i之后又進(jìn)行/100取整,并且使用/10取整之前的數(shù)值與1比較,相等時(shí)就會(huì)觸發(fā)報(bào)警。同時(shí),把while循環(huán)的間隔設(shè)置到10毫秒,這樣計(jì)時(shí)還是1秒,同時(shí)提高了精確度。程序框圖如圖4.2

30、0所示。圖4.20 倒計(jì)時(shí)原理倒計(jì)時(shí)暫停/開始的實(shí)現(xiàn): 和秒表一樣,具體是將一個(gè)while循環(huán)外再加一個(gè)while循環(huán),在內(nèi)層while循環(huán)中加入停止按鈕,并且將停止按鈕的動(dòng)作設(shè)置為“釋放時(shí)轉(zhuǎn)換”,同時(shí)將前面板的停止按鈕設(shè)置為開關(guān)的形狀以便于識(shí)別。這樣,這個(gè)內(nèi)層的停止按鈕就會(huì)實(shí)現(xiàn)暫停的功能。倒計(jì)時(shí)復(fù)位的實(shí)現(xiàn): 倒計(jì)時(shí)的復(fù)位原理同秒表一樣,只不過(guò)由于不需要記錄數(shù)據(jù),要比先前簡(jiǎn)單很多。在點(diǎn)擊復(fù)位按鈕之后,內(nèi)循環(huán)會(huì)停止,同時(shí)將暫停/開始按鈕置為暫停狀態(tài)。原理在前面的秒表部分已有敘述,在此不再重復(fù)。倒計(jì)時(shí)鈴聲及其切換的實(shí)現(xiàn):該倒計(jì)時(shí)器在倒計(jì)時(shí)器結(jié)束時(shí)會(huì)有鈴聲報(bào)警,并且鈴聲是可換的。為了實(shí)現(xiàn)該功能,我先

31、找來(lái)兩個(gè)wav格式的鈴聲,使用事件結(jié)構(gòu)來(lái)判斷是否時(shí)間到。時(shí)間到時(shí),事件結(jié)構(gòu)執(zhí)行真的部分,播放放在指定路徑下的聲音文件。為了實(shí)現(xiàn)切換提示音,在條件結(jié)構(gòu)內(nèi)在加入一個(gè)條件結(jié)構(gòu),并在前面板中加入一個(gè)枚舉輸入,從而選擇鈴聲。另外,在倒計(jì)時(shí)結(jié)束時(shí),指針中間會(huì)有一個(gè)紅點(diǎn)出現(xiàn),這使用的是一個(gè)圓形指示燈的可見性屬性節(jié)點(diǎn)通過(guò)條件結(jié)構(gòu)的賦值所實(shí)現(xiàn)的。其觸發(fā)原理同上。程序框圖如圖4.21所示。圖4.21 倒計(jì)時(shí)結(jié)束觸發(fā)整合停止按鈕: 在邏輯上,秒表和倒計(jì)時(shí)器的運(yùn)行關(guān)系是并行的,也就是說(shuō)互不影響,所以要放在同一個(gè)程序中。這樣就要求當(dāng)點(diǎn)擊停止按鈕時(shí),它們必須同時(shí)停止而不是只有一個(gè)框架停止運(yùn)行。為實(shí)現(xiàn)該功能,我隱藏了倒計(jì)時(shí)

32、器的停止按鈕,同時(shí)使用了一個(gè)觸發(fā)源為秒表停止按鈕的事件結(jié)構(gòu)來(lái)代替它。這樣,一個(gè)停止按鈕就可以停止整個(gè)程序了。指針倒計(jì)時(shí)的實(shí)現(xiàn):倒計(jì)時(shí)指針是一個(gè)顯示剩余時(shí)間百分比的裝置。所以只需要對(duì)剩余時(shí)間和設(shè)定時(shí)間的秒數(shù)進(jìn)行相除即可。為實(shí)現(xiàn)平滑效果,將其接入-i的前面和后面,這樣指針每10毫秒動(dòng)一下,人的肉眼幾乎無(wú)法察覺。4.3節(jié)拍器4.3.1流程圖節(jié)拍器的流程圖如圖4.22所示。圖4.22 節(jié)拍器流程圖4.3.2 程序設(shè)計(jì)1. 前面板設(shè)計(jì) 程序的前面板如圖4.23所示。圖4.23 節(jié)拍器2. 程序框圖節(jié)拍器的程序框圖如圖4.24所示。圖4.24 節(jié)拍器程序框圖3. 程序設(shè)計(jì)節(jié)拍選擇的實(shí)現(xiàn): 在前面板使用轉(zhuǎn)盤

33、輸入所需節(jié)拍,將其設(shè)置為輸入差值20,最小值20,最大值240。設(shè)需要x拍/分鐘,則每拍就是60/x秒,故用60除以所輸入的數(shù)值即可。為了使得節(jié)拍器可以實(shí)時(shí)識(shí)別指令,將while循環(huán)的間隔設(shè)為50毫秒,同時(shí)對(duì)輸出數(shù)值*20。節(jié)拍的提示方式: 該節(jié)拍器通過(guò)判斷循環(huán)次數(shù)i與所需節(jié)拍是否為整除關(guān)系來(lái)判斷是否報(bào)警,通過(guò)條件結(jié)構(gòu)實(shí)現(xiàn)。節(jié)拍提示采用系統(tǒng)自帶的提示音,使用發(fā)聲控件實(shí)現(xiàn)。節(jié)拍的暫停/繼續(xù)與停止: 此處的原理與倒計(jì)時(shí)器和秒表完全相同,故在此不再重復(fù)說(shuō)明。4.4時(shí)鐘及鬧鐘4.4.1流程圖時(shí)鐘鬧鐘的流程圖如圖4.25所示。圖4.25 時(shí)鐘鬧鐘的流程圖4.4.2 程序設(shè)計(jì)1. 前面板設(shè)計(jì) 程序的前面板如圖4.26所示。圖4.26 時(shí)鐘與鬧鐘2. 程序框圖時(shí)鐘/鬧鐘的程序框圖如圖4.27所示。圖4.27 時(shí)鐘的程序框圖3. 程序設(shè)計(jì)字符串

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論