基于labview的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩15頁(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、<p>  基于LabVIEW的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  [摘要]:利用圖形化編程工具LabVIEW和EDA工具Proteus設(shè)計(jì)了一個(gè)溫度數(shù)據(jù)采集仿真系統(tǒng)。該系統(tǒng)中上位機(jī)與下位機(jī)通過(guò)虛擬串口進(jìn)行通信,下位機(jī)將采集到的現(xiàn)場(chǎng)數(shù)據(jù)傳送到上位機(jī)后,上位機(jī)即可顯示并判斷是否超限報(bào)警。設(shè)計(jì)表明,基于該兩種軟件建立一個(gè)仿真系統(tǒng)可以有效驗(yàn)證項(xiàng)目設(shè)計(jì)的正確性,從而縮短項(xiàng)目開發(fā)時(shí)間,降低項(xiàng)目開發(fā)成本。

2、</p><p>  [關(guān)鍵詞]:LabVIEW;Proteus;單片機(jī);數(shù)據(jù)采集;仿真 </p><p>  The Design and Realization of Data Acquisition</p><p>  System Based on LabVIEW</p><p>  Abstract:Use of LabVIEW

3、graphical programming tools and EDA tools Proteus designed a data acquisition simulation system. The system of upper computer and lower computer through a virtual serial communication, the next crew will be collected on-

4、site data to the host computer, the host computer to display and to determine whether the limit alarm. Design showed that the two software based on a simulation system can verify the correctness of the project design to

5、reduce project development time, red</p><p>  Key words:LabVIEW; Proteus; MCU; data collection; Simulation</p><p><b>  目錄</b></p><p><b>  0 引言3</b></p>

6、;<p>  1 相關(guān)軟件簡(jiǎn)介3</p><p>  1.1 LabVIEW簡(jiǎn)介3</p><p>  1.2 LabVIEW的開發(fā)環(huán)境3</p><p>  1.3 Proteus簡(jiǎn)介3</p><p>  1.4 VISA 簡(jiǎn)介4</p><p>  1.5 LabVIEW及其調(diào)用VISA的

7、條件4</p><p>  2 數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方案4</p><p>  2.1 數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)方案概述4</p><p>  2.1.1 接口技術(shù)發(fā)展現(xiàn)狀5</p><p>  2.1.2 USB接口技術(shù)及傳感器技術(shù)原理簡(jiǎn)介5</p><p>  2.1.2.1 USB接口發(fā)展史5</p>

8、;<p>  2.1.2.2 USB接口技術(shù)簡(jiǎn)介6</p><p>  2.1.2.3 傳感器技術(shù)簡(jiǎn)介6</p><p>  2.2 數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)方案論證7</p><p>  2.3 單片機(jī)程序流圖7</p><p>  3 數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)8</p><p>  3.1 基于La

9、bVIEW的上位機(jī)虛擬儀器界面設(shè)計(jì)8</p><p>  3.2 基于Proteus的下位機(jī)單片機(jī)系統(tǒng)設(shè)計(jì)9</p><p>  3.3 聯(lián)調(diào)演示9</p><p><b>  4 總結(jié)11</b></p><p><b>  參考文獻(xiàn)12</b></p><p>

10、<b>  附錄13</b></p><p><b>  0 引言</b></p><p>  隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,虛擬儀器正逐漸成為測(cè)試領(lǐng)域的發(fā)展方向。虛擬儀器的概念是由美國(guó)NI公司提出來(lái)的,是指在通用的計(jì)算機(jī)平臺(tái)上,用戶根據(jù)自己的需求定義和設(shè)計(jì)具有測(cè)試功能的儀器系統(tǒng),即虛擬儀器是由用戶利用一些基本硬件及軟件編程技術(shù)組成的各種各樣的儀器

11、系統(tǒng)。虛擬儀器的三大主要功能是:數(shù)據(jù)采集;數(shù)據(jù)測(cè)試和分析;結(jié)果輸出顯示。數(shù)據(jù)采集是一切測(cè)試測(cè)量過(guò)程的第一步。</p><p><b>  1 相關(guān)軟件簡(jiǎn)介</b></p><p>  1.1 LabVIEW簡(jiǎn)介</p><p>  LabVIEW是目前較為成功、應(yīng)用廣泛的虛擬儀器軟件開發(fā)環(huán)境,LabVIEW[1](Laboratory Virt

12、ual Instrument Engineering Workbench,實(shí)驗(yàn)室虛擬儀器工作平臺(tái))是NI公司在1986年首次推出的,最新版本為L(zhǎng)abVIEW8.6。它是一個(gè)高效的圖形化程序設(shè)計(jì)環(huán)境,結(jié)合了簡(jiǎn)單易用的圖形式開發(fā)環(huán)境與靈活強(qiáng)大的G編程語(yǔ)言;提供了一個(gè)直覺(jué)式的環(huán)境,與測(cè)量緊密結(jié)合,在這個(gè)平臺(tái)上,各種領(lǐng)域的專業(yè)工程師和科學(xué)家們通過(guò)定義和連接代表各種功能模塊的圖標(biāo)來(lái)方便迅速地建立高水平的應(yīng)用程序;支持多種系統(tǒng)平臺(tái),在任何一個(gè)平臺(tái)上

13、開發(fā)的LabVIEW應(yīng)用程序可直接移植到其它平臺(tái)上。</p><p>  實(shí)驗(yàn)室虛擬儀器開發(fā)平臺(tái)的簡(jiǎn)稱LabVIEW,是一種業(yè)界領(lǐng)先的工業(yè)標(biāo)準(zhǔn)圖形化編程工具,它是專門為工程師和科學(xué)家而設(shè)計(jì)的直觀圖形化編程語(yǔ)言。它將軟件和各種不同的測(cè)量?jī)x器硬件及計(jì)算機(jī)集成在一起,建立虛擬儀器系統(tǒng),形成用戶自定義的解決方案,成為專門數(shù)據(jù)采集與儀器控制,數(shù)據(jù)分析和數(shù)據(jù)表達(dá)而設(shè)計(jì)的圖形化編程軟件,使創(chuàng)建的程序模塊化,易于調(diào)試,理解和維護(hù)

14、,而且程序編程簡(jiǎn)單、直觀,因此特別適用于數(shù)據(jù)采集處理系統(tǒng)。</p><p>  1.2 LabVIEW的開發(fā)環(huán)境</p><p>  LabVIEW的開發(fā)環(huán)境分為三部分:前面板(panel)、框圖程序(Diagram Programme)和圖標(biāo)/連接端口(Icol/rerminal)。前面板就是圖形化用戶界面,用于設(shè)置輸入數(shù)值和輸出觀察量。在前面板中,輸入量被稱為控制(Control),輸

