LabVIEW濕度檢測(cè)系統(tǒng)_第1頁(yè)
LabVIEW濕度檢測(cè)系統(tǒng)_第2頁(yè)
LabVIEW濕度檢測(cè)系統(tǒng)_第3頁(yè)
LabVIEW濕度檢測(cè)系統(tǒng)_第4頁(yè)
LabVIEW濕度檢測(cè)系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(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、沈陽(yáng)工學(xué)院畢業(yè)設(shè)計(jì)題 目: 基于單片機(jī)和LabVIEW的濕度 探測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 院 系: 信息與控制學(xué)院 專 業(yè): 測(cè)控技術(shù)與儀器 班級(jí)學(xué)號(hào): 10305219 學(xué)生姓名: 王宏 指導(dǎo)教師: 耿欣 成 績(jī): 年 月 日目 錄1 方案設(shè)計(jì)1 1.1 設(shè)計(jì)任務(wù)的要求1 1.2 系統(tǒng)方案設(shè)計(jì)1 1.3 編程語(yǔ)言與調(diào)試環(huán)境選擇22 系統(tǒng)的硬件設(shè)計(jì)4 2.1 單片機(jī)最小系統(tǒng)電路設(shè)計(jì)4 2.2 濕度采集電路的設(shè)計(jì)5 2.2.1 濕度傳感器的選擇5 2.2.2 DHT11電路的設(shè)計(jì)6 2.3 串口通信部分電路設(shè)計(jì)7 2.3.1 串口芯片的選擇7 2.3.2 MAX3232電路的設(shè)計(jì)8 2.4 電源部分電路

2、的設(shè)計(jì)93 系統(tǒng)的軟件設(shè)計(jì)10 3.1 軟件系統(tǒng)總體工作流程10 3.2 濕度采集程序的設(shè)計(jì)10 3.3 串口通信部分程序12 3.4 LabVIEW程序設(shè)計(jì)13 3.4.1 實(shí)時(shí)濕度曲線模塊13 3.4.2 參數(shù)設(shè)置模塊14 3.4.3 LabVIEW程序框圖設(shè)計(jì)14參考文獻(xiàn)16附錄A 硬件原理圖17附錄B 程序代碼18附錄C 實(shí)物圖241沈陽(yáng)工學(xué)院本科畢業(yè)設(shè)計(jì)1 方案設(shè)計(jì)1.1 設(shè)計(jì)任務(wù)的要求本設(shè)計(jì)主要設(shè)計(jì)一個(gè)以濕度傳感器,單片機(jī)和虛擬儀器為核心設(shè)計(jì)的一個(gè)小型濕度檢測(cè)系統(tǒng),該系統(tǒng)的功能如下:現(xiàn)場(chǎng)濕度實(shí)時(shí)檢測(cè)并傳輸,上位機(jī)濕度顯示,包括實(shí)時(shí)濕度曲線,具體設(shè)計(jì)包括,硬件和軟件兩個(gè)部分,硬件設(shè)計(jì)

3、包括測(cè)量電路的設(shè)計(jì),單片機(jī)與上位機(jī)虛擬儀器接口電路的設(shè)計(jì);軟件設(shè)計(jì)包括下位機(jī)C語(yǔ)言程序設(shè)計(jì)和上位機(jī)LabVIEW程序設(shè)計(jì),下位機(jī)完成數(shù)據(jù)測(cè)試,上位機(jī)完成數(shù)據(jù)的顯示和分析。1.2 系統(tǒng)方案設(shè)計(jì)本設(shè)計(jì)的上位機(jī)實(shí)現(xiàn)部分采用了LabVIEW,LabVIEW是一種開放性的通用程序開發(fā)系統(tǒng),具有強(qiáng)大的數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)分析和儀器控制功能。本設(shè)計(jì)要實(shí)現(xiàn)的功能是構(gòu)建一個(gè)小型的濕度檢測(cè)系統(tǒng),既然是濕度檢測(cè)那自然就有數(shù)據(jù)采集部分,而在LabVIEW中數(shù)據(jù)采集的硬件部分的核心是 ( Data Acquisition-DAQ)卡,它和LabVIEW有很好的接口程序,用LabVIEW實(shí)現(xiàn)數(shù)據(jù)采集,就是在LabVI

