基于51單片機的空氣智能加濕器的設(shè)計論文正文_第1頁
基于51單片機的空氣智能加濕器的設(shè)計論文正文_第2頁
基于51單片機的空氣智能加濕器的設(shè)計論文正文_第3頁
基于51單片機的空氣智能加濕器的設(shè)計論文正文_第4頁
基于51單片機的空氣智能加濕器的設(shè)計論文正文_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于51單片機的空氣智能加濕器的設(shè)計目 錄1 任務(wù)來源意義及目的22 設(shè)計方案22.1 總體設(shè)計22.2 實現(xiàn)方式32.3 理論基礎(chǔ)32.3.1 單片機32.3.2 DS18B20傳感器42.3.3 1602LCD液晶顯示屏53 硬件設(shè)計63.1 設(shè)計方案63.2 電路圖73.3 信號分析83.4 功能描述83.5 復(fù)位電路83.6液位定位及加濕器的光電開關(guān)93.7 1602顯示屏104 軟件設(shè)計114.1整體設(shè)計及說明114.2 DS18B20流程設(shè)計124.3 1602字符型LCD流程設(shè)計155 系統(tǒng)調(diào)試176 總結(jié)17致 謝18附錄一:1602LCD簡介20附錄二 LCD控制及顯示子程序

2、24摘要:在日常生活中加濕器得到了廣泛的應(yīng)用,但是現(xiàn)有的加濕器都需要手工控制開啟和關(guān)閉并且不具備對室內(nèi)空氣溫濕度的監(jiān)測,人們在使用過程中存在過度加濕和干燒的問題,不僅給室內(nèi)空氣舒適度造成負(fù)面影響并且還存在安全隱患。因此開發(fā)設(shè)計一種價格低廉、功耗低、具有自動控制功能的加濕器顯得尤為必要。本設(shè)計采用智能控制,以AT80S51單片機為核心,外接輔助電路,通過實現(xiàn)加濕器的防干燒、聲光報警、智能開啟和關(guān)閉以及室內(nèi)溫濕度的顯示功能基本實現(xiàn)加濕器的智能化。關(guān)鍵詞:單片機、智能、加濕器、相對濕度、傳感器1 任務(wù)來源意義及目的在日常生活中加濕器得到了廣泛的應(yīng)用,但是現(xiàn)有的加濕器都需要手工控制開啟和關(guān)閉并且不具備

3、對室內(nèi)空氣溫濕度的監(jiān)測,人們在使用過程中存在過度加濕和干燒的問題,不僅給室內(nèi)空氣舒適度造成負(fù)面影響并且還存在安全隱患。因此開發(fā)設(shè)計一種價格低廉、功耗低、具有自動控制功能的加濕器顯得尤為必要。本設(shè)計采用智能控制,以AT80S51單片機為核心,外接輔助電路,通過實現(xiàn)加濕器的防干燒、聲光報警、智能開啟和關(guān)閉以及室內(nèi)溫濕度的顯示功能基本實現(xiàn)加濕器的智能化。2 設(shè)計方案2.1 總體設(shè)計智能加濕器需滿足以下要求:1)相對濕度低于40時自動加濕;2)用戶可以設(shè)置系統(tǒng)溫濕度報警值;3)由5V穩(wěn)壓直流電源供電,提供溫濕度調(diào)節(jié)控制信號,實現(xiàn)自動控制;4)檢測得到的數(shù)據(jù)可以通過顯示模塊顯示。硬件設(shè)計不僅要滿足系統(tǒng)需

4、求,還要滿足功能和外形尺寸要求。根據(jù)設(shè)計要求確定了系統(tǒng)的總體方案,包系統(tǒng)由兩個DS18B20溫度傳感器一個水位傳感器、單片機、1602LCD液晶顯示屏、聲光報警器、以及一個光電耦合開關(guān)等部分組成。系統(tǒng)功能原理圖如圖1-1所示,兩個溫度傳感器分別采集室內(nèi)空氣的干濕球溫度,并將采集的溫度傳送至單片機。單片機對這兩個數(shù)據(jù)加以處理并結(jié)合室內(nèi)濕度要求參數(shù)控制加濕器的開啟和閉合。另外,水位傳感器還能監(jiān)測水位,單片機根據(jù)水位高低控制聲光報警裝置。自動加濕器包括加濕模塊、報警模塊、自動斷電模塊。單片機溫度傳感器1溫度傳感器21602LCD顯示屏水位傳感器加濕器開關(guān)聲光報警器圖1-1 自動加濕器功能原理圖2.2