15、出量被稱為指示(Indicator),他們通過(guò)各種圖標(biāo)如按鈕、旋鈕、開關(guān)、圖標(biāo)等出現(xiàn)在前面板上,模擬真實(shí)儀器??驁D程序由節(jié)點(diǎn)(Node)和數(shù)據(jù)連線(Wire)組成,它利用圖形語(yǔ)言對(duì)前面板上的控制對(duì)象即輸入量和輸出量進(jìn)行控制,節(jié)點(diǎn)用來(lái)實(shí)現(xiàn)函數(shù)和功能調(diào)用,數(shù)據(jù)連線表示程序執(zhí)行過(guò)程中的數(shù)據(jù)流,它定義了程序框圖內(nèi)的數(shù)據(jù)流向。圖標(biāo)/連接端口用于把LabVIEW程序定義為一個(gè)子程序,從而實(shí)現(xiàn)模塊化編程,圖標(biāo)是子程序在其他程序框圖中被調(diào)用的節(jié)點(diǎn)表示形

16、式,連接端口則表示節(jié)點(diǎn)數(shù)據(jù)的輸入、輸出口。</p><p>  LabVIEW具有3個(gè)可移動(dòng)的圖形化工具模板:工具模板(Tool Palette)、控件模板(Controls Palette)和功能模板(Function Palette)。工具模板提供了用于圖形操作的各種工具,比如定位、標(biāo)注、斷電、連線、文字注釋等;控件模板提供了前面編輯所需要的圖像圖標(biāo)、一些特殊的圖形;功能模板則提供了一些基本的數(shù)學(xué)函數(shù)和其他功

17、能函數(shù)。這三個(gè)模板是LabVIEW編程的主要工具。</p><p>  1.3 Proteus簡(jiǎn)介</p><p>  Proteus[2]是由英國(guó)LabcenterElectronics公司開發(fā)的EDA工具軟件,是目前世界上較先進(jìn)完整的嵌入式系統(tǒng)設(shè)計(jì)和仿真平臺(tái)。Proteus與其他單片機(jī)仿真軟件不同,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒(méi)有單片機(jī)參與的其他電路的工

18、作情況。可以直接在基于原理圖的虛擬原型上編程,并實(shí)現(xiàn)軟件源碼級(jí)得實(shí)時(shí)調(diào)試,實(shí)時(shí)觀察運(yùn)行效果,真正實(shí)現(xiàn)了在沒(méi)有目標(biāo)原型時(shí)就可對(duì)系統(tǒng)進(jìn)行調(diào)試、測(cè)試和驗(yàn)證,因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語(yǔ)句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過(guò)程和結(jié)果。這種仿真是將實(shí)驗(yàn)和實(shí)際工程應(yīng)用練習(xí)在一起,因而大大提高了企業(yè)的開發(fā)效率,降低了開發(fā)風(fēng)險(xiǎn)。</p><p>  1.4 VISA 簡(jiǎn)

19、介</p><p>  NI-VISA(Virtual Instrument Software Architecture,以下簡(jiǎn)稱為"VISA")是美國(guó)國(guó)家儀器NI(National1nstrLlrnent)公司開發(fā)的一種用來(lái)與各種儀器總線進(jìn)行通信的高級(jí)應(yīng)用編程接口。VISA軟件是一個(gè)綜合軟件包,不受平臺(tái)、總線和環(huán)境的限制,可用來(lái)對(duì)USB、GPIB、串口、VXI、PXI和以太網(wǎng)系統(tǒng)進(jìn)行配置、編

20、程和調(diào)試。VISA是虛擬儀器系統(tǒng)I/O接口軟件?;谧缘紫蛏辖Y(jié)構(gòu)模型的VISA創(chuàng)造了一個(gè)統(tǒng)一形式的I/O控制函數(shù)集。一方面,對(duì)初學(xué)者或是簡(jiǎn)單任務(wù)的設(shè)計(jì)者來(lái)說(shuō), VISA提供了簡(jiǎn)單易用的控制函數(shù)集,在應(yīng)用形式上相當(dāng)簡(jiǎn)單;另一方面,對(duì)復(fù)雜系統(tǒng)的組建者來(lái)說(shuō),VISA提供了非常強(qiáng)大的儀器控制功能與資源管理。</p><p>  1.5 LabVIEW及其調(diào)用VISA的條件</p><p>  La

21、bVIEW(Laboratory Virtual Instrument Engineering Workbench)是NI公司開發(fā)的一種基于圖形程序的編程語(yǔ)言。用戶利用創(chuàng)建和調(diào)用子程序的方法編寫程序,使創(chuàng)建的程序模塊化,而且程序編制簡(jiǎn)單、直觀。一個(gè)LabVIEW程序分為3部分:前面板、框圖程序和圖標(biāo)/接線端口。前面板用于模擬真實(shí)儀器的前面板;框圖程序是利用圖形語(yǔ)言對(duì)前面板上的控件對(duì)象(分為控制量和指示量?jī)煞N)進(jìn)行控制;圖標(biāo)/接線端口用于

22、把LabVlEW程序定義成一個(gè)子程序,從而實(shí)現(xiàn)模塊化編程。當(dāng)進(jìn)行USB通信時(shí),VISA提供了兩類函數(shù)供LabVIEW調(diào)用,USBINSTR設(shè)備與USB RAW設(shè)備。USBINSTR設(shè)備是符合USBTMC協(xié)議的USB設(shè)備,可以通過(guò)使用USB INSTR類函數(shù)控制,通信時(shí)無(wú)需配置NI-VISA;而USB RAW設(shè)備是指除了明確符合USBTMC規(guī)格的儀器之外的任何USB設(shè)備,通信時(shí)要配置NI-VISA。</p><p>

23、;  (1)配置NI-VISA的步驟:</p><p>  1)使用Driver Development wizard(驅(qū)動(dòng)程序開發(fā)向?qū)?創(chuàng)建INF文檔。</p><p>  2)安裝INF文檔,并安裝使用INF文檔的USB設(shè)備。</p><p>  3)使用NI-VISA Interaction Control(NI-VISA互動(dòng)控制工具)對(duì)設(shè)備進(jìn)行測(cè)試,以證實(shí)U

24、SB設(shè)備已正確安裝,并獲得USB設(shè)備的各屬性值。</p><p>  (2)與NI-VISA相配合的LabVIEW模板中的VI子節(jié)點(diǎn)</p><p>  ViOpen,打開并指定VISA resource name的設(shè)備的連接。</p><p>  ViProperty,VISA設(shè)備的屬性子節(jié)點(diǎn),可以設(shè)置端點(diǎn)或傳輸方式。</p><p>  

