基于單片機的空氣質(zhì)量檢測系統(tǒng)設(shè)計和實現(xiàn)計算機專業(yè)_第1頁
基于單片機的空氣質(zhì)量檢測系統(tǒng)設(shè)計和實現(xiàn)計算機專業(yè)_第2頁
基于單片機的空氣質(zhì)量檢測系統(tǒng)設(shè)計和實現(xiàn)計算機專業(yè)_第3頁
基于單片機的空氣質(zhì)量檢測系統(tǒng)設(shè)計和實現(xiàn)計算機專業(yè)_第4頁
基于單片機的空氣質(zhì)量檢測系統(tǒng)設(shè)計和實現(xiàn)計算機專業(yè)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機的空氣質(zhì)量檢測系統(tǒng)摘 要隨著工業(yè)技術(shù)的飛速發(fā)展,雖然人們的生活獲得了很多的方便,但是在工業(yè)生產(chǎn)過程中,不可避免的產(chǎn)生了一些對人體有害的因素,如煤炭、水泥、面粉等毫不相干的行業(yè)中產(chǎn)生的粉塵污染。粉塵對人體產(chǎn)生最大的危害就是肺部以及呼吸道相關(guān)的疾病。當(dāng)周圍環(huán)境處于高溫干燥的情況下時,粉塵濃度到達(dá)某一極限值,這個時候如果存在火源或強烈振動與摩擦,極有可能產(chǎn)生爆炸。本設(shè)計使用STC89C52單片機作為主控單元,由夏普GP2Y1010AU粉塵傳感器采集周圍環(huán)境的粉塵濃度值,再經(jīng)過ADC0832模數(shù)轉(zhuǎn)換器對測量到的信號進(jìn)行模數(shù)轉(zhuǎn)換,最后將數(shù)值通過LCD1602液晶顯示屏顯示出來,然后根據(jù)事先通過

2、按鍵設(shè)置好的閾值相比較,超出則蜂鳴器報警。關(guān)鍵詞:GP2Y1010AU0F傳感器,粉塵檢測,空氣質(zhì)量目 錄摘 要IABSTRACTII第一章 引言31.1 課題研究背景與意義31.2 國內(nèi)外研究現(xiàn)狀 31.3 本文主要內(nèi)容4第二章 系統(tǒng)方案設(shè)計、比較與論證52.1 系統(tǒng)方案設(shè)計.52.2 主控制器模塊選擇52.3 按鍵的選擇62.4 顯示模塊的選擇62.5 電源選取6第三章 系統(tǒng)硬件設(shè)計73.1 GP2Y1010AU0F傳感器73.1.1 內(nèi)部原理圖73.1.2 主要參數(shù)73.1.3 電光特性83.1.4 LED的輸入條件.83.1.5 LED輸入端子的輸入條件83.1.6 電路接線93.1.

3、7 檢出方法113.2 ADC0832模數(shù)轉(zhuǎn)換器133.3 LCD顯示模塊153.3.1 LCD1602的特性153.3.2 LCD1602的使用說明173.4 STC89C52單片機193.4.1 STC89C52單片機主要特性203.4.2 STC89C52單片機引腳說明.213.5主控制模塊233.6顯示模塊電路243.7報警模塊的設(shè)計253.8按鍵模塊的設(shè)計253.9粉塵模塊電路設(shè)計263.10電源部分的設(shè)計27第四章 系統(tǒng)軟件設(shè)計284.1程序結(jié)構(gòu)分析284.2系統(tǒng)程序流圖284.2.1 DS18B20初始化程序流程圖294.2.2讀空氣中粉塵濃度子程序流程圖29第五章 系統(tǒng)的安裝與

4、調(diào)試315.1安裝步驟315.2電路的調(diào)試31第六章 總結(jié)與展望346.1 本文總結(jié)346.2 展望.34參考文獻(xiàn)35致謝.36第一章 引 言1.1 課題研究背景與意義二十一世紀(jì)的今天,科學(xué)技術(shù)水平的發(fā)展與日俱進(jìn),與此同時,測量技術(shù)也隨之發(fā)展,現(xiàn)代控制設(shè)備在性能和結(jié)構(gòu)上都遠(yuǎn)遠(yuǎn)超出了過去老式的設(shè)備?,F(xiàn)在的時代是信息時代,發(fā)展速度走上了快車道,每天都有新的東西出現(xiàn),因此我們獲取信息的渠道主要是靠測量技術(shù),因此它被廣泛地應(yīng)用到各種項目的各個領(lǐng)域。隨著我國經(jīng)濟(jì)水平的飛速發(fā)展,人們的生活水平也日益提高,于是人們對空氣質(zhì)量問題也倍感關(guān)注。粉塵又被稱為可吸入顆粒物,這種顆粒物直徑小于75m,而且漂浮在空氣當(dāng)

5、中,可以進(jìn)入人體呼吸道,對人的眼睛、鼻腔以及上呼吸道都會造成很大的危害。同時這種可吸入顆粒能夠直接進(jìn)入肺泡。關(guān)鍵是其沉積時間較長,這樣很有可能導(dǎo)致心肺病和心血管疾病。而且粉塵作為大部分病原體的載體,當(dāng)它散布在空氣中時,極易傳播疾病。在生產(chǎn)過程中,許多工作環(huán)境對粉塵濃度也有極為嚴(yán)格的要求。例如,一些生產(chǎn)化學(xué)品的工廠中的很多粉塵攜帶有毒化學(xué)物質(zhì),在這種工作環(huán)境下工作的人們長久呼吸或接觸這些粉塵,很容易導(dǎo)致一些與皮膚或者呼吸道有關(guān)的疾病。還有煤炭生產(chǎn)企業(yè),無論是在井下作業(yè)還是露天采煤,都會產(chǎn)生大量粉塵,尤其是在通風(fēng)條件很差的礦井里。長期在這種環(huán)境下工作,肺泡中就會沉積粉塵,會引起慢性職業(yè)病。由此可見

