本科畢設(shè)論文--基于at89s52單片機(jī)ds18d20溫度濕度傳感器的設(shè)計(jì)_第1頁(yè)
本科畢設(shè)論文--基于at89s52單片機(jī)ds18d20溫度濕度傳感器的設(shè)計(jì)_第2頁(yè)
本科畢設(shè)論文--基于at89s52單片機(jī)ds18d20溫度濕度傳感器的設(shè)計(jì)_第3頁(yè)
本科畢設(shè)論文--基于at89s52單片機(jī)ds18d20溫度濕度傳感器的設(shè)計(jì)_第4頁(yè)
本科畢設(shè)論文--基于at89s52單片機(jī)ds18d20溫度濕度傳感器的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

-PAGEIV-PAGEI基于AT89S52單片機(jī)DS18D20溫度濕度傳感器的設(shè)計(jì)摘要在現(xiàn)代冶金、石油、化工及電力生產(chǎn)過程中,溫度是極為重要而又普遍的熱工參數(shù)之一,在環(huán)境惡劣或溫度較高等場(chǎng)合,為了保證生產(chǎn)過程正常安全地進(jìn)行,提高產(chǎn)品的質(zhì)量和數(shù)量,以及減輕工人的勞動(dòng)強(qiáng)度、節(jié)約能源,要求對(duì)加熱爐爐溫進(jìn)行測(cè)、顯示、控制,使之達(dá)到工藝標(biāo)準(zhǔn)。如何更快、更準(zhǔn)確的控制所需的溫度是溫度控制技術(shù)的關(guān)鍵。本設(shè)計(jì)按照設(shè)計(jì)要求,采用功能齊全的protelDXP作為繪制原理圖工具,PCB板作為開發(fā)板的溫度檢測(cè)器。本系統(tǒng)采用現(xiàn)在流行的AT89C52單片機(jī),配以濕度傳感器,溫度傳感器,通過A/D模數(shù)轉(zhuǎn)換等進(jìn)行系統(tǒng)控制。本設(shè)計(jì)還加入了常用的數(shù)碼管顯示及狀態(tài)燈顯示燈常用電路,使得整個(gè)設(shè)計(jì)更加完整,更加靈活。該設(shè)計(jì)整體結(jié)構(gòu)小巧,便于攜帶。關(guān)鍵字:AT89S52單片機(jī);DS18D20溫度傳感器;繼電器;濕度傳感器PAGEIVMulti-functionTemperatureDetectorAbstractInmodernmetallurgy,petroleum,chemicalandpowerproductionprocess,thetemperatureisextremelyimportantanduniversalthermalparametersoftheenvironmentorinhightemperatureandsoon,inordertoensurenormalproductionprocesscarriedoutsafely,improveproductqualityandthenumber,aswellasreducethelaborintensity,energyconservation,therequirementsformeasuringthetemperatureofthefurnace,display,control,tomeetthestandardsprocess.Howtofasterandmoreaccuratetemperaturecontrolrequiredfortemperaturecontroltechnologyisthekey.Inaccordancewiththedesignrequirementsofthedesignusingfull-featuredprotelDXPasaschematicdrawingtools,PCBboardasadevelopmentboardtemperaturedetectors.Thepresentsystemispopularsingle-chipAT89C52,withDS18B20temperaturesensor,A/ThisdesignalsojoinedthecommonLEDstatuslightsanddisplaylightsshowcommoncircuitdesignmakingthewholemorecomplete,moreflexible.Thedesignoftheoverallstructureofthecompact,easytocarry.Keyword:AT89S52SingleChip;AD590TemperatureSensor;Relays目錄摘要 …………………….IAbstract …………………...II引言 …………………….11系統(tǒng)的設(shè)計(jì)任務(wù) …………..21.1溫度檢測(cè)系統(tǒng)設(shè)計(jì)的基本任務(wù) …………………21.1.1主要性能指標(biāo) 21.2溫度檢測(cè)系統(tǒng)設(shè)計(jì)的擴(kuò)展任務(wù) …………………21.2.1主要性能指標(biāo) 22總體設(shè)計(jì) …………………..32.1總設(shè)計(jì)框圖 ………………………32.2技術(shù)特點(diǎn) …………32.2.1AT89C52單片機(jī) 32.2.2ADC0809A/D轉(zhuǎn)換器 33單片機(jī)概述 ………………..43.1單片機(jī)名稱的由來 ……………...43.2單片機(jī)的特點(diǎn) …………………...43.2.1高性能、低價(jià)格 43.2.2體積小、可靠性高 43.2.3低電壓、低功耗 43.3單片機(jī)的應(yīng)用 …………………...54芯片介紹 …………………..54.1芯片AT89S52 ……………………54.1.1功能特性描述 54.1.2引腳功能描述 64.1.3存儲(chǔ)器結(jié)構(gòu) 84.1.4編程方法 94.2芯片ADC0809 …………………….94.2.1基本知識(shí) 94.2.2ADC0809應(yīng)用說明 114.3LED七段數(shù)碼管 ………………..124.474LS138譯碼器 ………………..134.5溫度傳感器DS18B20 …………...154.6濕度傳感器XR61TDR …………...185方案論證與硬件設(shè)計(jì) ……………………185.1溫度電路的設(shè)計(jì) ………………..185.1.1溫度采樣部分的方案論證……………185.1.2溫度電路 185.1.3A/D轉(zhuǎn)換電路 195.2水泵控制電路 …………………..195.3單片機(jī)控制部分 ………………..205.3.1單片機(jī)控制部分的方案論證 205.3.2單片機(jī)控制電路 205.4數(shù)字顯示部分 …………………..215.5濕度采樣和轉(zhuǎn)換電路部分 ……………………..225.5.1A/D轉(zhuǎn)換電路 225.5.2濕度傳感器XR61TDR的電路設(shè)計(jì) 226軟件系統(tǒng)設(shè)計(jì) ……………226.1端口設(shè)置 ………………………..226.2各模塊軟件設(shè)計(jì) ………………..236.2.1DS18B20程序 236.2.2LED顯示程序 256.2.3繼電器控制 266.3程序流程圖 ……………………..266.3.1即時(shí)濕度顯示 266.4總設(shè)計(jì)程序 ……………………..28結(jié)論 …………………...35參考文獻(xiàn) ……………….36致謝 …………………...37附錄 …………………...38PAGE39 引言綜合農(nóng)作物的生長(zhǎng)過程對(duì)外部環(huán)境的主要要求,采用科學(xué)控制方法且具備廣泛用途的節(jié)水灌溉系統(tǒng),是節(jié)水灌溉科學(xué)實(shí)施的核心問題?;诖耍菊n題的主要內(nèi)容是研制開發(fā)適合我國(guó)國(guó)情的、低成本、易推廣的、主要應(yīng)用于溫室大棚的節(jié)水灌溉自動(dòng)控制系統(tǒng),為實(shí)現(xiàn)我國(guó)農(nóng)業(yè)高效節(jié)水灌溉提供技術(shù)裝備。由于不同農(nóng)作物有不同的需水特性,灌水時(shí)間、灌水量既影響農(nóng)產(chǎn)品的產(chǎn)量,也影響農(nóng)產(chǎn)品的質(zhì)量,因此,設(shè)施農(nóng)業(yè)的高效節(jié)水灌溉自動(dòng)控制技術(shù)主要是向適時(shí)適量、按需灌溉的方向發(fā)展。所以,本課題的研究主要包括兩個(gè)方面,一是測(cè),獲取土壤水分信息,并根據(jù)土壤水分信息及溫度和作物需水特性來決定灌溉時(shí)間與灌溉量的多少。這將擺脫以往僅憑經(jīng)驗(yàn)灌溉的灌溉模式,使作物灌溉決策建立在科學(xué)的基礎(chǔ)之上;二是控,要研究如何根據(jù)土壤條件、土壤水分信息及作物需水特性進(jìn)行合理的灌溉決策,即將傳統(tǒng)的憑經(jīng)驗(yàn)由人工手動(dòng)閥門控制灌溉方式改為自動(dòng)進(jìn)行適時(shí)適量、按需精確灌溉控制,從而達(dá)到提高水的利用效率、優(yōu)質(zhì)高產(chǎn)、節(jié)省大量人力,實(shí)現(xiàn)高效農(nóng)業(yè)的目的。單片機(jī)在電子產(chǎn)品中的應(yīng)用已經(jīng)越來越廣泛,在很多的電子產(chǎn)品中也用到了溫度檢測(cè)和溫度控制。隨著溫度控制器應(yīng)用范圍的日益廣泛和多樣,各種適用于不同場(chǎng)合的智能溫度控制器應(yīng)運(yùn)而生。本設(shè)計(jì)是對(duì)溫度進(jìn)行實(shí)時(shí)監(jiān)測(cè)與控制,設(shè)計(jì)的溫度控制系統(tǒng)實(shí)現(xiàn)了基本的溫度控制功能。采用兩個(gè)4位共陽(yáng)數(shù)碼管,一個(gè)顯示即時(shí)溫度,數(shù)碼管即時(shí)顯示溫度,精確到小數(shù)點(diǎn)一位。定時(shí)開啟水泵進(jìn)行灌溉。1系統(tǒng)的設(shè)計(jì)任務(wù)1.1溫度檢測(cè)系統(tǒng)設(shè)計(jì)的基本任務(wù)一通過環(huán)境溫度和濕度自動(dòng)按時(shí)控制水泵的放水量。達(dá)到自動(dòng)灌溉節(jié)約用水的目的。1.1.1主要性能指標(biāo)①溫度測(cè)量范圍:-20C到50C,最小區(qū)分度為。②控制精度:溫度控制的靜態(tài)誤差,濕度小于1%。③用十進(jìn)制數(shù)碼顯示實(shí)際水溫,濕度。1.2溫度檢測(cè)系統(tǒng)設(shè)計(jì)的擴(kuò)展任務(wù)用電爐煮稀飯,首先結(jié)合定時(shí)控制系統(tǒng)對(duì)加熱時(shí)間進(jìn)行設(shè)定,當(dāng)加熱時(shí)間結(jié)束時(shí)通過繼電器時(shí)電爐斷電。而進(jìn)入保溫狀態(tài),而保溫的溫度可自行設(shè)定。使稀飯保持在想要的溫度。1.2.1主要性能指標(biāo)①溫度測(cè)量范圍:-20C到50C,最小區(qū)分度為。②控制精度:溫度控制的靜態(tài)誤差,濕度小于1%。③用十進(jìn)制數(shù)碼顯示實(shí)際水溫,濕度。2總體設(shè)計(jì)2.1總設(shè)計(jì)框圖濕度濕度傳感器A/D轉(zhuǎn)換器信號(hào)的轉(zhuǎn)換單片機(jī)繼電器顯示電路溫度傳感器穩(wěn)壓電源圖2.1設(shè)計(jì)框圖水泵開關(guān)如圖2.1所示,采用89S52單片機(jī)系統(tǒng)來實(shí)現(xiàn)。單片機(jī)軟件編程靈活、自由度大,可用軟件編程實(shí)現(xiàn)各種控制算法和邏輯控制。用集成傳感器AD590對(duì)溫度進(jìn)行采集,所得電流信號(hào)經(jīng)處理得到可用的電壓信號(hào),輸入到A/D轉(zhuǎn)換器轉(zhuǎn)化成數(shù)字信號(hào),再由單片機(jī)對(duì)此信號(hào)進(jìn)行處理,并通過控制電路以及配合定時(shí)控制系統(tǒng)對(duì)水泵開關(guān)進(jìn)行控制。2.2技術(shù)特點(diǎn)2.2.1AT89C52單片機(jī)AT89S52單片機(jī)是一種電可擦寫8位單片機(jī),它內(nèi)部有4k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),1個(gè)全雙工串行I/O口,片內(nèi)晶振及時(shí)鐘電路。2.2.2ADC0809A/D轉(zhuǎn)換器ADC0809是8通道8位CMOS逐次逼近型A/D轉(zhuǎn)換器.片內(nèi)設(shè)置了多路模擬開關(guān)以及通道地址譯碼及鎖存電路,能對(duì)多路模擬信號(hào)進(jìn)行分時(shí)采集與轉(zhuǎn)換,最大不可調(diào)誤差為±1LSB.可直接與單片機(jī)相連,不需另加接口電路.3單片機(jī)概述3.1單片機(jī)名稱的由來單片機(jī)在外觀上與常見的集成電路一樣,體積很小,多為黑色長(zhǎng)條狀,條狀左右兩側(cè)各有一排金屬引腳,可與外電路連接。單片機(jī)體積雖小,但“五臟俱全”,其內(nèi)部結(jié)構(gòu)與普通計(jì)算機(jī)結(jié)構(gòu)類似,也是由中央處理器(CPU)、存儲(chǔ)器和輸入/輸出(I/O)3大基本部分構(gòu)成。實(shí)際就是把一臺(tái)普通計(jì)算機(jī)經(jīng)過簡(jiǎn)化,濃縮在一小片芯片內(nèi),形成了芯片級(jí)的計(jì)算機(jī)(singlechipmicrocomputer),即單芯片微型計(jì)算機(jī),簡(jiǎn)稱單片機(jī)。單片機(jī)也稱為微控制器或嵌入式微管制器。計(jì)算機(jī)是靠輸入程序來工作的,同樣,單片機(jī)工作也需要事先輸入程序。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。目前單片機(jī)經(jīng)過1、2、3、3代的發(fā)展,正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強(qiáng),內(nèi)部資源在增多,引角的多功能化,以及低電壓低功耗。3.2單片機(jī)的特點(diǎn)3.2.1高性能、低價(jià)格一片單片機(jī)從功能上講相當(dāng)于一臺(tái)微型計(jì)算機(jī),可是價(jià)格卻很低,一片單片機(jī)的價(jià)格一般在幾元到幾十元之間。而且隨意科學(xué)技術(shù)的發(fā)展和市場(chǎng)競(jìng)爭(zhēng)的需要,世界上生產(chǎn)單片機(jī)的各大公司都在不斷地采用新技術(shù)來提高單片機(jī)的性能,同時(shí)又進(jìn)一步降低其價(jià)格。3.2.2體積小、可靠性高在單片機(jī)的片內(nèi),除了一般必須具有的ROM、RAM、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)外,還盡可能地把眾多的各種外圍功能器件集成在片內(nèi),減少了外部各芯片之間的連接,大大提高了單片機(jī)的可靠性和抗干擾能力。3.2.3低電壓、低功耗一般單片機(jī)的工作電壓為5V,有的單片機(jī)可以在1.8~3.6V的電壓下工作,而且,功耗降至μA級(jí)。例如,MSP430超低功耗類型的單片機(jī),兩個(gè)鈕扣電池就可以保障其運(yùn)行長(zhǎng)達(dá)近10年。單片機(jī)的這種低電壓、低功耗的特性,對(duì)于設(shè)計(jì)和開發(fā)攜帶式智能產(chǎn)品和家用消費(fèi)類產(chǎn)品顯得非常重要。3.3單片機(jī)的應(yīng)用只需在電路中添加少許元器件,通過編寫程序就可以實(shí)現(xiàn)多種功能的單片機(jī)自動(dòng)控制。單片機(jī)接上鍵盤可以進(jìn)行信號(hào)輸入;單片機(jī)接上顯示器可以實(shí)現(xiàn)數(shù)據(jù)顯示;單片機(jī)接上喇叭可以實(shí)現(xiàn)聲音輸出;單片機(jī)可以用來通信,也可以用來計(jì)數(shù)和定時(shí),還可以控制彩燈的閃爍、電機(jī)的運(yùn)轉(zhuǎn)、機(jī)器人的活動(dòng)以及交通燈信號(hào)的控制等。由于單片機(jī)體積小巧、功能強(qiáng)大、應(yīng)用靈活、價(jià)格便宜,所以應(yīng)用十分廣泛。已經(jīng)在工業(yè)控制、國(guó)防裝備、智能儀器等領(lǐng)域得到了廣泛應(yīng)用?,F(xiàn)在,人們?nèi)粘I钪兴褂玫母鞣N家用電器,例如,洗衣機(jī)、電冰箱、空調(diào)、微波爐、電飯煲、音響、電風(fēng)扇及高檔電子玩具等,也普遍采用了單片機(jī)來代替?zhèn)鹘y(tǒng)的控制電路,既降低了成本,又提高了自動(dòng)化程度。4芯片介紹4.1芯片AT89S524.1.1功能特性描述AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。4.1.2引腳功能描述AT89S52單片機(jī)有40個(gè)引腳,引腳圖如下圖4.1所示圖4.1AT89S52的引腳圖VCC:電源GND:地P0口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí)引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,p1輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P1端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下表4.1所示。在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)表4.1P1口引腳的第二功能引腳號(hào)第二功能P1.0T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出P1.1T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制)P1.5MOSI(在系統(tǒng)編程用)P1.6MISO(在系統(tǒng)編程用)P1.7SCK(在系統(tǒng)編程用)P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P2端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX@DPTR)時(shí),P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX@RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。P3口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,p2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P3端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表4.2所示。在flash編程和校驗(yàn)時(shí),P3表4.2P3口引腳的第二功能引腳號(hào)第二功能P3.0RXD(串行輸入)P3.1TXD(串行輸出)P3.2INT0(外部中斷0)P3.3INT1(外部中斷1)P3.4T0(定時(shí)器0外部輸入)P3.5T1(定時(shí)器1外部輸入)P3.6WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7RD(外部數(shù)據(jù)存儲(chǔ)器寫選通)RST:復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,RST腳輸出96個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。ALE/PROG:地址鎖存控制信號(hào)(ALE)是訪問外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。在flash編程時(shí),此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過。如果需要通過將地址為8EH的SFR的第0位置“1”,ALE操作將無(wú)效。這一位置“1”,ALE僅在執(zhí)行MOVX或MOVC指令時(shí)有效。否則,ALE將被微弱拉高。這個(gè)ALE使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)PSEN:外部程序存儲(chǔ)器選通信號(hào)(PSEN)是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。EA/VPP:訪問外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H到FFFFH的外部程序存儲(chǔ)器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。4.1.3存儲(chǔ)器結(jié)構(gòu)MCS-51器件有單獨(dú)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器都可以64K尋址。程序存儲(chǔ)器:如果EA引腳接地,程序讀取只從外部存儲(chǔ)器開始。對(duì)于89S52,如果EA接VCC,程序讀寫先從內(nèi)部存儲(chǔ)器(地址為0000H~1FFFH)開始,接著從外部尋址,尋址地址為:2000H~FFFFH。數(shù)據(jù)存儲(chǔ)器:AT89S52有256字節(jié)片內(nèi)數(shù)據(jù)存儲(chǔ)器。高128字節(jié)與特殊功能寄存器重疊。也就是說高128字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開的。當(dāng)一條指令訪問高于7FH的地址時(shí),尋址方式?jīng)Q定CPU訪問高128字節(jié)RAM還是特殊功能寄存器空間直接尋址方式訪問特殊功能寄存器(SFR)。例如,下面的直接尋址指令訪問0A0H(P2口)存儲(chǔ)單元MOV0A0H,#data使用間接尋址方式訪問高128字節(jié)RAM。例如,下面的間接尋址方式中,R0內(nèi)容為0A0H,訪問的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。MOV@R0,#data堆棧操作也是簡(jiǎn)介尋址方式。因此,高128字節(jié)數(shù)據(jù)RAM也可用于堆??臻g。4.1.4編程方法采用下列步驟對(duì)AT89C52編程:在地址線上輸入編程單元地址信號(hào)在數(shù)據(jù)線上輸入正確的數(shù)據(jù)激活相應(yīng)的控制信號(hào)把EA/Vpp升至12V每給Flash寫入一個(gè)字節(jié)或程序加密位時(shí),要給ALE/PROG一次脈沖。節(jié)寫周期時(shí)自身定制的,典型值僅僅50us。改變地址、數(shù)據(jù)重復(fù)第1步到第5步,直到文件結(jié)束。4.2芯片ADC08094.2.1基本知識(shí)ADC0809是帶有8位A/D轉(zhuǎn)換器、8路多路開關(guān)以及微處理機(jī)兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉(zhuǎn)換器,可以和單片機(jī)直接接口。ADC0809的內(nèi)部邏輯結(jié)構(gòu)圖4.2ADC0809的內(nèi)部邏輯結(jié)構(gòu)圖由上圖4.2可知,ADC0809由一個(gè)8路模擬開關(guān)、一個(gè)地址鎖存與譯碼器、一個(gè)A/D轉(zhuǎn)換器和一個(gè)三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個(gè)模擬通道,允許8路模擬量分時(shí)輸入,共用A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當(dāng)OE端為高電平時(shí),才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。ADC0809的引腳結(jié)構(gòu)ADC0809A/D轉(zhuǎn)換器有28個(gè)引腳,引腳圖如下圖4.3所示圖4.3ADC0809的引腳結(jié)構(gòu)圖IN0-IN7:8條模擬量輸入通道ADC0809對(duì)輸入模擬量要求:信號(hào)單極性,電壓范圍是0-5V,若信號(hào)太小,必須進(jìn)行放大;輸入的模擬量在轉(zhuǎn)換過程中應(yīng)該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。地址輸入和控制線:4條ALE為地址鎖存允許輸入線,高電平有效。當(dāng)ALE線為高電平時(shí),地址鎖存與譯碼器將A,B,C三條地址線的地址信號(hào)進(jìn)行鎖存,經(jīng)譯碼后被選中的通道的模擬量進(jìn)轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。A,B和C為地址輸入線,用于選通IN0-IN7上的一路模擬量輸入。通道選擇表如下表4.3所示。表4.3通道選擇表CBA選擇的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7數(shù)字量輸出及控制線:11條ST為轉(zhuǎn)換啟動(dòng)信號(hào)。當(dāng)ST上跳沿時(shí),所有內(nèi)部寄存器清零;下跳沿時(shí),開始進(jìn)行A/D轉(zhuǎn)換;在轉(zhuǎn)換期間,ST應(yīng)保持低電平。EOC為轉(zhuǎn)換結(jié)束信號(hào)。當(dāng)EOC為高電平時(shí),表明轉(zhuǎn)換結(jié)束;否則,表明正在進(jìn)行A/D轉(zhuǎn)換。OE為輸出允許信號(hào)。用于控制三條輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù);OE=0,輸出數(shù)據(jù)線呈高阻狀態(tài)。D7-D0為數(shù)字量輸出線。CLK為時(shí)鐘輸入信號(hào)線。因ADC0809的內(nèi)部沒有時(shí)鐘電路,所需時(shí)鐘信號(hào)必須由外界提供,通常使用頻率為500KHZ。VREF(+),VREF(-)為參考電壓輸入。4.2.2ADC0809應(yīng)用說明ADC0809內(nèi)部帶有輸出鎖存器,可以與AT89S51單片機(jī)直接相連。初始化時(shí),使ST和OE信號(hào)全為低電平。送要轉(zhuǎn)換的哪一通道的地址到A,B,C端口上。在ST端給出一個(gè)至少有100ns寬的正脈沖信號(hào)。是否轉(zhuǎn)換完畢,我們根據(jù)EOC信號(hào)來判斷。當(dāng)EOC變?yōu)楦唠娖綍r(shí),這時(shí)給OE為高電平,轉(zhuǎn)換的數(shù)據(jù)就輸出給單片機(jī)了。4.3LED七段數(shù)碼管LED顯示器是于發(fā)光二極管組成的,用來顯示特定的的顯示器。7段數(shù)碼管發(fā)光二極管使用靈活,簡(jiǎn)單方便,當(dāng)有電流通過時(shí),相應(yīng)的發(fā)光二極管就點(diǎn)亮;當(dāng)電流消滅沒有電流時(shí),發(fā)光二極管就滅。同樣。共陽(yáng)極LED顯示器。就是將所有發(fā)光二極管的陽(yáng)極接到一起,接到電源正極。這樣,當(dāng)某個(gè)發(fā)光二極管的陰極加有低電平,該發(fā)光二極管即被點(diǎn)亮。LED顯示器是于發(fā)光二極管組成的,用來顯示特定的的顯示器。7段數(shù)碼管發(fā)光二極管使用靈活,簡(jiǎn)單方便,當(dāng)有電流通過時(shí),相應(yīng)的發(fā)光二極管就點(diǎn)亮;當(dāng)電流消滅沒有電流時(shí),發(fā)光二極管就滅。同樣。共陽(yáng)極LED顯示器。就是將所有發(fā)光二極管的陽(yáng)極接到一起,接到電源正極。這樣,當(dāng)某個(gè)發(fā)光二極管的陰極加有低電平,該發(fā)光二極管即被點(diǎn)亮。表4.4LED顯示器字符段碼表顯示字符共陰極段碼共陽(yáng)極段碼顯示字符共陰極段碼共陽(yáng)極段碼03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99H.80H7EH56DH92HP73H82H67DH82HU3EHC1H706HF8HT31HCEH87FH80HY6EH91H96FH09H8.FFH00HA77H88H“滅”00HFFHB7CH83H|||通過a,b,c,d,e,f,g,dp各點(diǎn)和公共點(diǎn)的電位,就可以控制個(gè)發(fā)光二極管的亮暗,而不同的發(fā)光的亮暗組合就可以顯示不同的數(shù)字(dp點(diǎn)是來表示小數(shù)點(diǎn),在顯示數(shù)字中不起作用)。比如,要顯示“3”,則只需點(diǎn)亮a,b,c,d,g5個(gè)發(fā)光二極管,而其他均為暗,對(duì)于共陰極LED顯示器來說,就是在在這些引腳上輸入高電平即可。LED顯示器字符段碼表如表4.4所示。常用7段數(shù)碼管LED顯示器,共陰極和共陽(yáng)極結(jié)構(gòu)如下圖4.4所示:圖4.4LED顯示器4.474LS138譯碼器通用的譯碼器又稱為二進(jìn)制譯碼器,它的輸入是一組二進(jìn)制代碼(又稱地址碼),輸出則是一組高、低電平信號(hào)。74LS138是3-8譯碼器,它有3個(gè)輸入使能控制端、、,只有=1,==0同時(shí)滿足時(shí)才允許譯碼,3個(gè)條件中有一個(gè)不滿足就禁止譯碼。設(shè)置多個(gè)使能端的目的在于靈活應(yīng)用、組成各種電路。由下表4.674LS138功能表可以寫出(在各使能有效的條件下)輸出與輸入的邏輯表達(dá)式:,,,,,,,,表4.674LS138功能表輸入輸出×1×010101010101010××××××00000101001110010111011111111111111111110111111110111111110111111110111111110111111110111111110111111110注:,0為低電平,1為高電平,×為任意74LS138譯碼器有16個(gè)引腳,引腳圖如下圖4.6所示:圖3.674LS138譯碼器的引腳圖A、B、C:譯碼地址輸入端G1:選通端/(G2A)、/(G2B):選通端(低電平有效)Y0~Y7:譯碼輸出端(低電平有效)下圖為74LS138譯碼器的邏輯圖4.5:圖4.574LS138譯碼器的邏輯圖4.5溫度傳感器DS18B20DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)9-12位的數(shù)字值讀數(shù)方式。(1)DS18B20功能特性獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;無(wú)須外部器件;可通過數(shù)據(jù)線供電,電壓范圍為3.0-5.5V;零待機(jī)功耗;溫度以9或12位數(shù)字量讀書;用戶可定義的非易失性溫度報(bào)警設(shè)置;報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件;負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。(2)引腳圖TO-92封裝的DS18B20的引腳排列見下圖,其引腳功能描述見下:圖3.5DS18B20引腳圖GND:地信號(hào)。DQ:為數(shù)字信號(hào)輸入/輸出端。VDD:為外接供電電源輸入端。(3)DS18B20內(nèi)部存儲(chǔ)器DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8個(gè)字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖3.6所示。頭兩個(gè)字節(jié)包含測(cè)得的溫度信息,第三和第四字節(jié)是TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第五個(gè)字節(jié)為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。該字節(jié)各位的定義如圖3.6所示。低5位一直為1,TM是測(cè)試模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式。圖3.6配置寄存器DS18B20測(cè)量溫度范圍為-55℃~125℃,其分辨率可由程序設(shè)定為9~12位??稍O(shè)定的報(bào)警溫度。DDS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM用于總線時(shí)識(shí)別各個(gè)器件;溫度傳感器可完成對(duì)溫度的測(cè)量并將值以16位符號(hào)擴(kuò)張的二進(jìn)制補(bǔ)碼形式存于寄存器中,設(shè)置成12位時(shí),以0.0625℃/LSB形式表達(dá)如:讀出的16位二進(jìn)制數(shù)為0000000000001001也就是換算為10進(jìn)制為9其此時(shí)溫度為9*0.0625=0.56254.6濕度傳感器XR61TDR土壤容積含水量單位:%(m3/m3)量程:0-100%(m3/m3)精度:0-50%(m3/m3)±2%(m3/m3)測(cè)量區(qū)域:90%的影響在圍繞中央探針的直徑3cm.長(zhǎng)為5.8cm的圓柱體內(nèi)精度漂移量:2‰/年穩(wěn)定時(shí)間:通電后約一秒進(jìn)入穩(wěn)定狀態(tài)工作電壓:輸入為4-6.5VDC工作電流28-30ma典型值28mA輸出信號(hào):輸出為0-2.5VDC工作溫度:-30-﹢70℃5方案論證與硬件設(shè)計(jì)5.1溫度電路的設(shè)計(jì)5.1.1溫度采樣部分的方案論證方案1:采用熱敏電阻,可滿足35℃--95℃的測(cè)量范圍,但熱敏電阻精度、重復(fù)性和可靠性都比較差,對(duì)于檢測(cè)精度小于1℃的溫度信號(hào)是不適用的。