5、 實現(xiàn)方式要達(dá)到自動加濕器功能要做好硬件和軟件設(shè)計和調(diào)試三個方面的工作。首先硬件方面,通過合理的設(shè)計單片機管腳及其他外圍電路的鏈接,使之既有I/O口的功能,又有控制型號的功能。由于時間倉促,沒有找到合適的水位傳感器,在開發(fā)過程中利用三個按鈕開關(guān)代替水位傳感器分別代表高、中、低水位,而加濕器開關(guān)則由一發(fā)光二級管代替,在方正過程中更容易觀察系統(tǒng)開發(fā)效果。這方面的內(nèi)容詳見硬件設(shè)計部分內(nèi)容。其次軟件方面,通過合理設(shè)計軟件的結(jié)構(gòu)和安排子程序,使程序以最簡潔有效的方式實現(xiàn)目的。最后,調(diào)試方面,程序編輯用VW8系列方針器環(huán)境,編輯過程可使用軟件仿真觀察,并對其進行調(diào)試。在程序編輯完成之后使用硬件仿真,最終用

6、燒錄器將程序?qū)懭雴纹瑱C進行實測。本系統(tǒng)分信號的主要有溫度傳感器的輸入信號和單片機輸出的控制信號構(gòu)成。首先由單片機向溫度傳感器發(fā)出讀信號,隨后溫度傳感器做出響應(yīng),單片機待DS18B20完成收集到得溫度信息進行AD處理并存儲為數(shù)字信號后,開始讀取溫度值,并對其信號做位處理使之達(dá)到用戶需求的精度以及計算得到相對濕度,最后通過1602LCD顯示溫濕度值。另外,系統(tǒng)在運行過程中還有專門的控制聲光報警系統(tǒng)、光電耦合開關(guān)的控制信號,2.3 理論基礎(chǔ)2.3.1 單片機T89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非

7、易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89S51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89S51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如圖2-1所示圖2-1 AT89S51芯片引腳圖AT89S51共有40個引腳,大致可分為4類:電源引腳、時鐘電路引腳、I/O引腳、控制線引腳。根據(jù)開發(fā)的需要和單片機的結(jié)構(gòu),我們就可以實現(xiàn)單片機的自動工作,即實現(xiàn)自動化!2.3.2 DS18B20傳感器傳感器是一種按一定的精度把被測量轉(zhuǎn)換為與之有確定關(guān)系的、

8、便于應(yīng)用的某種物理的測量器件或裝置,用于滿足系統(tǒng)信息傳輸、存儲、顯示、記錄及控制等要求。在本系統(tǒng)的開發(fā)過程中主要用到了DS18B20數(shù)字溫度傳感器,這種傳感器提供9-12位攝氏溫度測量i fu b有一個由高低電平觸發(fā)的可編程的不因電源消失fu改變的報警功能。DS18B20通過一個單線接口發(fā)送或接受信息,因此在中央處理器和DS18B20之間僅需一條連接線(加上地線)。它的測溫范圍為一55- + 125 0C,并目在一10-+850C精度為士5 0C。除此之外,DS18B20能直接從單線通訊線上汲取能量,除去了對外部電源的需求。每個DS 18B20都有一個獨特的64位序列號,從fu允許多只DS 1

9、8B20同時連在一根單線總線上;因此,很簡單就可以用一個微控制器去控制很多覆蓋在一大片區(qū)域的DS 18B20。這一特性在HVAC環(huán)境控制、探測建筑物、儀器或機器的溫度以及過程監(jiān)測和控制等方面非常有用。 在測溫操作方面,DS18B20的核心功能是它的直接讀數(shù)字的溫度傳感器。溫度傳感器的精度為用戶可編程的9, 10, 11或12位,分別以0. 5 0C , 0 . 2 5 0C , 0. 12 5 0C和0. 06250C增量遞增。在上電狀態(tài)下默認(rèn)的精度為12位。DS18B20啟動后保持低功耗等待狀態(tài);當(dāng)需要執(zhí)行溫度測量和AD轉(zhuǎn)換時,總線控制器必須發(fā)出44h命令。在那之后,產(chǎn)生的溫度數(shù)據(jù)以兩個字節(jié)