6、,粉塵對人體的健康和工業(yè)生產(chǎn)有非常大的危害性。因此,必須對生產(chǎn)環(huán)境的粉塵濃度進(jìn)行實時檢測,這樣便于及時了解工人的工作生活環(huán)境。1.2 國內(nèi)外研究現(xiàn)狀使用射線法測量數(shù)據(jù)是目前國內(nèi)采用的最為先進(jìn)的測量方法,這個方法的原理就是吸收量只與吸收物質(zhì)的重量有關(guān),而與吸收物質(zhì)的物理和化學(xué)性質(zhì)沒有關(guān)系。跟稱重法的原理差不多,都可直接讀取粉塵濃度。但是射線法比稱重法有一點好處,就是射線法可以采用不同的采樣入口裝置,分別對不同類別的粉塵進(jìn)行測量。袖珍式激光粉塵儀是以激光管為光源,基于前向光散射原理設(shè)計而成的。與前面介紹的兩種方法相比,袖珍式激光粉塵儀使用更加方便,測量更加便捷。適用于那些極易產(chǎn)生粉塵的工廠,可以為

7、防塵、降塵提供最新的現(xiàn)場數(shù)據(jù)。1.3 本文主要內(nèi)容本文的主要內(nèi)容就是使用STC89C52單片機作為主控單元,由夏普GP2Y1010AU粉塵傳感器采集周圍環(huán)境的粉塵濃度值,再經(jīng)過ADC0832模數(shù)轉(zhuǎn)換器對測量到的信號進(jìn)行模數(shù)轉(zhuǎn)換,最后將數(shù)值通過LCD1602液晶顯示屏顯示出來,然后根據(jù)事先通過按鍵設(shè)置好的閾值相比較,超出則蜂鳴器報警。第二章 系統(tǒng)方案設(shè)計、比較與論證本系統(tǒng)主要分成四個部分:粉塵傳感器測量空氣中的粉塵濃度,液晶顯示屏顯示實時數(shù)值,按鍵上下調(diào)整設(shè)定的閾值,當(dāng)測量到的實時數(shù)值超過所設(shè)定的閾值時,蜂鳴器發(fā)出聲音報警。2.1 系統(tǒng)方案設(shè)計本系統(tǒng)的工作流程就是首先由粉塵傳感器測量周圍環(huán)境中的

8、粉塵的濃度,然后通過ADC0832模數(shù)轉(zhuǎn)換器將模擬量轉(zhuǎn)換為數(shù)字量,之后再將數(shù)字量送入STC89C52單片機中,通過單片機內(nèi)部的數(shù)據(jù)以及程序處理,將測量到的數(shù)據(jù)傳輸?shù)揭壕э@示屏上顯示出來,我們可以通過按鍵模塊進(jìn)行設(shè)置閾值,當(dāng)粉塵傳感器實時監(jiān)測到的粉塵濃度超出所設(shè)置的閾值時,蜂鳴器會產(chǎn)生報警。系統(tǒng)的總體框圖如下圖2.1所示:液晶顯示單片機STC89C52ADC0832粉塵傳感器按鍵模塊蜂鳴器報警電源部分圖2.1 總體結(jié)構(gòu)框圖2.2 主控制器模塊選擇1、方案一:我們可以采用CPLD作為主控單元,其中文是復(fù)雜可編程邏輯器件,因為它是借助集成開發(fā)軟件平臺,用原理圖、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件

9、,所以這就使CPLD可以輕易地實現(xiàn)各種復(fù)雜的邏輯功能,并且這個器件編程靈活、適用范圍廣、設(shè)計制造的成本較低、開發(fā)工具先進(jìn),尤其是這個器件對設(shè)計者的硬件要求不高。但是本設(shè)計只用到了很簡單的數(shù)據(jù)傳輸以及處理的功能,并不需要復(fù)雜的邏輯功能,并且從價格方面來考慮,這個方案并不適合我們這個設(shè)計。2、方案二:采用STC89C52單片機作為主控單元,分析我們的設(shè)計方案就可以得出STC89C52單片機最為適合,因為STC89C52單片機控制比較簡單,但是功能強大,其功耗和電壓都比較低,便于供電,方便隨身攜帶,單片機的編程語言也是比較基礎(chǔ)和簡單,出現(xiàn)錯誤也容易檢查。還有一點就是CPLD無法媲美的,那就是STC8

10、9C52單片機價格十分便宜,而且非常容易購買。2.3 按鍵的選擇1、方案一:采用矩陣式鍵盤,這種鍵盤適用于按鍵需求非常多的情況,這種時候使用矩陣式鍵盤可以減少使用單片機的輸入輸出口,但是也存在一定的缺點,那就是增加了編程的難度。2、方案二:采用獨立式按鍵電路,獨立式按鍵最顯著的特點就是一個按鍵控制一個輸入輸出口,與其他輸入輸出口互不干擾。這個鍵盤的優(yōu)點就是編程相對簡單,但是隨之而來的缺點也很明顯,那就是一個按鍵對應(yīng)一個輸入輸出口,無法適應(yīng)按鍵需求過多的設(shè)計。結(jié)合我們的設(shè)計要求來看,在這個設(shè)計中,我們只用到兩個按鍵,一個負(fù)責(zé)增,一個負(fù)責(zé)減,再考慮到編程的難度問題,所以我們選擇獨立式按鍵。2.4