方案2:采用溫度傳感器DS18B20。:DS18B20具有體積小、質(zhì)量輕、線形度好、性能穩(wěn)定等優(yōu)點(diǎn)。其測(cè)量范圍在-50℃--+125℃,滿刻度范圍誤差為±0.3℃,當(dāng)電源電壓在5—10V之間,穩(wěn)定度為1﹪時(shí),誤差只有±0.01℃,其各方面特性都滿足此系統(tǒng)的設(shè)計(jì)要求。此外DS18B20自帶ad轉(zhuǎn)換,省去了很多硬件設(shè)計(jì)麻煩。

經(jīng)上述比較,方案2明顯優(yōu)于方案1,故選用方案2。5.1.2溫度電路使用溫度傳感器DS18B20圖4.1溫度電路5.1.3A/D轉(zhuǎn)換電路如圖4.1所示,從ADC0809的通道中輸入由AD590經(jīng)過10KΩ之后采樣到的電壓值,并通過對(duì)地址輸入線A,B和C的設(shè)置(由單片機(jī)P2.0~P2.2),選通IN0-IN7上的一路模擬量輸入。進(jìn)行A/D轉(zhuǎn)換時(shí),采用查詢EOC的標(biāo)志信號(hào)來檢測(cè)A/D轉(zhuǎn)換是否完畢,若完畢則把數(shù)據(jù)通過P0端口讀入,經(jīng)過數(shù)據(jù)處理之后在數(shù)碼管上顯示。5.2水泵控制電路定時(shí)系統(tǒng)和繼電器控制電路。如下圖4.2所示P3.1為水泵的控制端口,當(dāng)需要灌溉的時(shí)候P3.1為高電平,反之,P3.1為低電平。繼電器控制電路如下圖4.2所示:圖4.2繼電器控制電路單片機(jī)時(shí)微電,要控制電路要加放大電路,現(xiàn)使用9015三級(jí)管放大。使用1N4001穩(wěn)壓二級(jí)管,發(fā)光二極管亮代表繼電器打開。5.3單片機(jī)控制部分5.3.1單片機(jī)控制部分的方案論證方案1:采用8031芯片,其內(nèi)部沒有程序存儲(chǔ)器,需要進(jìn)行外部擴(kuò)展,這給電路增加了復(fù)雜度。方案2:采用2051芯片,其內(nèi)部有2KB單元的程序存儲(chǔ)器,不需外部擴(kuò)展程序存儲(chǔ)器。但由于系統(tǒng)用到較多的I/O口,因此此芯片資源不夠用。方案3:采用AT89C51單片機(jī),其內(nèi)部有4KB單元的程序存儲(chǔ)器,不需外部擴(kuò)展程序存儲(chǔ)器,而且它的I/O口也足夠本次設(shè)計(jì)的要求。與CMOS電平和TTL電平均兼容。減少了很多電路設(shè)計(jì)麻煩。比較這3種方案,綜合考慮單片機(jī)的各部分資源,因此此次設(shè)計(jì)選用方案3。5.3.2單片機(jī)控制電路單片機(jī)控制部分主要包括單片機(jī)電路、晶振電路以及復(fù)位電路三部分構(gòu)成。設(shè)計(jì)電路圖如圖4.3所示:圖4.3單片機(jī)控制電路此部分是電路的核心部分,系統(tǒng)的控制采用了單片機(jī)AT89C52。單片機(jī)AT89C52內(nèi)部有4KB單元的程序存儲(chǔ)器及256字節(jié)的數(shù)據(jù)存儲(chǔ)器。因此系統(tǒng)不必?cái)U(kuò)展外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器這樣大大的減少了系統(tǒng)硬件部分。5.4數(shù)字顯示部分?jǐn)?shù)字顯示電路包括兩個(gè)四位共陽(yáng)極LED顯示器和鍵盤控制電路組成,一個(gè)LED顯示器顯示實(shí)際的溫度值,另一個(gè)LED顯示器顯示設(shè)定的濕度。設(shè)計(jì)電路圖如圖4.4所示:圖4.4鍵盤及數(shù)字顯示電路LED顯示器采用動(dòng)態(tài)分時(shí)掃描方式。采用4位共陽(yáng)極LED示器。共陽(yáng)極LED顯示器的陰極和單片機(jī)AT89C52的P1口連接,顯示段碼由CPU通過P1口傳送到LED顯示器的陰極。位掃描碼由單片機(jī)AT89C52的P2.0,P2.1,P2.2輸出,經(jīng)74LS138譯碼器譯碼后,再經(jīng)同相驅(qū)動(dòng)器傳送到LED顯示器的陽(yáng)極,選通LED顯示器的數(shù)位。單片機(jī)輸出電壓電流不能驅(qū)動(dòng)數(shù)碼管,使用9015三極管進(jìn)行驅(qū)動(dòng)。138譯碼器是TTL電平與單片機(jī)兼容。本模塊利用了138譯碼器對(duì)顯示器動(dòng)態(tài)掃描,采用此方法大大簡(jiǎn)化了硬件,充分的利用了單片機(jī)的資源。LED顯示的掃描處理占用大量機(jī)時(shí),增加軟件編程負(fù)擔(dān)。5.5濕度采樣和轉(zhuǎn)換電路部分5.5.1A/D轉(zhuǎn)換電路如圖4.1所示,從ADC0809的通道中輸入由AD590經(jīng)過10KΩ之后采樣到的電壓值,并通過對(duì)地址輸入線A,B和C的設(shè)置(由單片機(jī)P2.0~P2.2),選通IN0-IN7上的一路模擬量輸入。進(jìn)行A/D轉(zhuǎn)換時(shí),采用查詢EOC的標(biāo)志信號(hào)來檢測(cè)A/D轉(zhuǎn)換是否完畢,若完畢則把數(shù)據(jù)通過P0端口讀入,經(jīng)過數(shù)據(jù)處理之后在數(shù)碼管上顯示。5.5.2濕度傳感器XR61TDR的電路設(shè)計(jì)濕度傳感器輸出為0-2.5VDC,經(jīng)過兩倍放大后電壓范圍0—5V。因此參考adc0809取電源電壓VCC作為參考電壓。6軟件系統(tǒng)設(shè)計(jì)6.1端口設(shè)置結(jié)合硬件電路設(shè)計(jì)對(duì)單片機(jī)AT89S52的端口進(jìn)行相應(yīng)的設(shè)置:數(shù)碼管:CC8~CC1連P1口3-8譯碼器:A,B,C連P2.0,P2.1,P2.2溫度傳感器:P3.7ADC0809:A,B,C連P2.0,P2.4,P2.5,P2.6ALE連P2.6START連P2.4EOC連P2.5OE連P2.7D7~D0連P0口6.2各模塊軟件設(shè)計(jì)6.2.1DS18B20程序首先判斷是否有鍵盤按下,若加值鍵盤按下,那么判斷設(shè)置值是否為100,若為100那么設(shè)置值就為0,否則,設(shè)置值就加1;若減值鍵盤按下,那么判斷設(shè)置值是否為0,若為0那么設(shè)置值就為100,否則,設(shè)置值就減1。程序: /****************DS18B20復(fù)位函數(shù)************************/ow_reset(void){charpresence=1;while(presence){while(presence){DQ=1;_nop_();_nop_();//從高拉倒低DQ=0;delay2(50);//550usDQ=1;delay2(6);//66uspresence=DQ;//presence=0復(fù)位成功,繼續(xù)下一步}delay2(45);//延時(shí)500uspresence=~DQ;}DQ=1;//拉高電平}/****************DS18B20寫命令函數(shù)************************///向1-WIRE總線上寫1個(gè)字節(jié)voidwrite_byte(ucharval){uchari;for(i=8;i>0;i--){DQ=1;_nop_();_nop_();//從高拉倒低DQ=0;_nop_();_nop_();_nop_();_nop_();//5usDQ=val&0x01;//最低位移出delay2(6);//66usval=val/2;//右移1位}DQ=1;delay2(1);}///****************DS18B20讀1字節(jié)函數(shù)************************///從總線上取1個(gè)字節(jié)ucharread_byte(void){uchari;ucharvalue=0;for(i=8;i>0;i--){DQ=1;_nop_();_nop_();value>>=1;DQ=0;_nop_();_nop_();_nop_();_nop_();//4usDQ=1;_nop_();_nop_();_nop_();_nop_();//4usif(DQ)value|=0x80;delay2(6);//66us}DQ=1;return(value);}///****************讀出溫度函數(shù)************************///uintread_temp(){ow_reset();//總線復(fù)位delay2(200);write_byte(0xcc);//發(fā)命令write_byte(0x44);//發(fā)轉(zhuǎn)換命令ow_reset();delay2(1);write_byte(0xcc);//發(fā)命令write_byte(0xbe);temp_data[0]=read_byte();//讀溫度值的第字節(jié)temp_data[1]=read_byte();//讀溫度值的高字節(jié)temp=temp_data[1];temp<<=8;temp=temp|temp_data[0];//兩字節(jié)合成一個(gè)整型變量。returntemp;//返回溫度值}6.2.2LED顯示程序數(shù)碼管的第四位顯示即使溫度值,高四位顯示設(shè)置溫度值。程序:/*數(shù)碼管掃描***************************************/voidshu_ma_guan(void){unsignedchari;/*顯示溫度的********************************/P1=0x00;SEL0=0;SEL1=0;SEL2=0;P1=~m[T%10];//個(gè)位第一個(gè)數(shù)碼管以下依次類推 delaym(4); P1=0xff;SEL0=1;SEL1=0;SEL2=0;P1=~m[T/100%10];//十位 delaym(4); P1=0xff;SEL0=0;SEL1=1;SEL2=0;P1=~m[T/100%10];//百位delaym(4); P1=0xff;SEL0=1;SEL1=1;SEL2=0;P1=~m[T/1000];//千位delaym(4); P1=0xff;SEL0=0;SEL1=0;SEL2=1;P1=~m[b[0]];//個(gè)位第一個(gè)數(shù)碼管以下依次類推 delaym(4); P1=0xff;SEL0=1;SEL1=0;SEL2=1;P1=~m[b[1]];//十位 delaym(4); P1=0xff;SEL0=0;SEL1=1;SEL2=1;P1=~m[b[2]];//百位delaym(4); P1=0xff;SEL0=1;SEL1=1;SEL2=1;P1=~m[b[3]];//千位delaym(4); P1=0xff;}6.2.3繼電器控制P3.1為的控制端口即接繼電器,當(dāng)把該系統(tǒng)的根據(jù)即時(shí)溫度和濕度定時(shí)開啟水泵開關(guān),P2.7為高電平打開水泵,反之,P2.7為低電平關(guān)閉水泵。6.3程序流程圖6.3.1即時(shí)濕度顯示即時(shí)溫度顯示的流程圖如圖5.1所示:開始開始I/O端口初始化調(diào)用ADC0809初始化程序判斷EOC是否等于零AD轉(zhuǎn)換完成調(diào)用數(shù)碼管顯示子程序?qū)⒉杉绞菙?shù)據(jù)送到P0口調(diào)用將二進(jìn)制數(shù)據(jù)轉(zhuǎn)化為溫度值子程序使即使?jié)穸蕊@示在數(shù)碼管的低4位定義端口是否圖5.1即時(shí)濕度顯示的流程圖即時(shí)溫度顯示流程圖開始開始開始初始化DS18B20存在?ROM操作命令存儲(chǔ)操作命令讀取溫度值返回是否圖5.2設(shè)置的溫度顯示的流程圖6.4總設(shè)計(jì)程序#include<reg52.h>#include<intrins.h>#include<absacc.h>#defineucharunsignedchar#defineuintunsignedintsbitDQ=P3^7;//溫度輸入口sbitP36=P3^6;sbitp36=P3^6;uinttemp,temp_data[2];sbitALE=P2^6;sbitSTART=P2^4;sbitEOC=P2^5;sbitOE=P2^7;sbitSEL0=P2^0;sbitSEL1=P2^1;sbitSEL2=P2^2;sbitSEL3=P2^3;sbitP30=P3^0;unsignedcharm[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};unsignedchardout;//采集到的二進(jìn)制值unsignedintT=0;//溫度值unsignedintb[4]={0,0,0,0};voiddelaym(unsignedintt) //延時(shí)子程序,入口參數(shù)ms,延遲時(shí)間=t*1ms,t=0~65535{unsignedcharj; //j=0~255while(t--){for(j=0;j<50;j++); //j進(jìn)行的內(nèi)部循環(huán),1次延遲8us}}voidad0809(void){ALE=1;_nop_();START=1;_nop_();ALE=0;_nop_();START=0;}voidConvert_T(void){ T=(5.0/255*dout)*20; }/*數(shù)碼管掃描***************************************/voidshu_ma_guan(void){/*****************顯示溫度的*********************///while(1){P1=0x00;SEL0=0;SEL1=0;SEL2=0;P1=~m[T%10];//個(gè)位第一個(gè)數(shù)碼管以下依次類推 delaym(4); P1=0xff;SEL0=1;SEL1=0;SEL2=0;P1=~m[T/100%10];//十位 delaym(4); P1=0xff;SEL0=0;SEL1=1;SEL2=0;P1=~m[T/100%10];//百位delaym(4); P1=0xff;SEL0=1;SEL1=1;SEL2=0;P1=~m[T/1000];//千位delaym(4); P1=0xff;SEL0=0;SEL1=0;SEL2=1;P1=~m[b[0]];//個(gè)位第一個(gè)數(shù)碼管以下依次類推 delaym(4); P1=0xff;SEL0=1;SEL1=0;SEL2=1;P1=~m[b[1]];//十位 delaym(4); P1=0xff;SEL0=0;SEL1=1;SEL2=1;P1=~m[b[2]];//百位delaym(4); P1=0xff;SEL0=1;SEL1=1;SEL2=1;P1=~m[b[3]];//千位delaym(4); P1=0xff;}voidzhongduan(void)interrupt1{P30=~P30;}voiddelay2(uintt){for(;t>0;t--);}///****************DS18B20復(fù)位函數(shù)************************/ow_reset(void){charpresence=1;while(presence){while(presence){DQ=1;_nop_();_nop_();//從高拉倒低DQ=0;delay2(50);//550usDQ=1;delay2(6);//66uspresence=DQ;//presence=0復(fù)位成功,繼續(xù)下一步}delay2(45);//延時(shí)500uspresence=~DQ;}DQ=1;//拉高電平}/****************DS18B20寫命令函數(shù)************************///向1-WIRE總線上寫1個(gè)字節(jié)voidwrite_byte(ucharval){uchari;for(i=8;i>0;i--){DQ=1;_nop_();_nop_();//從高拉倒低DQ=0;_nop_();_nop_();_nop_();_nop_();//5usDQ=val&0x01;//最低位移出delay2(6);//66usval=val/2;//右移1位}DQ=1;delay2(1);}///****************DS18B20讀1字節(jié)函數(shù)************************///從總線上取1個(gè)字節(jié)ucharread_byte(void){uchari;ucharvalue=0;for(i=8;i>0;i--){DQ=1;_nop_();_nop_();value>>=1;DQ=0;_nop_();_nop_();_nop_();_nop_();//4usDQ=1;_no

溫馨提示

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