25、ViWrite,向VISA resource name指定的設(shè)備寫入數(shù)據(jù)。</p><p>  Viread,從VISA resource name指定的設(shè)備讀出數(shù)據(jù)。</p><p>  Viclose,結(jié)束設(shè)備讀寫并關(guān)閉與指定設(shè)備的連接。</p><p>  (3)USB RAW設(shè)備讀寫的操作次序</p><p>  USB RAW設(shè)備的

26、讀寫次序?yàn)椋捍蜷_VISA設(shè)備、設(shè)定VISA設(shè)備的屬性節(jié)點(diǎn)參數(shù)、讀寫USB RAW、關(guān)閉VISA。</p><p>  2 數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方案</p><p>  2.1 數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)方案概述</p><p>  信號(hào)采集是控制過(guò)程的關(guān)鍵環(huán)節(jié),是系統(tǒng)控制的根本出發(fā)點(diǎn)和最終衡量系統(tǒng)控制性能的重要依據(jù)。在一個(gè)完善的閉環(huán)控制系統(tǒng)當(dāng)中,首先要檢測(cè)當(dāng)前被控對(duì)象的狀態(tài),就

27、必須對(duì)被控對(duì)象的狀態(tài)信息(比如常見(jiàn)的溫度,流量,速度,液位等信息)進(jìn)行采集,并能夠?qū)⒋诵畔⑦€原為實(shí)際的溫度,流量等信息,并以此作為控制的根本出發(fā)點(diǎn)??刂平Y(jié)果與目標(biāo)的一致性也必須通過(guò)信號(hào)采集來(lái)衡量,只有采集當(dāng)前的狀態(tài)信息,并對(duì)該信息進(jìn)行分析才能了解控制過(guò)程的好壞,做出進(jìn)一步的優(yōu)化。所以說(shuō)信號(hào)采集在系統(tǒng)控制中起著至關(guān)重要的作用。</p><p>  隨著數(shù)字化的普及和控制技術(shù)水平的不斷進(jìn)步,數(shù)字化控制已成為現(xiàn)代控制的

28、主流,數(shù)字信號(hào)的采集成為數(shù)字控制系統(tǒng)的重要單元。</p><p>  2.1.1 接口技術(shù)發(fā)展現(xiàn)狀</p><p>  隨著現(xiàn)代電子技術(shù)的飛速發(fā)展和廣泛應(yīng)用,數(shù)據(jù)傳輸接口器件發(fā)展也十分迅速,以至于外部接口規(guī)格十分“繁華”。例如鍵盤要AT接口或PS/2的接口,鼠標(biāo)要接COM口或PS/2接口,Modem要接另一個(gè)COM接口、打印機(jī)要接Parallel Port(并口),而搖桿則要跟MIDI裝置

29、共搶Game/MIDI口。每種接口類型都是外設(shè)通過(guò)各自獨(dú)有的傳輸方式,根據(jù)一定的數(shù)據(jù)傳輸協(xié)議單獨(dú)地與PC機(jī)進(jìn)行通訊。當(dāng)然,由于每種接口類型都有其不可替代的優(yōu)越性,所以無(wú)論電子技術(shù)如何發(fā)展,在某些特定的場(chǎng)合,各類接口仍在繼續(xù)使用。目前常見(jiàn)的接口類型:有并口(也有稱之為IEEE 1284,Centronics)、串口(也有稱之為RS-232接口的)和USB接口。</p><p>  并口又稱為并行接口。目前,并行接口

30、主要作為打印機(jī)端口,采用的是25針D形接頭。所謂“并行”,是指8位數(shù)據(jù)同時(shí)通過(guò)并行線進(jìn)行傳送,這樣數(shù)據(jù)傳送速度大大提高,但并行傳送的線路長(zhǎng)度受到限制,因?yàn)殚L(zhǎng)度增加,干擾就會(huì)增加,數(shù)據(jù)也就容易出錯(cuò)。目前計(jì)算機(jī)基本上都配有并口。</p><p>  串口叫做串行接口,現(xiàn)在的PC機(jī)一般有兩個(gè)串行口COM1和COM2。串行口不同于并行口之處在于它的數(shù)據(jù)和控制信息是一位接一位地傳送出去的。雖然這樣速度會(huì)慢一些,但傳送距離較

31、并行口更長(zhǎng),因此若要進(jìn)行較長(zhǎng)距離的通信時(shí),應(yīng)使用串行口。通常COM1使用的是9 針D 形連接器,也稱之為RS-232接口,而COM2 有的使用的是老式的DB25 針連接器,也稱之為RS-422接口,不過(guò)目前已經(jīng)很少使用。</p><p>  USB接口即“Universal Serial Bus ”,中文名稱為通用串行總線。這是近幾年逐步在PC 領(lǐng)域廣為應(yīng)用的新型接口技術(shù)。由于USB接口與串型接口相比具有連接方便

32、,無(wú)需外接電源,即插即用,支持熱插拔,動(dòng)態(tài)加載驅(qū)動(dòng)程序等特有優(yōu)點(diǎn),目前已經(jīng)在各類外部設(shè)備中廣泛的被采用。目前USB接口有兩種:USB1.1和USB2.0。理論上USB1.1的傳輸速度可以達(dá)到12Mbps/秒,而USB2.0則可以達(dá)到速度480Mbps/秒,并且可以向下兼容USB1.1。</p><p>  通過(guò)上述對(duì)比發(fā)現(xiàn),USB作為一種新的PC機(jī)互連協(xié)議,使外設(shè)到計(jì)算機(jī)的連接更加高效、便利。這種接口適合于多種設(shè)

33、備,不僅具有快速、即插即用、支持熱插拔的特點(diǎn),還能同時(shí)連接多達(dá)127個(gè)設(shè)備,解決了如資源沖突、中斷請(qǐng)求(IRQs)和直接數(shù)據(jù)通道(DMAs)等問(wèn)題。也是計(jì)算機(jī)外設(shè)接口的發(fā)展趨勢(shì),將逐漸取代PC機(jī)上的RS232協(xié)議串口,因此很多傳統(tǒng)的RS232接口設(shè)備都將面臨一個(gè)向USB 接口轉(zhuǎn)換的問(wèn)題,此次基于USB總線的溫度采集系統(tǒng)的設(shè)計(jì)也是一種非常實(shí)用的數(shù)據(jù)采集方式。</p><p>  2.1.2 USB接口技術(shù)及傳感器技

