基于Labview的環(huán)境參數(shù)檢測系統(tǒng)_第1頁
基于Labview的環(huán)境參數(shù)檢測系統(tǒng)_第2頁
基于Labview的環(huán)境參數(shù)檢測系統(tǒng)_第3頁
基于Labview的環(huán)境參數(shù)檢測系統(tǒng)_第4頁
基于Labview的環(huán)境參數(shù)檢測系統(tǒng)_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、電氣與控制工程學(xué)院綜合實(shí)驗(yàn)題目:基于 labview 的環(huán)境參數(shù)檢測系統(tǒng)院(系):電氣與控制工程學(xué)院專業(yè)班級:姓名:學(xué)號:指導(dǎo)教師:摘 要本文主要描述了利用 pc機(jī)與 stc89c52 單片機(jī)之間的通信程序設(shè)計(jì)實(shí)現(xiàn)對環(huán)境參數(shù)的檢測。由傳感器采集溫度,濕度,光照強(qiáng)度三路信號,將信號發(fā)送給上位機(jī)用 labview 進(jìn)行顯示,單片機(jī)程序用c 語言編寫,同時擁有液晶顯示功能,實(shí)現(xiàn)上位機(jī)與下位機(jī)同步顯示三路環(huán)境參數(shù)信號。關(guān)鍵詞:單片機(jī)stc89c52 ,溫濕度采集,光照強(qiáng)度采集,labveiw上位機(jī),lcd1602 顯示目錄1.概述 .12.總體方案設(shè)計(jì) .12.1 系統(tǒng)總體方案設(shè)計(jì) .12.2 主控芯

2、片的選擇 .22.3 溫濕度傳感器的選擇 .22.4 光照傳感器的選擇 .23. 硬件設(shè)計(jì) .33.1 單片機(jī)最小系統(tǒng) .33.2 按鍵模塊 .43.3 溫濕度采集模塊 .43.4 光照采集模塊 .54. 軟件設(shè)計(jì) .64.1 主程序 .64.2 參數(shù)采集子程序 .64.3 上位機(jī)設(shè)計(jì) .64.4 通信模塊設(shè)計(jì) .75. 系統(tǒng)調(diào)試 .86. 心得體會 .97.參考文獻(xiàn) .9附錄一 原理圖 . 10附錄二 程序清單 . 10基于 labview 的環(huán)境參數(shù)檢測系統(tǒng)1.概述溫濕度測量,光照強(qiáng)度測量是現(xiàn)代檢測技術(shù)的重要組成部分,在保證產(chǎn)品質(zhì)量、節(jié)約能源和安全生產(chǎn)等方面起著關(guān)鍵的作用。隨著傳感器在生產(chǎn)

3、和生活中的更加廣泛的應(yīng)用,在生產(chǎn)中,溫濕度,光照強(qiáng)度的高低對產(chǎn)品的質(zhì)量影響很大。因此,能夠確??焖?、 準(zhǔn)確地測量環(huán)境參數(shù)的技術(shù)及其裝置普遍受到各國的重視。近年來 ,利用智能化數(shù)字式傳感器以實(shí)現(xiàn)環(huán)境參數(shù)的在線檢測已成為溫濕度,光照強(qiáng)度檢測技術(shù)的一種發(fā)展趨勢。本課題以單片機(jī)為核心, 用智能集成溫溫度傳感器dht11 主要實(shí)現(xiàn)環(huán)境溫度、濕度的檢測,光照傳感器bh1750 實(shí)現(xiàn)對環(huán)境光照強(qiáng)度的檢測。將溫度濕度及光照強(qiáng)度信號通過傳感器進(jìn)行信號的采集并轉(zhuǎn)換成數(shù)字信號,再運(yùn)用單片機(jī)進(jìn)行數(shù)據(jù)的分析和處理, 在 lcd1602 液晶屏上顯示當(dāng)前溫濕度。 用按鍵控制切換對溫度、 濕度及光照強(qiáng)度的顯示, 將信號發(fā)送

4、給 pc 上位機(jī),利用 labview顯示。2.總體方案設(shè)計(jì)2.1 系統(tǒng)總體方案設(shè)計(jì)本系統(tǒng)以 52 單片機(jī)為控制核心,來對各個模塊進(jìn)行控制,總體方案設(shè)計(jì)如圖 1 所設(shè)。圖 1 總體方案圖從圖 1 可知,本系統(tǒng)的各個模塊均由52 單片機(jī)來控制,用智能集成溫溫度傳感器 dht11 主要實(shí)現(xiàn)溫度、 濕度的檢測, 用環(huán)境光照傳感器bh1750 實(shí)現(xiàn)光照強(qiáng)度的檢測, 將溫度、濕度、光照強(qiáng)度信號通過傳感器進(jìn)行信號的采集并轉(zhuǎn)換成數(shù)字信號,再運(yùn)用單片機(jī)stc89c52 進(jìn)行數(shù)據(jù)的分析和處理,并在lcd1602上顯示,并通過按鍵進(jìn)行切換顯示環(huán)境溫度、濕度及光照強(qiáng)度。通過rs232 將信號傳到上位機(jī)用labvie

5、w 進(jìn)行顯示。2.2 主控芯片的選擇方案一:使用 arm 控制器方案二:使用 stc89c52 單片機(jī)本系統(tǒng)采集的參數(shù)均為數(shù)字量, 即只需要高低電平,考慮到經(jīng)濟(jì)性和統(tǒng)一性,最終選擇使用 stc89c52 單片機(jī)。2.3 溫濕度傳感器的選擇dht11 數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。實(shí)物如圖2 所示。原理圖如圖3 所示。圖 2 dht11 溫濕度傳感器圖 3 dht11 溫濕度傳感器原理圖傳感器包括一個電阻式感濕元件和一個ntc 測溫元件,并與一個高性能8位單片機(jī)相連接。因此

