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

下載本文檔

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

文檔簡(jiǎn)介

1、常州大學(xué)信息科學(xué)與工程學(xué)院畢業(yè)設(shè)計(jì)論文 畢業(yè)設(shè)計(jì)題目: 基于51單片機(jī)的室內(nèi)濕度自動(dòng)控制裝置設(shè)計(jì) 專 業(yè): 電 子 年 級(jí): 學(xué) 號(hào): 姓 名: 指 導(dǎo) 老 師: 徐 權(quán) 摘 要在日常生活中加濕器得到了廣泛的應(yīng)用,但是現(xiàn)有的加濕器都需要手工控制開啟和關(guān)閉并且不具備對(duì)室內(nèi)空氣溫濕度的監(jiān)測(cè),人們?cè)谑褂眠^程中存在過度加濕和干燒的問題,不僅給室內(nèi)空氣舒適度造成負(fù)面影響并且還存在安全隱患。因此開發(fā)設(shè)計(jì)一種價(jià)格低廉、功耗低、具有自動(dòng)控制功能的加濕器顯得尤為必要。本設(shè)計(jì)采用智能控制,以AT89C51單片機(jī)為核心,外接輔助電路,通過實(shí)現(xiàn)加濕器的防干燒、聲光報(bào)警、智能開啟和關(guān)閉以及室內(nèi)溫濕度的顯示功能基本實(shí)現(xiàn)加

2、濕器的智能化。目 錄摘 要1第一章 任務(wù)來源意義及目的3第二章 設(shè)計(jì)方案42.1 總體設(shè)計(jì)42.2 實(shí)現(xiàn)方式42.3 理論基礎(chǔ)52.3.1 單片機(jī)52.3.2 DS18B20傳感器62.3.3 1602LCD液晶顯示屏7第三章 硬件設(shè)計(jì)93.1 設(shè)計(jì)方案93.2 電路圖93.3 信號(hào)分析103.4 功能描述103.5 復(fù)位電路113.6液位定位及光電開關(guān)123.7 1602顯示屏123.8 DS18B20溫度傳感器13第四章 軟件設(shè)計(jì)144.1整體設(shè)計(jì)及說明144.2 DS18B20流程設(shè)計(jì)154.3 1602字符型LCD流程設(shè)計(jì)18第五章 系統(tǒng)調(diào)試21第六章 總結(jié)22致 謝23參考文獻(xiàn)24附

3、錄一 1602液晶模塊資料(特點(diǎn),引腳及指令)25附錄二 LCD控制及顯示子程序29第一章 任務(wù)來源意義及目的在日常生活中加濕器得到了廣泛的應(yīng)用,但是現(xiàn)有的加濕器都需要手工控制開啟和關(guān)閉并且不具備對(duì)室內(nèi)空氣溫濕度的監(jiān)測(cè),人們?cè)谑褂眠^程中存在過度加濕和干燒的問題,不僅給室內(nèi)空氣舒適度造成負(fù)面影響并且還存在安全隱患。因此開發(fā)設(shè)計(jì)一種價(jià)格低廉、功耗低、具有自動(dòng)控制功能的加濕器顯得尤為必要。本設(shè)計(jì)采用智能控制,以AT89C51單片機(jī)為核心,外接輔助電路,通過實(shí)現(xiàn)加濕器的防干燒、聲光報(bào)警、智能開啟和關(guān)閉以及室內(nèi)溫濕度的顯示功能基本實(shí)現(xiàn)加濕器的智能化。第二章 設(shè)計(jì)方案2.1 總體設(shè)計(jì)智能加濕器需滿足以下要