10、的形式被存儲到高速暫存器的溫度寄存器中,DS18B20繼續(xù)保持等待狀態(tài)。當(dāng)DS18B20由外部電源供電時,總線控制器在溫度轉(zhuǎn)換指令之后發(fā)起“讀時序”,DS18B20正在溫度轉(zhuǎn)換中返回0,轉(zhuǎn)換結(jié)束返回1。如果DS18B20由寄生電源供電,除非在進入溫度轉(zhuǎn)換時總線被一個強上拉拉高,否則將不會由返回值。寄生電源的總線要求在口618820供電節(jié)詳細(xì)解釋。圖2-2 DS18B20數(shù)字溫度傳感器內(nèi)部結(jié)構(gòu)2.3.3 1602LCD液晶顯示屏在單片機系統(tǒng)中應(yīng)用液晶顯示器作為輸出器件有以下幾個優(yōu)點:一、顯示質(zhì)量高,由于液晶顯示器每一個點在收到信號后就一直保持那種色彩和亮度,恒定發(fā)光,而不像陰極射線管顯示器(CR

11、T)那樣需要不斷刷新新亮點。因此,液晶顯示器畫質(zhì)高且不會閃爍。二、數(shù)字式接口,液晶顯示器都是數(shù)字式的,和單片機系統(tǒng)的接口更加簡單可靠,操作更加方便。三、體積小、重量輕,液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達(dá)到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。四、功耗低,相對而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動IC上,因而耗電量比其它顯示器要少得多。本系統(tǒng)選用的字符型LCD是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。本次設(shè)計選用的是長沙太陽人電子有限公司的1602字符型液晶顯示器。一般1602字符型液晶

12、顯示器實物如圖3-1: 圖2-3 1602字符型液晶顯示器實物圖1602LCD主要技術(shù)參數(shù):顯示容量:162個字符芯片工作電壓:4.55.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.954.35(WH)mm3 硬件設(shè)計3.1 設(shè)計方案單片機溫度傳感器1溫度傳感器21602LCD顯示屏水位傳感器加濕器開關(guān)聲光報警器圖3-1 自動加濕器功能原理圖3.2 電路圖單片機是整個系統(tǒng)的控制中樞,它指揮外圍器件協(xié)調(diào)工作,從而完成特定的功能。硬件實現(xiàn)上采用模塊化設(shè)計,每一模塊只實現(xiàn)一個特定功能,最后再將各個模塊搭接在一起。這種設(shè)計方法可以降低系統(tǒng)設(shè)計的復(fù)雜性。系統(tǒng)電路原理圖如圖

13、2所示。本系統(tǒng)主要硬件設(shè)計包括電源電路、蜂鳴器電路、晶振電路、復(fù)位電路、LCD顯示電路以及溫度傳感器電路??刂齐娐返暮诵钠骷怯擅绹鳤tmel公司生產(chǎn)的AT89S51單片機,屬于MCS-51系列。AT89S51是一種低功耗、高性能的CMOS8位微控制器,具有2K在系統(tǒng)可編程Flash存儲器,采用的工藝是Atmel公司的高密度非易失存儲器技術(shù);片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器;在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S51為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案;價格低廉、性能可靠、抗干擾能力強。因此廣泛應(yīng)用于工業(yè)控制和嵌入式系

14、統(tǒng)中。圖3-2 電路原理圖系統(tǒng)的聲光報器電路(警蜂鳴和LED發(fā)光二極管組成)、振落電路、復(fù)位電路如圖?、圖?、圖?所示。顯示模塊選用1602字符型液晶模塊,是目前工控系統(tǒng)中使用最為廣泛的液晶屏之一,電路圖如圖?所示。1602字符型液晶模塊是點陣型液晶,驅(qū)動方便,經(jīng)編碼后顯示內(nèi)容多樣化。由于時間倉促,沒有找到合適的水位傳感器,在開發(fā)過程中利用三個按鈕開關(guān)代替水位傳感器分別代表高、中、低水位,而加濕器開關(guān)則由一發(fā)光二級管代替,在方正過程中更容易觀察系統(tǒng)開發(fā)效果。3.3 信號分析本系統(tǒng)分信號的主要有溫度傳感器的輸入信號和單片機輸出的控制信號構(gòu)成。首先由單片機向溫度傳感器發(fā)出讀信號,隨后溫度傳感器做出

15、響應(yīng),單片機待DS18B20完成收集到得溫度信息進行AD處理并存儲為數(shù)字信號后,開始讀取溫度值,并對其信號做位處理使之達(dá)到用戶需求的精度以及計算得到相對濕度,最后通過1602LCD顯示溫濕度值。另外,系統(tǒng)在運行過程中還有專門的控制聲光報警系統(tǒng)、光電耦合開關(guān)的控制信號,這些控制信號比較簡單,不再一一論述。3.4 功能描述參考舒適性空調(diào)的相對濕度采用40%65%的要求x,在功能設(shè)計過程中以40%為最適相對濕度參考值。單片機一方面通過監(jiān)測加濕器內(nèi)部的水位,達(dá)到加濕器防干燒的功能,即只有在水位在水位下限以上時加濕器才能通電工作。另一方面通過處理兩個溫度傳感器測得的干濕球溫度得到室內(nèi)相對濕度,并和人體最