4、EW中控制各種DAQ卡(或設(shè)備)完成特定的功能,不過(guò)本設(shè)計(jì)中采用的濕度傳感器本身就是數(shù)字信號(hào)而且傳輸?shù)臄?shù)據(jù)也較為簡(jiǎn)單,所以本設(shè)計(jì)中下位機(jī)和上位機(jī)的數(shù)據(jù)傳輸是利用單片機(jī)對(duì)數(shù)字信號(hào)進(jìn)行換算處理以后再通過(guò)串口傳送至PC端的LabVIEW進(jìn)行實(shí)時(shí)顯示的。所以確定初步的設(shè)計(jì)思路:濕度傳感器采集到特定的濕度數(shù)字信號(hào),再利用單片機(jī)將這些數(shù)字信號(hào)按照一定的運(yùn)算轉(zhuǎn)換成Ascii碼形式的濕度值然后通過(guò)串口傳送至PC端,在PC端的LabVIEW監(jiān)控界面可以完成對(duì)串口參數(shù)的設(shè)置、平均濕度,最高濕度,最低濕度參數(shù)和實(shí)時(shí)溫度曲線的顯示以及數(shù)據(jù)存儲(chǔ)等功能。本設(shè)計(jì)的重點(diǎn)是串口通訊部分,是整個(gè)設(shè)計(jì)的核心部分,串口通信部分是上位

5、機(jī)與下位機(jī)之間的聯(lián)系紐帶,將二者緊密聯(lián)系起來(lái),形成一個(gè)完整的設(shè)計(jì)。本次設(shè)計(jì)中串口通訊主要通過(guò)LabVIEW自帶的一些串行通信模塊就行構(gòu)建很完成的。本設(shè)計(jì)實(shí)現(xiàn)的濕度檢測(cè)系統(tǒng)簡(jiǎn)單實(shí)用,靈活性強(qiáng),實(shí)用性高,并且操作簡(jiǎn)單,易于掌握。1.3 編程語(yǔ)言與調(diào)試環(huán)境選擇本設(shè)計(jì)過(guò)程編譯語(yǔ)言采用C語(yǔ)言,編譯調(diào)試環(huán)境采用Keil uVision4。C語(yǔ)言一共有32個(gè)關(guān)鍵字和9種控制語(yǔ)句,程序書寫非常形式自由,而且大小寫要區(qū)分。把低級(jí)語(yǔ)言的實(shí)用性與高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句結(jié)合起來(lái)。C 語(yǔ)言可以像匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者恰恰就是計(jì)算機(jī)最基本的工作單元。同時(shí)C語(yǔ)言的運(yùn)算符包含的范圍也非常廣泛,一共有

6、34種運(yùn)算符。C語(yǔ)言把賦值、括號(hào)、強(qiáng)制類型轉(zhuǎn)換等都作為了運(yùn)算符處理。這就使C語(yǔ)言的運(yùn)算類型非常的豐富,表達(dá)式的類型也多樣化了。如果能靈活得使用各種運(yùn)算符,就可以實(shí)現(xiàn)在其它高級(jí)語(yǔ)言中難以實(shí)現(xiàn)的運(yùn)算。C語(yǔ)言的數(shù)據(jù)類型有:實(shí)型、整型、字符型、指針類型、共用體類型、數(shù)組類型、結(jié)構(gòu)體類型、共用體類型等。這些都能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。而且C語(yǔ)言引入了指針概念,這就使程序的效率更高了。C語(yǔ)言提供多種運(yùn)算符和表達(dá)式值的方法,對(duì)問(wèn)題的表達(dá)可通過(guò)多種途徑獲得,其程序設(shè)計(jì)更主動(dòng)、靈活。它語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大,如對(duì)整型量與字符型數(shù)據(jù)及邏輯型數(shù)據(jù)可以通用等1。C語(yǔ)言描述問(wèn)題比匯編語(yǔ)言迅速,工作

7、量小、可讀性好,易于調(diào)試、修改和移植,而代碼質(zhì)量與匯編語(yǔ)言相當(dāng)。C語(yǔ)言一般只比匯編程序生成的目標(biāo)代碼效率低10%20%。C語(yǔ)言有豐富的數(shù)據(jù)結(jié)構(gòu)和運(yùn)算符。包含了各種數(shù)據(jù)結(jié)構(gòu),如整型、數(shù)組類型、指針類型和聯(lián)合類型等,用來(lái)實(shí)現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。C語(yǔ)言能直接訪問(wèn)硬件的物理地址,能進(jìn)行位(bit)操作。兼有高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的許多優(yōu)點(diǎn)。它既可用來(lái)編寫系統(tǒng)軟件,又可用來(lái)開發(fā)應(yīng)用軟件,已成為一種通用程序設(shè)計(jì)語(yǔ)言。2009年2月發(fā)布Keil uVision4,Keil uVision4引入了靈活的窗口管理系統(tǒng),為使用者提供一個(gè)整潔,高效的環(huán)境來(lái)開發(fā)應(yīng)用程序,開發(fā)人員使用Keil uVision4能夠同時(shí)使用

8、多臺(tái)監(jiān)視器,并且提供了視覺上的變化,新的用戶界面可以讓使用者更好地利用屏幕空間,從而更有效地組織多個(gè)窗口。2011年3月ARM公司發(fā)布最新集成開發(fā)環(huán)境RealView MDK開發(fā)工具中集成了最新版本的Keil uVision4,其編譯器、調(diào)試工具實(shí)現(xiàn)與ARM器件的最完美匹配。目前使用Keil uVision4的產(chǎn)品有Keil MDK-ARM,Keil C51,Keil C166和Keil C251。最新的Keil uVision4 IDE,旨在提高開發(fā)人員的生產(chǎn)力,實(shí)現(xiàn)更快,更有效的程序開發(fā)。uVision4引入了窗口管理系統(tǒng),使用方法更為靈活,能夠拖放到視圖內(nèi)的任何地方,包括支持多顯示器窗口