4、求:1)相對(duì)濕度低于40時(shí)自動(dòng)加濕;2)用戶可以設(shè)置系統(tǒng)溫濕度報(bào)警值;3)由5V穩(wěn)壓直流電源供電,提供溫濕度調(diào)節(jié)控制信號(hào),實(shí)現(xiàn)自動(dòng)控制;4)檢測(cè)得到的數(shù)據(jù)可以通過顯示模塊顯示。硬件設(shè)計(jì)不僅要滿足系統(tǒng)需求,還要滿足功能和外形尺寸要求。根據(jù)設(shè)計(jì)要求確定了系統(tǒng)的總體方案,包系統(tǒng)由兩個(gè)DS18B20溫度傳感器一個(gè)水位傳感器、單片機(jī)、1602LCD液晶顯示屏、聲光報(bào)警器、以及一個(gè)光電耦合開關(guān)等部分組成。系統(tǒng)功能原理圖如圖1-1所示,兩個(gè)溫度傳感器分別采集室內(nèi)空氣的干濕球溫度,并將采集的溫度傳送至單片機(jī)。單片機(jī)對(duì)這兩個(gè)數(shù)據(jù)加以處理并結(jié)合室內(nèi)濕度要求參數(shù)控制加濕器的開啟和閉合。另外,水位傳感器還能監(jiān)測(cè)水位,

5、單片機(jī)根據(jù)水位高低控制聲光報(bào)警裝置。自動(dòng)加濕器包括加濕模塊、報(bào)警模塊、自動(dòng)斷電模塊。單片機(jī)溫度傳感器1溫度傳感器21602LCD顯示屏水位傳感器加濕器開關(guān)聲光報(bào)警器圖1-1 自動(dòng)加濕器功能原理圖2.2 實(shí)現(xiàn)方式自動(dòng)加濕器功能原理圖要達(dá)到自動(dòng)加濕器功能要做好硬件和軟件設(shè)計(jì)和調(diào)試三個(gè)方面的工作。首先硬件方面,通過合理的設(shè)計(jì)單片機(jī)管腳及其他外圍電路的鏈接,使之既有I/O口的功能,又有控制型號(hào)的功能。由于時(shí)間倉(cāng)促,沒有找到合適的水位傳感器,在開發(fā)過程中利用三個(gè)按鈕開關(guān)代替水位傳感器分別代表高、中、低水位,而加濕器開關(guān)則由一發(fā)光二級(jí)管代替,在方正過程中更容易觀察系統(tǒng)開發(fā)效果。這方面的內(nèi)容詳見硬件設(shè)計(jì)部分

6、內(nèi)容。其次軟件方面,通過合理設(shè)計(jì)軟件的結(jié)構(gòu)和安排子程序,使程序以最簡(jiǎn)潔有效的方式實(shí)現(xiàn)目的。最后,調(diào)試方面,程序編輯用LAC51系列開發(fā)與仿真環(huán)境,編輯過程可使用軟件仿真觀察,并對(duì)其進(jìn)行調(diào)試。在程序編輯完成之后使用硬件仿真,最終用燒錄器將程序?qū)懭雴纹瑱C(jī)進(jìn)行實(shí)測(cè)。本系統(tǒng)分信號(hào)的主要有溫度傳感器的輸入信號(hào)和單片機(jī)輸出的控制信號(hào)構(gòu)成。首先由單片機(jī)向溫度傳感器發(fā)出讀信號(hào),隨后溫度傳感器做出響應(yīng),單片機(jī)待DS18B20完成收集到得溫度信息進(jìn)行AD處理并存儲(chǔ)為數(shù)字信號(hào)后,開始讀取溫度值,并對(duì)其信號(hào)做位處理使之達(dá)到用戶需求的精度以及計(jì)算得到相對(duì)濕度,最后通過1602LCD顯示溫濕度值。另外,系統(tǒng)在運(yùn)行過程中還

7、有專門的控制聲光報(bào)警系統(tǒng)、光電耦合開關(guān)的控制信號(hào),2.3 理論基礎(chǔ)2.3.1 單片機(jī)T89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如圖2-1所示圖2-1 AT89S51芯片引腳圖AT89C51共有40個(gè)引腳,