16、適相對濕度做比較。在水位符合要求的前提下,若室內(nèi)相對濕度高于人體最適值則控制加濕器不動作,反之則對加濕器通電開始加濕,直到室內(nèi)空氣達(dá)到最適濕度時斷電。另外,單片機通過和聲光報警器以及1602LCD顯示屏相連,還具有了溫濕度及水位的顯示功能。總之,在現(xiàn)有的加濕器內(nèi)加入此單片機將實現(xiàn)加濕器的防干燒、聲光報警、智能開啟和關(guān)閉以及室內(nèi)溫濕度的顯示功能基本實現(xiàn)加濕器的智能化。3.5 復(fù)位電路復(fù)位電路的基本功能是:系統(tǒng)上電時提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時才撤銷復(fù)位信號,以防電源開關(guān)或電源插頭分-合過程中引起的抖動而影響復(fù)位。圖3-3所示的RC復(fù)位電路

17、可以實現(xiàn)上述基本功能,圖3為其輸入-輸出特性。但解決不了電源毛刺(A點)和電源緩慢下降(電池電壓不足)等問題 而且調(diào)整 RC 常數(shù)改變延時會令驅(qū)動能力變差。左邊的電路為高電平復(fù)位有效 右邊為低電平Sm為手動復(fù)位開關(guān) Ch可避免高頻諧波對電路的干擾。圖3-3 上電及手動復(fù)位電路圖3.6液位定位及光電開關(guān)由于開發(fā)過程時間緊迫,暫時未購買到合適的液位監(jiān)測傳感器,因此在實際開發(fā)過程中采用三個開關(guān)進行代替,按下按鈕表示水位到達(dá)相應(yīng)的水位。另外為了直觀的看出控制輸出信號的轉(zhuǎn)臺,開發(fā)過程中將光電開關(guān)改為一發(fā)光二級管并與電阻串聯(lián)接地。見圖3-4。圖3-4 水位計光電開關(guān)替代元件3.7 1602顯示屏利用滑動變

18、阻器調(diào)節(jié)背光燈與顯示字符的對比度,利用三極管的及P2.7控制背光的的暗與滅。接線原理見圖3-5。圖3-5 1602接線原理圖3.8 DS18B20溫度傳感器由于此款溫度傳感器輸出串行通信信號,電路圖相對簡單,見圖3-6。圖3-6 DS18B20溫度傳感器接線圖4 軟件設(shè)計4.1整體設(shè)計及說明系統(tǒng)單片機代碼采用匯編語言編譯,以偉福仿真器V8/L為開發(fā)環(huán)境。系統(tǒng)軟件實現(xiàn)的功能:1)通過LCD顯示溫濕度值及水位;2)比較監(jiān)測到的水位,發(fā)現(xiàn)低水位時自動掉電并聲光報警;3)根據(jù)相對濕度值控制加濕器的開關(guān)。根據(jù)監(jiān)控系統(tǒng)功能要求,系統(tǒng)軟件流程圖設(shè)計如圖所示。顯示溫濕度初始化載入程序讀干球溫度T讀濕球溫度TS

19、求出相對濕度D讀水位H判斷HHo是否成立開啟加濕器判斷D D0是否成立聲光報警并關(guān)閉加濕器是否是否關(guān)加濕器圖4-1 主程序流程圖初始化開始,然后載入程序,根據(jù)顯示數(shù)據(jù)讀出干球溫度T,濕球溫度TS,根據(jù)干濕球溫度求出相對濕度D,然后讀出顯示的水位H,判斷水位H是否大于最小水位Ho:若HHo成立后,判斷相對濕度D與最小濕度Do的大小比較,若D=Do則開啟加濕器,顯示溫濕度,循環(huán)直至相對濕度D=Do,關(guān)閉加濕器,然后顯示溫濕度過程循環(huán)。4.2 DS18B20流程設(shè)計每個DS18B20溫度傳感器的流程圖設(shè)計如下:啟動溫度轉(zhuǎn)換讀取溫度溫度處理跳過ROM匹配DS18B20復(fù)位跳過ROM匹配DS18B20復(fù)