9、。uVision4在Vision3 IDE的基礎(chǔ)上,增加了更多大眾化的功能2。1多顯示器和靈活的窗口管理系統(tǒng);2系統(tǒng)瀏覽器窗口的顯示設(shè)備外設(shè)寄存器信息;3調(diào)試還原視圖創(chuàng)建并保存多個(gè)調(diào)試窗口布局;4多項(xiàng)目工作區(qū)簡(jiǎn)化與眾多的項(xiàng)目。Keil uVision4開發(fā)界面如圖1.1所示。圖1.1 Keil uVision4開發(fā)界面圖2 系統(tǒng)的硬件設(shè)計(jì)系統(tǒng)的硬件部分包括測(cè)量電路的設(shè)計(jì),單片機(jī)與上位機(jī)虛擬儀器接口電路的設(shè)計(jì),本設(shè)計(jì)中濕度采集電路的主控芯片采用STC89C52、濕度傳感器采用DHT11、單片機(jī)與上位機(jī)虛擬儀器接口電路部分采用串口通信芯片MAX3232,電源部分電路采用USB直接從PC處取電。下面

10、將對(duì)各部分的電路分別介紹。2.1 單片機(jī)最小系統(tǒng)電路設(shè)計(jì)本設(shè)計(jì)控制系統(tǒng)因?yàn)檩^為簡(jiǎn)單,沒有其他特殊的要求,只需要控制DHT11進(jìn)行濕度的實(shí)時(shí)采集后通過(guò)串口將數(shù)據(jù)實(shí)時(shí)傳送至上位機(jī)LabVIEW處理即可,本設(shè)計(jì)選擇STC89C52單片機(jī),STC89C52的各個(gè)參數(shù)大家都很熟悉了,再次就不一一贅述了,本小節(jié)講一下STC89C52最小系統(tǒng)的連接。 VCC :接+5V電源,供電即可。 GND :接地即可。XTAL1:?jiǎn)纹瑱C(jī)上的時(shí)鐘管腳,是獨(dú)立的輸入和輸出反相放大器,它們可以被配置為使用石英晶振的片內(nèi)振蕩器,或者是器件直接由外部時(shí)鐘驅(qū)動(dòng)。XTAL2:?jiǎn)纹瑱C(jī)上的時(shí)鐘管腳,是獨(dú)立的輸入和輸出反相放大器,它們可以

11、被配置為使用石英晶振的片內(nèi)振蕩器,或者是器件直接由外部時(shí)鐘驅(qū)動(dòng)。RST:STC89C52的復(fù)位信號(hào)輸入引腳,當(dāng)復(fù)位引腳RST(第9管腳)出現(xiàn)2個(gè)機(jī)器周期以上的高電平的時(shí)候,單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。復(fù)位操作使得內(nèi)部特殊功能寄存器的內(nèi)容均被設(shè)成已知狀態(tài)。EA:應(yīng)接高電平,訪問(wèn)內(nèi)部ROM。STC89C52實(shí)物圖如圖2.1所示。圖2.1 STC89C52實(shí)物圖STC89C52最小系統(tǒng)的原理圖如圖2.2所示。圖2.2 STC89C52最小系統(tǒng)原理圖2.2 濕度采集電路的設(shè)計(jì)2.2.1 濕度傳感器的選擇本系統(tǒng)是為建立小型的濕度采集平臺(tái),所以濕度傳感器的挑選至

12、關(guān)重要,經(jīng)過(guò)多方資料的查閱和咨詢大致確立了以下幾種方案:方案一:采用CHR-01濕敏電阻。CHR-01濕敏電阻適用于阻抗型高分子濕度傳感器,它的工作電壓為交流1V左右,其頻率為50Hz2kHz,測(cè)量濕度范圍為20%90%RH,測(cè)量精度±5%,工作溫度范圍為0+85,最高使用溫度120,阻抗在60%RH(25)時(shí)為30(2140.5)K。采用555時(shí)基或RC振蕩電路,將濕度傳感器等效為阻抗值,測(cè)量振蕩頻率輸出,振蕩頻率在1k Hz左右。方案二:采用HF3223/HTF3223。HF3223/HTF3223采用模塊式結(jié)構(gòu),屬于頻率輸出式集成濕度傳感器,相對(duì)濕度在0%99%RH范圍內(nèi),精度