34、術(shù)原理簡(jiǎn)介</p><p>  2.1.2.1 USB接口發(fā)展史</p><p>  USB的發(fā)展歷史,要從1994年說(shuō)起,當(dāng)時(shí)由英特爾、康柏、IBM、Microsoft等多家公司聯(lián)合提出,并于當(dāng)年11月11日發(fā)表USB V0.7版本,經(jīng)歷了多年的發(fā)展,到現(xiàn)在已經(jīng)發(fā)展為3.0版本。</p><p>  USB1.0在1996年推出,礙于水平的限制,這個(gè)版本的速度只有

35、1.5Mb/s,后來(lái)升級(jí)為USB1.1,速度也跟著提升到12Mb/s。也正是1.1版本的出現(xiàn),使得USB接口的使用范圍逐漸普及。大部分的MP3產(chǎn)品為此類接口類型。</p><p>  作為更高級(jí)的版本,USB2.0的規(guī)范是從USB1.1規(guī)范演變而來(lái)的。它的最顯著優(yōu)點(diǎn)是480Mbps,折算為MB為60MB/s,足以滿足大多數(shù)外設(shè)的速率要求。人們使用USB2.0產(chǎn)品傳輸文件,尤其是傳說(shuō)超大文件的用時(shí)大大縮短。進(jìn)幾年出

36、現(xiàn)的比較熱門的USB轉(zhuǎn)網(wǎng)卡接口、USB無(wú)線網(wǎng)卡基本上都是使用2.0,就目前來(lái)說(shuō),USB2.0接口還是電腦配件里應(yīng)用最廣泛的USB版本接口。</p><p>  隨著技術(shù)的發(fā)展,Vsita、高清、DX10正在逐漸普及,USB2.0遭遇到了與USB1.1時(shí)代后期相同的問(wèn)題,480mbps的傳輸速度對(duì)于現(xiàn)在的應(yīng)用環(huán)境來(lái)說(shuō)已經(jīng)不足以滿足我們的要求了,于是,由Intel、微軟、惠普、德州儀器、NEC、ST-NXP等業(yè)界巨頭

37、組成的USB3.0推廣組宣布制定新的USB標(biāo)準(zhǔn),并于2010年推出消費(fèi)級(jí)的USB3.0產(chǎn)品。USB3.0的傳輸速度可達(dá)到USB2.0的10倍,即理論傳輸速度高達(dá)625MB/s,也就是官方號(hào)稱的5Gb/s,這種超高速的傳輸速度使得傳輸一部15GB的電影只要24秒。不過(guò),就目前的設(shè)備發(fā)展水平來(lái)說(shuō),硬盤設(shè)備還無(wú)法提供如此超高的傳輸速度與之匹配。</p><p>  2.1.2.2 USB接口技術(shù)簡(jiǎn)介</p>

38、<p>  USB規(guī)范描述了總線特性、協(xié)議定義、編程接口以及其它設(shè)計(jì)和構(gòu)建系統(tǒng)時(shí)所要求的特性。USB是一種主從總線,工作時(shí)USB主機(jī)處于主模式,設(shè)備處于從模式。USB系統(tǒng)所需要的唯一的系統(tǒng)資源是,USB系統(tǒng)軟件所使用的內(nèi)存空間、USB主控制器所使用的內(nèi)存地址空間(I/O地址空間)和中斷請(qǐng)求(IRQ)線。USB設(shè)備可以是功能性的,如顯示器、鼠標(biāo)或者集線器之類。它們可以作低速或者高速設(shè)備實(shí)現(xiàn)。低速設(shè)備最大速率限制在1.5 Mb

39、/s,每一個(gè)設(shè)備有一些專有寄存器,也就是端點(diǎn)(endpoint)。在進(jìn)行數(shù)據(jù)交換時(shí),可以通過(guò)設(shè)備驅(qū)動(dòng)間接訪問(wèn)它。每一個(gè)端點(diǎn)支持幾種特殊的傳輸類型,并且有一個(gè)唯一的地址和傳輸方向。不同的是端點(diǎn)0 僅用作控制傳輸,并且其傳輸可以是雙向的。</p><p>  系統(tǒng)上電后,USB主機(jī)負(fù)責(zé)檢測(cè)設(shè)備的連接與拆除、初始化設(shè)備的列舉過(guò)程,并根據(jù)設(shè)備描述表安裝設(shè)備驅(qū)動(dòng)后自動(dòng)重新配置系統(tǒng),收集每個(gè)設(shè)備的狀態(tài)信息。設(shè)備描述表標(biāo)識(shí)了設(shè)

40、備的屬性、特征并描述了設(shè)備的通信要求。USB主機(jī)根據(jù)這些信息配置設(shè)備、查找驅(qū)動(dòng),并且與設(shè)備通信。</p><p>  典型的USB數(shù)據(jù)傳輸是由設(shè)備驅(qū)動(dòng)開始的,當(dāng)它需要與設(shè)備通信時(shí),設(shè)備驅(qū)動(dòng)提供內(nèi)存緩沖區(qū),用來(lái)存放設(shè)備收到或者即將發(fā)送的數(shù)據(jù)。USB驅(qū)動(dòng)提供USB設(shè)備驅(qū)動(dòng)和USB主控制器之間的接口,并將傳輸請(qǐng)求轉(zhuǎn)化為USB事務(wù),轉(zhuǎn)化時(shí)需要與帶寬要求及協(xié)議結(jié)構(gòu)保持一致。某些傳輸是由大塊數(shù)據(jù)構(gòu)成的,這時(shí)需要先將它劃分為幾

41、個(gè)事物再進(jìn)行傳輸。</p><p>  具有相似功能的設(shè)備可以組成一類,這樣便于分享共有的特性和使用共同的設(shè)備驅(qū)動(dòng)程序。每個(gè)類可以定義其自己的描述符,如:HID類描述符和 Report描述符。HID類是由人控制計(jì)算機(jī)系統(tǒng)的設(shè)備組成的,它定義了一個(gè)描述HID設(shè)備的結(jié)構(gòu),并且表明了設(shè)備的通信要求。HID設(shè)備描述符必須支持端點(diǎn)輸入中斷,固件也必須包括一個(gè)報(bào)告描述符,表明接收和發(fā)送數(shù)據(jù)的格式。</p>&l

42、t;p>  目前,由于USB移動(dòng)存儲(chǔ)設(shè)備的使用已經(jīng)非常普遍,因此在一些需要轉(zhuǎn)存數(shù)據(jù)的設(shè)備、儀器上使用USB移動(dòng)存儲(chǔ)設(shè)備接口的芯片便相繼產(chǎn)生了。為了縮短開發(fā)周期,各大廠商紛紛研制出了愈來(lái)愈智能化的USB接口芯片。如Philips公司的PDIUSBD12、ISP1581以及National公司的USBN9602、南京沁恒公司的CH372、CH375等。這類USB接口芯片價(jià)格較低、接口方便、靈活性高,針對(duì)不同的硬件環(huán)境可以配合多種MCU