20、位圖4-2 DS18B20模塊程序流程圖傳感器DS18B20復(fù)位,跳過ROM匹配后啟動溫度轉(zhuǎn)換,DS18B20復(fù)位然后跳過ROM匹配,再讀取溫度后進行溫度處理,保留一位小數(shù)。讀取數(shù)據(jù)及傳送的程序如下:READ_TEMP: ;讀1820內(nèi)部溫度子程序.CALL RESETJB 70h,EXT1CALL SKIP_ROMCALL TEMP_CONV ;溫度AD變換CALL DELAY_600MSCALL RESETCALL SKIP_ROMCALL TEMP_GET ;發(fā)取溫度的命令CALL READ ;接收.EXT1:RETSKIP_ROM:;跳過ROM檢測MOV A,#0CCH ;#0CCH為

21、跳過rom命令CALL WRITERETRECALL_EPROM:;重調(diào)EpromMOV A,#0B8HCALL WRITERETTEMP_CONV:MOV A,#44H ;AD變換CALL WRITERETTEMP_GET:MOV A ,#0BEH;讀18b20命令CALL WRITERET;* 18B20基本時序子程序RESET: ;初始化子程序SETB P1.2NOPCLR P1.2 ;拉低MOV R3,#150 ; *4=600USCALL DELAY_BY_R3SETB P1.2;拉高MOV R3,#15 ; 60USCALL DELAY_BY_R3MOV R3,#60 ;4個周期*

22、60=240US內(nèi)檢測A1: JNB P1.2,A2 ;檢測到低平信號DJNZ R3,A1 ;如果沒有應(yīng)答的低電平信號,返回A1重新檢測,超時后下一行,SETB 70h ;DS1820不存在.JMP A3A2: CLR 70hMOV R3,120;240US;等恢復(fù)時間2*120=240usDJNZ R3, $A3:RETWRITE:MOV R2,#8;一個字節(jié)為8位CLR C ;C位清0 C位用來放A的一位數(shù)據(jù),用移位的方法放入CB1: SETB P1.2NOPCLR P1.2MOV R3,#4 ;16USCALL DELAY_BY_R3RRC A;把A中的數(shù)送入CMOV P1.2,C ;把

23、C送入總線MOV R3,#12;48US(一位數(shù)據(jù)的發(fā)送:60ustx120us)CALL DELAY_BY_R3SETB P1.2 ;拉高1us結(jié)束一位NOPDJNZ R2,B1RETREAD:MOV R1,#4 ;接收4個字節(jié)數(shù)據(jù)依次是1.低位 2.高位. 3.高限 4.低限MOV R0,#28H;低位放28H;高位放29h (1. 28H,2. 29H 3. 2AH 4. 2BH )C0: MOV R2,#8;一字節(jié)數(shù)據(jù)8位C1: CLR C ;清除CSETB P1.2NOPNOPCLR P1.2 ;拉低.NOP ;1us秒后拉高?SETB P1.2MOV R3,#4 ;16us后采數(shù)據(jù)

24、CALL DELAY_BY_R3MOV C,P1.2 ;讀出18b20的數(shù)據(jù)RRC A ;移入AMOV R3,#12;48US恢復(fù)時間CALL DELAY_BY_R3DJNZ R2,C1 ;一個字節(jié)收完MOV R0,A ;移入存儲位INC R0 ;下一位;29hDJNZ R1,C0 ;全部取完嗎?沒有重復(fù)RET4.3 1602字符型LCD流程設(shè)計1602字符型LCD流程設(shè)計如下:延時15ms顯示模式設(shè)置延時5ms顯示關(guān)閉顯示清屏延時5ms延時5ms顯示光標(biāo)移動設(shè)置延時5ms顯示開及光標(biāo)設(shè)置顯示位置設(shè)置延時顯示溫度各位數(shù)值1602初始化圖4-3 1602液晶驅(qū)動程序流程圖顯示器1602初始化后延

25、時15ms,顯示模式設(shè)置,再延時5ms,顯示關(guān)閉,延時5ms顯示清屏,再延時5ms顯示光標(biāo)移動設(shè)置延時5ms顯示開及光標(biāo)設(shè)置,然后顯示位置設(shè)置,延時,顯示溫度各位數(shù)值。此部分主要程序過長,參見附錄二。5 系統(tǒng)調(diào)試系統(tǒng)與VW8系列的仿真環(huán)境下開發(fā),編程過程中利用軟件仿真調(diào)試系統(tǒng),當(dāng)軟仿通過則利用該仿真器仿真,并按順序檢查錯誤進行修改,最終將程序的HEX文件燒錄進入單片機進行實測。6 總結(jié)通過本次單片機學(xué)習(xí)課程的畢業(yè)設(shè)計,使自己在理解單片機基本電路的基礎(chǔ)上掌握了簡單電路的設(shè)計方法,同時對整個課題的編程方法和技巧也有了一定的認(rèn)識和理解,并初步具備了獨立編程和系統(tǒng)調(diào)試的能力。在本次課題設(shè)計中,自己遇到