11、顯示模塊的選擇1、方案一:采用數(shù)碼管來顯示實時濃度。數(shù)碼管有很明顯的優(yōu)點,那就是顯示速度快,而且使用也非常方便。但是缺點就是它無法顯示字母以及百分比符號。2、方案二:用LCD液晶顯示屏進(jìn)行顯示。LCD液晶顯示屏的優(yōu)點就是顯示的內(nèi)容豐富且清晰,能顯示出很多東西,比如字母、百分比符號以及一些特殊字符。結(jié)合我們的設(shè)計要求來看,在這個設(shè)計中,我們測量到的粉塵濃度是以百分比形式展現(xiàn)的,所以我們選用LCD液晶顯示屏。2.5 電源的選用1、方案一:采用5V蓄電池供電。蓄電池的優(yōu)點就是輸出的電壓極其穩(wěn)定,但是缺點就是體積比較龐大,不方便隨身攜帶。2、方案二:采用移動電源USB供電,移動電源也能輸出比較穩(wěn)定的5

12、V電壓,并且它的體積小,攜帶方便。結(jié)合我們的設(shè)計要求來看,我們這個系統(tǒng)要求能夠隨身攜帶,所以我們選擇移動電源來供電。第三章 系統(tǒng)硬件設(shè)計3.1 GP2Y1010AU0F傳感器GP2Y1010AU0F粉塵傳感器的工作原理就是光學(xué)傳感系統(tǒng)。該傳感器靈敏度比較高,甚至可以檢測到直徑只有0.8微米的顆粒。,可以很方便的用來檢測工人的生產(chǎn)工作環(huán)境。3.1.1 內(nèi)部原理圖 圖3.1 GPP2Y1010AUOF傳感器原理圖夏普公司的灰塵傳感器GP2Y1010AU的內(nèi)部結(jié)構(gòu)如圖3.1所示,這款灰塵傳感器內(nèi)部有一個氣流發(fā)生器,可以吸入當(dāng)前需要測量的環(huán)境的空氣,當(dāng)空氣被吸入后,內(nèi)部的紅外發(fā)光二極管發(fā)出紅光,然后電

13、路通過探測到的經(jīng)由粉塵反射回來的光線來判斷當(dāng)前空氣中的粉塵濃度。3.1.2 主要參數(shù)表3.1 GPP2Y1010AUOF傳感器主要參數(shù)主要參數(shù)技術(shù)條件備注靈敏度0.5V/(0.1mg/m3)輸出電壓0.9V(TYP)無灰塵供電電流11mA體積規(guī)格46.0*30.0*17.6單位:mm兼容性兼容無鉛ROHS指令供應(yīng)電壓Vcc-0.3+7.0單位:V輸入終端電壓-0.3VccVled單位:V適應(yīng)溫度-1065單位:3.1.3 電光特性表3.2 GP2Y1010AU0F傳感器的電光特性(=25,=5V)參數(shù)符號工作條件最小典型值最大單位靈敏度K0.350.50.65V/(0.1mg/m³)

14、無粉塵時的輸出電壓Voc00.91.5V輸出電壓范圍=4.7K3.4-VLED端子電流LED端子=0V-1020mA消耗電流=-1120mA3.1.4 LED的輸入條件表3.3 GP2Y1010AU0F傳感器LED的輸入條件參數(shù)符號數(shù)值單位脈沖周期T101ms脈沖寬度0.320.02ms工作電源電壓50.5V3.1.5 LED輸入端子的輸入條件圖3.2 LED輸入端子的輸入條件圖圖3.3 采樣時序的脈沖輸出綜合表3.1、表3.2、表3.3可知,夏普的GP2Y1010AU0F粉塵傳感器輸出電壓類型為模擬電壓,這個輸出的模擬電壓的值與粉塵濃度成正比。如圖3.2所示,GP2Y1010AU0F灰塵傳感

15、器的1、2、3號引腳的作用就是為LED供電,當(dāng)你需要進(jìn)行測量時,在3號引腳上加一個方波,其周期為10ms、低電平為0.32ms,以這個方波作為檢測粉塵濃度的一個周期。從圖3.2可知,我們可以在1號引腳外串聯(lián)一個150的電阻,然后再并聯(lián)一個220uF的電容。這樣的接法增加了整個電路的穩(wěn)定性。根據(jù)圖3.3可看出,我們首先需要開啟內(nèi)部的紅外發(fā)光二極管并等待280us,之后再讀取輸出值。再結(jié)合圖3.2的脈沖驅(qū)動波形可知,整個脈沖時間總共需要320us。所以,再過40us之后,內(nèi)部的紅外發(fā)光二極管才會關(guān)閉。3.1.6 電路接線圖3.4 灰塵傳感器引腳表3.4 灰塵傳感器對應(yīng)的Arduino引腳引腳號傳感

16、器引腳Arduino引腳1V-LED5V(串聯(lián)一個150歐的電阻)2LED-GNDGND3LED數(shù)字口24S-GNDGND5模擬口065V結(jié)合圖3.4和表3.4可得出,將灰塵傳感器的引腳1和6連接起來再接到電路板的1或6號引腳,將其引腳2和5連接起來再與電路板的2或5號引腳相連接,再將傳感器的3號引腳與電路板的數(shù)字口2相連接,最后將傳感器的輸出口5號引腳與模擬口0連接起來。具體連接示意圖見圖3.5。圖3.5 粉塵傳感器引腳連接實物圖然后添加一個電阻和一個電容,接線如下圖3.6所示:圖3.6 粉塵傳感器引腳連接原理圖3.1.7 檢測方法粉塵傳感器通電后,可以在一秒鐘內(nèi)穩(wěn)定、正常的工作,并且可以進(jìn)

