基于51單片機(jī)的空氣智能加濕器的設(shè)計(jì)論文,基于,51,單片機(jī),空氣,智能,加濕器,設(shè)計(jì),論文
常州大學(xué)
信息科學(xué)與工程學(xué)院
畢
業(yè)
設(shè)
計(jì)
論
文
畢業(yè)設(shè)計(jì)題目: 基于51單片機(jī)的室內(nèi)濕度自動(dòng)控制裝置設(shè)計(jì)
專(zhuān) 業(yè): 電 子
年 級(jí):
學(xué) 號(hào):
姓 名:
指 導(dǎo) 老 師: 徐 權(quán)
摘 要
在日常生活中加濕器得到了廣泛的應(yīng)用,但是現(xiàn)有的加濕器都需要手工控制開(kāi)啟和關(guān)閉并且不具備對(duì)室內(nèi)空氣溫濕度的監(jiān)測(cè),人們?cè)谑褂眠^(guò)程中存在過(guò)度加濕和干燒的問(wèn)題,不僅給室內(nèi)空氣舒適度造成負(fù)面影響并且還存在安全隱患。因此開(kāi)發(fā)設(shè)計(jì)一種價(jià)格低廉、功耗低、具有自動(dòng)控制功能的加濕器顯得尤為必要。本設(shè)計(jì)采用智能控制,以AT89C51單片機(jī)為核心,外接輔助電路,通過(guò)實(shí)現(xiàn)加濕器的防干燒、聲光報(bào)警、智能開(kāi)啟和關(guān)閉以及室內(nèi)溫濕度的顯示功能基本實(shí)現(xiàn)加濕器的智能化。
目 錄
摘 要 1
第一章 任務(wù)來(lái)源意義及目的 3
第二章 設(shè)計(jì)方案 4
2.1 總體設(shè)計(jì) 4
2.2 實(shí)現(xiàn)方式 4
2.3 理論基礎(chǔ) 5
2.3.1 單片機(jī) 5
2.3.2 DS18B20傳感器 6
2.3.3 1602LCD液晶顯示屏 7
第三章 硬件設(shè)計(jì) 9
3.1 設(shè)計(jì)方案 9
3.2 電路圖 9
3.3 信號(hào)分析 10
3.4 功能描述 10
3.5 復(fù)位電路 11
3.6液位定位及光電開(kāi)關(guān) 12
3.7 1602顯示屏 12
3.8 DS18B20溫度傳感器 13
第四章 軟件設(shè)計(jì) 14
4.1整體設(shè)計(jì)及說(shuō)明 14
4.2 DS18B20流程設(shè)計(jì) 15
4.3 1602字符型LCD流程設(shè)計(jì) 18
第五章 系統(tǒng)調(diào)試 21
第六章 總結(jié) 22
致 謝 23
參考文獻(xiàn) 24
附錄一 1602液晶模塊資料(特點(diǎn),引腳及指令) 25
附錄二 LCD控制及顯示子程序 29
第一章 任務(wù)來(lái)源意義及目的
在日常生活中加濕器得到了廣泛的應(yīng)用,但是現(xiàn)有的加濕器都需要手工控制開(kāi)啟和關(guān)閉并且不具備對(duì)室內(nèi)空氣溫濕度的監(jiān)測(cè),人們?cè)谑褂眠^(guò)程中存在過(guò)度加濕和干燒的問(wèn)題,不僅給室內(nèi)空氣舒適度造成負(fù)面影響并且還存在安全隱患。因此開(kāi)發(fā)設(shè)計(jì)一種價(jià)格低廉、功耗低、具有自動(dòng)控制功能的加濕器顯得尤為必要。
本設(shè)計(jì)采用智能控制,以AT89C51單片機(jī)為核心,外接輔助電路,通過(guò)實(shí)現(xiàn)加濕器的防干燒、聲光報(bào)警、智能開(kāi)啟和關(guān)閉以及室內(nèi)溫濕度的顯示功能基本實(shí)現(xiàn)加濕器的智能化。
第二章 設(shè)計(jì)方案
2.1 總體設(shè)計(jì)
智能加濕器需滿(mǎn)足以下要求:
1)相對(duì)濕度低于40%時(shí)自動(dòng)加濕;
2)用戶(hù)可以設(shè)置系統(tǒng)溫濕度報(bào)警值;
3)由5V穩(wěn)壓直流電源供電,提供溫濕度調(diào)節(jié)控制信號(hào),實(shí)現(xiàn)自動(dòng)控制;
4)檢測(cè)得到的數(shù)據(jù)可以通過(guò)顯示模塊顯示。
硬件設(shè)計(jì)不僅要滿(mǎn)足系統(tǒng)需求,還要滿(mǎn)足功能和外形尺寸要求。
根據(jù)設(shè)計(jì)要求確定了系統(tǒng)的總體方案,包系統(tǒng)由兩個(gè)DS18B20溫度傳感器一個(gè)水位傳感器、單片機(jī)、1602LCD液晶顯示屏、聲光報(bào)警器、以及一個(gè)光電耦合開(kāi)關(guān)等部分組成。系統(tǒng)功能原理圖如圖1-1所示,兩個(gè)溫度傳感器分別采集室內(nèi)空氣的干濕球溫度,并將采集的溫度傳送至單片機(jī)。單片機(jī)對(duì)這兩個(gè)數(shù)據(jù)加以處理并結(jié)合室內(nèi)濕度要求參數(shù)控制加濕器的開(kāi)啟和閉合。另外,水位傳感器還能監(jiān)測(cè)水位,單片機(jī)根據(jù)水位高低控制聲光報(bào)警裝置。自動(dòng)加濕器包括加濕模塊、報(bào)警模塊、自動(dòng)斷電模塊。
單片機(jī)
溫度傳感器1
溫度傳感器2
1602LCD顯示屏
水位傳感器
加濕器開(kāi)關(guān)
聲光報(bào)警器
圖1-1 自動(dòng)加濕器功能原理圖
2.2 實(shí)現(xiàn)方式自動(dòng)加濕器功能原理圖
要達(dá)到自動(dòng)加濕器功能要做好硬件和軟件設(shè)計(jì)和調(diào)試三個(gè)方面的工作。首先硬件方面,通過(guò)合理的設(shè)計(jì)單片機(jī)管腳及其他外圍電路的鏈接,使之既有I/O口的功能,又有控制型號(hào)的功能。由于時(shí)間倉(cāng)促,沒(méi)有找到合適的水位傳感器,在開(kāi)發(fā)過(guò)程中利用三個(gè)按鈕開(kāi)關(guān)代替水位傳感器分別代表高、中、低水位,而加濕器開(kāi)關(guān)則由一發(fā)光二級(jí)管代替,在方正過(guò)程中更容易觀(guān)察系統(tǒng)開(kāi)發(fā)效果。這方面的內(nèi)容詳見(jiàn)硬件設(shè)計(jì)部分內(nèi)容。其次軟件方面,通過(guò)合理設(shè)計(jì)軟件的結(jié)構(gòu)和安排子程序,使程序以最簡(jiǎn)潔有效的方式實(shí)現(xiàn)目的。最后,調(diào)試方面,程序編輯用LAC51系列開(kāi)發(fā)與仿真環(huán)境,編輯過(guò)程可使用軟件仿真觀(guā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)后,開(kāi)始讀取溫度值,并對(duì)其信號(hào)做位處理使之達(dá)到用戶(hù)需求的精度以及計(jì)算得到相對(duì)濕度,最后通過(guò)1602LCD顯示溫濕度值。另外,系統(tǒng)在運(yùn)行過(guò)程中還有專(zhuān)門(mén)的控制聲光報(bào)警系統(tǒng)、光電耦合開(kāi)關(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è)引腳,大致可分為4類(lèi):電源引腳、時(shí)鐘電路引腳、I/O引腳、控制線(xiàn)引腳。根據(jù)開(kāi)發(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è)量器件或裝置,用于滿(mǎn)足系統(tǒng)信息傳輸、存儲(chǔ)、顯示、記錄及控制等要求。在本系統(tǒng)的開(kāi)發(fā)過(guò)程中主要用到了DS18B20數(shù)字溫度傳感器,這種傳感器提供9-12位攝氏溫度測(cè)量i fu b‘有一個(gè)由高低電平觸發(fā)的可編程的不因電源消失}fu改變的報(bào)警功能。DS18B20通過(guò)一個(gè)單線(xiàn)接口發(fā)送或接受信息,因此在中央處理器和DS18B20之間僅需一條連接線(xiàn)(加上地線(xiàn))。它的測(cè)溫范圍為一55-}- + 125 0C,并目‘在一10-}-+850C精度為士5 0C。除此之外,DS18B20能直接從單線(xiàn)通訊線(xiàn)上汲取能量,除去了對(duì)外部電源的需求。每個(gè)DS 18B20都有一個(gè)獨(dú)特的64位序列號(hào),從}fu允許多只DS 18B20同時(shí)連在一根單線(xiàn)總線(xiàn)上;因此,很簡(jiǎn)單就可以用一個(gè)微控制器去控制很多覆蓋在一大片區(qū)域的DS 18B20。這一特性在HVAC環(huán)境控制、探測(cè)建筑物、儀器或機(jī)器的溫度以及過(guò)程監(jiān)測(cè)和控制等方面非常有用。
在測(cè)溫操作方面,DS18B20的核心功能是它的直接讀數(shù)字的溫度傳感器。溫度傳感器的精度為用戶(hù)可編程的9, 10, 11或12位,分別以0. 5 0C , 0 . 2 5 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í),總線(xiàn)控制器必須發(fā)出「44h〕命令。在那之后,產(chǎn)生的溫度數(shù)據(jù)以?xún)蓚€(gè)字節(jié)的形式被存儲(chǔ)到高速暫存器的溫度寄存器中,DS18B20繼續(xù)保持等待狀態(tài)。當(dāng)DS18B20由外部電源供電時(shí),總線(xiàn)控制器在溫度轉(zhuǎn)換指令之后發(fā)起“讀時(shí)序”,DS18B20正在溫度轉(zhuǎn)換中返回0,轉(zhuǎn)換結(jié)束返回1。如果DS18B20由寄生電源供電,除非在進(jìn)入溫度轉(zhuǎn)換時(shí)總線(xiàn)被一個(gè)強(qiáng)上拉拉高,否則將不會(huì)由返回值。寄生電源的總線(xiàn)要求在口618820供電節(jié)詳細(xì)解釋。
圖2-2 DS18B20數(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ā)光,而不像陰極射線(xiàn)管顯示器(CRT)那樣需要不斷刷新新亮點(diǎn)。因此,液晶顯示器畫(huà)質(zhì)高且不會(huì)閃爍。二、數(shù)字式接口,液晶顯示器都是數(shù)字式的,和單片機(jī)系統(tǒng)的接口更加簡(jiǎn)單可靠,操作更加方便。三、體積小、重量輕,液晶顯示器通過(guò)顯示屏上的電極控制液晶分子狀態(tài)來(lái)達(dá)到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。四、功耗低,相對(duì)而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動(dòng)IC上,因而耗電量比其它顯示器要少得多。
本系統(tǒng)選用的字符型LCD是一種專(zhuān)門(mén)用于顯示字母、數(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.5—5.5V
工作電流:2.0mA(5.0V)
模塊最佳工作電壓:5.0V
字符尺寸:2.95×4.35(W×H)mm
第三章 硬件設(shè)計(jì)
3.1 設(shè)計(jì)方案
單片機(jī)
溫度傳感器1
溫度傳感器2
1602LCD顯示屏
水位傳感器
加濕器開(kāi)關(guān)
聲光報(bào)警器
圖3-1 自動(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ù);片上Flash允許程序存儲(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)促,沒(méi)有找到合適的水位傳感器,在開(kāi)發(fā)過(guò)程中利用三個(gè)按鈕開(kāi)關(guān)代替水位傳感器分別代表高、中、低水位,而加濕器開(kāi)關(guān)則由一發(fā)光二級(jí)管代替,在方正過(guò)程中更容易觀(guān)察系統(tǒng)開(kāi)發(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)后,開(kāi)始讀取溫度值,并對(duì)其信號(hào)做位處理使之達(dá)到用戶(hù)需求的精度以及計(jì)算得到相對(duì)濕度,最后通過(guò)1602LCD顯示溫濕度值。另外,系統(tǒng)在運(yùn)行過(guò)程中還有專(zhuān)門(mén)的控制聲光報(bào)警系統(tǒng)、光電耦合開(kāi)關(guān)的控制信號(hào),這些控制信號(hào)比較簡(jiǎn)單,不再一一論述。
3.4 功能描述
參考舒適性空調(diào)的相對(duì)濕度采用40%—65%的要求[x],在功能設(shè)計(jì)過(guò)程中以40%為最適相對(duì)濕度參考值。單片機(jī)一方面通過(guò)監(jiān)測(cè)加濕器內(nèi)部的水位,達(dá)到加濕器防干燒的功能,即只有在水位在水位下限以上時(shí)加濕器才能通電工作。另一方面通過(guò)處理兩個(gè)溫度傳感器測(cè)得的干濕球溫度得到室內(nèi)相對(duì)濕度,并和人體最適相對(duì)濕度做比較。在水位符合要求的前提下,若室內(nèi)相對(duì)濕度高于人體最適值則控制加濕器不動(dòng)作,反之則對(duì)加濕器通電開(kāi)始加濕,直到室內(nèi)空氣達(dá)到最適濕度時(shí)斷電。另外,單片機(jī)通過(guò)和聲光報(bào)警器以及1602LCD顯示屏相連,還具有了溫濕度及水位的顯示功能??傊诂F(xiàn)有的加濕器內(nèi)加入此單片機(jī)將實(shí)現(xiàn)加濕器的防干燒、聲光報(bào)警、智能開(kāi)啟和關(guān)閉以及室內(nèi)溫濕度的顯示功能基本實(shí)現(xiàn)加濕器的智能化。
3.5 復(fù)位電路
復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤銷(xiāo)復(fù)位信號(hào)。為可靠起見(jiàn),電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷(xiāo)復(fù)位信號(hào),以防電源開(kāi)關(guān)或電源插頭分-合過(guò)程中引起的抖動(dòng)而影響復(fù)位。圖3-3所示的RC復(fù)位電路可以實(shí)現(xiàn)上述基本功能,圖3為其輸入-輸出特性。但解決不了電源毛刺(A點(diǎn))和電源緩慢下降(電池電壓不足)等問(wèn)題 而且調(diào)整 RC 常數(shù)改變延時(shí)會(huì)令驅(qū)動(dòng)能力變差。左邊的電路為高電平復(fù)位有效 右邊為低電平Sm為手動(dòng)復(fù)位開(kāi)關(guān) Ch可避免高頻諧波對(duì)電路的干擾。
圖3-3 上電及手動(dòng)復(fù)位電路圖
3.6液位定位及光電開(kāi)關(guān)
由于開(kāi)發(fā)過(guò)程時(shí)間緊迫,暫時(shí)未購(gòu)買(mǎi)到合適的液位監(jiān)測(cè)傳感器,因此在實(shí)際開(kāi)發(fā)過(guò)程中采用三個(gè)開(kāi)關(guān)進(jìn)行代替,按下按鈕表示水位到達(dá)相應(yīng)的水位。另外為了直觀(guān)的看出控制輸出信號(hào)的轉(zhuǎn)臺(tái),開(kāi)發(fā)過(guò)程中將光電開(kāi)關(guān)改為一發(fā)光二級(jí)管并與電阻串聯(lián)接地。見(jiàn)圖3-4。
圖3-4 水位計(jì)光電開(kāi)關(guān)替代元件
3.7 1602顯示屏
利用滑動(dòng)變阻器調(diào)節(jié)背光燈與顯示字符的對(duì)比度,利用三極管的及P2.7控制背光的的暗與滅。接線(xiàn)原理見(jiàn)圖3-5。
圖3-5 1602接線(xiàn)原理圖
3.8 DS18B20溫度傳感器
由于此款溫度傳感器輸出串行通信信號(hào),電路圖相對(duì)簡(jiǎn)單,見(jiàn)圖3-6。
圖3-6 DS18B20溫度傳感器接線(xiàn)圖
第四章 軟件設(shè)計(jì)
4.1整體設(shè)計(jì)及說(shuō)明
系統(tǒng)單片機(jī)代碼采用匯編語(yǔ)言編譯,以偉福仿真器V8/L為開(kāi)發(fā)環(huán)境。系統(tǒng)軟件實(shí)現(xiàn)的功能:
1)通過(guò)LCD顯示溫濕度值及水位;
2)比較監(jiān)測(cè)到的水位,發(fā)現(xiàn)低水位時(shí)自動(dòng)掉電并聲光報(bào)警;
3)根據(jù)相對(duì)濕度值控制加濕器的開(kāi)關(guān)。
根據(jù)監(jiān)控系統(tǒng)功能要求,系統(tǒng)軟件流程圖設(shè)計(jì)如圖所示。
顯示溫濕度
初始化
載入程序
讀干球溫度T
讀濕球溫度TS
求出相對(duì)濕度D
讀水位H
判斷H>Ho
是否成立
開(kāi)啟加濕器
判斷D >D0是否成立
聲光報(bào)警并關(guān)閉加濕器
是
否
是
否
關(guān)加濕器
圖4-1 主程序流程圖
初始化開(kāi)始,然后載入程序,根據(jù)顯示數(shù)據(jù)讀出干球溫度T,濕球溫度TS,根據(jù)干濕球溫度求出相對(duì)濕度D,然后讀出顯示的水位H,判斷水位H是否大于最小水位Ho:若H<=Ho,則聲光報(bào)警并關(guān)閉加濕器,然后顯示溫濕度,再讀出一個(gè)干球溫度T,濕球溫度TS,計(jì)算出相對(duì)濕度D,讀出水位H循環(huán),直至H>Ho成立后,判斷相對(duì)濕度D與最小濕度Do的大小比較,若D<=Do則開(kāi)啟加濕器,顯示溫濕度,循環(huán)直至相對(duì)濕度D<=Do,關(guān)閉加濕器,然后顯示溫濕度過(guò)程循環(huán)。
4.2 DS18B20流程設(shè)計(jì)
每個(gè)DS18B20溫度傳感器的流程圖設(shè)計(jì)如下:
啟動(dòng)溫度轉(zhuǎn)換
讀取溫度
溫度處理
跳過(guò)ROM匹配
DS18B20復(fù)位
跳過(guò)ROM匹配
DS18B20復(fù)位
圖4-2 DS18B20模塊程序流程圖
傳感器DS18B20復(fù)位,跳過(guò)ROM匹配后啟動(dòng)溫度轉(zhuǎn)換,DS18B20復(fù)位然后跳過(guò)ROM匹配,再讀取溫度后進(jìn)行溫度處理,保留一位小數(shù)。讀取數(shù)據(jù)及傳送的程序如下:
READ_TEMP: ;讀1820內(nèi)部溫度子程序.
CALL RESET
JB 70h,EXT1
CALL SKIP_ROM
CALL TEMP_CONV ;溫度AD變換
CALL DELAY_600MS
CALL RESET
CALL SKIP_ROM
CALL TEMP_GET ;發(fā)取溫度的命令
CALL READ ;接收...
EXT1:
RET
SKIP_ROM:;跳過(guò)ROM檢測(cè)
MOV A,#0CCH ;#0CCH為跳過(guò)rom命令
CALL WRITE
RET
RECALL_EPROM:;重調(diào)Eprom
MOV A,#0B8H
CALL WRITE
RET
TEMP_CONV:
MOV A,#44H ;AD變換
CALL WRITE
RET
TEMP_GET:
MOV A ,#0BEH;讀18b20命令
CALL WRITE
RET
;********* 18B20基本時(shí)序子程序
RESET: ;初始化子程序
SETB P1.2
NOP
CLR P1.2 ;拉低
MOV R3,#150 ; *4=600US
CALL DELAY_BY_R3
SETB P1.2;拉高
MOV R3,#15 ; 60US
CALL DELAY_BY_R3
MOV R3,#60 ;4個(gè)周期*60=240US內(nèi)檢測(cè)
A1: JNB P1.2,A2 ;檢測(cè)到低平信號(hào)
DJNZ R3,A1 ;如果沒(méi)有應(yīng)答的低電平信號(hào),返回A1重新檢測(cè),超時(shí)后下一行,
SETB 70h ;DS1820不存在.
JMP A3
A2: CLR 70h
MOV R3,120;240US;等恢復(fù)時(shí)間2*120=240us
DJNZ R3, $
A3:
RET
WRITE:
MOV R2,#8;一個(gè)字節(jié)為8位
CLR C ;C位清0 C位用來(lái)放A的一位數(shù)據(jù),用移位的方法放入C
B1: SETB P1.2
NOP
CLR P1.2
MOV R3,#4 ;16US
CALL DELAY_BY_R3
RRC A;把A中的數(shù)送入C
MOV P1.2,C ;把C送入總線(xiàn)
MOV R3,#12;48US(一位數(shù)據(jù)的發(fā)送:60us
收藏