6、該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價比極高等優(yōu)點(diǎn)。每個 dht11 傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲存在otp 內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達(dá)20 米以上。產(chǎn)品為4 針單排引腳封裝,連接方便。2.4 光照傳感器的選擇bh1750 環(huán)境光照傳感器內(nèi)置16 位的模數(shù)轉(zhuǎn)換器,它能夠直接輸出一個數(shù)字信號,不需要再做復(fù)雜的計(jì)算。 這是一種更精良的和容易使用簡易電阻器的版本,通過計(jì)算電壓 ,來獲得有效的數(shù)據(jù)。這款環(huán)境光傳感器能夠直接通過光度計(jì)來測量。光強(qiáng)

7、度的單位是流明lx 。當(dāng)物體在均勻的光照下它能夠在每平方米獲得 1lx 的光通量,它們的光強(qiáng)度是 1lx 。實(shí)物圖如圖 4 所示,原理圖如圖 5 所示。圖 4 bh1750 光照傳感器圖 5 bh1750光照傳感器原理圖3.硬件設(shè)計(jì)3.1 單片機(jī)最小系統(tǒng)本設(shè)計(jì)選取單片機(jī)作為系統(tǒng)的控制器。 所謂最小系統(tǒng),也稱為最小應(yīng)用系統(tǒng),是指一個真正可用的單片機(jī)最小配置系統(tǒng)。選取stc89c52 為單片機(jī),最小系統(tǒng)主要有復(fù)位電路和晶振電路構(gòu)成,具體電路圖如圖6 所示。圖 6 最小系統(tǒng)電路圖由圖 6 可知,單片機(jī)最小系統(tǒng)的時鐘電路有一個用于構(gòu)成振蕩器的高增益反放大器,引腳 xtal1 和 xtal2 分別是反相

8、放大器的輸入端和輸出端。通常,經(jīng)由片外晶體振蕩器或陶瓷諧振器與兩個匹配電容一起構(gòu)成一個自激振蕩電路。本課題由片外晶體振蕩器與兩個匹配電容一起構(gòu)成了一個內(nèi)部時鐘振蕩電路,為單片機(jī)提供時鐘源。復(fù)位電路采用上電自動復(fù)位電路當(dāng)上電時,電容通過并聯(lián)的電阻迅速放電, 然后,rc電路充電, 能夠保證 rst 端能夠維持一段時間的高電平。3.2 按鍵模塊按鍵電路是切換 lcd1602 顯示界面的關(guān)鍵,本設(shè)計(jì)有一個按鍵,每按一次切換一路顯示參數(shù),按鍵與單片機(jī)p2.6 口相接,電路圖如圖7 所示。圖 7 按鍵電路圖3.3 溫濕度采集模塊dht11 的供電電壓為 35.5v ,傳感器上電后,要等待1s 以越過不穩(wěn)定

9、狀態(tài)在此期間無需發(fā)送任何指令。電源引腳(vdd ,gnd )之間可增加一個100nf 的電容,用以去耦濾波。數(shù)據(jù)用于微處理器與dht11 之間的通訊和同步,采用單總線數(shù)據(jù)格式 ,一次通訊時間4ms 左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分。如圖 2.2 所示,本電路上拉電阻為5.1k,數(shù)據(jù)端接 p2.3(接受溫濕度數(shù)據(jù))。如圖 8 所示。圖 8 溫度采集電路圖3.4 光照采集模塊bh1750 引腳有五個, 威力方便微處理器同時采集多路光照強(qiáng)度,bh1750設(shè)置了 addr 引腳,由于本系統(tǒng)只有一個光照傳感器,因此 4 號引腳 addr 懸空即可。進(jìn)行環(huán)境光照度采集后顯示到液晶屏上,它的時鐘引腳 scl

10、接 p2.4 口,數(shù)據(jù)引腳 sdl 接 p2.5 口。如圖 9 所示。圖 9 光照采集電路圖3.5 液晶顯示模塊本設(shè)計(jì)采用串行, 用于顯示環(huán)境的三路參數(shù), p2.0 口接 lcd1602 的 rs 端,p2.1 口接 lcd1602 的 rw 端,p2.2 口接 lcd1602 的 en 端。如圖 10 所示。圖 10 顯示電路圖4.軟件設(shè)計(jì)4.1 主程序主程序采用子程序調(diào)用的結(jié)構(gòu),單片機(jī)上電后,主程序?qū)ο到y(tǒng)進(jìn)行初始化,然后對各個模塊進(jìn)行調(diào)用, 這些模塊主要包括: 溫度、濕度、光照的采集,顯示,報(bào)警,串口通信。主程序流程圖如圖11 所示。圖 11 主程序流程圖4.2 參數(shù)采集子程序本設(shè)計(jì)的環(huán)境