17、行檢測。粉塵傳感器輸出電壓的絕對值,并不是判定是否檢測出結(jié)果的依據(jù)。我們一般使用的方法是確定無塵狀態(tài)下的輸出電壓。當(dāng)灰塵和煙霧被檢出時,它們輸出之間的差異是:一般煙霧是細(xì)小顆粒,密度高,會產(chǎn)生擴散式的大范圍漂移。而灰塵、粉塵是低密度的大顆粒,間歇地進(jìn)入灰塵傳感器的有效檢測范圍。就如圖3.7所示,煙霧被灰塵傳感器檢測出來的表現(xiàn)就是連續(xù)地出現(xiàn)較高的輸出電壓,而灰塵則是偶爾出現(xiàn)一次較高的輸出電壓。所以,我們可以通過脈沖輸出的波形,也就是輸出的電壓值來判斷所檢測的環(huán)境內(nèi)是否有香煙的煙或者灰塵。當(dāng)環(huán)境處于無塵狀態(tài)時,這個時候灰塵傳感器的輸出電壓才是判斷空氣中是否有煙或者灰塵的標(biāo)準(zhǔn)。然而無塵時的輸出電壓又

18、會受到發(fā)光二極管發(fā)出光線的強弱、傳感器內(nèi)部粉塵的沉積和周圍環(huán)境溫度的影響。一般情況下,在長期供電時,可以減少發(fā)光二極管的輸出,從而減少無塵輸出電壓和檢測靈敏度。此時輸出電壓和靈敏度應(yīng)該按照標(biāo)準(zhǔn)進(jìn)行校正。另外,也要定期清理器件盒子內(nèi)部沉積的粉塵。圖3.7 檢測為灰塵、煙的輸出波形3.2 ADC0832模數(shù)轉(zhuǎn)換器ADC0832是一款逐次逼近式、8位分辨率且是雙通道的A/D轉(zhuǎn)換芯片。因為它不僅不占用空間而且性價比還高,所以在單片機領(lǐng)域深受歡迎。當(dāng)然,我們選用ADC0832模數(shù)轉(zhuǎn)換芯片還是因為它有其他特點,當(dāng)使用移動電源供電時,移動電源的輸出電壓是5V,這時候ADC0832模數(shù)轉(zhuǎn)換芯片的輸入電壓只會在

19、0到5V之間。其次,這個芯片的轉(zhuǎn)換時間很快,只有32S,而且功耗也很低,只有15mW。最為重要的就是它的輸入輸出電平是與TTL/CMOS相兼容的。圖3.8 芯片頂視圖芯片接口(如圖3.8所示)說明:· 低電平信號輸入口。· CH0 模擬量信號輸入口0。· CH1 模擬量信號輸入口1。· GND 芯片接地引腳。· DI 數(shù)字量信號輸入口,還可以選擇控制通道。· DO 數(shù)字量信號輸出口,也可以將模擬量信號轉(zhuǎn)換成數(shù)字量輸出。· CLK 芯片時鐘輸入。· Vcc/ 電源輸入口。圖3.9 ADC0832 與單片機的接口電路A

20、DC0832是一款具有雙通道的A/D轉(zhuǎn)換芯片,這樣的雙通道可以用來驗證傳輸?shù)臄?shù)據(jù)是否準(zhǔn)確,可以有效地減少誤差,而且還能使模擬量和數(shù)字量之間的轉(zhuǎn)換速度變快并且保證它的性能穩(wěn)定。這個模數(shù)轉(zhuǎn)換芯片具有一個單獨的使能輸入口,就是口,這樣可以使芯片處于多器件掛接的情況下變得很方便,同時也便于處理器控制它。當(dāng)我們想選擇另一個通道的功能時,我們可以通過DI引腳來進(jìn)行變更。一般情況下,ADC0832模數(shù)轉(zhuǎn)換芯片與單片機之間連接時,只用到了四個端口:低電平使能信號口()、時鐘輸入信號口(CLK)、數(shù)字量信號輸出口(DO)、數(shù)字量信號輸入口(DI)。具體引腳連接見圖3.9。但是因為數(shù)字量信號輸入輸出口(DO和DI

21、)不能同時有效,而且這個輸入輸出口與單片機之間是雙向連接,所以我們可以把這兩個端口并聯(lián)到同一根數(shù)據(jù)線上。當(dāng)端口接收到的信號是高電平時,芯片沒法使用,所以其他三個端口的電平無所謂。當(dāng)開始要啟用這塊芯片時,我們必須要將端口給低電平,此時芯片開始將模擬量信號轉(zhuǎn)換到數(shù)字量信號,與此同時,處理器會向時鐘輸入端口(CLK)輸入時鐘脈沖信號,而數(shù)字量信號輸入輸出端口(DO和DI)則會根據(jù)數(shù)字量信號輸入端口(DI)的信號來選擇通道實現(xiàn)其功能。在芯片給時鐘輸入端口第一個低電平信號之前,數(shù)字量信號輸入口必須要是高電平,這樣表示的就是起始信號。當(dāng)時鐘輸入端口接下來的兩個低電平到來之前,我們應(yīng)當(dāng)在數(shù)字量信號輸入端口輸