43、使用,如單片機(jī)、DSP、FPGA都可以。</p><p>  2.1.2.3 傳感器技術(shù)簡(jiǎn)介</p><p>  智能傳感器(smartsensor)利用微計(jì)算機(jī)技術(shù)使傳感器智能化。它是一個(gè)或多個(gè)敏感元件與信號(hào)處理電路集成在同一硅片或GaAs片上的器件,具有一種或多種敏感功能,能夠完成信號(hào)探測(cè)、變換處理、邏輯判斷、功能計(jì)算、雙向通信內(nèi)部可實(shí)現(xiàn)自檢、自校、自補(bǔ)償、自診斷的器件。</p&

44、gt;<p>  智能傳感器系統(tǒng)的主要特點(diǎn):把計(jì)算機(jī)技術(shù)和現(xiàn)代通信技術(shù)融人傳感器系統(tǒng)中,其目的是為了適應(yīng)計(jì)算機(jī)測(cè)控系統(tǒng)的發(fā)展,滿足系統(tǒng)對(duì)傳感器提出的更高要求,因此認(rèn)為智能傳感器是指?jìng)鞲衅髋c微處理器賦予智能的結(jié)合,兼有信息檢測(cè)、信息處理及通信功能的傳感器系統(tǒng)。在結(jié)構(gòu)上,智能傳感器系統(tǒng)將傳感器、信號(hào)調(diào)理電路、微控制器及數(shù)字信號(hào)接口組合為一整體。傳感元件將被測(cè)非電量轉(zhuǎn)換為電信號(hào),信號(hào)調(diào)理電路對(duì)傳感器輸出的電信號(hào)進(jìn)行調(diào)理并轉(zhuǎn)換為數(shù)

45、字信號(hào)后送人微控制器,由微控制器處理后的測(cè)量結(jié)果經(jīng)數(shù)字信號(hào)接口輸出。在智能傳感器系統(tǒng)中不僅有硬件作為實(shí)現(xiàn)測(cè)量的基礎(chǔ),還有強(qiáng)大的軟件支持來(lái)保證測(cè)量結(jié)果的正確性和高精度。以數(shù)字信號(hào)形式作為輸出易于和計(jì)算機(jī)測(cè)控系統(tǒng)接口,并具有很好的傳輸特性和很強(qiáng)的抗干擾能力。</p><p>  智能傳感器的功能是通過(guò)模擬人的感官和大腦的協(xié)調(diào)動(dòng)作,結(jié)合長(zhǎng)期以來(lái)測(cè)試技術(shù)的研究和實(shí)際經(jīng)驗(yàn)而提出來(lái)的,是一個(gè)相對(duì)獨(dú)立的智能單元,它出現(xiàn)對(duì)原來(lái)硬

46、件性能的苛刻要求有所減輕,而靠軟件幫助可以使傳感器的性能大幅度提高。其功能主要包括:數(shù)據(jù)處理功能、自診斷功能、組態(tài)功能、存儲(chǔ)功能、數(shù)字通訊接口功能、復(fù)合敏感功能、自適應(yīng)功能、人機(jī)對(duì)話功能、顯示和報(bào)普功能和掉電保護(hù)功能等。</p><p>  2.2 數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)方案論證</p><p>  傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)大多數(shù)是以單片機(jī)作為控制核心再加上一些常用外圍電路來(lái)構(gòu)建系統(tǒng)的, 數(shù)據(jù)顯示也多

47、是應(yīng)用數(shù)碼管瞬時(shí)記錄或近距離范圍內(nèi)應(yīng)用RS232/485等通信方式直接上傳PC機(jī)上供用戶參考。然而隨著用戶對(duì)數(shù)據(jù)監(jiān)控的距離、數(shù)據(jù)采集的速率及人機(jī)交互界面的要求越來(lái)越高,傳統(tǒng)的系統(tǒng)己不能滿足更多用戶的需要.目前,美國(guó)國(guó)家儀器公司(NI)開發(fā)的LabVIEW技術(shù)在數(shù)據(jù)采集技術(shù)領(lǐng)域中由于其高速采集性能、豐富的圖像化編程語(yǔ)言等諸多顯著特性無(wú)疑己處于遙遙領(lǐng)先的地位,但此類技術(shù)大都是建立在LabVIEW支持的價(jià)格昂貴的數(shù)據(jù)采集硬件基礎(chǔ)之上的,因此在

48、普及應(yīng)用方面受到很大的制約。</p><p>  但是,基于LabVIEW和Proteus兩種軟件共同設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)可以有效的解決此類問(wèn)題。本次數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)分為下位機(jī)數(shù)據(jù)采集部分和上位機(jī)數(shù)據(jù)實(shí)時(shí)監(jiān)測(cè)部分。下位機(jī)部分主要完成溫度信息的采集功能,上位機(jī)部分通過(guò)利用LabVIEW軟件設(shè)計(jì)界面,完成將接收的數(shù)據(jù)進(jìn)行簡(jiǎn)單處理后實(shí)時(shí)顯示,并且可以實(shí)現(xiàn)串口調(diào)試,溫度上下限設(shè)置以及超限報(bào)警等功能,這樣在下位機(jī)中就可以省

49、去很多單元電路,比如報(bào)警電路、按鍵設(shè)置電路,顯示電路等。通過(guò)監(jiān)測(cè)歷史描述曲線等信息有效地提高事故的預(yù)見(jiàn)性和工作效率。以AT89C52單片機(jī)和DS18B20數(shù)字溫度傳感器為核心的下位機(jī),實(shí)現(xiàn)了對(duì)溫度的采集和發(fā)送,通過(guò)虛擬串口軟件VSPDXP5產(chǎn)生一對(duì)虛擬串口COM3、COM4,這樣就可以將上位機(jī)和下位機(jī)連接起來(lái)實(shí)現(xiàn)對(duì)溫度的采集并且在上位機(jī)中通過(guò)虛擬儀器顯示出來(lái)。設(shè)計(jì)中采用LabVIEW實(shí)驗(yàn)室虛擬儀器開發(fā)平臺(tái),它是一個(gè)高效的圖形化程序設(shè)計(jì)環(huán)