11、參數(shù)采集流程為: 首先進(jìn)行串口配置, 在對傳感器采集的數(shù)字量進(jìn)行處理,將數(shù)據(jù)輸出到液晶屏?xí)r顯示,同時判斷環(huán)境參數(shù)是否超過上下限,超限,則報(bào)警,不超限則將數(shù)據(jù)保存,如圖12 所示。圖 12 參數(shù)采集流程圖4.3 上位機(jī)設(shè)計(jì)上位機(jī)前面板設(shè)計(jì)如圖13 所示, 前面板中有三路環(huán)境參數(shù)采集的實(shí)時曲線,有當(dāng)前溫度顯示, 以十進(jìn)制進(jìn)行顯示, 還有數(shù)據(jù)接收去顯示, 記錄所有接收到的參數(shù)數(shù)據(jù)。 還有對串口資源的配置。 同時可設(shè)定三路參數(shù)上下限報(bào)警值,實(shí)現(xiàn)三路參數(shù)上下限報(bào)警以及歷史數(shù)據(jù)報(bào)表生成。圖 13 前面板設(shè)計(jì)圖如圖 14 所示,“0”界面進(jìn)行串口資源配置,波特率設(shè)定為9600 ,數(shù)據(jù)位8 位,校驗(yàn)位無,停止

12、位1。圖 14 程序面板串口配置原理圖圖 15 上位機(jī)數(shù)據(jù)處理界面如圖 16 所示,以溫度參數(shù)的顯示為例, 首先經(jīng)過屬性節(jié)點(diǎn), 讀取下位機(jī)傳送來的 visa 屬性資源。圖 16 溫度數(shù)據(jù)顯示經(jīng)過 visa 讀取函數(shù), visa 讀取函數(shù)是指從visa 資源名稱指定的設(shè)備或接口中讀取指定數(shù)量的字節(jié),并使數(shù)據(jù)返回至讀取緩沖區(qū)。如圖17 所示。圖 17 visa 讀取函數(shù)各端口說明而后通過截取字符串函數(shù),如圖18 所示,以溫度為例,從第0 位起截取 2 位字符。圖 18 截取字符串函數(shù)各端口說明在經(jīng)過十進(jìn)制數(shù)字符串至數(shù)值轉(zhuǎn)換函數(shù),如圖19 所示,使字符串中的數(shù)字字符轉(zhuǎn)換為十進(jìn)制整數(shù),通過數(shù)字返回。圖

13、 19 十進(jìn)制數(shù)字符串至數(shù)值轉(zhuǎn)換函數(shù)各端口說明將轉(zhuǎn)化為數(shù)字的參數(shù), 連接到報(bào)表顯示, 示波器及儀表盤, 同時與輸入的上下限進(jìn)行比較,超限后報(bào)警燈閃爍。圖 20 定時界面4.4 通信模塊設(shè)計(jì)rs-232 是 pc 機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。rs-232 被定義為一種在低速率串行通信中增加通訊距離的單端標(biāo)準(zhǔn)。rs-232 采取不平衡傳輸方式,即所謂單端通訊。 收、發(fā)端的數(shù)據(jù)信號是相對于信號地。 典型的 rs-232信號在正負(fù)電平之間擺動,在發(fā)送數(shù)據(jù)時,發(fā)送端驅(qū)動器輸出正電平在+5 +15v ,負(fù)電平在 -5 -15v 電平。當(dāng)無數(shù)據(jù)傳輸時,線上為ttl,從開始傳送數(shù)據(jù)到結(jié)束,線上電平

14、從ttl 電平到 rs-232 電平再返回 ttl 電平。接收器典型的工作電平在 +3 +12v 與-3 -12v 。由于發(fā)送電平與接收電平的差僅為2v至 3v 左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大為約 15 米,最高速率為 20kb/s 。rs-232 是為點(diǎn)對點(diǎn)(即只用一對收、發(fā)設(shè)備)通訊而設(shè)計(jì)的,其驅(qū)動器負(fù)載為37k。所以 rs-232 適合本地設(shè)備之間的通信。圖 21 串口通信流程圖5.系統(tǒng)調(diào)試系統(tǒng)調(diào)試調(diào)試結(jié)果如下圖所示, 系統(tǒng)調(diào)試結(jié)果與預(yù)期要求相同, 實(shí)現(xiàn)了下位機(jī)對環(huán)境溫度、濕度、光照強(qiáng)度的實(shí)時采集,液晶顯示。同時也實(shí)現(xiàn)了上位機(jī)與下位機(jī)之間的通信,上位

15、機(jī)數(shù)據(jù)記錄,數(shù)據(jù)繪圖,報(bào)警功能。如圖22、圖 23、圖 24、圖 25 所示。圖 22 上位機(jī)三路環(huán)境參數(shù)顯示界面開始設(shè)置串口為 8位數(shù)據(jù)位設(shè)置t1為自動重裝初值設(shè)置串口波特率發(fā)送數(shù)據(jù)結(jié)束開定時器 0允許接受中斷定時1sny圖 23 三路環(huán)境參數(shù)歷史數(shù)據(jù)報(bào)表圖 24 lcd1602 顯示溫濕度圖 25 lcd1602顯示光照強(qiáng)度6.心得體會本次設(shè)計(jì)我負(fù)責(zé)軟件編程部分, 通過對本系統(tǒng)的研究和設(shè)計(jì), 使我對單片機(jī)的使用有了更深一層次的理解和掌握。整個系統(tǒng)設(shè)計(jì)過程用到的主要硬件有stc89c52,溫濕度傳感器dht11 ,光照傳感器 bh1750 。 通過對這些硬件的學(xué)習(xí)和了解, 不僅擴(kuò)展了自己的知