13、為±5%,測(cè)量的指標(biāo)和測(cè)量的精度比較高,不需要校準(zhǔn)就可以達(dá)到完全互換性,可靠性和穩(wěn)定性都比較高,而且響應(yīng)速度相當(dāng)快,可以應(yīng)用于線性電壓的輸出和線性頻率的輸出的電路中, HTF3223在HF3223的基礎(chǔ)上多了一個(gè)溫度傳感器。HF3223濕度傳感模塊將濕度信息轉(zhuǎn)化為頻率信號(hào),傳輸給單片機(jī)進(jìn)行分析、處理和控制顯示3。方案三:采用DHT11數(shù)字溫濕度傳感器,DHT11是一款采集數(shù)據(jù)精確且無(wú)需校準(zhǔn)的數(shù)字信號(hào)輸出的溫濕度傳感器,它應(yīng)用了專業(yè)的數(shù)據(jù)量模塊采集技術(shù)和溫度和濕度的傳感技術(shù),可靠性相當(dāng)高,而且數(shù)據(jù)采集穩(wěn)定,且使用壽命長(zhǎng)??膳c一個(gè)高性能8位單片機(jī)相連接,實(shí)現(xiàn)對(duì)溫濕度數(shù)據(jù)的實(shí)時(shí)檢測(cè),該產(chǎn)品

14、相當(dāng)?shù)钠鹾衔覀儽驹O(shè)計(jì)中的設(shè)計(jì)需要。綜合比較三種方案,因?yàn)楸驹O(shè)計(jì)是將采集到的數(shù)據(jù)通過(guò)串口傳輸?shù)缴衔粰C(jī)部分,所以采用集成式的數(shù)字型傳感器DHT11,會(huì)提高整個(gè)系統(tǒng)的運(yùn)行速度,而且電路設(shè)計(jì)也較為簡(jiǎn)單,所以在滿足設(shè)計(jì)要求的情況下,我們選擇方案三即DHT11來(lái)作為本設(shè)計(jì)的濕度傳感器。2.2.2 DHT11電路的設(shè)計(jì)本設(shè)計(jì)中采用的DHT11濕度傳感器有四個(gè)引腳,包括VCC,GND,DATA,NC,就是除了接+5V電源和地以外只有一個(gè)數(shù)據(jù)口,是單總線數(shù)據(jù)控制模式的器件,所以其連接的是時(shí)候DATA口需要加510K的上拉電阻,其它并無(wú)特別的地方。DHT11的主要技術(shù)參數(shù):供電電壓: 3.35.5V DC輸 出:

15、 單總線數(shù)字信號(hào)測(cè)量范圍: 濕度20-90%RH, 溫度050測(cè)量精度: 濕度+-5%RH, 溫度+-2分 辨 率: 濕度1%RH, 溫度1互 換 性: 可完全互換 。長(zhǎng)期穩(wěn)定性: <±1%RH/年關(guān)于對(duì)DHT11的時(shí)序控制等會(huì)在軟件部分詳細(xì)說(shuō)明,DHT11的實(shí)物圖如圖2.3所示。 圖2.3 DHT11的實(shí)物圖DHT11的原理圖如圖2.4所示。圖2.4 DHT11原理圖 DHT11的DATA接上拉電阻后連接到STC89C52RC的P1.0口進(jìn)行控制,NC口懸空即可,VCC接+5V電源,GND接地。2.3 串口通信部分電路設(shè)計(jì)2.3.1 串口芯片的選擇本設(shè)計(jì)中需要將采集到的濕度數(shù)

16、據(jù)傳送至PC端的LabVIEW中進(jìn)行處理,因?yàn)殡娔X的串口是RS232電平的,不能和單片機(jī)的TTL電平直接通信,所以需要使用串口通信芯片將單片機(jī)的TTL電平轉(zhuǎn)換為RS232電平,此處可選的芯片有MAX232和MAX3232,MAX3232是MAX232的升級(jí)版而且價(jià)格相差又不多,所以此處我們選擇MAX3232作為串口通信的芯片,下面對(duì)MAX3232的參數(shù)做簡(jiǎn)要說(shuō)明。MAX3232具有二路的驅(qū)動(dòng)器和二路的接收器,配置了1uA關(guān)斷模式,實(shí)現(xiàn)了低功耗和延長(zhǎng)的產(chǎn)品的使用壽命。關(guān)斷模式中,MAX3232的接收器保持運(yùn)行狀態(tài),在低功耗的情況下,實(shí)現(xiàn)了對(duì)外部設(shè)備的實(shí)時(shí)監(jiān)測(cè)。MAX3232的引腳、和MAX242

