基于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ù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

8、放大器的輸入端和輸出端。通常,經(jīng)由片外晶體振蕩器或陶瓷諧振器與兩個匹配電容一起構(gòu)成一個自激振蕩電路。本課題由片外晶體振蕩器與兩個匹配電容一起構(gòu)成了一個內(nèi)部時鐘振蕩電路,為單片機提供時鐘源。復位電路采用上電自動復位電路當上電時,電容通過并聯(lián)的電阻迅速放電, 然后,rc電路充電, 能夠保證 rst 端能夠維持一段時間的高電平。3.2 按鍵模塊按鍵電路是切換 lcd1602 顯示界面的關鍵,本設計有一個按鍵,每按一次切換一路顯示參數(shù),按鍵與單片機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 引腳有五個, 威力方便微處理器同時采集多路光照強度,bh1750設置了 addr 引腳,由于本系統(tǒng)只有一個光照傳感器,因此 4 號引腳 addr 懸空即可。進行環(huán)境光照度采集后顯示到液晶屏上,它的時鐘引腳 scl

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

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

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

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

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

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

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

17、20034 胡漢才 .單片機原理與接口技術m. 清華大學出版社 ,1996.5 黃賢斌 ,鄭筱霞 .傳感器原理與應用 m. 北京:高等教育出版社 . 成都:電子科技大學出版社 ,2004,3(2009.1重印)6 何立民 .單片機應用系統(tǒng)設計 m. 北京:北京航天航空出版社.1990,50-4907 劉篤仁 ,韓保君 .傳感器原理及應用技術 m. 機械工業(yè)出版社 .2003,8 8 王勇等 .凌陽單片機原理及其畢業(yè)設計精選m. 科學出版社附錄一 原理圖圖 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; / 取余運算qian=temp_data/1000+0 x30 ;temp_data=temp_data%1000; / 取余運算bai=temp_data/100+0 x30 ;temp_data=temp_data%100; / 取余運算shi=temp_data/10+0 x30 ;temp_data=temp_data%10; / 取余運算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ā)送應答信號入口參數(shù) :ack (0:ack 1:nak)*/void bh1750_sendack(bit ac

22、k)sda = ack; / 寫應答信號scl = 1; / 拉高時鐘線delay5us(); / 延時scl = 0; / 拉低時鐘線delay5us(); / 延時/*接收應答信號*/bit bh1750_recvack()scl = 1; / 拉高時鐘線delay5us(); / 延時cy = sda; / 讀應答信號scl = 0; / 拉低時鐘線delay5us(); / 延時return cy;/*向 iic 總線發(fā)送一個字節(jié)數(shù)據(jù)*/void bh1750_sendbyte(byte dat)byte i;for (i=0; i8; i+) /8 位計數(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)部上拉 ,準備讀取數(shù)據(jù) ,for (i=0; i8; i+) /8 位計數(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ā)送設備地址 +寫信號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ā)送設備地址 +讀信號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); / 回應 ackbh1750_stop(); / 停止信號delayms(5);/ 初始化 bh1750 ,根據(jù)需要請參考 pdf 進行修改 *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;/ 主機拉低 18ms trh=0;delayms(18);trh=1;/data 總線由上拉電阻拉高主機延時 50us 左右delay_us();delay_us();delay_us();delay_us(); if(!trh) respond=2;while(!trh)&

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

45、003,8 8 王勇等 .凌陽單片機原理及其畢業(yè)設計精選m. 科學出版社附錄一 原理圖圖 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; / 取余運算qian=temp_data/1000+0 x30 ;temp_data=temp_data%1000; / 取余運算bai=temp_data/100+0 x30 ;temp_data=temp_data%100; / 取余運算shi=temp_data/10+0 x30 ;temp_data=temp_data%10; / 取余運算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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論