16、識面,也是自己對單片機(jī)的外圍電路有了進(jìn)一步的學(xué)習(xí)。設(shè)計(jì)過程中我們遇到了很多問題,例如上位機(jī)與下位機(jī)進(jìn)行串口通信的程序如何編寫等等,都通過老師和同學(xué)的幫助以及自身學(xué)習(xí)得到了解決,也鍛煉了自己獨(dú)立思考問題的能力,并增強(qiáng)了自己的動手操作能力,這對我將來的畢業(yè)設(shè)計(jì)以及未來的學(xué)習(xí)都有很大的幫助。感謝老師們的指導(dǎo)和同學(xué)們的幫助。7.參考文獻(xiàn)1 梅曉榕 ,柏桂珍 ,張卯瑞 .自動控制元件及線路 m. 北京:科學(xué)出版社 ,20072 1985 趙亮.液晶顯示模塊 lcd1602 應(yīng)用j.電子制作 ,2007(3)3 馬忠梅 ,籍順心 ,張凱等 .單片機(jī)的 c 語言應(yīng)用程序設(shè)計(jì) m. 北京航天航空大學(xué)出版社 ,

17、20034 胡漢才 .單片機(jī)原理與接口技術(shù)m. 清華大學(xué)出版社 ,1996.5 黃賢斌 ,鄭筱霞 .傳感器原理與應(yīng)用 m. 北京:高等教育出版社 . 成都:電子科技大學(xué)出版社 ,2004,3(2009.1重印)6 何立民 .單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) m. 北京:北京航天航空出版社.1990,50-4907 劉篤仁 ,韓保君 .傳感器原理及應(yīng)用技術(shù) m. 機(jī)械工業(yè)出版社 .2003,8 8 王勇等 .凌陽單片機(jī)原理及其畢業(yè)設(shè)計(jì)精選m. 科學(xué)出版社附錄一 原理圖圖 26 電路原理圖附錄二 程序清單#include #include #include lcd1602.c#define uint unsig

18、ned int #define uchar unsigned charsbit trh=p23; / 1 號溫濕度傳感器data 數(shù)據(jù)端sbit scl=p24; /iic 時鐘引腳定義sbit sda=p25; /iic 數(shù)據(jù)引腳定義sbit key1=p26; / 按鍵int num=0;#define slaveaddress 0 x46 / 定義器件在iic 總線中的從地址 ,根據(jù)alt address 地址引腳不同修改/alt address 引腳接地時地址為0 xa6 ,接電源時地址為 0 x3atypedef unsigned char byte;typedef unsigned

19、 short word;byte buf8; / 接收數(shù)據(jù)緩存區(qū)uchar ge,shi,bai,qian,wan; / 顯示變量int dis_data; / 變量uchar th_data,tl_data;uchar rh_data,rl_data; void conversion(uint temp_data);void single_write_bh1750(uchar reg_address); / 單個寫入數(shù)據(jù)uchar single_read_bh1750(uchar reg_address); / 單個讀取內(nèi)部寄存器數(shù)據(jù)void multiple_read_bh1750();

20、/ 連續(xù)的讀取內(nèi)部寄存器數(shù)據(jù)void conversion(uint temp_data) / 數(shù)據(jù)轉(zhuǎn)換出個,十,百,千,萬 wan=temp_data/10000+0 x30 ;temp_data=temp_data%10000; / 取余運(yùn)算qian=temp_data/1000+0 x30 ;temp_data=temp_data%1000; / 取余運(yùn)算bai=temp_data/100+0 x30 ;temp_data=temp_data%100; / 取余運(yùn)算shi=temp_data/10+0 x30 ;temp_data=temp_data%10; / 取余運(yùn)算ge=temp_

21、data+0 x30; /*起始信號*/void bh1750_start()sda = 1; / 拉高數(shù)據(jù)線scl = 1; / 拉高時鐘線delay5us(); / 延時sda = 0; / 產(chǎn)生下降沿delay5us(); / 延時scl = 0; / 拉低時鐘線/*停止信號*/void bh1750_stop()sda = 0; / 拉低數(shù)據(jù)線scl = 1; / 拉高時鐘線delay5us(); / 延時sda = 1; / 產(chǎn)生上升沿delay5us(); / 延時/*發(fā)送應(yīng)答信號入口參數(shù) :ack (0:ack 1:nak)*/void bh1750_sendack(bit ac

22、k)sda = ack; / 寫應(yīng)答信號scl = 1; / 拉高時鐘線delay5us(); / 延時scl = 0; / 拉低時鐘線delay5us(); / 延時/*接收應(yīng)答信號*/bit bh1750_recvack()scl = 1; / 拉高時鐘線delay5us(); / 延時cy = sda; / 讀應(yīng)答信號scl = 0; / 拉低時鐘線delay5us(); / 延時return cy;/*向 iic 總線發(fā)送一個字節(jié)數(shù)據(jù)*/void bh1750_sendbyte(byte dat)byte i;for (i=0; i8; i+) /8 位計(jì)數(shù)器dat = 1; / 移出

23、數(shù)據(jù)的最高位sda = cy; / 送數(shù)據(jù)口scl = 1; / 拉高時鐘線delay5us(); / 延時scl = 0; / 拉低時鐘線delay5us(); / 延時bh1750_recvack();/*從 iic 總線接收一個字節(jié)數(shù)據(jù)*/byte bh1750_recvbyte()byte i;byte dat = 0;sda = 1; / 使能內(nèi)部上拉 ,準(zhǔn)備讀取數(shù)據(jù) ,for (i=0; i8; i+) /8 位計(jì)數(shù)器dat = 1;scl = 1; / 拉高時鐘線delay5us(); / 延時dat |= sda; / 讀數(shù)據(jù)scl = 0; / 拉低時鐘線delay5us()