50、境,結(jié)合了簡(jiǎn)單易用的圖形式開發(fā)環(huán)境與靈活強(qiáng)大的G編程語(yǔ)言,提供了一個(gè)直覺(jué)式的環(huán)境,與測(cè)量緊密結(jié)合。</p><p>  2.3 單片機(jī)程序流圖</p><p>  單片機(jī)程序流圖如圖2.1所示</p><p>  圖2.1 單片機(jī)程序流圖</p><p>  3 數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  3.1 基

51、于LabVIEW的上位機(jī)虛擬儀器界面設(shè)計(jì)</p><p>  在LabVIEW中開發(fā)程序包括前面板和程序框圖兩部分。前面板是圖形用戶界面,該界面上有交互式的輸入和輸出兩類控件。輸入控件包括按鈕、數(shù)值、文本和輸入設(shè)備等輸入對(duì)象 ,輸出控件包括圖形、數(shù)值、文本、LED和其他顯示輸出對(duì)象。程序框圖是實(shí)現(xiàn)虛擬儀器邏輯功能的圖形化源代碼,框圖中的編程元素除了包括與前面板的控件對(duì)應(yīng)的連線端子外,還有函數(shù)、常數(shù)、結(jié)構(gòu)和連線等。

52、</p><p>  串口通信程序通過(guò)VISA來(lái)設(shè)計(jì),它是美國(guó)NI公司開發(fā)的一種用來(lái)與各種儀器總線進(jìn)行通信的高級(jí)應(yīng)用編程接口。LabVIEW8.2以上版本中自帶VISA,裝完VISA驅(qū)動(dòng)后就可以利用它對(duì)USB、GPIB、VXI、PXI、串口和以太網(wǎng)等系統(tǒng)進(jìn)行配置、編程和調(diào)試。VISA提供了簡(jiǎn)單易用的控制函數(shù)集,具有強(qiáng)大的儀器控制與資源管理功能,在應(yīng)用形式上也非常簡(jiǎn)單。</p><p>  

53、本系統(tǒng)設(shè)計(jì)了一個(gè)溫度虛擬儀器系統(tǒng),前面板如圖3.1所示,程序框圖如圖3.2所示 </p><p>  圖3.1 溫度采集系統(tǒng)上位機(jī)的前面板</p><p>  圖3.2 溫度采集系統(tǒng)上位機(jī)的程序框圖</p><p>  前面板具有串口測(cè)試、波形顯示、數(shù)據(jù)設(shè)置以及報(bào)警等功能。程序框圖中通過(guò)VISA來(lái)配置、讀寫以及關(guān)閉串口。串口測(cè)試按鈕和數(shù)據(jù)采集按鈕通過(guò)

54、與非門和與門來(lái)實(shí)現(xiàn)互鎖,在波形圖表前添加當(dāng)前時(shí)間設(shè)置功能。</p><p>  3.2 基于Proteus的下位機(jī)單片機(jī)系統(tǒng)設(shè)計(jì)</p><p>  利用Proteus設(shè)計(jì)了一個(gè)簡(jiǎn)單的單片機(jī)仿真系統(tǒng),如圖3.3所示。</p><p>  圖3.3 溫度采集系統(tǒng)下位機(jī)仿真系統(tǒng)</p><p>  P2口通過(guò)一個(gè)上拉電阻與溫度傳感器相連,這可以模

55、擬從A/D轉(zhuǎn)換器中讀入現(xiàn)場(chǎng)數(shù)據(jù)。串口部分在仿真時(shí)可以省略TTL電平向RS-232電平轉(zhuǎn)換的電路,通過(guò)虛擬串口設(shè)置與上位機(jī)進(jìn)行通信,可接受上位機(jī)發(fā)送的數(shù)據(jù),并將P2口采集的數(shù)據(jù)不加任何處理直接傳送到上位機(jī),再由上位機(jī)進(jìn)行顯示和處理,這樣可以利用上位機(jī)強(qiáng)大的數(shù)據(jù)處理功能來(lái)完成相關(guān)運(yùn)算。</p><p><b>  3.3 聯(lián)調(diào)演示</b></p><p>  要將上位機(jī)與

56、下位機(jī)通信需要配置一下串口,由于一般PC機(jī)只有COM1一個(gè)串口,不便于仿真測(cè)試,所以通過(guò)虛擬串口軟件VSPD XP5來(lái)生成一對(duì)虛擬串口COM3、COM4,打開該軟件如圖3.4所示</p><p>  圖3.4 虛擬串口設(shè)置</p><p>  它的左上方COM1、COM2是PC機(jī)實(shí)際的物理串口,下面的是虛擬串口,在未設(shè)置前是空的。點(diǎn)擊Add pair按鈕,在下面就會(huì)出現(xiàn)COM3、COM4,

57、這兩個(gè)串口是一對(duì)虛擬串口,而且符合RS-232標(biāo)準(zhǔn),設(shè)置完成后COM3、COM4就虛擬的連接起來(lái)了,功能定義與使用方法完全與PC機(jī)自帶物理串口相同,這些功能都是有虛擬串口軟件VSPD XP5來(lái)支持的,并不需要人為管理,這在仿真時(shí)非常有用,但在做實(shí)物時(shí)將COM3、COM4分別換成COM1數(shù)據(jù)線的兩端接插頭就可以了。</p><p>  在這里介紹下VSPD的使用方法:</p><p>  (

58、1)首先在KEIL里編譯寫好的程序。</p><p> ?。?)打開VSPD,界面如圖3.4所示。</p><p> ?。?)把KEIL和虛擬出來(lái)的串口綁定,現(xiàn)在把COM3和KEIL綁定。在KEIL中進(jìn)入DEBUG模式,在下面的COMMAND命令行中輸入MODE COM3 4800,0,8,1,(設(shè)置串口3的波特率,奇偶校驗(yàn)位,數(shù)據(jù)位,停止位,打開COM3串口,這里設(shè)置的波特率要和程序中設(shè)

59、置的波特率應(yīng)該一樣),ASSIGN COM3 <SIN> SOUT(把單片機(jī)的串口和COM3綁定到一起)。</p><p>  (4)打開串口調(diào)試助手,可以看到虛擬出來(lái)的串口COM3、COM4,選擇COM4,設(shè)置為波特率4800,無(wú)校驗(yàn)位,8位數(shù)據(jù)位,1位停止位,打開COM4。</p><p>  在上位機(jī)中選擇COM4、波特率、數(shù)據(jù)位、停止位等參數(shù)見(jiàn)圖3.1.在下位機(jī)中,打開

60、串口COMPIM的屬性,選擇串口COM3,其他配置如圖3.5所示。</p><p>  圖3.5 C0MPIM屬性配置</p><p>  打開單片機(jī)的屬性,將單片機(jī)晶振設(shè)置為11.0592MHz,以便獲得準(zhǔn)確的4800bps的波特率。將以下源程序用編譯軟件生成HEX文件并下載到單片機(jī),如圖3.6所示</p><p>  圖3.6 單片機(jī)屬性配置</p>