17、還有MAX232都是互相兼容的,理論上是可以無(wú)差別互換的。MAX3232即使工作在高速數(shù)據(jù)的傳輸下,仍然能夠保證RS232標(biāo)準(zhǔn)要求的正負(fù)5.0V最小發(fā)送器的輸出電壓4。MAX3232采用專有低壓差發(fā)送器輸出級(jí),利用雙電荷泵在3.0V至5.5V電源供電時(shí)就能夠?qū)崿F(xiàn)良好的RS232通信,MAX3232僅需四個(gè)0.1uF的外部小尺寸瓷片電容,就可以確保在120kbps高速數(shù)據(jù)傳輸下,還能有效的保持RS232輸出電平。2.3.2 MAX3232電路的設(shè)計(jì)本設(shè)計(jì)中的串口通信芯片是MAX3232芯片,其利用雙電荷泵在3.0V至5.5V電源供電時(shí)能夠?qū)崿F(xiàn)穩(wěn)定的RS232的數(shù)據(jù)通信,電路中的電容值在MAX32

18、32芯片手冊(cè)上都為0.1uf。MAX3232相當(dāng)于串口和單片機(jī)直接的橋梁,MAX3232有兩路接收器和兩路驅(qū)動(dòng)器,本設(shè)計(jì)中只需要利用到其中的一路即可。下面介紹一下DB9串口的各個(gè)引腳。DB9頭各管腳定義:1載波檢測(cè)DCD;2接收數(shù)據(jù)RXD;3發(fā)送數(shù)據(jù)TXD;4數(shù)據(jù)終端準(zhǔn)備好DTR;5信號(hào)地SG;6數(shù)據(jù)準(zhǔn)備好DSR;7請(qǐng)求發(fā)送RTS;8清除發(fā)送CTS;9振鈴提示RI。MAX3232引腳圖如圖2.5所示。圖2.5 MAX3232引腳圖MAX3232電路連接原理圖如圖2.6所示。圖2.6 MAX3232原理圖通過(guò)原理圖可知MAX3232的連接方式,其1腳和3腳直接連接104的瓷片電容,4腳和5腳直接

19、也連接104的瓷片電容,2腳和6腳分別接104瓷片電容后接地,本設(shè)計(jì)中我們用到的是1路接收器和1路驅(qū)動(dòng)器,其DOUT1連接到DB9的2腳即接收數(shù)據(jù)口,RIN1連接到DB9的3腳發(fā)送數(shù)據(jù)口,其和單片機(jī)連接口是ROUT1和DIN1分別連接到單片機(jī)的串口P3.0和P3.1。.2.4 電源部分電路的設(shè)計(jì) 本設(shè)計(jì)中所有的元器件都是用+5V供電即可,而且需要設(shè)計(jì)需要和PC端進(jìn)行實(shí)時(shí)的數(shù)據(jù)傳輸,所以電源部分的設(shè)計(jì)是直接利用USB母座通過(guò)USB線從筆記本的USB口取電即可,在電源和地端并上10uf的電解電容和104的磁片電容,其得到的電壓剛好是+5V而且非常穩(wěn)定足以滿足本設(shè)計(jì)的需求,電源部分原理圖如圖2.7所

20、示。圖2.7 電源部分原理圖3 系統(tǒng)的軟件設(shè)計(jì)3.1 軟件系統(tǒng)總體工作流程系統(tǒng)初始化本系統(tǒng)的整體流程是:利用DHT11進(jìn)行實(shí)時(shí)濕度的實(shí)時(shí)采集并通過(guò)串口傳輸給上位機(jī)通過(guò)LabVIEW進(jìn)行處理,本設(shè)計(jì)中軟件下位機(jī)工作流程如圖3.1所示。濕度采集串口傳送至PC圖3.1 軟件下位機(jī)流程圖由系統(tǒng)的整體流程可知,本設(shè)計(jì)的軟件部分設(shè)計(jì)可分為上位機(jī)部分的軟件設(shè)計(jì)和下位機(jī)的軟件部分設(shè)計(jì),下面先介紹下位機(jī)部分的軟件設(shè)計(jì)。3.2 濕度采集程序的設(shè)計(jì)本設(shè)計(jì)中采用的DHT11是典型的單總線數(shù)據(jù)通信的元器件,即只使用DATA引腳就可以完成所有的控制和數(shù)據(jù)傳輸,采用單總線數(shù)據(jù)格式,一次通訊時(shí)間長(zhǎng)度在4ms左右,溫度和濕度的

21、數(shù)據(jù)分小數(shù)部分和整數(shù)部分還有校驗(yàn)碼,DHT11的數(shù)據(jù)精度是1%,所以他讀取到的小數(shù)部分是不存在的一直為零,所以我們只需要對(duì)整數(shù)部分的數(shù)據(jù)進(jìn)行處理即可,操作流程如下:一次完整的數(shù)據(jù)傳輸?shù)臄?shù)據(jù)長(zhǎng)度為40bit,高位在前低位在后。數(shù)據(jù)為,8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗(yàn)數(shù)據(jù),總共為40bit,如果前面32bit的計(jì)算總和等于后面的校驗(yàn)位則證明本次的數(shù)據(jù)讀取是正確的,若不等于,證明數(shù)據(jù)讀取錯(cuò)誤,必須重新讀數(shù)據(jù)。DHT11的控制流程大致是:主控芯片發(fā)送一次啟動(dòng)信號(hào)以后,DHT11從低功耗模式轉(zhuǎn)換為高速模式,等待到主控芯片的啟動(dòng)信號(hào)結(jié)束以后