8、大致可分為4類:電源引腳、時(shí)鐘電路引腳、I/O引腳、控制線引腳。根據(jù)開發(fā)的需要和單片機(jī)的結(jié)構(gòu),我們就可以實(shí)現(xiàn)單片機(jī)的自動(dòng)工作,即實(shí)現(xiàn)自動(dòng)化!2.3.2 DS18B20傳感器傳感器是一種按一定的精度把被測(cè)量轉(zhuǎn)換為與之有確定關(guān)系的、便于應(yīng)用的某種物理的測(cè)量器件或裝置,用于滿足系統(tǒng)信息傳輸、存儲(chǔ)、顯示、記錄及控制等要求。在本系統(tǒng)的開發(fā)過程中主要用到了DS18B20數(shù)字溫度傳感器,這種傳感器提供9-12位攝氏溫度測(cè)量i fu b有一個(gè)由高低電平觸發(fā)的可編程的不因電源消失fu改變的報(bào)警功能。DS18B20通過一個(gè)單線接口發(fā)送或接受信息,因此在中央處理器和DS18B20之間僅需一條連接線(加上地線)。它的

9、測(cè)溫范圍為一55- + 125 0C,并目在一10-+850C精度為士5 0C。除此之外,DS18B20能直接從單線通訊線上汲取能量,除去了對(duì)外部電源的需求。每個(gè)DS 18B20都有一個(gè)獨(dú)特的64位序列號(hào),從fu允許多只DS 18B20同時(shí)連在一根單線總線上;因此,很簡(jiǎn)單就可以用一個(gè)微控制器去控制很多覆蓋在一大片區(qū)域的DS 18B20。這一特性在HVAC環(huán)境控制、探測(cè)建筑物、儀器或機(jī)器的溫度以及過程監(jiān)測(cè)和控制等方面非常有用。 在測(cè)溫操作方面,DS18B20的核心功能是它的直接讀數(shù)字的溫度傳感器。溫度傳感器的精度為用戶可編程的9, 10, 11或12位,分別以0. 5 0C , 0 . 2 5

10、0C , 0. 12 5 0C和0. 06250C增量遞增。在上電狀態(tài)下默認(rèn)的精度為12位。DS18B20啟動(dòng)后保持低功耗等待狀態(tài);當(dāng)需要執(zhí)行溫度測(cè)量和AD轉(zhuǎn)換時(shí),總線控制器必須發(fā)出44h命令。在那之后,產(chǎn)生的溫度數(shù)據(jù)以兩個(gè)字節(jié)的形式被存儲(chǔ)到高速暫存器的溫度寄存器中,DS18B20繼續(xù)保持等待狀態(tài)。當(dāng)DS18B20由外部電源供電時(shí),總線控制器在溫度轉(zhuǎn)換指令之后發(fā)起“讀時(shí)序”,DS18B20正在溫度轉(zhuǎn)換中返回0,轉(zhuǎn)換結(jié)束返回1。如果DS18B20由寄生電源供電,除非在進(jìn)入溫度轉(zhuǎn)換時(shí)總線被一個(gè)強(qiáng)上拉拉高,否則將不會(huì)由返回值。寄生電源的總線要求在口618820供電節(jié)詳細(xì)解釋。圖2-2 DS18B20

11、數(shù)字溫度傳感器內(nèi)部結(jié)構(gòu)2.3.3 1602LCD液晶顯示屏在單片機(jī)系統(tǒng)中應(yīng)用液晶顯示器作為輸出器件有以下幾個(gè)優(yōu)點(diǎn):一、顯示質(zhì)量高,由于液晶顯示器每一個(gè)點(diǎn)在收到信號(hào)后就一直保持那種色彩和亮度,恒定發(fā)光,而不像陰極射線管顯示器(CRT)那樣需要不斷刷新新亮點(diǎn)。因此,液晶顯示器畫質(zhì)高且不會(huì)閃爍。二、數(shù)字式接口,液晶顯示器都是數(shù)字式的,和單片機(jī)系統(tǒng)的接口更加簡(jiǎn)單可靠,操作更加方便。三、體積小、重量輕,液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達(dá)到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。四、功耗低,相對(duì)而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動(dòng)IC上,因而耗電量比其它顯示器要