61、<p>  單片機(jī)源程序見(jiàn)附錄。 </p><p>  運(yùn)行Proteus,正常后再運(yùn)行LabVIEW,同時(shí)觀察運(yùn)行效果。在上位機(jī)中關(guān)閉數(shù)據(jù)采集按鈕,打開串口調(diào)試助手,下位機(jī)將溫度傳感器上的溫度傳至上位機(jī),如圖3.7所示</p><p>  圖3.7 系統(tǒng)仿真結(jié)果</p><p>  從圖3.7虛擬示波器的數(shù)據(jù)可以看到,下位機(jī)發(fā)送的數(shù)據(jù)已經(jīng)傳至上位機(jī)中

62、。在上位機(jī)界面中,選擇串口COM4,波特率設(shè)置為4800bps,選定開始采集按鈕,運(yùn)行LabVIEW軟件,就可以看到由下位機(jī)發(fā)送的溫度數(shù)據(jù)。設(shè)置合適的溫度上下限,當(dāng)溫度超過(guò)/低于此溫度時(shí)會(huì)報(bào)警,并且上位機(jī)界面中的相應(yīng)指示燈會(huì)點(diǎn)亮。在下位機(jī)單片系統(tǒng)中,通過(guò)手動(dòng)改變DS18B20上的溫度,可以在上位機(jī)界面中看到溫度隨之改變。到此,該仿真系統(tǒng)的功能已經(jīng)實(shí)現(xiàn)并且仿真成功。</p><p><b>  4 總結(jié)&

63、lt;/b></p><p>  利用LabVIEW開發(fā)上位機(jī)界面操作簡(jiǎn)單、快捷,并且功能強(qiáng)大,使用者可以集中時(shí)間和精力用于實(shí)驗(yàn)的執(zhí)行,數(shù)據(jù)的分析及結(jié)論的總結(jié)上,而不用將大量的時(shí)間花費(fèi)在實(shí)驗(yàn)系統(tǒng)設(shè)備的搭建上。因此LabVIEW既適合于科學(xué)研究,又適合于工程應(yīng)用。利用Proteus建立單片機(jī)仿真系統(tǒng)快速、方便,可以直觀運(yùn)行結(jié)果,在沒(méi)有目標(biāo)原型時(shí)就可以對(duì)系統(tǒng)進(jìn)行調(diào)試、測(cè)試和驗(yàn)證,和實(shí)際工程應(yīng)用相接近。由此可以看

64、出,在實(shí)際的項(xiàng)目開發(fā)中,先基于該兩種軟件建立一個(gè)數(shù)據(jù)采集仿真系統(tǒng),可以有效驗(yàn)證項(xiàng)目設(shè)計(jì)的正確性,從而大大縮短開發(fā)時(shí)間,降低設(shè)計(jì)成本。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 蔡春麗.虛擬儀器技術(shù)及其軟件開發(fā)平臺(tái)LabVIEW.重慶職業(yè)技術(shù)學(xué)院學(xué)報(bào),2004</p><p>  [2] 周潤(rùn)景,張麗娜.基于Pro

65、teus的電路及單片機(jī)系統(tǒng)設(shè)計(jì)與仿真[M].北京:北京航空航天大學(xué)出版社,2006.185-193.</p><p>  [3] 杜玉玲.基于LabVIEW和PCI-7422的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì).淮海工學(xué)院學(xué)報(bào),2004.</p><p>  [4] 候國(guó)屏,王坤,葉齊鑫.LabVIEW8.5編程與虛擬儀器設(shè)計(jì).清華大學(xué)出版社,2005.</p><p>  [5]

66、周林,殷俠等.數(shù)據(jù)采集與分析技術(shù).西安電子科技大學(xué)出版社, 2005.</p><p>  [6] 石博,強(qiáng)編著. LabVIEW6.1編程技術(shù)實(shí)用教程[M].北京:中國(guó)鐵道出版社,2002.50-62.</p><p>  [7] 王建群,基于LabVIEW的虛擬儀器開發(fā)[J].計(jì)算機(jī)工程與應(yīng)用,2003.</p><p>  [8] 陳錫輝,張銀鴻.LabVIE

67、W8.5程序設(shè)計(jì)從入門到精通[M].北京:清華大學(xué)出版社,2007.</p><p>  [9] 金陽(yáng).LabVIEW在數(shù)據(jù)采集中的應(yīng)用.湖北汽車工業(yè)學(xué)院學(xué)報(bào),2002</p><p>  [10] 王文海.基于Proteus的PC機(jī)與單片機(jī)串口通信的仿真[J].科技咨詢導(dǎo)報(bào),2007(26):1-3.</p><p>  [11] 楊樂(lè)平,李海濤,楊磊.LabVI

68、EW程序設(shè)計(jì)與應(yīng)用[M].2版.北京:電子工業(yè)出版社,2005.</p><p>  [12] 劉軍華.基于LabVIEW的虛擬儀器設(shè)計(jì)[M].北京:電子工業(yè)出版社,2003.</p><p>  [13] 林正盛.虛擬儀器技術(shù)及其應(yīng)用[J].電子技術(shù)應(yīng)用,1997,(3):12-15.</p><p>  [14] 楊樂(lè)平,李海濤.LabVIEW的高級(jí)程序設(shè)計(jì)[M

69、].北京:清華大學(xué)出版社,2003.390-399.</p><p>  [15] 雷振山.LabVIEWExpress使用技術(shù)教程[M].北京:中國(guó)鐵道出版社,2004.260-265.</p><p>  [16] Robert H. Bishop LabVIEW 6i實(shí)用教程[M].北京:電子工業(yè)出版社,2003.185-196.</p><p>  [17]

70、 M K Hu.Pattem Recognition by Moment Invariants[J].Proc IRE.Trans Information Theory.1962.179-187.</p><p><b>  附錄:</b></p><p><b>  單片機(jī)源程序</b></p><p>  #inclu

71、de <reg52.h></p><p>  #include <intrins.h></p><p>  #defineINT8Uunsigned char</p><p>  #defineINT16Uunsigned int</p><p>  sbit DQ = P2^5; </p&g

72、t;<p>  bit presence;</p><p>  float f_temp;</p><p>  unsigned int tempds = 0;</p><p>  unsigned char temp_value[4] = {0,0,0,0};</p><p>  unsigned char temp_dat