24、; / 延時return dat;/*void single_write_bh1750(uchar reg_address)bh1750_start(); / 起始信號bh1750_sendbyte(slaveaddress); / 發(fā)送設(shè)備地址 +寫信號bh1750_sendbyte(reg_address); / 內(nèi)部寄存器地址,請參考中文pdf22 頁bh1750_stop(); / 發(fā)送停止信號void multiple_read_bh1750(void) uchar i; bh1750_start(); / 起始信號bh1750_sendbyte(slaveaddress+1); /

25、 發(fā)送設(shè)備地址 +讀信號for (i=0; i3; i+) / 連續(xù)讀取 6 個地址數(shù)據(jù),存儲中 bufbufi = bh1750_recvbyte(); /buf0 存儲 0 x32 地址中的數(shù)據(jù)if (i = 3)bh1750_sendack(1); / 最后一個數(shù)據(jù)需要回noackelse bh1750_sendack(0); / 回應(yīng) ackbh1750_stop(); / 停止信號delayms(5);/ 初始化 bh1750 ,根據(jù)需要請參考 pdf 進(jìn)行修改 *void init_bh1750()single_write_bh1750(0 x01); /*12us級延時程序*/v

26、oid delay_us()uchar i;i-;i-;i-;i-;i-;i-; /*1號 溫 濕 度 傳 感 器dht11收 發(fā) 信 號 檢 測 , 數(shù) 據(jù) 讀 取*/uchar receive() uchar com_data;uchar respond,temp;uchar i;com_data=0;for(i=0; i8; i+) respond=2;while(!trh)&respond+);delay_us(); / 這 3 個大概延時 40usdelay_us();delay_us();if(trh)temp=1;respond=2;while(trh)&resp

27、ond+); else temp=0;com_data=1;com_data|=temp; return(com_data); uchar ck_data;void read_trh() uchar th_temp,tl_temp,rh_temp,rl_temp,ck_temp,untemp;uchar respond;/ 主機(jī)拉低 18ms trh=0;delayms(18);trh=1;/data 總線由上拉電阻拉高主機(jī)延時 50us 左右delay_us();delay_us();delay_us();delay_us(); if(!trh) respond=2;while(!trh)&

28、amp; respond+);respond=2;/ 等待 dht11 發(fā)出 80us 的高電平結(jié)束,然后進(jìn)入接收狀態(tài)while(trh & respond+);/ 數(shù)據(jù)接收狀態(tài)rh_temp = receive(); 電氣與控制工程學(xué)院綜合實(shí)驗(yàn)題目:基于 labview 的環(huán)境參數(shù)檢測系統(tǒng)院(系):電氣與控制工程學(xué)院專業(yè)班級:姓名:學(xué)號:指導(dǎo)教師:摘 要本文主要描述了利用 pc機(jī)與 stc89c52 單片機(jī)之間的通信程序設(shè)計(jì)實(shí)現(xiàn)對環(huán)境參數(shù)的檢測。由傳感器采集溫度,濕度,光照強(qiáng)度三路信號,將信號發(fā)送給上位機(jī)用 labview 進(jìn)行顯示,單片機(jī)程序用c 語言編寫,同時擁有液晶顯示功能,實(shí)

29、現(xiàn)上位機(jī)與下位機(jī)同步顯示三路環(huán)境參數(shù)信號。關(guān)鍵詞:單片機(jī)stc89c52 ,溫濕度采集,光照強(qiáng)度采集,labveiw上位機(jī),lcd1602 顯示目錄1.概述 .12.總體方案設(shè)計(jì) .12.1 系統(tǒng)總體方案設(shè)計(jì) .12.2 主控芯片的選擇 .22.3 溫濕度傳感器的選擇 .22.4 光照傳感器的選擇 .23. 硬件設(shè)計(jì) .33.1 單片機(jī)最小系統(tǒng) .33.2 按鍵模塊 .43.3 溫濕度采集模塊 .43.4 光照采集模塊 .54. 軟件設(shè)計(jì) .64.1 主程序 .64.2 參數(shù)采集子程序 .64.3 上位機(jī)設(shè)計(jì) .64.4 通信模塊設(shè)計(jì) .75. 系統(tǒng)調(diào)試 .86. 心得體會 .97.參考文獻(xiàn)

30、.9附錄一 原理圖 . 10附錄二 程序清單 . 10基于 labview 的環(huán)境參數(shù)檢測系統(tǒng)1.概述溫濕度測量,光照強(qiáng)度測量是現(xiàn)代檢測技術(shù)的重要組成部分,在保證產(chǎn)品質(zhì)量、節(jié)約能源和安全生產(chǎn)等方面起著關(guān)鍵的作用。隨著傳感器在生產(chǎn)和生活中的更加廣泛的應(yīng)用,在生產(chǎn)中,溫濕度,光照強(qiáng)度的高低對產(chǎn)品的質(zhì)量影響很大。因此,能夠確保快速、 準(zhǔn)確地測量環(huán)境參數(shù)的技術(shù)及其裝置普遍受到各國的重視。近年來 ,利用智能化數(shù)字式傳感器以實(shí)現(xiàn)環(huán)境參數(shù)的在線檢測已成為溫濕度,光照強(qiáng)度檢測技術(shù)的一種發(fā)展趨勢。本課題以單片機(jī)為核心, 用智能集成溫溫度傳感器dht11 主要實(shí)現(xiàn)環(huán)境溫度、濕度的檢測,光照傳感器bh1750 實(shí)現(xiàn)