22、,DHT11發(fā)送響應(yīng)信號(hào),由主機(jī)接收判斷以后,DHT11開始送出40bit的數(shù)據(jù),并觸發(fā)信號(hào)采集,我們估計(jì)需要使用到的數(shù)據(jù)段對(duì)數(shù)據(jù)進(jìn)行采集,但一般都是全部采集,這樣才可以使用DHT11自帶的數(shù)據(jù)校驗(yàn)功能。DHT11每接收到一次啟動(dòng)信號(hào)則觸發(fā)一次溫濕度的數(shù)據(jù)采集,如果沒有收到啟動(dòng)信號(hào),則一直處于低功耗模式,不采集數(shù)據(jù)。DHT11的DATA總線在低功耗模式時(shí)為高電平,主控芯片把DATA拉低等待DHT11響應(yīng),而且主控芯片把DATA拉低必須大于18ms,保證DHT11能穩(wěn)定的檢測(cè)到啟動(dòng)信號(hào)。DHT11接收到主控芯片的啟動(dòng)信號(hào)以后,等待主控芯片的啟動(dòng)信號(hào)結(jié)束后,然后DHT11會(huì)發(fā)出80us低電平響應(yīng)信

23、號(hào)。主機(jī)發(fā)送啟動(dòng)信號(hào)結(jié)束后,延時(shí)等待40us左右后, 即可讀取DHT11的響應(yīng)信號(hào),判斷其為響應(yīng)信號(hào)以后即可開始讀取40bit的數(shù)據(jù)位。DATA總線為低電平,說(shuō)明DHT11發(fā)送響應(yīng)信號(hào),DHT11發(fā)送響應(yīng)信號(hào)以后,會(huì)再把DATA總線拉高80us,準(zhǔn)備發(fā)送40bit數(shù)據(jù),每一bit數(shù)據(jù)都以50us低電平作為間隙,高電平的長(zhǎng)短判斷了數(shù)據(jù)位是高還是低。當(dāng)最后一bit數(shù)據(jù)傳送完畢以后,DHT11會(huì)拉低DATA總線50us,以示數(shù)據(jù)傳輸結(jié)束,隨后總線由上拉電阻拉高并且進(jìn)入空閑狀態(tài),對(duì)DHT11進(jìn)行數(shù)據(jù)采集需要特別注意的是,兩次的采集間隔必須在1s以上,否則采集命令無(wú)效。本設(shè)計(jì)中DATA口連接在單片機(jī)的P

24、1.0口,根據(jù)DHT11的通信協(xié)議,首先由單片機(jī)的P1.0口主動(dòng)產(chǎn)生要求的激發(fā)信號(hào),然后將數(shù)據(jù)線的控制權(quán)交給傳感器,接著單片機(jī)通過(guò)while語(yǔ)句不間斷的檢查P1.0口的高低電平,從而達(dá)到對(duì)時(shí)序的正確把握,解析出準(zhǔn)確的傳輸數(shù)據(jù),在通過(guò)對(duì)其數(shù)據(jù)的分析處理,即可得到當(dāng)前的濕度值,DHT11的采集程序流程圖如圖3.2所示。P1.0拉低延時(shí)18ms程序開始P1.0拉高延時(shí)40usNDHT11響應(yīng)信號(hào)Y數(shù)據(jù)讀取數(shù)據(jù)校驗(yàn)返回圖3.2 DHT11程序流程圖3.3 串口通信部分程序STC89C52單片機(jī)上有一個(gè)通用異步接收發(fā)送器UART,通過(guò)引腳RXDP3.0和TXDP3.1可外部電路進(jìn)行全雙工的串行異步通信,

25、發(fā)送數(shù)據(jù)時(shí)由TXD端送出,接收時(shí)數(shù)據(jù)由RXD端輸入串行端口有4種基本工作方式,通過(guò)編程設(shè)置,可以使其工作在任一方式,本設(shè)計(jì)中實(shí)用的是工作方式1。51單片機(jī)的串行端口主要由SCON、PCON這兩個(gè)寄存器來(lái)控制的,用于設(shè)置傳輸?shù)乃俾剩欠裼|發(fā)中斷,數(shù)據(jù)位,標(biāo)志位,校驗(yàn)位,和接收或者發(fā)送模式的選擇。串口通信主要還用到了一個(gè)數(shù)據(jù)寄存器SBUF,SBUF為發(fā)送和接收所共用的寄存器。當(dāng)在發(fā)送模式時(shí),只寫不讀;接收模式時(shí),只讀不寫。設(shè)置完成發(fā)送條件以后,向SBuF寫入數(shù)據(jù)就啟動(dòng)了串口的發(fā)送;讀SBuF就可以讀取到串口接收到的數(shù)據(jù)。在不同工作方式中,由時(shí)鐘振蕩頻率的分頻值或由定時(shí)器T1的定時(shí)溢出時(shí)間來(lái)確定串口