22、入兩位數(shù)據(jù)來選擇通道功能。具體數(shù)據(jù)以及其對應(yīng)的功能見表3.5。表3.5 DI端口數(shù)據(jù)與其功能第一位數(shù)據(jù)第二位數(shù)據(jù)對應(yīng)功能10只對模擬量信號輸入通道0(CH0)進(jìn)行單通道轉(zhuǎn)換11只對模擬量信號輸入通道1(CH1)進(jìn)行單通道轉(zhuǎn)換00將CH0作為正輸入端,CH1作為負(fù)輸入端01將CH0作為負(fù)輸入端,CH1作為正輸入端當(dāng)?shù)谌齻€低電平到來之后,數(shù)字量信號輸入口(DI)就被禁用,這個時候只使用數(shù)字量信號輸出口(DO)來讀取轉(zhuǎn)換數(shù)據(jù)。當(dāng)開始給第四個低電平時就由數(shù)字量信號輸出口(DO)輸出之前讀取的轉(zhuǎn)換數(shù)據(jù)的最高位,隨后的每一次低電平,就輸出下一位數(shù)據(jù),一直到輸出最低位數(shù)據(jù),這樣一個周期下來就代表輸出一個字節(jié)

23、的數(shù)據(jù)。在這之后就輸出下一個相反的字節(jié),也就是先輸出最低位數(shù)據(jù),然后一直到最高位數(shù)據(jù)輸出完成,這也代表著一次模數(shù)轉(zhuǎn)換的結(jié)束。轉(zhuǎn)換完成后,往端口輸入高電平來禁用芯片。具體時序見圖3.10。圖3.10 ADC0832時序圖當(dāng)ADC0832模數(shù)轉(zhuǎn)換器采用單通道模擬信號時,這時候它的輸入電壓則是0到5V,此時它的電壓精度為19.53mV。如果當(dāng)CH0、CH1作為正負(fù)輸入端口輸入信號時,我們可以提高輸入電壓的范圍,這樣就可以提高數(shù)模轉(zhuǎn)換的寬度。但是如果負(fù)輸入端的電壓大于正輸入端的電壓時,我們只能得到00H這個數(shù)據(jù)。3.3 LCD1602液晶顯示屏3.3.1 LCD1602的特性LCD1602是一款工業(yè)級

24、的液晶顯示屏,可以同時顯示16x2即32個字符。在平常的生活中,我們在很多方面都能接觸到液晶顯示屏,比如計算機、電子手表以及很多電子產(chǎn)品,主要用來顯示字母、數(shù)字以及一些特殊符號。在單片機領(lǐng)域,我們一般通過數(shù)碼管或者液晶顯示屏來讀取數(shù)據(jù)。相對于數(shù)碼管來說,液晶顯示屏有以下幾個優(yōu)點:1、顯示的內(nèi)容清晰放大我們可以看出,液晶顯示屏內(nèi)部由一個又一個小點組成,當(dāng)其中任何一個點收到高電平信號后,這個點就會保持常亮,而不會像數(shù)碼管那樣需要不斷刷新新亮點。所以,這就導(dǎo)致了液晶顯示屏顯示的內(nèi)容很清晰。2、數(shù)字式接口液晶顯示器都是數(shù)字式的,和單片機的接口更加簡單可靠,操作也更加方便。3、體積小、重量輕液晶顯示器通

25、過顯示屏上的電極控制液晶分子狀態(tài)來達(dá)到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。4、功耗低相對而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動IC上,因而耗電量比其它顯示器要少得多。字符型液晶顯示屏是用來專門讀取數(shù)字、字母和特殊符號的,目前常用的型號都有:16行1列、16行2列、20行2列和40行2列等。在本系統(tǒng)中,我們選取的是一個16行2列的字符型液晶顯示器(如圖3.11/3.12所示)。圖3.11 液晶顯示屏正面圖3.12 液晶顯示屏背面3.3.2 LCD1602的使用說明1、 引腳說明:表3.6 LCD1602液晶顯示屏引腳引腳號液晶顯示屏引腳引腳使用說明1GND接地2接

26、5V電源3液晶顯示器對比度調(diào)整端4寄存器選擇:高電平-數(shù)據(jù)寄存器;低電平-指令寄存器5R/W讀寫信號線:高電平-讀操作;低電平-寫操作6E使能端,當(dāng)高電平跳變到低電平時,液晶模塊執(zhí)行命令7148位雙向數(shù)據(jù)線15背光源正極16背光源負(fù)極2、LCD1602的RAM地址映射以及標(biāo)準(zhǔn)字庫表LCD1602液晶模塊內(nèi)部的存儲器已經(jīng)存儲了160個不同的點陣字符圖形,每一個字符都用一個八位二進(jìn)制數(shù)來編碼,比如大寫的英文字母“A”的代碼是01000001B(41H),當(dāng)我們需要顯示A這個字母時,我們可以在程序中輸入01000001B,也就是41H,這樣就可以在液晶顯示屏上顯示出英文字母A。這個液晶顯示屏的讀寫和

27、光標(biāo)的操作都是通過指令編程來實現(xiàn)的。具體編程指令見下表3.7。(1代表高電平,0代表低電平)。表3.7 液晶顯示屏的編程指令指令作用1用于清除顯示屏的顯示內(nèi)容。2復(fù)位光標(biāo)位置,返回到00H。3確定光標(biāo)移動方向,1右移,0左移。S:所有文字或數(shù)字是否左移或右移,高電平有效;4控制字符、數(shù)字等顯示開關(guān)。D:控制整體是否顯示的開關(guān),1顯示,0不顯示;C:控制光標(biāo)是否顯示的開關(guān),1開,0關(guān);B:控制光標(biāo)是否閃爍,1閃爍,0不閃爍;5使光標(biāo)或者顯示文字移位,1移動文字,0移動光標(biāo)6功能設(shè)置,14位總線,08位總線。N:控制顯示行數(shù),1雙行,0單行;F:控制顯示的行列陣,15行10列,05行7列;7設(shè)置字