12、少得多。本系統(tǒng)選用的字符型LCD是一種專門用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。本次設(shè)計(jì)選用的是1602字符型液晶顯示器。一般1602字符型液晶顯示器實(shí)物如圖3-1: 圖2-3 1602字符型液晶顯示器實(shí)物圖1602LCD主要技術(shù)參數(shù):顯示容量:16×2個(gè)字符芯片工作電壓:4.55.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95×4.35(W×H)mm 第三章 硬件設(shè)計(jì)3.1 設(shè)計(jì)方案單片機(jī)溫度傳感器1溫度傳感器21602LCD顯示屏水位傳感器加濕器開關(guān)聲光報(bào)警器圖3-1

13、 自動(dòng)加濕器功能原理圖3.2 電路圖單片機(jī)是整個(gè)系統(tǒng)的控制中樞,它指揮外圍器件協(xié)調(diào)工作,從而完成特定的功能。硬件實(shí)現(xiàn)上采用模塊化設(shè)計(jì),每一模塊只實(shí)現(xiàn)一個(gè)特定功能,最后再將各個(gè)模塊搭接在一起。這種設(shè)計(jì)方法可以降低系統(tǒng)設(shè)計(jì)的復(fù)雜性。系統(tǒng)電路原理圖如圖2所示。本系統(tǒng)主要硬件設(shè)計(jì)包括電源電路、蜂鳴器電路、晶振電路、復(fù)位電路、LCD顯示電路以及溫度傳感器電路??刂齐娐返暮诵钠骷怯擅绹?guó)Atmel公司生產(chǎn)的AT89C51單片機(jī),屬于MCS-51系列。AT89C51是一種低功耗、高性能的CMOS8位微控制器,具有2K在系統(tǒng)可編程Flash存儲(chǔ)器,采用的工藝是Atmel公司的高密度非易失存儲(chǔ)器技術(shù);片上Fla

14、sh允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器;在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89C51為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案;價(jià)格低廉、性能可靠、抗干擾能力強(qiáng)。因此廣泛應(yīng)用于工業(yè)控制和嵌入式系統(tǒng)中。圖3-2 電路原理圖系統(tǒng)的聲光報(bào)器電路(警蜂鳴和LED發(fā)光二極管組成)、振落電路、復(fù)位電路。顯示模塊選用1602字符型液晶模塊,是目前工控系統(tǒng)中使用最為廣泛的液晶屏之一,電路圖如圖所示。1602字符型液晶模塊是點(diǎn)陣型液晶,驅(qū)動(dòng)方便,經(jīng)編碼后顯示內(nèi)容多樣化。由于時(shí)間倉(cāng)促,沒有找到合適的水位傳感器,在開發(fā)過程中利用三個(gè)按鈕開關(guān)代替水位傳感器分別代表高

15、、中、低水位,而加濕器開關(guān)則由一發(fā)光二級(jí)管代替,在方正過程中更容易觀察系統(tǒng)開發(fā)效果。3.3 信號(hào)分析本系統(tǒng)分信號(hào)的主要有溫度傳感器的輸入信號(hào)和單片機(jī)輸出的控制信號(hào)構(gòu)成。首先由單片機(jī)向溫度傳感器發(fā)出讀信號(hào),隨后溫度傳感器做出響應(yīng),單片機(jī)待DS18B20完成收集到得溫度信息進(jìn)行AD處理并存儲(chǔ)為數(shù)字信號(hào)后,開始讀取溫度值,并對(duì)其信號(hào)做位處理使之達(dá)到用戶需求的精度以及計(jì)算得到相對(duì)濕度,最后通過1602LCD顯示溫濕度值。另外,系統(tǒng)在運(yùn)行過程中還有專門的控制聲光報(bào)警系統(tǒng)、光電耦合開關(guān)的控制信號(hào),這些控制信號(hào)比較簡(jiǎn)單,不再一一論述。3.4 功能描述參考舒適性空調(diào)的相對(duì)濕度采用40%65%的要求x,在功能設(shè)