26、的波特率,串口通信程序流程圖如圖3.3所示。T1為工作方式2,開中斷程序開始串口方式1,波特率9600,允許接收串口發(fā)送完成NY清除標(biāo)志位返回圖3.3 串口通信程序流程圖3.4 LabVIEW程序設(shè)計(jì) 該設(shè)計(jì)的設(shè)計(jì)思想是:由濕度傳感器檢測(cè)信號(hào),通過(guò)單片機(jī)控制串口傳送至PC,進(jìn)入計(jì)算機(jī)虛擬儀器程序,對(duì)采集到的濕度進(jìn)行上位機(jī)濕度顯示,包括實(shí)時(shí)濕度曲線,平均濕度,最高濕度,最低濕度參數(shù)的測(cè)量與顯示。本系統(tǒng)的組成和其他基于虛擬儀器的系統(tǒng)組成一樣,都由系統(tǒng)前面板及與之相對(duì)應(yīng)的程序框圖兩大部分構(gòu)成。下面從前面板開始介紹整個(gè)LabVIEW的整體構(gòu)架,整個(gè)上位機(jī)的檢測(cè)界面的前面板如圖3.4所示。圖3.4 檢測(cè)

27、系統(tǒng)前面板圖由圖3.4可以看到,前面板主要由串口配置,接受數(shù)據(jù)緩沖區(qū)和實(shí)時(shí)濕度曲線,平均濕度,最高濕度,最低濕度參數(shù)等和一些參數(shù)輸入控件組成。3.4.1 實(shí)時(shí)濕度曲線模塊實(shí)時(shí)濕度曲線模塊由波形圖表控件組成,它用來(lái)根據(jù)所測(cè)的濕度值來(lái)繪制濕度變化的曲線,從而對(duì)濕度的走勢(shì)一目了然,可以根據(jù)需要設(shè)置曲線的樣式等參數(shù),實(shí)時(shí)濕度曲線模塊圖如圖3.5所示。圖3.5 實(shí)時(shí)濕度曲線模塊圖3.4.2 參數(shù)設(shè)置模塊參數(shù)設(shè)置模塊中可對(duì)端口選擇、波特率、數(shù)據(jù)位、奇偶校驗(yàn)、停止位。波特率是傳輸速率,默認(rèn)值為9600。數(shù)據(jù)位是輸入數(shù)據(jù)的位數(shù),數(shù)據(jù)比特值介于5和8之間,默認(rèn)值為8。奇偶校驗(yàn)制定要傳輸或接受的每一幀所使用的校驗(yàn)

28、方法:0為無(wú)校驗(yàn)(默認(rèn));1為奇校驗(yàn);2為偶校驗(yàn);3為校驗(yàn)位始終為1;4為校驗(yàn)位始終為0。停止位指定用于表示幀結(jié)束的停止位數(shù)量5。參數(shù)設(shè)置模塊如圖3.6所示。圖3.6 參數(shù)設(shè)置模塊圖3.4.3 LabVIEW程序框圖設(shè)計(jì)本設(shè)計(jì)主要是利用到LabVIEW的串口通信功能,所以程序框圖主要由一個(gè)while循環(huán)、一個(gè)條件結(jié)構(gòu)、VISA配置串口、VISA寫入、VISA讀取和VISA關(guān)閉等控件組成。其中有些控件我們?cè)谇懊姘逯幸呀?jīng)介紹,在此我們主要介紹串口通訊用到的的幾個(gè)子V I 6。系統(tǒng)總程序框圖如圖3.7所示。圖3.7 總程序框圖程序開始首先利用VISA 配置串口模塊對(duì)串行口進(jìn)行初始化,然后判斷開始運(yùn)行

29、按鈕是否按下,若按下開始使能串口采集。本設(shè)計(jì)中我們主要使用VISA實(shí)現(xiàn)串口通信,所以下面詳細(xì)講解一下VISA的使用,在labview功能面板的Instrument I/OàSerial 目錄下,包含串行通信所需要的集成模塊。利用這些模塊,可以非常方便的設(shè)計(jì)出基于串行通信的控制系統(tǒng)。需要注意的是,在使用這些模塊前,需安裝在光盤上的VISA驅(qū)動(dòng)程序,也可從NI的網(wǎng)站免費(fèi)下載最新VISA驅(qū)動(dòng)程序,下面介紹一下最常用的串行通信模塊7。1、VISA 配置串口用于初始化所選擇的串行口。其中VISA 資源名稱用于選擇所用到的串行口,PC機(jī)中常用到的串口號(hào)分別用COM1和COM2表示,流控制用于設(shè)置