28、符發(fā)生器的RAM地址。8設(shè)置DDRAM地址。9得知顯示屏是否忙信號,1忙,不接收任何命令,0不忙,可以接收數(shù)據(jù)。10寫入數(shù)據(jù)11讀取數(shù)據(jù)在我們讓液晶顯示屏執(zhí)行每一條指令之前,我們一定要確保模塊的忙信號處于低電平,否則將無法執(zhí)行這條指令。如果要顯示字符,我們就要通過輸入對應(yīng)的地址編碼來告訴液晶顯示屏要顯示的字符的位置在哪里。圖3.13 LCD1602內(nèi)部顯示地址具體顯示地址如圖3.13所示。打個比方,我們現(xiàn)在要求顯示的字符的地址是40H,但是我們不能直接寫入40H,因為按照寫入顯示地址的要求來說,一定要確保輸入數(shù)據(jù)的最高位D7為高電平,也就是10000000B,在此基礎(chǔ)上我們再加上要求顯示的字符

29、的地址40H,也就是10000000B(80H)+01000000B(40H)=11000000B(C0H)。但是一定要注意的就是在每次輸入指令前都要判斷液晶模塊是否處于忙狀態(tài)。3.4 STC89C52單片機主控系統(tǒng)在整個設(shè)計中起著居中調(diào)度的作用,它不僅需要檢測出按鍵是否閉合,接收粉塵傳感器輸送過來的數(shù)據(jù),還要輸出數(shù)據(jù),在液晶顯示屏上進(jìn)行顯示。所以在本設(shè)計中我們選用STC89C52單片機作為整個系統(tǒng)的“大腦”。STC89C52單片機引腳眾多,足足有40個引腳,這里面包括時鐘電路、4KB的閃存、128B的RAM、2個定時/計數(shù)器、5個中斷源和2個優(yōu)先級、1個全雙工串行通信口和4個并行口,具體結(jié)構(gòu)

30、圖如圖3.14所示。圖3.14 STC89C52單片機結(jié)構(gòu)圖3.4.1 STC89C52單片機主要特性1.CPU的位數(shù)為8位。2.擁有128B的數(shù)據(jù)存儲器,可以用來存放外部輸入進(jìn)來的數(shù)據(jù)以及經(jīng)過單片機程序處理過的,即將輸出的數(shù)據(jù)。3.擁有4KB的程序存儲器,可以用來存放用戶編寫好的程序和一些初始數(shù)據(jù)。4.擁有4個8位的輸入輸出口,分別是P0、P1、P2、P3這四個引腳,這四個口既可以用來輸入數(shù)據(jù),也可以用來輸出數(shù)據(jù)。5.擁有2個定時/計數(shù)器,這兩個既可以當(dāng)做計數(shù)器使用,用來對外部輸入信號的計數(shù),也可以將它當(dāng)做定時器使用,用來延時或者定時導(dǎo)通。6.擁有5個中斷源和2個優(yōu)先級,這個單片機的中斷系統(tǒng)

31、都是低電平有效。7.擁有1個全雙工的串行輸入輸出口,這個串行輸入輸出口一般是用于單片機與單片機或者是單片機與微機之間通信。8.片內(nèi)振蕩器和時鐘產(chǎn)生電路,但是這里面的石英晶體和微調(diào)電容需要外接。最高允許振蕩頻率為12MHz。 圖3.15 STC89C52單片機管腳圖3.4.2 STC89C52單片機引腳說明1.時鐘電路引腳XTAL1和XTAL2:XTAL2(18腳):這個引腳是振蕩電路反相放大器的輸出端,振蕩電路的頻率就是晶體固有頻率。當(dāng)我們的設(shè)計要求中需要用到外部時鐘電路時,就可以通過這個引腳來讀取外部時鐘脈沖。所以當(dāng)我們要檢查振蕩電路是否在正常工作,我們就可以通過示波器來查看該引腳是否有脈沖

32、信號輸出。XTAL1(19腳):這個引腳是振蕩電路反相放大器的輸入端。當(dāng)我們用到外部時鐘時,這個引腳必須接地。2.控制信號引腳RST,ALE,PSEN和EA:RST/VPD(9腳):這個引腳的作用就是輸入復(fù)位信號,高電平有效。這個引腳還有另一個功能就是可以被用來當(dāng)做備用電源。當(dāng)單片機的引腳出現(xiàn)故障時,無法供給單片機正常的電壓時,可以在這個引腳輸入兩個機器周期的高電平,這樣就可以完成信號復(fù)位。這個引腳還可以在斷電時給RAM繼續(xù)供電,這樣可以保證存儲在RAM中的信息不會丟失。ALE/PROG(30腳):地址鎖存允許信號端。當(dāng)單片機正常得電后,這個引腳就會持續(xù)的向外發(fā)送正脈沖信號,這個正脈沖信號的頻

33、率只有振蕩器頻率的六分之一。當(dāng)CPU與片外存儲器沒有關(guān)聯(lián)時,這個引腳就會一直向外輸出正脈沖,這個脈沖的頻率僅為振蕩頻率的六分之一,所以這個正脈沖可以用來對外輸出時鐘或者是定時信號。當(dāng)CPU與片外存儲器有關(guān)聯(lián)時,這個引腳就會鎖住控制信號的低8位地址。當(dāng)我們想判斷這個單片機是好還是壞的,我們就可以通過示波器來查看此引腳是否具有脈沖輸出,有的話,這個單片機就是好的。PSEN(29腳):程序存儲允許輸出信號端。當(dāng)單片機在訪問片外程序存儲器時,這個引腳就會對外固定的輸出負(fù)脈沖信號,用來讀取片外程序存儲器的選通信號。當(dāng)這個引腳有效時,就代表著單片機允許讀取EPROM/ROM中的指令碼。當(dāng)你想要檢查單片機上