73、a[2] = {0,0};</p><p>  unsigned char T_flag;</p><p>  void delay1(INT16U i)</p><p><b>  {</b></p><p>  for(;i>0;i--); </p><p><b>  

74、}</b></p><p>  void Delay(unsigned char time) //12M晶振,延時(shí)時(shí)間30us * time</p><p><b>  {</b></p><p>  unsigned char m,n;</p><p>  for(n=0;n<time;n++)&

75、lt;/p><p>  for(m=0;m<2;m++)</p><p><b>  {}</b></p><p><b>  }</b></p><p>  /*初始化ds1820 */</p><p&

76、gt;  bit DS18B20_Init(void)</p><p><b>  { </b></p><p><b>  EA = 0;</b></p><p>  DQ = 1 ; //DQ復(fù)位</p><p>  Delay(1) ; //稍做延時(shí)</p>

77、<p>  DQ = 0 ; //單片機(jī)將DQ拉低</p><p>  Delay(30) ; //精確延時(shí) 大于 480us</p><p>  DQ = 1 ; //拉高總線</p><p>  Delay(3) ;</p><p>  presence = DQ ; //如果=0則初始化成功 =

78、1則初始化失敗</p><p>  Delay(28) ;</p><p><b>  DQ = 1 ; </b></p><p><b>  EA = 1;</b></p><p>  return presence ; //返回信號(hào),0=presence,1= no presence</

79、p><p><b>  } </b></p><p>  /* 讀一個(gè)字節(jié) */</p><p>  unsigned char ReadOneChar(void)</p><p><b>  {</b></p><p>  unsign

80、ed char i = 0 ;</p><p>  unsigned char dat = 0 ;</p><p><b>  EA = 0;</b></p><p>  for (i = 8 ; i > 0 ; i--)</p><p><b>  {</b></p><

81、p>  DQ = 0 ; // 給脈沖信號(hào)</p><p>  dat >>= 1 ;</p><p>  DQ = 1 ; // 給脈沖信號(hào) </p><p><b>  if(DQ)</b></p><p>  dat |= 0x80 ;</p><p>  Delay(7)

82、 ;</p><p><b>  }</b></p><p><b>  EA = 1;</b></p><p>  return (dat) ;</p><p><b>  }</b></p><p>  /* 寫一個(gè)字節(jié)

83、 */</p><p>  void WriteOneChar(unsigned char dat)</p><p><b>  {</b></p><p>  unsigned char i = 0 ;</p><p><b>  EA = 0;</b&

84、gt;</p><p>  for (i = 8 ; i > 0 ; i--)</p><p><b>  {</b></p><p><b>  DQ = 0 ;</b></p><p>  DQ = dat&0x01 ;</p><p>  Delay(7)

85、 ;</p><p><b>  DQ = 1 ;</b></p><p><b>  dat>>=1 ;</b></p><p><b>  }</b></p><p><b>  EA = 1;</b></p><p&g

86、t;<b>  }</b></p><p>  /* 讀取溫度 */</p><p>  void Read_Temperature()</p><p><b>  {</b></p><p><b>  do</b><

87、;/p><p><b>  {</b></p><p>  DS18B20_Init() ;</p><p><b>  }</b></p><p>  while(presence != 0);</p><p>  WriteOneChar(0xCC) ; // 跳過(guò)讀序號(hào)

88、列號(hào)的操作</p><p>  WriteOneChar(0x44) ; // 啟動(dòng)溫度轉(zhuǎn)換</p><p><b>  Delay(6);</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  

89、DS18B20_Init() ;</p><p><b>  }</b></p><p>  while(presence != 0);</p><p>  WriteOneChar(0xCC) ; //跳過(guò)讀序號(hào)列號(hào)的操作</p><p>  WriteOneChar(0xBE) ; //讀取溫度寄存器</p

90、><p><b>  Delay(6);</b></p><p>  temp_data[0] = ReadOneChar() ; //溫度低8位</p><p>  temp_data[1] = ReadOneChar() ; //溫度高8位 </p><p>  if(temp_data[1] & 0x8

91、0)</p><p>  T_flag = 1; //溫度為負(fù)</p><p>  else T_flag = 0; //溫度為正 </p><p><b>  }</b></p><p>  void Temp_Change() //溫度轉(zhuǎn)化函數(shù)</p><p&

92、gt;<b>  {</b></p><p><b>  EA = 0;</b></p><p>  if(!T_flag)</p><p>  f_temp = (temp_data[1] * 256 + temp_data[0]) * 0.0625;</p><p><b>  els

93、e </b></p><p>  f_temp = ((~(temp_data[1] * 256 + temp_data[0]) + 1)) * 0.0625;</p><p>  tempds = f_temp * 100;</p><p>  temp_value[0] = tempds / 1000;</p><p>  t

94、emp_value[1] = tempds % 1000 / 100;</p><p>  temp_value[2] = tempds % 100 / 10;</p><p>  temp_value[3] = tempds % 10;</p><p><b>  EA = 1;</b></p><p><b&g

95、t;  }</b></p><p>  void StartUART( void )</p><p>  { //波特率4800</p><p>  SCON = 0x50;</p><p>  TMOD = 0x20;</p><p>  TH1 = 0xFA;</p>&l

96、t;p>  TL1 = 0xFA;</p><p>  PCON = 0x00;</p><p><b>  TR1 = 1;</b></p><p><b>  }</b></p><p>  void R_S_Byte(INT8U R_Byte)</p><p>&

97、lt;b>  {</b></p><p>  SBUF = R_Byte; </p><p>  while( TI == 0 );//查詢法</p><p><b>  TI = 0;</b></p><p><b>  }</b></p><p&

98、gt;  void main(void)</p><p><b>  {</b></p><p>  INT8U i =0;</p><p>  Read_Temperature();</p><p>  Temp_Change();</p><p>  StartUART();</p>

99、;<p><b>  while(1)</b></p><p><b>  {</b></p><p>  Read_Temperature();</p><p>  Temp_Change(); </p><p>  R_S_Byte(temp_value[0]);</p>

100、;<p>  Delay(100);</p><p>  R_S_Byte('+');</p><p>  Delay(100);</p><p>  R_S_Byte(temp_value[1]);</p><p>  Delay(100);</p><p>  R_S_Byte(

101、9;-');</p><p>  Delay(100);</p><p>  R_S_Byte(temp_value[2]);</p><p>  Delay(100);</p><p>  R_S_Byte('*');</p><p>  Delay(100);</p><

102、p>  R_S_Byte(temp_value[3]);</p><p>  Delay(100);</p><p>  R_S_Byte('/');</p><p>  Delay(100); </p><p><b>  }</b></p><p><b>  

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論