30、握手方式。波特率、數(shù)據(jù)位、停止位、奇偶校驗(yàn)分別用于設(shè)置串行通信的波特率,數(shù)據(jù)位長(zhǎng)度,停止位和校驗(yàn)方式8。2、VISA Write用于將 Write Buffer中的字符寫到VISA 資源名稱指定的串行接口中。3、VISA Read用于從VISA資源名稱指定的串行口中讀取規(guī)定字節(jié)數(shù)的數(shù)據(jù),并把這些數(shù)據(jù)傳遞給Read Buffer。其中,Byte count 用于設(shè)置要讀取的字節(jié)數(shù)。4、VISA Close用于關(guān)閉VISA 資源名稱指定的串行口,讓出串行口的使用權(quán)。參考文獻(xiàn)1 李廣弟單片機(jī)基礎(chǔ)M北京:北京航空航天出版社,20012 唐俊翟單片機(jī)原理與應(yīng)用M北京:冶金工業(yè)出版社,20033 周航慈單

31、片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)M北京:北京航天航空大學(xué)出版社,20024 勒達(dá)單片機(jī)應(yīng)用系統(tǒng)開發(fā)實(shí)例導(dǎo)航M北京:人民郵電出版社,20035 陳樹學(xué),劉萱LabVIEW寶典M北京:電子工業(yè)出版社,20116 劉君華基于LabVIEW的虛擬儀器的設(shè)計(jì)M北京:北京電子工業(yè)出版社,20037 趙茂泰智能儀器原理及應(yīng)用M北京:電子工業(yè)出版社,20048 蔡建安,陳潔華基于LabVIEW的工程軟件應(yīng)用M重慶:重慶大學(xué)出版社,2006附錄A 硬件原理圖圖A 硬件原理圖附錄B 程序代碼#include <reg52.h>#include <intrins.h> /typedef unsigned

32、 char U8; /* defined for unsigned 8-bits integer variable 無(wú)符號(hào)8位整型變量 */typedef signed char S8; /* defined for signed 8-bits integer variable 有符號(hào)8位整型變量 */typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 無(wú)符號(hào)16位整型變量 */typedef signed int S16; /* defined for signed 16-bits intege

33、r variable 有符號(hào)16位整型變量 */typedef unsigned long U32; /* defined for unsigned 32-bits integer variable 無(wú)符號(hào)32位整型變量 */typedef signed long S32; /* defined for signed 32-bits integer variable 有符號(hào)32位整型變量 */typedef float F32; /* single precision floating point variable (32bits) 單精度浮點(diǎn)數(shù)(32位長(zhǎng)度) */typedef double

34、 F64; /* double precision floating point variable (64bits) 雙精度浮點(diǎn)數(shù)(64位長(zhǎng)度) */#define uchar unsigned char#define uint unsigned int#define Data_0_time 4/-/-IO口定義區(qū)-/-/sbit P2_0 = P20 ;/-/-定義區(qū)-/-/U8 U8FLAG,k;U8 U8count,U8temp;U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8 U8T_data_H_temp,

35、U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;U8 U8comdata;U8 outdata5; /定義發(fā)送的字節(jié)數(shù) U8 indata5;U8 str5=" "U8 count, count_r=0;U16 U16temp1,U16temp2;SendData(U8 *a)outdata0 = a0; outdata1 = a1;outdata2 = a2;outdata3 = a3;outdata4 = a4;count = 1;SBUF=outdata0; void Delay(U

36、16 j) U8 i; for(;j>0;j-) for(i=0;i<27;i+); void Delay_10us(void) U8 i; i-; i-; i-; i-; i-; i-; void COM(void) U8 i; for(i=0;i<8;i+) U8FLAG=2; /- /- while(!P2_0)&&U8FLAG+);Delay_10us();Delay_10us();/Delay_10us(); U8temp=0; if(P2_0)U8temp=1; U8FLAG=2; while(P2_0)&&U8FLAG+); /-

37、 /- /超時(shí)則跳出for循環(huán) if(U8FLAG=0)break; /判斷數(shù)據(jù)位是0還是1 / 如果高電平高過(guò)預(yù)定0高電平值則數(shù)據(jù)位為 1 U8comdata<<=1; U8comdata|=U8temp; /0 /rof /-/-濕度讀取子程序 -/-/-以下變量均為全局變量-/-溫度高8位= U8T_data_H-/-溫度低8位= U8T_data_L-/-濕度高8位= U8RH_data_H-/-濕度低8位= U8RH_data_L-/-校驗(yàn) 8位 = U8checkdata-/-調(diào)用相關(guān)子程序如下-/- Delay();, Delay_10us();,COM(); /-void RH(void) /主機(jī)拉低18ms P2_0=0; Delay(180); P2_0=1; /總線由上拉電阻拉高 主機(jī)延時(shí)20us Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us(); /主機(jī)設(shè)為輸入 判斷從機(jī)響應(yīng)信號(hào) P2_0=1;

溫馨提示

  • 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)論