34、電后,其中的CPU是否能夠讀取到EPROMROM中的指令碼時,你就可以通過使用示波器來測量該引腳是否有脈沖輸出,如果有脈沖輸出則代表該引腳有效。EA/Vpp(31腳):片外程序存儲器地址允許輸入端/固化編程電壓輸入端。當(dāng)這個引腳輸入高電平時,單片機中的CPU只會讀取片內(nèi)存儲器,然后執(zhí)行其中存儲的程序和指令,但是當(dāng)單片機內(nèi)的計數(shù)器數(shù)值超過0FFFH時,單片機則會自動去讀取并執(zhí)行片外程序存儲器中的程序和指令。但是當(dāng)這個引腳接收到低電平或者此引腳接地時,單片機中的CPU只會讀取并執(zhí)行片外存儲器中的程序和指令,不會去理會片內(nèi)程序存儲器里的程序和指令。3.輸入輸出端口P0、P1、P2、P3:P0口(39

35、32腳):P0端口包括P0.0-P0.7共8個引腳,P0口的8個引腳都是準(zhǔn)雙向的輸入輸出口,還具有漏極開路的特點,這個特點確保了每個引腳都能驅(qū)動8個LS型TTL負(fù)載。當(dāng)P0口向內(nèi)輸送外部數(shù)據(jù)時,當(dāng)這個引腳向單片機內(nèi)輸入數(shù)據(jù)時,應(yīng)該往P0口鎖存器里寫入全1,這個時候就代表著全部引腳禁用,可以當(dāng)做高阻抗輸入。這個就是準(zhǔn)雙向口的意思。當(dāng)單片機讀取外部存儲器的數(shù)據(jù)和程序時,此引腳會低8位地址和8位數(shù)據(jù)的復(fù)用總線,此時,引腳內(nèi)部的上拉電阻啟用。P1口(18腳):P1端口包括P1.0-P1.7共8個引腳,P1口的8個引腳也都是準(zhǔn)雙向的輸入輸出口,并且內(nèi)部還帶有上拉電阻。因為此引腳沒有P0口漏極開路的特點,

36、所以P1口的每個引腳只能驅(qū)動4個LS型TTL負(fù)載。當(dāng)P1口向單片機內(nèi)輸入數(shù)據(jù)時,應(yīng)該往P1口鎖存地址(90H)寫入全1,這樣就能使P1口的所有引腳被內(nèi)部的上拉電阻拉成高電平。P2口(2128腳):P2端口包括P2.0-P2.7共8個引腳,P2口的8個引腳也都是準(zhǔn)雙向的輸入輸出口,并且內(nèi)部還帶有上拉電阻。因為此引腳沒有P0口漏極開路的特點,所以P2口跟P1口一樣,每個引腳只能驅(qū)動4個LS型TTL負(fù)載。當(dāng)讀取片外存儲器里的程序和數(shù)據(jù)時,P2端口輸出高8位地址。P3口(1017腳):P3端口包括P3.0-P3.7共8個引腳,P3口的8個引腳也都是準(zhǔn)雙向的輸入輸出口,并且內(nèi)部還帶有上拉電阻。因為此引腳

37、沒有P0口漏極開路的特點,所以P3口的每個引腳只能驅(qū)動4個LS型TTL負(fù)載。P3口與P1、P2、P3口有很大的不同,因為P3口的每個引腳還有第二個作用。具體見表3.8:表3.8 P3口引腳第二作用引腳功能P3.0接收串行口數(shù)據(jù)P3.1發(fā)送串行口數(shù)據(jù)P3.2輸入外部中斷信號0P3.3輸入外部中斷信號1P3.4定時/計數(shù)器0的外部計數(shù)輸入P3.5定時/計數(shù)器1的外部計數(shù)輸入P3.6外部數(shù)據(jù)存儲器寫選通P3.7外部數(shù)據(jù)存儲器讀選通3.5 主控電路模塊主控系統(tǒng)的電路如圖3.16所示。這里面包括了單片機、上拉電阻、復(fù)位電路和時鐘電路等。STC89C52單片機可以在4到5.5V的電壓下開始工作。但是我們一

38、般都會給單片機5V的直流電源,通常就是讓單片機的40號引腳接5V直流電源,而單片機的20號引腳接地。復(fù)位電路在整個系統(tǒng)中的作用就是恢復(fù)單片機的起始狀態(tài)。在整個系統(tǒng)開始運行時,正常情況下就是讀取外部數(shù)據(jù),內(nèi)部處理數(shù)據(jù),在輸送到液晶顯示屏上顯示,但是如果在運行過程中收到了周圍環(huán)境或者人為的干擾,此時有可能會導(dǎo)致單片機執(zhí)行的程序出現(xiàn)錯誤,這個時候我們就可以按下復(fù)位電路中的復(fù)位按鈕,這樣單片機就會回到它的起始狀態(tài),重新執(zhí)行程序或指令。如果說CPU時單片機的大腦,那么時鐘電路就是單片機的心臟,整個單片機工作的速度都是由時鐘電路來控制的。時鐘電路通過向單片機發(fā)送一個正弦波作為基準(zhǔn)來調(diào)整單片機執(zhí)行程序和指令