31、對環(huán)境光照強(qiáng)度的檢測。將溫度濕度及光照強(qiáng)度信號通過傳感器進(jìn)行信號的采集并轉(zhuǎn)換成數(shù)字信號,再運(yùn)用單片機(jī)進(jìn)行數(shù)據(jù)的分析和處理, 在 lcd1602 液晶屏上顯示當(dāng)前溫濕度。 用按鍵控制切換對溫度、 濕度及光照強(qiáng)度的顯示, 將信號發(fā)送給 pc 上位機(jī),利用 labview顯示。2.總體方案設(shè)計(jì)2.1 系統(tǒng)總體方案設(shè)計(jì)本系統(tǒng)以 52 單片機(jī)為控制核心,來對各個模塊進(jìn)行控制,總體方案設(shè)計(jì)如圖 1 所設(shè)。圖 1 總體方案圖從圖 1 可知,本系統(tǒng)的各個模塊均由52 單片機(jī)來控制,用智能集成溫溫度傳感器 dht11 主要實(shí)現(xiàn)溫度、 濕度的檢測, 用環(huán)境光照傳感器bh1750 實(shí)現(xiàn)光照強(qiáng)度的檢測, 將溫度、濕度

32、、光照強(qiáng)度信號通過傳感器進(jìn)行信號的采集并轉(zhuǎn)換成數(shù)字信號,再運(yùn)用單片機(jī)stc89c52 進(jìn)行數(shù)據(jù)的分析和處理,并在lcd1602上顯示,并通過按鍵進(jìn)行切換顯示環(huán)境溫度、濕度及光照強(qiáng)度。通過rs232 將信號傳到上位機(jī)用labview 進(jìn)行顯示。2.2 主控芯片的選擇方案一:使用 arm 控制器方案二:使用 stc89c52 單片機(jī)本系統(tǒng)采集的參數(shù)均為數(shù)字量, 即只需要高低電平,考慮到經(jīng)濟(jì)性和統(tǒng)一性,最終選擇使用 stc89c52 單片機(jī)。2.3 溫濕度傳感器的選擇dht11 數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有

33、極高的可靠性與卓越的長期穩(wěn)定性。實(shí)物如圖2 所示。原理圖如圖3 所示。圖 2 dht11 溫濕度傳感器圖 3 dht11 溫濕度傳感器原理圖傳感器包括一個電阻式感濕元件和一個ntc 測溫元件,并與一個高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價比極高等優(yōu)點(diǎn)。每個 dht11 傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲存在otp 內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達(dá)20 米以上。產(chǎn)品為4 針單排引腳封裝,連接方便。2.4 光照傳感器的選擇b

34、h1750 環(huán)境光照傳感器內(nèi)置16 位的模數(shù)轉(zhuǎn)換器,它能夠直接輸出一個數(shù)字信號,不需要再做復(fù)雜的計(jì)算。 這是一種更精良的和容易使用簡易電阻器的版本,通過計(jì)算電壓 ,來獲得有效的數(shù)據(jù)。這款環(huán)境光傳感器能夠直接通過光度計(jì)來測量。光強(qiáng)度的單位是流明lx 。當(dāng)物體在均勻的光照下它能夠在每平方米獲得 1lx 的光通量,它們的光強(qiáng)度是 1lx 。實(shí)物圖如圖 4 所示,原理圖如圖 5 所示。圖 4 bh1750 光照傳感器圖 5 bh1750光照傳感器原理圖7.硬件設(shè)計(jì)3.1 單片機(jī)最小系統(tǒng)本設(shè)計(jì)選取單片機(jī)作為系統(tǒng)的控制器。 所謂最小系統(tǒng),也稱為最小應(yīng)用系統(tǒng),是指一個真正可用的單片機(jī)最小配置系統(tǒng)。選取stc

35、89c52 為單片機(jī),最小系統(tǒng)主要有復(fù)位電路和晶振電路構(gòu)成,具體電路圖如圖6 所示。圖 6 最小系統(tǒng)電路圖由圖 6 可知,單片機(jī)最小系統(tǒng)的時鐘電路有一個用于構(gòu)成振蕩器的高增益反放大器,引腳 xtal1 和 xtal2 分別是反相放大器的輸入端和輸出端。通常,經(jīng)由片外晶體振蕩器或陶瓷諧振器與兩個匹配電容一起構(gòu)成一個自激振蕩電路。本課題由片外晶體振蕩器與兩個匹配電容一起構(gòu)成了一個內(nèi)部時鐘振蕩電路,為單片機(jī)提供時鐘源。復(fù)位電路采用上電自動復(fù)位電路當(dāng)上電時,電容通過并聯(lián)的電阻迅速放電, 然后,rc電路充電, 能夠保證 rst 端能夠維持一段時間的高電平。3.2 按鍵模塊按鍵電路是切換 lcd1602

36、顯示界面的關(guān)鍵,本設(shè)計(jì)有一個按鍵,每按一次切換一路顯示參數(shù),按鍵與單片機(jī)p2.6 口相接,電路圖如圖7 所示。圖 7 按鍵電路圖3.3 溫濕度采集模塊dht11 的供電電壓為 35.5v ,傳感器上電后,要等待1s 以越過不穩(wěn)定狀態(tài)在此期間無需發(fā)送任何指令。電源引腳(vdd ,gnd )之間可增加一個100nf 的電容,用以去耦濾波。數(shù)據(jù)用于微處理器與dht11 之間的通訊和同步,采用單總線數(shù)據(jù)格式 ,一次通訊時間4ms 左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分。如圖 2.2 所示,本電路上拉電阻為5.1k,數(shù)據(jù)端接 p2.3(接受溫濕度數(shù)據(jù))。如圖 8 所示。圖 8 溫度采集電路圖3.4 光照采集模塊