26、了不少問題,通過請教賀老師和翻閱資料,最終將問題解決。尤其是在調(diào)試程序時,運用軟件仿真,逐步排查錯誤,最終將程序調(diào)試成功。在此過程中,自己的編程能力得到了加強,同時也鍛煉了自己的耐性??傊?,通過本次設(shè)計,使自己受益匪淺。另外,在智能加濕器的開發(fā)過程中我體會到了自動化得真正含義,對以后的學(xué)習(xí)和工作奠定了一定的基礎(chǔ),以后進一步的學(xué)習(xí)過程中一方面要拓展智能的加濕器的功能和應(yīng)用范圍,使之更加完善。另一方面還要探究新的課題,開發(fā)新的單片機應(yīng)用系統(tǒng),問何那得清如許,為由源頭活水來!走上單片機開發(fā)之路,我要將自己的知識轉(zhuǎn)化為社會可以運用的技術(shù),為社會的進步盡自己一份力量。致 謝作者在畢業(yè)設(shè)計期間,始終得到指

27、導(dǎo)老師賀新民老師的悉心指導(dǎo)。整個學(xué)習(xí)和設(shè)計過程中,我深切的體會到了導(dǎo)師嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神、淵博的知識、敏銳的思維、對工作的熱情態(tài)度和樸素高尚的人格修養(yǎng),相信這些將使我終生受益。在此論文完成之際,謹(jǐn)向我敬愛的導(dǎo)師表示最誠摯的敬意。由衷地感謝王玉芝老師在課題研究期間給予我的許多指導(dǎo)和幫助。也由衷地感謝各位同學(xué)為我的課題提供的無私幫助,而且他們孜孜不倦的學(xué)習(xí)精神永遠(yuǎn)是我學(xué)習(xí)的榜樣。同時,也向所有幫助支持過我的老師、同學(xué)和朋友致以衷心的感謝。參考文獻(xiàn):1 薛殿華.空氣調(diào)節(jié).北京:清華大學(xué)出版社,1991.2 趙玉剛 邱東傳.感器基礎(chǔ). 北京:中國林業(yè)出版社;北京大學(xué)出版社,2006.83 張俊謨.單片機中

28、級教程:原理與應(yīng)用. 北京:北京航空航天大學(xué)出版社,2006.104黃曉因.張連根.干濕球法測量相對濕度算法研究及單片機實現(xiàn)J.云南族大學(xué)學(xué)報:自然科學(xué)版.2003, I 2 ( 3 ) : I55 -1575胡玉峰.自動與人工觀測數(shù)據(jù)的差異J.應(yīng)用氣象學(xué)報,2004.15(fi).6孫曉波. DS18B20在多點溫控系統(tǒng)中的應(yīng)用J. 哈爾濱商業(yè)大學(xué)學(xué)報(自然科學(xué)版),2002,18(4):年,卷(期).7李廣弟等編著,單片機基礎(chǔ),北京航空航天大學(xué)出版社,2001年7月.附錄一:1602LCD簡介引腳功能說明1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表3-

29、1所示:表3-1:引腳接口說明表編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電

30、平時進行讀操作,低電平時進行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。表3-2:控制命令表序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L*6置功能00001DLNF*

31、7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關(guān)控制。 D:控制整體

32、顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標(biāo)。指令6:功能設(shè)置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。

33、指令11:讀數(shù)據(jù)。1602LCD的RAM地址映射及標(biāo)準(zhǔn)字庫表液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖3-5是1602的內(nèi)部顯示地址。圖3-5 1602LCD內(nèi)部顯示地址例如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標(biāo)定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平1所以實際寫入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在對液晶模塊的初始化中要先

34、設(shè)置其顯示模式,在液晶模塊顯示字符時光標(biāo)是自動右移的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。其中字符代碼與字符圖形對應(yīng)關(guān)系如圖3-6所示:1602LCD的一般初始化(復(fù)位)過程延時15mS寫指令38H(不檢測忙信號)延時5mS寫指令38H(不檢測忙信號)延