39、的速度。XTAL1和XTAL2這兩個時鐘電路引腳分別為反向放大器的輸入和輸出,該反向放大器可以配置為片內(nèi)振蕩器。如需要使用外部時鐘源驅(qū)動器件,XTAL2引腳應(yīng)該不接。圖3.16 主控電路3.6 顯示模塊顯示模塊通過液晶顯示屏顯示所測量到的數(shù)據(jù),因為此液晶顯示屏顯示清晰,便于我們準(zhǔn)確的得到數(shù)據(jù)。液晶顯示屏的命令操作腳是RS、RW、EN,分別對應(yīng)單片機的P3.5、P3.6、P3.7這三個引腳,數(shù)據(jù)引腳D0D7分別對應(yīng)接單片機的P1口的8個引腳。具體電路圖如圖3.17所示:圖3.17 液晶顯示屏連接電路3.7報警模塊本設(shè)計中蜂鳴器報警電路采用NPN型S8550三極管驅(qū)動,當(dāng)單片機的P1.3口輸出低電

40、平時,三極管的發(fā)射結(jié)正偏,集電結(jié)反偏,三極管飽和導(dǎo)通,此時發(fā)光二極管和蜂鳴器發(fā)出聲光報警。當(dāng)單片機的P1.3口輸出高電平時,三極管截止,聲光報警停止工作。具體電路圖如圖3.18所示:圖3.18 蜂鳴器工作原理圖3.8 按鍵模塊液晶顯示屏里的報警閾值就是通過按鍵來設(shè)置,本設(shè)計中總共用到兩個按鍵,一個加數(shù)值鍵,一個減數(shù)值鍵。具體電路圖如圖3.19所示:圖3.19 按鍵模塊電路圖3.9粉塵傳感器模塊電路GP2Y1010AU0F粉塵傳感器可以有效地檢測出很細(xì)微的顆粒,比如抽煙吐出來之后散開的煙霧。傳感器的1號引腳接了一個220uF的電解電容和150歐姆的電阻。3號引腳接到單片機的P3.2外部中斷0口,

41、5號引腳則是粉塵濃度的模擬量輸出腳,接在模數(shù)轉(zhuǎn)換器ADC0832的通道1上。具體電路圖如圖3.20所示:圖3.20 粉塵模塊電路圖3.10電源模塊在本設(shè)計中我們使用移動電源來給整個系統(tǒng)供電,經(jīng)過對每個芯片的分析之后,我們發(fā)現(xiàn)移動電源所提供的5V直流電源足以支持整個系統(tǒng),并且移動電源無論是更換還是攜帶,都很便捷。電源模塊電路如圖3.21所示,這里面的SW1就是開關(guān)電源,負(fù)責(zé)整個電路的通斷,電路是否導(dǎo)通我們無法得知,所以就加了一個二極管,這樣就可以直觀的觀察電路是否導(dǎo)通,R6為二極管的限流電阻,C5和C6為電源的濾波電容。圖3.21 電源接口電路第四章 系統(tǒng)軟件設(shè)計4.1 程序結(jié)構(gòu)分析在整個設(shè)計中

42、,分別有液晶屏顯示程序、粉塵濃度測量程序、按鍵設(shè)定報警閾值程序,這三個子程序都要通過主程序來居中調(diào)度。首先通過粉塵傳感器測量到周圍環(huán)境中粉塵的濃度,然后將數(shù)據(jù)輸送到主程序中,經(jīng)過主程序的處理,再將數(shù)據(jù)送到液晶顯示屏上顯示,然后通過按鍵來設(shè)定報警閾值。4.2系統(tǒng)程序流圖主程序的主要功能是讀取粉塵傳感器測量出來的數(shù)據(jù),并加以處理。粉塵傳感器的測量速度為1秒1次,主程序不間斷的讀取這些數(shù)據(jù),并將此數(shù)據(jù)與設(shè)定的報警閾值相比較,當(dāng)前的濃度值沒有超過報警閾值,沒反應(yīng)。但是一旦超出報警閾值,主程序則會向報警電路發(fā)送信號,蜂鳴器響。其程序流程見圖4.1所示。單片機處理,判斷否超過設(shè)定報警值?否是程序初始化開始

43、 A/D轉(zhuǎn)換并液晶顯示進(jìn)入報警子程序灰塵信號采集 圖4.1 系統(tǒng)工作流程圖4.2.1 粉塵傳感器初始化程序流程圖在粉塵傳感器工作之前需要進(jìn)行初始化,流程圖如下:是否發(fā)復(fù)位命令發(fā)跳過ROM命令 初始化成功? 結(jié)束圖4.2 粉塵傳感器初始化程序流程圖4.2.2 讀粉塵濃度子程序流程圖這個程序的主要功能就在于讀取粉塵傳感器測量出來的數(shù)據(jù),并將此數(shù)據(jù)送入數(shù)據(jù)寄存器保存。其程序流程圖如下:發(fā)復(fù)位命令發(fā)跳過ROM命令 讀取粉塵濃度命令 移入數(shù)據(jù)寄存器 結(jié)束圖4.3 粉塵濃度子程序流程圖第5章 系統(tǒng)的安裝與調(diào)試5.1 安裝步驟1.檢查元件的好壞首先按照我們之前的設(shè)計思路買好我們所需要的元器件,然后按照每個原器件自己的檢測方法來檢測此元器件是否良好,當(dāng)確定所有元器件都是好的之后再可以焊接,防止焊接好之后才發(fā)現(xiàn)有壞的元器件,這樣就不方便改正了。2.放置、焊接各元件當(dāng)我們完成第一步檢查之后,我們就可以按照原理圖開始布置各個元器件的位置,在這過程中我們要先放置焊接要求較低的元器件,最后焊接要求較

溫馨提示

  • 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

提交評論