16、計(jì)過程中以40%為最適相對(duì)濕度參考值。單片機(jī)一方面通過監(jiān)測(cè)加濕器內(nèi)部的水位,達(dá)到加濕器防干燒的功能,即只有在水位在水位下限以上時(shí)加濕器才能通電工作。另一方面通過處理兩個(gè)溫度傳感器測(cè)得的干濕球溫度得到室內(nèi)相對(duì)濕度,并和人體最適相對(duì)濕度做比較。在水位符合要求的前提下,若室內(nèi)相對(duì)濕度高于人體最適值則控制加濕器不動(dòng)作,反之則對(duì)加濕器通電開始加濕,直到室內(nèi)空氣達(dá)到最適濕度時(shí)斷電。另外,單片機(jī)通過和聲光報(bào)警器以及1602LCD顯示屏相連,還具有了溫濕度及水位的顯示功能??傊?,在現(xiàn)有的加濕器內(nèi)加入此單片機(jī)將實(shí)現(xiàn)加濕器的防干燒、聲光報(bào)警、智能開啟和關(guān)閉以及室內(nèi)溫濕度的顯示功能基本實(shí)現(xiàn)加濕器的智能化。3.5 復(fù)

17、位電路復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號(hào)。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號(hào),以防電源開關(guān)或電源插頭分-合過程中引起的抖動(dòng)而影響復(fù)位。圖3-3所示的RC復(fù)位電路可以實(shí)現(xiàn)上述基本功能,圖3為其輸入-輸出特性。但解決不了電源毛刺(A點(diǎn))和電源緩慢下降(電池電壓不足)等問題 而且調(diào)整 RC 常數(shù)改變延時(shí)會(huì)令驅(qū)動(dòng)能力變差。左邊的電路為高電平復(fù)位有效 右邊為低電平Sm為手動(dòng)復(fù)位開關(guān) Ch可避免高頻諧波對(duì)電路的干擾。圖3-3 上電及手動(dòng)復(fù)位電路圖3.6液位定位及光電開關(guān)由于開發(fā)過程時(shí)間緊迫,暫時(shí)未購(gòu)買到合適的液位監(jiān)測(cè)傳感器,因此在實(shí)際開發(fā)過程中

18、采用三個(gè)開關(guān)進(jìn)行代替,按下按鈕表示水位到達(dá)相應(yīng)的水位。另外為了直觀的看出控制輸出信號(hào)的轉(zhuǎn)臺(tái),開發(fā)過程中將光電開關(guān)改為一發(fā)光二級(jí)管并與電阻串聯(lián)接地。見圖3-4。圖3-4 水位計(jì)光電開關(guān)替代元件3.7 1602顯示屏利用滑動(dòng)變阻器調(diào)節(jié)背光燈與顯示字符的對(duì)比度,利用三極管的及P2.7控制背光的的暗與滅。接線原理見圖3-5。圖3-5 1602接線原理圖3.8 DS18B20溫度傳感器由于此款溫度傳感器輸出串行通信信號(hào),電路圖相對(duì)簡(jiǎn)單,見圖3-6。圖3-6 DS18B20溫度傳感器接線圖第四章 軟件設(shè)計(jì)4.1整體設(shè)計(jì)及說明系統(tǒng)單片機(jī)代碼采用匯編語(yǔ)言編譯,以偉福仿真器V8/L為開發(fā)環(huán)境。系統(tǒng)軟件實(shí)現(xiàn)的功能

19、:1)通過LCD顯示溫濕度值及水位;2)比較監(jiān)測(cè)到的水位,發(fā)現(xiàn)低水位時(shí)自動(dòng)掉電并聲光報(bào)警;3)根據(jù)相對(duì)濕度值控制加濕器的開關(guān)。根據(jù)監(jiān)控系統(tǒng)功能要求,系統(tǒng)軟件流程圖設(shè)計(jì)如圖所示。顯示溫濕度初始化載入程序讀干球溫度T讀濕球溫度TS求出相對(duì)濕度D讀水位H判斷H>Ho是否成立開啟加濕器判斷D >D0是否成立聲光報(bào)警并關(guān)閉加濕器是否是否關(guān)加濕器圖4-1 主程序流程圖初始化開始,然后載入程序,根據(jù)顯示數(shù)據(jù)讀出干球溫度T,濕球溫度TS,根據(jù)干濕球溫度求出相對(duì)濕度D,然后讀出顯示的水位H,判斷水位H是否大于最小水位Ho:若H<=Ho,則聲光報(bào)警并關(guān)閉加濕器,然后顯示溫濕度,再讀出一個(gè)干球溫度