35、時5mS寫指令38H(不檢測忙信號)以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號寫指令38H:顯示模式設(shè)置寫指令08H:顯示關(guān)閉寫指令01H:顯示清屏寫指令06H:顯示光標(biāo)移動設(shè)置寫指令0CH:顯示開及光標(biāo)設(shè)置液晶顯示模塊的設(shè)計本設(shè)計液晶顯示模塊的設(shè)計如下圖3-7所示,該電路實現(xiàn)的功能是:通過AT89S51的P00P07八個口輸出控制信號,控制液晶的8位雙向數(shù)據(jù)線,通過單片機的P24、P25、P26向液晶模塊發(fā)送命令,控制液晶執(zhí)行各種命令,其中P24控制液晶的使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令,P25控制液晶模塊的讀寫,高電平時進行讀操作,低電平時進行寫操作。當(dāng)P25和P

36、26共同為低電平時可以寫入指令或者顯示地址,當(dāng)P26為低電平P25為高電平時可以讀忙信號,當(dāng)P26為高電平P25為低電平時可以寫入數(shù)據(jù),P26控制寄存器的選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。液晶部分引腳說明:第1腳:VSS為地電源第2腳:VDD接5V正電源第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度第15腳:背光源正極第16腳:背光源負(fù)極附錄二 LCD控制及顯示子程序DISPLAY: MOV A,R1MOVC A,A+DPTRMOV P0,ACALL WRITE_DAT

37、A_TO_LCDINC R1DJNZ R0,DISPLAYRETWRITE_NOT_CHECK_BUSY:SETB ENOPNOPCLR RS ;寫入控制命令的子程序CLR RWCLR ERETENABLE:SETB ENOPNOPCLR RS ;寫入控制命令的子程序CLR RWCLR EACALL TEST_BUSYSETB ERETTEST_BUSY:SETB ENOPNOPMOV P0,#0FFH ;判斷液晶顯示器是否忙的子程序CLR RSSETB RWCLR ENOPSETB EJB P0.7,TEST_BUSY ;如果P0.7為高電平表示忙就循環(huán)等待RETWRITE_DATA_TO_

38、LCD:SETB ENOPNOPSETB RS ;RS=1CLR RW ;RW=0 ;準(zhǔn)備寫入數(shù)據(jù)CLR E ;E=0 ;執(zhí)行顯示命令A(yù)CALL TEST_BUSY ;判斷液晶模塊是否忙?SETB E ;E=1 ;顯示完成,程序停車RET;*數(shù)據(jù)轉(zhuǎn)換*DATA_CONV: ;數(shù)據(jù)轉(zhuǎn)換MOV A,28H ;低字節(jié)ANL A,#0FH;去除高位MOV B,#6;乘6得到實際數(shù)值的100倍.MUL ABMOV B,#10DIV ABMOV 33H,A;小數(shù)位高MOV 32H,B; 小數(shù)位低MOV A,28HMOV C,29H.0 ;29h高位的低4字節(jié)RRC AMOV C,29H.1RRC AMOV

39、 C,29H.2RRC AMOV C,29H.3RRC AMOV 28H,A ;重新合成.結(jié)果存在28H.MOV A,28HMOV B,#10DIV ABMOV 26H,A ;整數(shù)位高MOV 25H,B ;整數(shù)位低;-MOV A,2AHMOV B,#10DIV ABMOV 40H,B ;高溫限值個位MOV B,#10DIV ABMOV 41H,B;十位MOV 42H,A;百位;-MOV A,2BHMOV B,#10DIV ABMOV 43H,B ;低溫限值位個位MOV B,#10DIV ABMOV 44H,B ;十位MOV 45H,A ;百位CLR CMOV A,28H;現(xiàn)溫度值與高溫限值比較

40、SUBB A,2AHJC BIG ;如果高.則關(guān)機器CLR CMOV A,2BH;現(xiàn)溫度與低溫限值比較SUBB A,28HJC X_BIG ;低溫限值比現(xiàn)溫高,則開機器AJMP CONVERT_ENDBIG:AJMP CONVERT_ENDX_BIG:CONVERT_END:RET;*顯示溫度*DISPLAY_18B20_TEMP: ;LCD_顯示子程序MOV P0,#10000000B; 顯示位置ACALL ENABLE ;執(zhí)行指令MOV DPTR,#TAB3;顯示W(wǎng)ENDU:MOV R1,#0 ;碼表初值MOV R0,#7;字?jǐn)?shù)CALL DISPLAY;-顯示溫度值高位MOV DPTR,#