37、bh1750 引腳有五個, 威力方便微處理器同時采集多路光照強(qiáng)度,bh1750設(shè)置了 addr 引腳,由于本系統(tǒng)只有一個光照傳感器,因此 4 號引腳 addr 懸空即可。進(jìn)行環(huán)境光照度采集后顯示到液晶屏上,它的時鐘引腳 scl 接 p2.4 口,數(shù)據(jù)引腳 sdl 接 p2.5 口。如圖 9 所示。圖 9 光照采集電路圖3.5 液晶顯示模塊本設(shè)計(jì)采用串行, 用于顯示環(huán)境的三路參數(shù), p2.0 口接 lcd1602 的 rs 端,p2.1 口接 lcd1602 的 rw 端,p2.2 口接 lcd1602 的 en 端。如圖 10 所示。圖 10 顯示電路圖8.軟件設(shè)計(jì)4.1 主程序主程序采用子程

38、序調(diào)用的結(jié)構(gòu),單片機(jī)上電后,主程序?qū)ο到y(tǒng)進(jìn)行初始化,然后對各個模塊進(jìn)行調(diào)用, 這些模塊主要包括: 溫度、濕度、光照的采集,顯示,報(bào)警,串口通信。主程序流程圖如圖11 所示。圖 11 主程序流程圖4.2 參數(shù)采集子程序本設(shè)計(jì)的環(huán)境參數(shù)采集流程為: 首先進(jìn)行串口配置, 在對傳感器采集的數(shù)字量進(jìn)行處理,將數(shù)據(jù)輸出到液晶屏?xí)r顯示,同時判斷環(huán)境參數(shù)是否超過上下限,超限,則報(bào)警,不超限則將數(shù)據(jù)保存,如圖12 所示。圖 12 參數(shù)采集流程圖4.3 上位機(jī)設(shè)計(jì)上位機(jī)前面板設(shè)計(jì)如圖13 所示, 前面板中有三路環(huán)境參數(shù)采集的實(shí)時曲線,有當(dāng)前溫度顯示, 以十進(jìn)制進(jìn)行顯示, 還有數(shù)據(jù)接收去顯示, 記錄所有接收到的參數(shù)

39、數(shù)據(jù)。 還有對串口資源的配置。 同時可設(shè)定三路參數(shù)上下限報(bào)警值,實(shí)現(xiàn)三路參數(shù)上下限報(bào)警以及歷史數(shù)據(jù)報(bào)表生成。圖 13 前面板設(shè)計(jì)圖如圖 14 所示,“0”界面進(jìn)行串口資源配置,波特率設(shè)定為9600 ,數(shù)據(jù)位8 位,校驗(yàn)位無,停止位1。圖 14 程序面板串口配置原理圖圖 15 上位機(jī)數(shù)據(jù)處理界面如圖 16 所示,以溫度參數(shù)的顯示為例, 首先經(jīng)過屬性節(jié)點(diǎn), 讀取下位機(jī)傳送來的 visa 屬性資源。圖 16 溫度數(shù)據(jù)顯示經(jīng)過 visa 讀取函數(shù), visa 讀取函數(shù)是指從visa 資源名稱指定的設(shè)備或接口中讀取指定數(shù)量的字節(jié),并使數(shù)據(jù)返回至讀取緩沖區(qū)。如圖17 所示。圖 17 visa 讀取函數(shù)各端

40、口說明而后通過截取字符串函數(shù),如圖18 所示,以溫度為例,從第0 位起截取 2 位字符。圖 18 截取字符串函數(shù)各端口說明在經(jīng)過十進(jìn)制數(shù)字符串至數(shù)值轉(zhuǎn)換函數(shù),如圖19 所示,使字符串中的數(shù)字字符轉(zhuǎn)換為十進(jìn)制整數(shù),通過數(shù)字返回。圖 19 十進(jìn)制數(shù)字符串至數(shù)值轉(zhuǎn)換函數(shù)各端口說明將轉(zhuǎn)化為數(shù)字的參數(shù), 連接到報(bào)表顯示, 示波器及儀表盤, 同時與輸入的上下限進(jìn)行比較,超限后報(bào)警燈閃爍。圖 20 定時界面4.4 通信模塊設(shè)計(jì)rs-232 是 pc 機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。rs-232 被定義為一種在低速率串行通信中增加通訊距離的單端標(biāo)準(zhǔn)。rs-232 采取不平衡傳輸方式,即所謂單端通訊。

41、收、發(fā)端的數(shù)據(jù)信號是相對于信號地。 典型的 rs-232信號在正負(fù)電平之間擺動,在發(fā)送數(shù)據(jù)時,發(fā)送端驅(qū)動器輸出正電平在+5 +15v ,負(fù)電平在 -5 -15v 電平。當(dāng)無數(shù)據(jù)傳輸時,線上為ttl,從開始傳送數(shù)據(jù)到結(jié)束,線上電平從ttl 電平到 rs-232 電平再返回 ttl 電平。接收器典型的工作電平在 +3 +12v 與-3 -12v 。由于發(fā)送電平與接收電平的差僅為2v至 3v 左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大為約 15 米,最高速率為 20kb/s 。rs-232 是為點(diǎn)對點(diǎn)(即只用一對收、發(fā)設(shè)備)通訊而設(shè)計(jì)的,其驅(qū)動器負(fù)載為37k。所以 rs-2