20、T,濕球溫度TS,計(jì)算出相對(duì)濕度D,讀出水位H循環(huán),直至H>Ho成立后,判斷相對(duì)濕度D與最小濕度Do的大小比較,若D<=Do則開啟加濕器,顯示溫濕度,循環(huán)直至相對(duì)濕度D<=Do,關(guān)閉加濕器,然后顯示溫濕度過程循環(huán)。4.2 DS18B20流程設(shè)計(jì)每個(gè)DS18B20溫度傳感器的流程圖設(shè)計(jì)如下:?jiǎn)?dòng)溫度轉(zhuǎn)換讀取溫度溫度處理跳過ROM匹配DS18B20復(fù)位跳過ROM匹配DS18B20復(fù)位圖4-2 DS18B20模塊程序流程圖傳感器DS18B20復(fù)位,跳過ROM匹配后啟動(dòng)溫度轉(zhuǎn)換,DS18B20復(fù)位然后跳過ROM匹配,再讀取溫度后進(jìn)行溫度處理,保留一位小數(shù)。讀取數(shù)據(jù)及傳送的程序如下:R

21、EAD_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檢測(cè)MOV A,#0CCH ;#0CCH為跳過rom命令CALL WRITERETRECALL_EPROM:;重調(diào)EpromMOV A,#0B8HCALL WRITERETTEMP_CONV:MOV A,#44H ;AD變換CALL WRITE

22、RETTEMP_GET:MOV A ,#0BEH;讀18b20命令CALL WRITERET;* 18B20基本時(shí)序子程序RESET: ;初始化子程序SETB P1.2NOPCLR P1.2 ;拉低MOV R3,#150 ; *4=600USCALL DELAY_BY_R3SETB P1.2;拉高M(jìn)OV R3,#15 ; 60USCALL DELAY_BY_R3MOV R3,#60 ;4個(gè)周期*60=240US內(nèi)檢測(cè)A1: JNB P1.2,A2 ;檢測(cè)到低平信號(hào)DJNZ R3,A1 ;如果沒有應(yīng)答的低電平信號(hào),返回A1重新檢測(cè),超時(shí)后下一行,SETB 70h ;DS1820不存在.JMP A

23、3A2: CLR 70hMOV R3,120;240US;等恢復(fù)時(shí)間2*120=240usDJNZ R3, $A3:RETWRITE:MOV R2,#8;一個(gè)字節(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 ;把C送入總線MOV R3,#12;48US(一位數(shù)據(jù)的發(fā)送:60us<tx<120us)CALL DELAY_BY_R3SETB P1.2 ;拉高1us結(jié)束一位NOPDJNZ R2,B1RET

24、READ:MOV R1,#4 ;接收4個(gè)字節(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ù)CALL DELAY_BY_R3MOV C,P1.2 ;讀出18b20的數(shù)據(jù)RRC A ;移入AMOV R3,#12;48US恢復(fù)時(shí)間CALL DELAY_BY_R3DJNZ R2,C1

25、 ;一個(gè)字節(jié)收完MOV R0,A ;移入存儲(chǔ)位INC R0 ;下一位;29hDJNZ R1,C0 ;全部取完嗎?沒有重復(fù)RET4.3 1602字符型LCD流程設(shè)計(jì)1602字符型LCD流程設(shè)計(jì)如下:延時(shí)15ms顯示模式設(shè)置延時(shí)5ms顯示關(guān)閉顯示清屏延時(shí)5ms延時(shí)5ms顯示光標(biāo)移動(dòng)設(shè)置延時(shí)5ms顯示開及光標(biāo)設(shè)置顯示位置設(shè)置延時(shí)顯示溫度各位數(shù)值1602初始化圖4-3 1602液晶驅(qū)動(dòng)程序流程圖顯示器1602初始化后延時(shí)15ms,顯示模式設(shè)置,再延時(shí)5ms,顯示關(guān)閉,延時(shí)5ms顯示清屏,再延時(shí)5ms顯示光標(biāo)移動(dòng)設(shè)置延時(shí)5ms顯示開及光標(biāo)設(shè)置,然后顯示位置設(shè)置,延時(shí),顯示溫度各位數(shù)值。此部分主要程序過長(zhǎng)

