




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
-PAGEIV-PAGEI基于AT89S52單片機DS18D20溫度濕度傳感器的設計摘要在現(xiàn)代冶金、石油、化工及電力生產過程中,溫度是極為重要而又普遍的熱工參數(shù)之一,在環(huán)境惡劣或溫度較高等場合,為了保證生產過程正常安全地進行,提高產品的質量和數(shù)量,以及減輕工人的勞動強度、節(jié)約能源,要求對加熱爐爐溫進行測、顯示、控制,使之達到工藝標準。如何更快、更準確的控制所需的溫度是溫度控制技術的關鍵。本設計按照設計要求,采用功能齊全的protelDXP作為繪制原理圖工具,PCB板作為開發(fā)板的溫度檢測器。本系統(tǒng)采用現(xiàn)在流行的AT89C52單片機,配以濕度傳感器,溫度傳感器,通過A/D模數(shù)轉換等進行系統(tǒng)控制。本設計還加入了常用的數(shù)碼管顯示及狀態(tài)燈顯示燈常用電路,使得整個設計更加完整,更加靈活。該設計整體結構小巧,便于攜帶。關鍵字:AT89S52單片機;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)的設計任務 …………..21.1溫度檢測系統(tǒng)設計的基本任務 …………………21.1.1主要性能指標 21.2溫度檢測系統(tǒng)設計的擴展任務 …………………21.2.1主要性能指標 22總體設計 …………………..32.1總設計框圖 ………………………32.2技術特點 …………32.2.1AT89C52單片機 32.2.2ADC0809A/D轉換器 33單片機概述 ………………..43.1單片機名稱的由來 ……………...43.2單片機的特點 …………………...43.2.1高性能、低價格 43.2.2體積小、可靠性高 43.2.3低電壓、低功耗 43.3單片機的應用 …………………...54芯片介紹 …………………..54.1芯片AT89S52 ……………………54.1.1功能特性描述 54.1.2引腳功能描述 64.1.3存儲器結構 84.1.4編程方法 94.2芯片ADC0809 …………………….94.2.1基本知識 94.2.2ADC0809應用說明 114.3LED七段數(shù)碼管 ………………..124.474LS138譯碼器 ………………..134.5溫度傳感器DS18B20 …………...154.6濕度傳感器XR61TDR …………...185方案論證與硬件設計 ……………………185.1溫度電路的設計 ………………..185.1.1溫度采樣部分的方案論證……………185.1.2溫度電路 185.1.3A/D轉換電路 195.2水泵控制電路 …………………..195.3單片機控制部分 ………………..205.3.1單片機控制部分的方案論證 205.3.2單片機控制電路 205.4數(shù)字顯示部分 …………………..215.5濕度采樣和轉換電路部分 ……………………..225.5.1A/D轉換電路 225.5.2濕度傳感器XR61TDR的電路設計 226軟件系統(tǒng)設計 ……………226.1端口設置 ………………………..226.2各模塊軟件設計 ………………..236.2.1DS18B20程序 236.2.2LED顯示程序 256.2.3繼電器控制 266.3程序流程圖 ……………………..266.3.1即時濕度顯示 266.4總設計程序 ……………………..28結論 …………………...35參考文獻 ……………….36致謝 …………………...37附錄 …………………...38PAGE39 引言綜合農作物的生長過程對外部環(huán)境的主要要求,采用科學控制方法且具備廣泛用途的節(jié)水灌溉系統(tǒng),是節(jié)水灌溉科學實施的核心問題。基于此,本課題的主要內容是研制開發(fā)適合我國國情的、低成本、易推廣的、主要應用于溫室大棚的節(jié)水灌溉自動控制系統(tǒng),為實現(xiàn)我國農業(yè)高效節(jié)水灌溉提供技術裝備。由于不同農作物有不同的需水特性,灌水時間、灌水量既影響農產品的產量,也影響農產品的質量,因此,設施農業(yè)的高效節(jié)水灌溉自動控制技術主要是向適時適量、按需灌溉的方向發(fā)展。所以,本課題的研究主要包括兩個方面,一是測,獲取土壤水分信息,并根據(jù)土壤水分信息及溫度和作物需水特性來決定灌溉時間與灌溉量的多少。這將擺脫以往僅憑經驗灌溉的灌溉模式,使作物灌溉決策建立在科學的基礎之上;二是控,要研究如何根據(jù)土壤條件、土壤水分信息及作物需水特性進行合理的灌溉決策,即將傳統(tǒng)的憑經驗由人工手動閥門控制灌溉方式改為自動進行適時適量、按需精確灌溉控制,從而達到提高水的利用效率、優(yōu)質高產、節(jié)省大量人力,實現(xiàn)高效農業(yè)的目的。單片機在電子產品中的應用已經越來越廣泛,在很多的電子產品中也用到了溫度檢測和溫度控制。隨著溫度控制器應用范圍的日益廣泛和多樣,各種適用于不同場合的智能溫度控制器應運而生。本設計是對溫度進行實時監(jiān)測與控制,設計的溫度控制系統(tǒng)實現(xiàn)了基本的溫度控制功能。采用兩個4位共陽數(shù)碼管,一個顯示即時溫度,數(shù)碼管即時顯示溫度,精確到小數(shù)點一位。定時開啟水泵進行灌溉。1系統(tǒng)的設計任務1.1溫度檢測系統(tǒng)設計的基本任務一通過環(huán)境溫度和濕度自動按時控制水泵的放水量。達到自動灌溉節(jié)約用水的目的。1.1.1主要性能指標①溫度測量范圍:-20C到50C,最小區(qū)分度為。②控制精度:溫度控制的靜態(tài)誤差,濕度小于1%。③用十進制數(shù)碼顯示實際水溫,濕度。1.2溫度檢測系統(tǒng)設計的擴展任務用電爐煮稀飯,首先結合定時控制系統(tǒng)對加熱時間進行設定,當加熱時間結束時通過繼電器時電爐斷電。而進入保溫狀態(tài),而保溫的溫度可自行設定。使稀飯保持在想要的溫度。1.2.1主要性能指標①溫度測量范圍:-20C到50C,最小區(qū)分度為。②控制精度:溫度控制的靜態(tài)誤差,濕度小于1%。③用十進制數(shù)碼顯示實際水溫,濕度。2總體設計2.1總設計框圖濕度濕度傳感器A/D轉換器信號的轉換單片機繼電器顯示電路溫度傳感器穩(wěn)壓電源圖2.1設計框圖水泵開關如圖2.1所示,采用89S52單片機系統(tǒng)來實現(xiàn)。單片機軟件編程靈活、自由度大,可用軟件編程實現(xiàn)各種控制算法和邏輯控制。用集成傳感器AD590對溫度進行采集,所得電流信號經處理得到可用的電壓信號,輸入到A/D轉換器轉化成數(shù)字信號,再由單片機對此信號進行處理,并通過控制電路以及配合定時控制系統(tǒng)對水泵開關進行控制。2.2技術特點2.2.1AT89C52單片機AT89S52單片機是一種電可擦寫8位單片機,它內部有4k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結構,1個全雙工串行I/O口,片內晶振及時鐘電路。2.2.2ADC0809A/D轉換器ADC0809是8通道8位CMOS逐次逼近型A/D轉換器.片內設置了多路模擬開關以及通道地址譯碼及鎖存電路,能對多路模擬信號進行分時采集與轉換,最大不可調誤差為±1LSB.可直接與單片機相連,不需另加接口電路.3單片機概述3.1單片機名稱的由來單片機在外觀上與常見的集成電路一樣,體積很小,多為黑色長條狀,條狀左右兩側各有一排金屬引腳,可與外電路連接。單片機體積雖小,但“五臟俱全”,其內部結構與普通計算機結構類似,也是由中央處理器(CPU)、存儲器和輸入/輸出(I/O)3大基本部分構成。實際就是把一臺普通計算機經過簡化,濃縮在一小片芯片內,形成了芯片級的計算機(singlechipmicrocomputer),即單芯片微型計算機,簡稱單片機。單片機也稱為微控制器或嵌入式微管制器。計算機是靠輸入程序來工作的,同樣,單片機工作也需要事先輸入程序。因此,單片機只需要和適當?shù)能浖巴獠吭O備相結合,便可成為一個單片機控制系統(tǒng)。目前單片機經過1、2、3、3代的發(fā)展,正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強,內部資源在增多,引角的多功能化,以及低電壓低功耗。3.2單片機的特點3.2.1高性能、低價格一片單片機從功能上講相當于一臺微型計算機,可是價格卻很低,一片單片機的價格一般在幾元到幾十元之間。而且隨意科學技術的發(fā)展和市場競爭的需要,世界上生產單片機的各大公司都在不斷地采用新技術來提高單片機的性能,同時又進一步降低其價格。3.2.2體積小、可靠性高在單片機的片內,除了一般必須具有的ROM、RAM、定時器/計數(shù)器、中斷系統(tǒng)外,還盡可能地把眾多的各種外圍功能器件集成在片內,減少了外部各芯片之間的連接,大大提高了單片機的可靠性和抗干擾能力。3.2.3低電壓、低功耗一般單片機的工作電壓為5V,有的單片機可以在1.8~3.6V的電壓下工作,而且,功耗降至μA級。例如,MSP430超低功耗類型的單片機,兩個鈕扣電池就可以保障其運行長達近10年。單片機的這種低電壓、低功耗的特性,對于設計和開發(fā)攜帶式智能產品和家用消費類產品顯得非常重要。3.3單片機的應用只需在電路中添加少許元器件,通過編寫程序就可以實現(xiàn)多種功能的單片機自動控制。單片機接上鍵盤可以進行信號輸入;單片機接上顯示器可以實現(xiàn)數(shù)據(jù)顯示;單片機接上喇叭可以實現(xiàn)聲音輸出;單片機可以用來通信,也可以用來計數(shù)和定時,還可以控制彩燈的閃爍、電機的運轉、機器人的活動以及交通燈信號的控制等。由于單片機體積小巧、功能強大、應用靈活、價格便宜,所以應用十分廣泛。已經在工業(yè)控制、國防裝備、智能儀器等領域得到了廣泛應用?,F(xiàn)在,人們日常生活中所使用的各種家用電器,例如,洗衣機、電冰箱、空調、微波爐、電飯煲、音響、電風扇及高檔電子玩具等,也普遍采用了單片機來代替?zhèn)鹘y(tǒng)的控制電路,既降低了成本,又提高了自動化程度。4芯片介紹4.1芯片AT89S524.1.1功能特性描述AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8在系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術制造,與工業(yè)80C51產品指令和引腳完全兼容片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標準功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。4.1.2引腳功能描述AT89S52單片機有40個引腳,引腳圖如下圖4.1所示圖4.1AT89S52的引腳圖VCC:電源GND:地P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時引腳用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復用。在這種模式下,P0具有內部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1口:P1口是一個具有內部上拉電阻的8位雙向I/O口,p1輸出緩沖器能驅動4個TTL邏輯電平。對P1端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下表4.1所示。在flash編程和校驗時,P1口接收低8位地址字節(jié)表4.1P1口引腳的第二功能引腳號第二功能P1.0T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出P1.1T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制)P1.5MOSI(在系統(tǒng)編程用)P1.6MISO(在系統(tǒng)編程用)P1.7SCK(在系統(tǒng)編程用)P2口:P2口是一個具有內部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL邏輯電平。對P2端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR)時,P2口送出高八位地址。在這種應用中,P2口使用很強的內部上拉發(fā)送1。在使用8位地址(如MOVX@RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。P3口:P3口是一個具有內部上拉電阻的8位雙向I/O口,p2輸出緩沖器能驅動4個TTL邏輯電平。對P3端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表4.2所示。在flash編程和校驗時,P3表4.2P3口引腳的第二功能引腳號第二功能P3.0RXD(串行輸入)P3.1TXD(串行輸出)P3.2INT0(外部中斷0)P3.3INT1(外部中斷1)P3.4T0(定時器0外部輸入)P3.5T1(定時器1外部輸入)P3.6WR(外部數(shù)據(jù)存儲器寫選通)P3.7RD(外部數(shù)據(jù)存儲器寫選通)RST:復位輸入。晶振工作時,RST腳持續(xù)2個機器周期高電平將使單片機復位??撮T狗計時完成后,RST腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復位高電平有效。ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調,在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要通過將地址為8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE僅在執(zhí)行MOVX或MOVC指令時有效。否則,ALE將被微弱拉高。這個ALE使能標志位(地址為8EH的SFR的第0位)的設置對微控制器處于外部執(zhí)PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當AT89S52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,PSEN將不被激活。EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內部程序指令,EA應該接VCC。在flash編程期間,EA也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。4.1.3存儲器結構MCS-51器件有單獨的程序存儲器和數(shù)據(jù)存儲器。外部程序存儲器和數(shù)據(jù)存儲器都可以64K尋址。程序存儲器:如果EA引腳接地,程序讀取只從外部存儲器開始。對于89S52,如果EA接VCC,程序讀寫先從內部存儲器(地址為0000H~1FFFH)開始,接著從外部尋址,尋址地址為:2000H~FFFFH。數(shù)據(jù)存儲器:AT89S52有256字節(jié)片內數(shù)據(jù)存儲器。高128字節(jié)與特殊功能寄存器重疊。也就是說高128字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開的。當一條指令訪問高于7FH的地址時,尋址方式決定CPU訪問高128字節(jié)RAM還是特殊功能寄存器空間直接尋址方式訪問特殊功能寄存器(SFR)。例如,下面的直接尋址指令訪問0A0H(P2口)存儲單元MOV0A0H,#data使用間接尋址方式訪問高128字節(jié)RAM。例如,下面的間接尋址方式中,R0內容為0A0H,訪問的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。MOV@R0,#data堆棧操作也是簡介尋址方式。因此,高128字節(jié)數(shù)據(jù)RAM也可用于堆??臻g。4.1.4編程方法采用下列步驟對AT89C52編程:在地址線上輸入編程單元地址信號在數(shù)據(jù)線上輸入正確的數(shù)據(jù)激活相應的控制信號把EA/Vpp升至12V每給Flash寫入一個字節(jié)或程序加密位時,要給ALE/PROG一次脈沖。節(jié)寫周期時自身定制的,典型值僅僅50us。改變地址、數(shù)據(jù)重復第1步到第5步,直到文件結束。4.2芯片ADC08094.2.1基本知識ADC0809是帶有8位A/D轉換器、8路多路開關以及微處理機兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉換器,可以和單片機直接接口。ADC0809的內部邏輯結構圖4.2ADC0809的內部邏輯結構圖由上圖4.2可知,ADC0809由一個8路模擬開關、一個地址鎖存與譯碼器、一個A/D轉換器和一個三態(tài)輸出鎖存器組成。多路開關可選通8個模擬通道,允許8路模擬量分時輸入,共用A/D轉換器進行轉換。三態(tài)輸出鎖器用于鎖存A/D轉換完的數(shù)字量,當OE端為高電平時,才可以從三態(tài)輸出鎖存器取走轉換完的數(shù)據(jù)。ADC0809的引腳結構ADC0809A/D轉換器有28個引腳,引腳圖如下圖4.3所示圖4.3ADC0809的引腳結構圖IN0-IN7:8條模擬量輸入通道ADC0809對輸入模擬量要求:信號單極性,電壓范圍是0-5V,若信號太小,必須進行放大;輸入的模擬量在轉換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。地址輸入和控制線:4條ALE為地址鎖存允許輸入線,高電平有效。當ALE線為高電平時,地址鎖存與譯碼器將A,B,C三條地址線的地址信號進行鎖存,經譯碼后被選中的通道的模擬量進轉換器進行轉換。A,B和C為地址輸入線,用于選通IN0-IN7上的一路模擬量輸入。通道選擇表如下表4.3所示。表4.3通道選擇表CBA選擇的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7數(shù)字量輸出及控制線:11條ST為轉換啟動信號。當ST上跳沿時,所有內部寄存器清零;下跳沿時,開始進行A/D轉換;在轉換期間,ST應保持低電平。EOC為轉換結束信號。當EOC為高電平時,表明轉換結束;否則,表明正在進行A/D轉換。OE為輸出允許信號。用于控制三條輸出鎖存器向單片機輸出轉換得到的數(shù)據(jù)。OE=1,輸出轉換得到的數(shù)據(jù);OE=0,輸出數(shù)據(jù)線呈高阻狀態(tài)。D7-D0為數(shù)字量輸出線。CLK為時鐘輸入信號線。因ADC0809的內部沒有時鐘電路,所需時鐘信號必須由外界提供,通常使用頻率為500KHZ。VREF(+),VREF(-)為參考電壓輸入。4.2.2ADC0809應用說明ADC0809內部帶有輸出鎖存器,可以與AT89S51單片機直接相連。初始化時,使ST和OE信號全為低電平。送要轉換的哪一通道的地址到A,B,C端口上。在ST端給出一個至少有100ns寬的正脈沖信號。是否轉換完畢,我們根據(jù)EOC信號來判斷。當EOC變?yōu)楦唠娖綍r,這時給OE為高電平,轉換的數(shù)據(jù)就輸出給單片機了。4.3LED七段數(shù)碼管LED顯示器是于發(fā)光二極管組成的,用來顯示特定的的顯示器。7段數(shù)碼管發(fā)光二極管使用靈活,簡單方便,當有電流通過時,相應的發(fā)光二極管就點亮;當電流消滅沒有電流時,發(fā)光二極管就滅。同樣。共陽極LED顯示器。就是將所有發(fā)光二極管的陽極接到一起,接到電源正極。這樣,當某個發(fā)光二極管的陰極加有低電平,該發(fā)光二極管即被點亮。LED顯示器是于發(fā)光二極管組成的,用來顯示特定的的顯示器。7段數(shù)碼管發(fā)光二極管使用靈活,簡單方便,當有電流通過時,相應的發(fā)光二極管就點亮;當電流消滅沒有電流時,發(fā)光二極管就滅。同樣。共陽極LED顯示器。就是將所有發(fā)光二極管的陽極接到一起,接到電源正極。這樣,當某個發(fā)光二極管的陰極加有低電平,該發(fā)光二極管即被點亮。表4.4LED顯示器字符段碼表顯示字符共陰極段碼共陽極段碼顯示字符共陰極段碼共陽極段碼03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99H.80H7EH56DH92HP73H82H67DH82HU3EHC1H706HF8HT31HCEH87FH80HY6EH91H96FH09H8.FFH00HA77H88H“滅”00HFFHB7CH83H|||通過a,b,c,d,e,f,g,dp各點和公共點的電位,就可以控制個發(fā)光二極管的亮暗,而不同的發(fā)光的亮暗組合就可以顯示不同的數(shù)字(dp點是來表示小數(shù)點,在顯示數(shù)字中不起作用)。比如,要顯示“3”,則只需點亮a,b,c,d,g5個發(fā)光二極管,而其他均為暗,對于共陰極LED顯示器來說,就是在在這些引腳上輸入高電平即可。LED顯示器字符段碼表如表4.4所示。常用7段數(shù)碼管LED顯示器,共陰極和共陽極結構如下圖4.4所示:圖4.4LED顯示器4.474LS138譯碼器通用的譯碼器又稱為二進制譯碼器,它的輸入是一組二進制代碼(又稱地址碼),輸出則是一組高、低電平信號。74LS138是3-8譯碼器,它有3個輸入使能控制端、、,只有=1,==0同時滿足時才允許譯碼,3個條件中有一個不滿足就禁止譯碼。設置多個使能端的目的在于靈活應用、組成各種電路。由下表4.674LS138功能表可以寫出(在各使能有效的條件下)輸出與輸入的邏輯表達式:,,,,,,,,表4.674LS138功能表輸入輸出×1×010101010101010××××××00000101001110010111011111111111111111110111111110111111110111111110111111110111111110111111110111111110注:,0為低電平,1為高電平,×為任意74LS138譯碼器有16個引腳,引腳圖如下圖4.6所示:圖3.674LS138譯碼器的引腳圖A、B、C:譯碼地址輸入端G1:選通端/(G2A)、/(G2B):選通端(低電平有效)Y0~Y7:譯碼輸出端(低電平有效)下圖為74LS138譯碼器的邏輯圖4.5:圖4.574LS138譯碼器的邏輯圖4.5溫度傳感器DS18B20DS18B20溫度傳感器是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9-12位的數(shù)字值讀數(shù)方式。(1)DS18B20功能特性獨特的單線接口僅需要一個端口引腳進行通信;多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;無須外部器件;可通過數(shù)據(jù)線供電,電壓范圍為3.0-5.5V;零待機功耗;溫度以9或12位數(shù)字量讀書;用戶可定義的非易失性溫度報警設置;報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。(2)引腳圖TO-92封裝的DS18B20的引腳排列見下圖,其引腳功能描述見下:圖3.5DS18B20引腳圖GND:地信號。DQ:為數(shù)字信號輸入/輸出端。VDD:為外接供電電源輸入端。(3)DS18B20內部存儲器DS18B20溫度傳感器的內部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存RAM的結構為8個字節(jié)的存儲器,結構如圖3.6所示。頭兩個字節(jié)包含測得的溫度信息,第三和第四字節(jié)是TH和TL的拷貝,是易失的,每次上電復位時被刷新。第五個字節(jié)為配置寄存器,它的內容用于確定溫度值的數(shù)字轉換分辨率。DS18B20工作時按此寄存器中的分辨率將溫度轉換為相應精度的數(shù)值。該字節(jié)各位的定義如圖3.6所示。低5位一直為1,TM是測試模式位,用于設置DS18B20在工作模式還是在測試模式。圖3.6配置寄存器DS18B20測量溫度范圍為-55℃~125℃,其分辨率可由程序設定為9~12位??稍O定的報警溫度。DDS18B20內部結構主要由四部分組成:64位光刻ROM用于總線時識別各個器件;溫度傳感器可完成對溫度的測量并將值以16位符號擴張的二進制補碼形式存于寄存器中,設置成12位時,以0.0625℃/LSB形式表達如:讀出的16位二進制數(shù)為0000000000001001也就是換算為10進制為9其此時溫度為9*0.0625=0.56254.6濕度傳感器XR61TDR土壤容積含水量單位:%(m3/m3)量程:0-100%(m3/m3)精度:0-50%(m3/m3)±2%(m3/m3)測量區(qū)域:90%的影響在圍繞中央探針的直徑3cm.長為5.8cm的圓柱體內精度漂移量:2‰/年穩(wěn)定時間:通電后約一秒進入穩(wěn)定狀態(tài)工作電壓:輸入為4-6.5VDC工作電流28-30ma典型值28mA輸出信號:輸出為0-2.5VDC工作溫度:-30-﹢70℃5方案論證與硬件設計5.1溫度電路的設計5.1.1溫度采樣部分的方案論證方案1:采用熱敏電阻,可滿足35℃--95℃的測量范圍,但熱敏電阻精度、重復性和可靠性都比較差,對于檢測精度小于1℃的溫度信號是不適用的。
方案2:采用溫度傳感器DS18B20。:DS18B20具有體積小、質量輕、線形度好、性能穩(wěn)定等優(yōu)點。其測量范圍在-50℃--+125℃,滿刻度范圍誤差為±0.3℃,當電源電壓在5—10V之間,穩(wěn)定度為1﹪時,誤差只有±0.01℃,其各方面特性都滿足此系統(tǒng)的設計要求。此外DS18B20自帶ad轉換,省去了很多硬件設計麻煩。
經上述比較,方案2明顯優(yōu)于方案1,故選用方案2。5.1.2溫度電路使用溫度傳感器DS18B20圖4.1溫度電路5.1.3A/D轉換電路如圖4.1所示,從ADC0809的通道中輸入由AD590經過10KΩ之后采樣到的電壓值,并通過對地址輸入線A,B和C的設置(由單片機P2.0~P2.2),選通IN0-IN7上的一路模擬量輸入。進行A/D轉換時,采用查詢EOC的標志信號來檢測A/D轉換是否完畢,若完畢則把數(shù)據(jù)通過P0端口讀入,經過數(shù)據(jù)處理之后在數(shù)碼管上顯示。5.2水泵控制電路定時系統(tǒng)和繼電器控制電路。如下圖4.2所示P3.1為水泵的控制端口,當需要灌溉的時候P3.1為高電平,反之,P3.1為低電平。繼電器控制電路如下圖4.2所示:圖4.2繼電器控制電路單片機時微電,要控制電路要加放大電路,現(xiàn)使用9015三級管放大。使用1N4001穩(wěn)壓二級管,發(fā)光二極管亮代表繼電器打開。5.3單片機控制部分5.3.1單片機控制部分的方案論證方案1:采用8031芯片,其內部沒有程序存儲器,需要進行外部擴展,這給電路增加了復雜度。方案2:采用2051芯片,其內部有2KB單元的程序存儲器,不需外部擴展程序存儲器。但由于系統(tǒng)用到較多的I/O口,因此此芯片資源不夠用。方案3:采用AT89C51單片機,其內部有4KB單元的程序存儲器,不需外部擴展程序存儲器,而且它的I/O口也足夠本次設計的要求。與CMOS電平和TTL電平均兼容。減少了很多電路設計麻煩。比較這3種方案,綜合考慮單片機的各部分資源,因此此次設計選用方案3。5.3.2單片機控制電路單片機控制部分主要包括單片機電路、晶振電路以及復位電路三部分構成。設計電路圖如圖4.3所示:圖4.3單片機控制電路此部分是電路的核心部分,系統(tǒng)的控制采用了單片機AT89C52。單片機AT89C52內部有4KB單元的程序存儲器及256字節(jié)的數(shù)據(jù)存儲器。因此系統(tǒng)不必擴展外部程序存儲器和數(shù)據(jù)存儲器這樣大大的減少了系統(tǒng)硬件部分。5.4數(shù)字顯示部分數(shù)字顯示電路包括兩個四位共陽極LED顯示器和鍵盤控制電路組成,一個LED顯示器顯示實際的溫度值,另一個LED顯示器顯示設定的濕度。設計電路圖如圖4.4所示:圖4.4鍵盤及數(shù)字顯示電路LED顯示器采用動態(tài)分時掃描方式。采用4位共陽極LED示器。共陽極LED顯示器的陰極和單片機AT89C52的P1口連接,顯示段碼由CPU通過P1口傳送到LED顯示器的陰極。位掃描碼由單片機AT89C52的P2.0,P2.1,P2.2輸出,經74LS138譯碼器譯碼后,再經同相驅動器傳送到LED顯示器的陽極,選通LED顯示器的數(shù)位。單片機輸出電壓電流不能驅動數(shù)碼管,使用9015三極管進行驅動。138譯碼器是TTL電平與單片機兼容。本模塊利用了138譯碼器對顯示器動態(tài)掃描,采用此方法大大簡化了硬件,充分的利用了單片機的資源。LED顯示的掃描處理占用大量機時,增加軟件編程負擔。5.5濕度采樣和轉換電路部分5.5.1A/D轉換電路如圖4.1所示,從ADC0809的通道中輸入由AD590經過10KΩ之后采樣到的電壓值,并通過對地址輸入線A,B和C的設置(由單片機P2.0~P2.2),選通IN0-IN7上的一路模擬量輸入。進行A/D轉換時,采用查詢EOC的標志信號來檢測A/D轉換是否完畢,若完畢則把數(shù)據(jù)通過P0端口讀入,經過數(shù)據(jù)處理之后在數(shù)碼管上顯示。5.5.2濕度傳感器XR61TDR的電路設計濕度傳感器輸出為0-2.5VDC,經過兩倍放大后電壓范圍0—5V。因此參考adc0809取電源電壓VCC作為參考電壓。6軟件系統(tǒng)設計6.1端口設置結合硬件電路設計對單片機AT89S52的端口進行相應的設置:數(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各模塊軟件設計6.2.1DS18B20程序首先判斷是否有鍵盤按下,若加值鍵盤按下,那么判斷設置值是否為100,若為100那么設置值就為0,否則,設置值就加1;若減值鍵盤按下,那么判斷設置值是否為0,若為0那么設置值就為100,否則,設置值就減1。程序: /****************DS18B20復位函數(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復位成功,繼續(xù)下一步}delay2(45);//延時500uspresence=~DQ;}DQ=1;//拉高電平}/****************DS18B20寫命令函數(shù)************************///向1-WIRE總線上寫1個字節(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個字節(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();//總線復位delay2(200);write_byte(0xcc);//發(fā)命令write_byte(0x44);//發(fā)轉換命令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é)合成一個整型變量。returntemp;//返回溫度值}6.2.2LED顯示程序數(shù)碼管的第四位顯示即使溫度值,高四位顯示設置溫度值。程序:/*數(shù)碼管掃描***************************************/voidshu_ma_guan(void){unsignedchari;/*顯示溫度的********************************/P1=0x00;SEL0=0;SEL1=0;SEL2=0;P1=~m[T%10];//個位第一個數(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]];//個位第一個數(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為的控制端口即接繼電器,當把該系統(tǒng)的根據(jù)即時溫度和濕度定時開啟水泵開關,P2.7為高電平打開水泵,反之,P2.7為低電平關閉水泵。6.3程序流程圖6.3.1即時濕度顯示即時溫度顯示的流程圖如圖5.1所示:開始開始I/O端口初始化調用ADC0809初始化程序判斷EOC是否等于零AD轉換完成調用數(shù)碼管顯示子程序將采集到是數(shù)據(jù)送到P0口調用將二進制數(shù)據(jù)轉化為溫度值子程序使即使?jié)穸蕊@示在數(shù)碼管的低4位定義端口是否圖5.1即時濕度顯示的流程圖即時溫度顯示流程圖開始開始開始初始化DS18B20存在?ROM操作命令存儲操作命令讀取溫度值返回是否圖5.2設置的溫度顯示的流程圖6.4總設計程序#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;//采集到的二進制值unsignedintT=0;//溫度值unsignedintb[4]={0,0,0,0};voiddelaym(unsignedintt) //延時子程序,入口參數(shù)ms,延遲時間=t*1ms,t=0~65535{unsignedcharj; //j=0~255while(t--){for(j=0;j<50;j++); //j進行的內部循環(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];//個位第一個數(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]];//個位第一個數(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復位函數(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復位成功,繼續(xù)下一步}delay2(45);//延時500uspresence=~DQ;}DQ=1;//拉高電平}/****************DS18B20寫命令函數(shù)************************///向1-WIRE總線上寫1個字節(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個字節(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 服裝批發(fā)業(yè)務中的商品包裝與視覺傳達考核試卷
- 2025年郡某項目房屋及其配套設施總承包工程合同
- 2025關于合同中的表見代理:深入解析合同條款中的代理問題
- 2025年塑膠跑道銷售與鋪設合同
- 2025合同協(xié)議格式模板
- 三年級數(shù)學計算題專項練習及答案
- 母豬護理知識檢驗試題及答案
- 心理咨詢師2024年關注心理健康問題的研究與分析方法試題及答案
- 深入衛(wèi)生管理證書相關知識試題及答案
- 醫(yī)學基礎知識考察類別與重點試題及答案
- 2025年上半年山東省濰坊臨朐招聘衛(wèi)生教育系統(tǒng)部分事業(yè)編制及控制總量人員易考易錯模擬試題(共500題)試卷后附參考答案
- 中級維保全部抽考題
- 2025年危險化學品企業(yè)安全生產執(zhí)法檢查重點事項指導目錄
- 《水利工程白蟻防治技術規(guī)程SLT 836-2024》知識培訓
- 固定收益投資合同范本
- 夏季軍營安全教育
- 春夏季疾病預防
- 農作物病蟲害的發(fā)生規(guī)律
- 2025年度高校與公益組織合作項目合同3篇
- 9 短詩三首 公開課一等獎創(chuàng)新教學設計
- 《近代中國飲食變化》課件
評論
0/150
提交評論