42、32 適合本地設(shè)備之間的通信。圖 21 串口通信流程圖9.系統(tǒng)調(diào)試系統(tǒng)調(diào)試調(diào)試結(jié)果如下圖所示, 系統(tǒng)調(diào)試結(jié)果與預(yù)期要求相同, 實(shí)現(xiàn)了下位機(jī)對環(huán)境溫度、濕度、光照強(qiáng)度的實(shí)時采集,液晶顯示。同時也實(shí)現(xiàn)了上位機(jī)與下位機(jī)之間的通信,上位機(jī)數(shù)據(jù)記錄,數(shù)據(jù)繪圖,報(bào)警功能。如圖22、圖 23、開始設(shè)置串口為 8位數(shù)據(jù)位設(shè)置t1為自動重裝初值設(shè)置串口波特率發(fā)送數(shù)據(jù)結(jié)束開定時器 0允許接受中斷定時1sny圖 24、圖 25 所示。圖 22 上位機(jī)三路環(huán)境參數(shù)顯示界面圖 23 三路環(huán)境參數(shù)歷史數(shù)據(jù)報(bào)表圖 24 lcd1602 顯示溫濕度圖 25 lcd1602顯示光照強(qiáng)度10.心得體會本次設(shè)計(jì)我負(fù)責(zé)軟件編程部分,

43、 通過對本系統(tǒng)的研究和設(shè)計(jì), 使我對單片機(jī)的使用有了更深一層次的理解和掌握。整個系統(tǒng)設(shè)計(jì)過程用到的主要硬件有stc89c52,溫濕度傳感器dht11 ,光照傳感器 bh1750 。 通過對這些硬件的學(xué)習(xí)和了解, 不僅擴(kuò)展了自己的知識面,也是自己對單片機(jī)的外圍電路有了進(jìn)一步的學(xué)習(xí)。設(shè)計(jì)過程中我們遇到了很多問題,例如上位機(jī)與下位機(jī)進(jìn)行串口通信的程序如何編寫等等,都通過老師和同學(xué)的幫助以及自身學(xué)習(xí)得到了解決,也鍛煉了自己獨(dú)立思考問題的能力,并增強(qiáng)了自己的動手操作能力,這對我將來的畢業(yè)設(shè)計(jì)以及未來的學(xué)習(xí)都有很大的幫助。感謝老師們的指導(dǎo)和同學(xué)們的幫助。7.參考文獻(xiàn)1 梅曉榕 ,柏桂珍 ,張卯瑞 .自動控

44、制元件及線路 m. 北京:科學(xué)出版社 ,20072 1985 趙亮.液晶顯示模塊 lcd1602 應(yīng)用j.電子制作 ,2007(3)3 馬忠梅 ,籍順心 ,張凱等 .單片機(jī)的 c 語言應(yīng)用程序設(shè)計(jì) m. 北京航天航空大學(xué)出版社 ,20034 胡漢才 .單片機(jī)原理與接口技術(shù)m. 清華大學(xué)出版社 ,1996.5 黃賢斌 ,鄭筱霞 .傳感器原理與應(yīng)用 m. 北京:高等教育出版社 . 成都:電子科技大學(xué)出版社 ,2004,3(2009.1重印)6 何立民 .單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) m. 北京:北京航天航空出版社.1990,50-4907 劉篤仁 ,韓保君 .傳感器原理及應(yīng)用技術(shù) m. 機(jī)械工業(yè)出版社 .2

45、003,8 8 王勇等 .凌陽單片機(jī)原理及其畢業(yè)設(shè)計(jì)精選m. 科學(xué)出版社附錄一 原理圖圖 26 電路原理圖附錄二 程序清單#include #include #include lcd1602.c#define uint unsigned int #define uchar unsigned charsbit trh=p23; / 1 號溫濕度傳感器data 數(shù)據(jù)端sbit scl=p24; /iic 時鐘引腳定義sbit sda=p25; /iic 數(shù)據(jù)引腳定義sbit key1=p26; / 按鍵int num=0;#define slaveaddress 0 x46 / 定義器件在iic

46、總線中的從地址 ,根據(jù)alt address 地址引腳不同修改/alt address 引腳接地時地址為0 xa6 ,接電源時地址為 0 x3atypedef unsigned char byte;typedef unsigned short word;byte buf8; / 接收數(shù)據(jù)緩存區(qū)uchar ge,shi,bai,qian,wan; / 顯示變量int dis_data; / 變量uchar th_data,tl_data;uchar rh_data,rl_data; void conversion(uint temp_data);void single_write_bh1750(

47、uchar reg_address); / 單個寫入數(shù)據(jù)uchar single_read_bh1750(uchar reg_address); / 單個讀取內(nèi)部寄存器數(shù)據(jù)void multiple_read_bh1750(); / 連續(xù)的讀取內(nèi)部寄存器數(shù)據(jù)void conversion(uint temp_data) / 數(shù)據(jù)轉(zhuǎn)換出個,十,百,千,萬 wan=temp_data/10000+0 x30 ;temp_data=temp_data%10000; / 取余運(yùn)算qian=temp_data/1000+0 x30 ;temp_data=temp_data%1000; / 取余運(yùn)算bai=temp_data/100+0 x30 ;temp_data=temp_data%100; / 取余運(yùn)算shi=temp_data/10+0 x30 ;temp_data=temp_data%10; / 取余運(yùn)算ge=temp_data+0 x30; /*起始信號*/void bh1750_start()sda = 1; / 拉高數(shù)據(jù)線scl = 1; / 拉高時鐘線delay5us();

溫馨提示

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

最新文檔

評論

0/150

提交評論