41、LED_DATAMOV R1,26H ;碼表初值MOV R0,#1;字?jǐn)?shù)CALL DISPLAY;-顯示溫度值低位MOV DPTR,#LED_DATAMOV R1,25H ;碼表初值MOV R0,#1;字?jǐn)?shù)CALL DISPLAY;-顯示小數(shù)點MOV DPTR,#DOTMOV R1,#0 ;碼表初值MOV R0,#1;字?jǐn)?shù)CALL DISPLAY;-顯示溫度值小數(shù)高位MOV DPTR,#LED_DATAMOV R1,33H ;碼表初值MOV R0,#1;字?jǐn)?shù)CALL DISPLAY;-顯示溫度值小數(shù)低位MOV DPTR,#LED_DATAMOV R1,32H ;碼表初值MOV R0,#1;字?jǐn)?shù)

42、CALL DISPLAY;-顯示單位度MOV DPTR,#SIGNMOV R1,#0 ;碼表初值MOV R0,#2;字?jǐn)?shù)CALL DISPLAYRET;*顯示限值.*DISPLAY_18B20_TEMP_XZ:MOV P0,#11000000B; 顯示位置ACALL ENABLE ;執(zhí)行指令MOV DPTR,#TAB_L ; 顯示L:MOV R1,#0 ;碼表初值MOV R0,#2;字?jǐn)?shù)CALL DISPLAY;-顯示溫度限值高位MOV DPTR,#LED_DATAMOV R1,45H ;碼表初值MOV R0,#1;字?jǐn)?shù)CALL DISPLAY;-顯示溫度限值低位MOV DPTR,#LED_D

43、ATAMOV R1,44H ;碼表初值MOV R0,#1;字?jǐn)?shù)CALL DISPLAY;-MOV DPTR,#LED_DATAMOV R1,43H ;碼表初值MOV R0,#1;字?jǐn)?shù)CALL DISPLAYMOV P0,#11000111B; 顯示位置ACALL ENABLE;- -MOV DPTR,#TAB_H ; 顯示H:MOV R1,#0 ;碼表初值MOV R0,#2;字?jǐn)?shù)CALL DISPLAY;-顯示高溫度限值高位MOV DPTR,#LED_DATAMOV R1,42H ;碼表初值MOV R0,#1;字?jǐn)?shù)CALL DISPLAY;-顯示高溫度限值低位MOV DPTR,#LED_DAT

44、AMOV R1,41H ;碼表初值MOV R0,#1;字?jǐn)?shù)CALL DISPLAY;-MOV DPTR,#LED_DATAMOV R1,40H ;碼表初值MOV R0,#1;字?jǐn)?shù)CALL DISPLAYRET;* *提示語*DISPLAY_18B20_HELLO:MOV P0,#10000000B; 顯示位置ACALL ENABLE ;執(zhí)行指令MOV DPTR,#TAB_HELLOMOV R1,#0 ;碼表初值MOV R0,#16;字?jǐn)?shù)CALL DISPLAyRET;/*DISPLAY_18B20_TESTING:MOV P1,#10000000B; 顯示位置ACALL ENABLE ;執(zhí)行指

45、令MOV DPTR,#TAB_TESTINGMOV R1,#0 ;碼表初值MOV R0,#16;字?jǐn)?shù)CALL DISPLAyRET;*/DISPLAY_18B20_ERROR:MOV P0,#00000001B ;清屏并光標(biāo)復(fù)位ACALL ENABLEMOV DPTR,#TAB1MOV R1,#0 ;碼表初值MOV R0,#16;字?jǐn)?shù)CALL DISPLAyRETDISPLAY_WATING:MOV P0,#00000001B ;清屏并光標(biāo)復(fù)位ACALL ENABLE;調(diào)用寫入命令子程序MOV P0,#10000000B; 顯示位置ACALL ENABLE ;執(zhí)行指令MOV DPTR,#TAB2MOV R1,#0 ;碼表初值MOV R0,#13;字?jǐn)?shù)CALL DISPLAyRETDISPLAY_SAVE:MOV P0,#00000001B ;清屏并光標(biāo)復(fù)位ACALL ENABLE;調(diào)用寫入命令子程序MOV P0,#10000000B; 顯示位置ACALL ENABLE ;執(zhí)行指令MOV DPTR,#TAB_SAVEMOV R1,#0 ;碼表初值MOV R0,#10;字?jǐn)?shù)CALL DISPLAyRETDISPLAY_SETING_TEMP_H:MOV P0,#00000001B ;清屏并光標(biāo)復(fù)位ACALL ENABLE;調(diào)用寫入命令子程序MOV P0

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論