26、,參見附錄一。第五章 系統(tǒng)調(diào)試系統(tǒng)與LAC51系列的仿真環(huán)境下開發(fā),編程過程中利用軟件仿真調(diào)試系統(tǒng),當(dāng)軟仿通過則利用該仿真器仿真,并按順序檢查錯(cuò)誤進(jìn)行修改,最終將程序的HEX文件燒錄進(jìn)入單片機(jī)進(jìn)行實(shí)測(cè)。第六章 總結(jié)通過本次單片機(jī)學(xué)習(xí)課程的畢業(yè)設(shè)計(jì),使自己在理解單片機(jī)基本電路的基礎(chǔ)上掌握了簡(jiǎn)單電路的設(shè)計(jì)方法,同時(shí)對(duì)整個(gè)課題的編程方法和技巧也有了一定的認(rèn)識(shí)和理解,并初步具備了獨(dú)立編程和系統(tǒng)調(diào)試的能力。在本次課題設(shè)計(jì)中,自己遇到了不少問題,通過請(qǐng)教徐老師和翻閱資料,最終將問題解決。尤其是在調(diào)試程序時(shí),運(yùn)用軟件仿真,逐步排查錯(cuò)誤,最終將程序調(diào)試成功。在此過程中,自己的編程能力得到了加強(qiáng),同時(shí)也鍛煉了自

27、己的耐性??傊?,通過本次設(shè)計(jì),使自己受益匪淺。另外,在智能加濕器的開發(fā)過程中我體會(huì)到了自動(dòng)化得真正含義,對(duì)以后的學(xué)習(xí)和工作奠定了一定的基礎(chǔ),以后進(jìn)一步的學(xué)習(xí)過程中一方面要拓展智能的加濕器的功能和應(yīng)用范圍,使之更加完善。另一方面還要探究新的課題,開發(fā)新的單片機(jī)應(yīng)用系統(tǒng),問何那得清如許,為由源頭活水來!走上單片機(jī)開發(fā)之路,我要將自己的知識(shí)轉(zhuǎn)化為社會(huì)可以運(yùn)用的技術(shù),為社會(huì)的進(jìn)步盡自己一份力量。致 謝在畢業(yè)設(shè)計(jì)期間,始終得到指導(dǎo)老師徐權(quán)的悉心指導(dǎo)。整個(gè)學(xué)習(xí)和設(shè)計(jì)過程中,我深切的體會(huì)到了導(dǎo)師嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神、淵博的知識(shí)、敏銳的思維、對(duì)工作的熱情態(tài)度和樸素高尚的人格修養(yǎng),相信這些將使我終生受益。在此論文完成

28、之際,謹(jǐn)向我敬愛的導(dǎo)師表示最誠(chéng)摯的敬意。由衷地感謝老師給予我的許多指導(dǎo)和幫助。也由衷地感謝各位同學(xué)為我的無私幫助,而且他們孜孜不倦的學(xué)習(xí)精神永遠(yuǎn)是我學(xué)習(xí)的榜樣。同時(shí),也向所有幫助支持過我的老師、同學(xué)和朋友致以衷心的感謝。參考文獻(xiàn)1. 周向紅.MCS-51系列單片機(jī)應(yīng)用于實(shí)踐教程【M】.北京航空航天大學(xué)出版社,2008.2. 公孫茂,馬寶匍,孫晨.單片機(jī)入口接口實(shí)例集【M】.北京:北京航空航天出版社,2002.3. 何立民.MCS51系列單片機(jī)應(yīng)用設(shè)計(jì)系統(tǒng)配置與接口技術(shù)【M】. 北京:北京航空航天出版社,1990.4. 陳一民.計(jì)算機(jī)精梳車間濕度自動(dòng)控制系統(tǒng)【J】.上海大學(xué)學(xué)報(bào)(自然科學(xué)版),1

29、997附錄一1602液晶模塊資料(特點(diǎn),引腳及指令)這里介紹的字符型液晶模塊是一種用5x7點(diǎn)陣圖形來顯示字符的液晶顯示器,根據(jù)顯示的容量可以分為1行16個(gè)字、2行16個(gè)字、2行20個(gè)字等等,這里以常用的2行16個(gè)字的1602液晶模塊來介紹它的編程方法。1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,如表1所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”  16

30、02引腳功能描述:1602采用標(biāo)準(zhǔn)的14腳接口,其中:第1腳:VSS為地電源第2腳:VDD接5V正電源第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:RW為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。

31、第714腳:D0D7為8位雙向數(shù)據(jù)線。 1602液晶模塊指示介紹:1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表2所示, 它的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(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)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效 指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無

32、光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍 指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo) 指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符 指令7:字符發(fā)生器RAM地址設(shè)置 指令8:DDRAM地址設(shè)置 指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。 指令10:寫數(shù)據(jù) 指令11:讀數(shù)據(jù)附錄二 LCD控制及顯示子程序DISPLAY: MOV A,R1MOVC A,A+D

33、PTRMOV P0,ACALL WRITE_DATA_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為高電平

34、表示忙就循環(huán)等待RETWRITE_DATA_TO_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í)際數(shù)值的100倍.MUL ABMOV B,#10DIV ABMOV 33H,A;小數(shù)位高M(jìn)OV 32H,B; 小數(shù)位低MOV A,28HMOV C,29H.0 ;29h高位的低4字

35、節(jié)RRC AMOV C,29H.1RRC AMOV C,29H.2RRC AMOV C,29H.3RRC AMOV 28H,A ;重新合成.結(jié)果存在28H.MOV A,28HMOV B,#10DIV ABMOV 26H,A ;整數(shù)位高M(jìn)OV 25H,B ;整數(shù)位低;-MOV A,2AHMOV B,#10DIV ABMOV 40H,B ;高溫限值個(gè)位MOV B,#10DIV ABMOV 41H,B;十位MOV 42H,A;百位;-MOV A,2BHMOV B,#10DIV ABMOV 43H,B ;低溫限值位個(gè)位MOV B,#10DIV ABMOV 44H,B ;十位MOV 45H,A ;百位C

36、LR CMOV A,28H;現(xiàn)溫度值與高溫限值比較SUBB A,2AHJC BIG ;如果高.則關(guān)機(jī)器CLR CMOV A,2BH;現(xiàn)溫度與低溫限值比較SUBB A,28HJC X_BIG ;低溫限值比現(xiàn)溫高,則開機(jī)器AJMP CONVERT_ENDBIG:AJMP CONVERT_ENDX_BIG:CONVERT_END:RET;*顯示溫度*DISPLAY_18B20_TEMP: ;LCD_顯示子程序MOV P0,#10000000B; 顯示位置ACALL ENABLE ;執(zhí)行指令MOV DPTR,#TAB3;顯示'WENDU:'MOV R1,#0 ;碼表初值MOV R0,#

37、7;字?jǐn)?shù)CALL DISPLAY;-顯示溫度值高位MOV DPTR,#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ù)點(diǎn)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,#L

38、ED_DATAMOV R1,32H ;碼表初值MOV R0,#1;字?jǐn)?shù)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

39、R0,#1;字?jǐn)?shù)CALL DISPLAY;-顯示溫度限值低位MOV DPTR,#LED_DATAMOV 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 ;碼

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

41、_18B20_TESTING:MOV P1,#10000000B; 顯示位置ACALL ENABLE ;執(zhí)行指令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)用寫入命令子程

42、序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,#10000000B; 顯示位置ACALL ENABLE ;執(zhí)行指令MOV DPTR,#TAB_SETING_TEMP_HMOV R1,#0 ;碼表初值MOV R0,#13;字?jǐn)?shù)CALL DISPLAyRETDISPLAY_SETING_TEMP_L:MOV P0,#00000001B ;清屏并光標(biāo)復(fù)位ACALL ENABLE;調(diào)用寫入命令子程序MOV P0,#10000000B; 顯示位置ACALL ENABLE ;執(zhí)行指令MOV DPTR,#TAB_SETING_TEMP_LMOV R1,#

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論