環境管理_基于單片機的節水灌溉系統設計_第1頁
環境管理_基于單片機的節水灌溉系統設計_第2頁
環境管理_基于單片機的節水灌溉系統設計_第3頁
環境管理_基于單片機的節水灌溉系統設計_第4頁
環境管理_基于單片機的節水灌溉系統設計_第5頁
已閱讀5頁,還剩34頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

教學單位 信息工程系 學生學號 本科畢業論文(設計)題 目 基于單片機的節水灌溉系統設計 學生姓名 胡楓 專業名稱 電子信息工程 指導教師 丁么明 2013年12月20日目錄前言11.課題研究背景12.國內外節水灌溉技術發展概況13.課題研究的目的和意義24.課題研究內容3正文41.土壤含水量41.1概述41.2土壤濕度計算42.單片機控制系統簡圖53.主要器件的選取63.1單片機的選取63.2土壤濕度傳感器的選取73.3 A/D轉換器的選用103.4顯示器件選取103.5開關與報警選取114.軟件語言的選取115.單片機的主要系統電路135.1時鐘電路135.2復位電路135.3數據采集處理電路145.4 LCD液晶顯示145.4報警系統146.軟件設計部分166.1頭文件166.2主程序與子程序部分18結論26致謝27參考文獻27 前言1.課題研究背景生命離不開。隨著21世紀的到來,能源危機將接踵而至。比能源危機更可怕的是,作為人類生命之源的水的短缺到了前所未有的程度,這一狀況還將隨著時間的推移和社會的發展繼續惡化。水資源危機己成為全球性的突出問題,越來越受到國際社會的重視和關注。專家們曾預言,如果不注意保護水節約水,地球上剩下的最后一滴水將是人類的眼淚。利用科技手段緩解這一危機,將是人類主要的出路。當前,占世界人口總量40的80個國家缺水,其中26個國家嚴重缺水。我國有28萬億m3的水資源總量,全世界排第6位,但人均水資源不足世界水資源的14,排在世界人均占有水資源量的第109位,是世界上人均占有水資源最貧乏的13個國家之一,目前,我國每年缺水量近400億m3,其中農業缺水約300億m3。我國用水大戶仍然是農業用水,約占70,而農業用水的90是灌溉用水,因此節水首先要在農業節水上做文章。采用傳統的灌溉模式,灌溉定額普遍偏高,全國平均每畝實際灌水量達到450-500 m3,超過實際需水量的1倍左右,有的地區高達2倍以上。與一些發達國家相比,我國農業的用水效率還是相當低的,灌溉水資源的浪費情況相當嚴重,節水的潛力十分巨大。據統計:目前我國灌溉水利用率只有40左右,水分生產率不足10 kgm 3;而發達國家的灌溉水利用率可達8090,水分生產率在20 kgm 3以上。如果采用先進的灌溉技術,將我國的灌水利用率提高到6070,則在目前情況下每年可節約灌溉用水O10O15萬億m3。這樣,通過發展節水灌溉,在減少(最起碼不增加)農業用水總量的前提下,滿足灌溉需要,同時把節約出來的水量用于城市生活、工業生產和生態用水,以水資源的可持續利用促進經濟社會的可持續發展。2.國內外節水灌溉技術發展概況微灌是一種現代化的精細高效節水灌溉技術,它是當前世界上諸多節水灌溉技術中省水率最高、最為先進的一種灌溉方法。近十年來,微灌作為新興的灌溉技術在世界各國得到了較快的發展。從70年代中期到90年代中期,微灌在部分發達國家迅速推廣,1983年全世界微灌面單片機控制的節水灌溉系統的研究積達到43萬丘m 2,其中美國占一半以上。到90年代中,全世界微灌面積達到2913萬m 2,約占全世界灌溉面積的11,其中美國約150萬m 2,占美國總灌溉面積的4,根據2000年統計,美國微灌面積占全國總灌溉面積25536萬m2的5。灌溉面積中微灌比例最高的國家是塞浦路斯和以色列,其中以色列農業微灌面積占到了灌溉總面積的40,達到10,4萬m2,其余均為噴灌。西班牙、法國、意大利、希臘、埃及等環地中海國家以及南非、澳大利亞、墨西哥、日本等國應用面積也較多。而同一時期我國微灌設備與技術進步緩懂,全國微灌面積徘徊在237萬hm2。90年代以來,我國對節水灌溉越來越重視,據各地資料匯總,到1999年底,全國微灌面積己達到20萬hm2,平均每年以2000027000m2的速度增加,一年新增面積相當于過去二十年的總和1811*1。盡管至今微灌在世界總灌溉囂積中所占的比重很小,僵其增長率遠高于其它灌溉技術。在微灌技術發展的同時,自動化灌溉控制技術以及相應的理論研究也得到了高度重視。3.課題研究的目的和意義農業是人類社會最古老的行業,是各行各業的基礎,也是人類賴以生存的最重要的行業。農業的發展從長遠來看很重要,一是水的闖題,二是科技的闖題。農業的根本出路在科技,在教育。由傳統農業向現代化農業轉變,由粗放經營向集約經營轉變,必須要求農業科技有一個大的發展,進行一次耨的農業技術革命。農業與工業、交通等行業相比仍然比較落后,農業灌溉技術尤其落后。灌溉系統自動化東平較低是制約我國離效農業發展豹主要原因。傳統的灌溉模式自動化程度極低,基本上屬粗放的人工操作,即便對于給定的置,在操作中也無法進行有效的控制,為了提高灌溉效率,縮短勞動時間和節約水資源,必須發展節水灌溉控制技術。單片機控制的節水灌溉系統的研究現代智能型控制器是進行灌溉系統田間管理的有效手段和工具,它可提高操作準確性,有利于灌溉過程的科學管理,降低對操作者本身素質的要求。除了能大大減少勞動量,更重要的是它能準確、定時、定量、高效地給作物自動補充水分,以提高產量、質量,節水、節能。現代灌溉控制器的研究使用在我國農:林、及園藝為數不多,與發達國家相比,有較大的差距,還基本停留在人工操作上,即使有些地方搞了一些灌溉工程的自動化控制系統,也是根據經驗法來確定每天灌溉次數和每次灌溉量,如果灌溉量與作物實際需水量相比太少,便不能有效的促進作物健康成長;而灌溉量太多,肥水流失,又會造成資源浪費,同時傳統的灌溉法還需要相關專家的實時觀察并經驗指導生產,勞動生產率低,這也不能與現代化農業向優化、高效化方向發展要求同步。我國先后引進了以色列、美國、法國、德國等國家的部分先進灌溉控制設備,但價格昂貴,維護保養困難,多數用于農業示范區、科研單位或高校,而且不符合我國土壤的應用特點。我國自己的現代灌溉控制器的研制和使用尚處于起步階段,因此,作為一個農業大國,中國硪究開發自己的先進的低成本、使用維護方便、系統功能強且擴展容易的國產化數字式節水灌溉器是一項極有意義的工作。隨著計算機技術和傳感器技術的迅猛發展,計算機和傳感器的價格日益降低,可靠性日益提高,用信息技術改造農業不僅是可能的而且是必要的。用高新技術改造農業產業,實施節水灌溉已成為我國農業乃至國民經濟持續發展帶戰略性的根本大事。本文旨在設計一套能對作物生長的土壤濕度迸行自動監控的系統,它能對作物進行適時、適量的灌水,起到高效灌溉,節水、節能的作用。4.課題研究內容本論文主要研究單片楓控制的漓灌節水灌溉系統,分別對土壤濕度與灌水量之間的關系、灌溉控制技術及系統設備的軟、硬件各個部分進行了深入的研究。主要內容如下:(1)根據滴灌技術的特點,進行節水灌溉控制系統的整體研究與設計。(2)針對土壤濕度難以用精確的數學模型描述的特點,采用模糊控聿4理論,對這一理論進行了深入的研究,重點研究雙輸入單輸出的模糊控制方式。(3)上位機采用VB編程語言建立良好的人機對話界面,可對相關的參數值進行設置,從而實現對不同作物進行適時、適量灌水的目的。(4)上位機(PC機)與下位機(AT89C51)之間可進行雙向數據通信。(5)LED顯示土壤濕度值,在灌水期間以倒計時的方式顯示灌水剩余時間。(6)當土壤濕度值低于設定的最低值時,系統可自動報警。(7)通過滴灌實驗研究灌水量、灌水時間和土壤濕度之間的關系。正文1.土壤含水量1.1概述土壤含水量是影響農作物收成與水保的重要因素之一。土壤濕度對于制定灌溉進程表、水與溶質流的評價、凈太陽輻射潛熱與顯熱的劃分等方面都是很重要的。 作為預測水源耗竭模式中的重要參量,土壤濕度在水文學中是很重要的。在大氣數值模式中陸氣相互作用的模擬及水氣循環的其它參量要求測量土壤濕度,衛星遙感評價的驗證也需要直接測量地表土壤水分。 土壤濕度的測量可用土壤含水量與土壤濕度位勢的測定來表示。土壤含水量反映了土壤中水的質量與體積,而土壤濕度位勢則反映土壤水分能量狀態。 農業學科非常關注土壤水分的測定。為滿足土壤水分狀態測量的廣泛需求,許多儀器已發展到商業化的程度。濕潤層深度是決定灌水定額的主要參數之一,目前研究認為計劃濕潤層深度應決定于根系密集層深度,并與土壤剖面水分的消失深度有關,它隨著生育期的改變,根系發育而異。對于般蔬菜類作物,其根系濕潤層深度約為OO6m。土壤供水的土層深度與蔬菜根系在土壤中分布的深淺相適應。蔬菜根系伸展深度大致可分為三類范圍:淺根系蔬菜,根深在0O。6m范圍,屬于這類蔬菜的有油菜、大蔥、甘藍、大蒜、菜花、洋蔥、蘿h、菠菜、馬鈴薯、芹菜等。單片機控制的節水灌溉系統的研究中等深度的根系根深在O912m范圍,葫蘆、胡蘿等。根深系蔬菜有番茄、如菜豆、黃瓜、豌豆、茄子、甜椒、南瓜等。1.2土壤濕度計算稱重技術是測量土壤含水量最為簡單且被廣泛運用的方法。因為此方法簡單易行而且是直接測量,所以被用作其它方法參照的標準。定義在干質基礎上的稱重土壤濕度g可表達為:g=.100 % (11.1) 此處為土樣中水質量,為土樣中烤干(100-110)后的土質量。 對于風干(25)的礦物土壤,稱重土壤濕度通常少于2%,但隨著土壤水分達到飽和,其水含量會增到25%至60%。但是稱重取樣法具有破壞性,使得土壤接近飽和時,取得準確的土壤含水量測量結果變得極為困難。 通常,土壤濕度用體積表達。由于降水、蒸散量和溶質變化參量通常用容量表示,用體積表示的水含量更為有用。體積水含量v可表達為: v= .100% (11.2)此處,為水體積,為土壤(土+氣+水)總體積。土壤體積含水量的變化可從風干土壤的少于10%到臨近飽和的礦物土壤的40-50%間變化。由于水與土壤體積的準確測定存在困難,體積水含量通常間接測定。體積與稱重土壤含水量有一定關系。該關系如下: v=g b/ w (11.3)b是干土壤體積密度,w是土壤水分密度。2.單片機控制系統簡圖3.主要器件的選取3.1單片機的選取隨著大規模集成電路的出現及其發展,將計算機的CPU、RAM、ROM、定時器計數器和多種IO接口集成在一片芯片上,形成了芯片級的計算機,因此單片機早期的含義稱為單片微型計算機(single chip microcomputer),直譯為單片機,沿用至今。準確反映單片機本質的叫法應是微控制器(microcontroller)。單片機具有集成度高,功能強,可靠性高,體積小,功耗低。使用方便,價格低廉等特點,在各個領域得到了廣泛的應用和發展,目前已滲透到人們工作和生活的各個角落,幾乎無處不在。革片機最早是以嵌入式微控制器(EmbeddedMicro-controller)的面貌出現的。在嵌入式系統中,它是應用最多的核心器件。在計算機主導工業生產并且目益走進家庭生活的今天,從家用電器、工業控制、醫療儀器到軍事應用,到處都有單片機的存在。目前世界上有很多單片枕卷4造公司,如美國的INTEL、ATMEL、MOTOROLA和ZILOG公司:德國的SIEMES公司;荷蘭的PHILIP公司等。他們相繼推出了各種類型的單片機,其中INTEL公司撰出的一種離性能8位單片機MCS-51系列單片機以優越的性能,成熟的技術和高性價比迅速占領了工業測控和自動化工程領域的主要市場,成為單片機領域中的主流產品。除了INTEL公司外,PHILIP,ATMEL,ADM,SIEMES等公司紛紛推出了與MCS-51系列兼容的單片機,其中ATMEL公司的89系列單片機也稱Flash單片機是以8031為核心構成的,它和INTEL公司的MCS-51系列單片機完全兼容,它不但繼承了MCS一51系列原有的功能,而且又擴展了它的功能。對于一般用戶來說,89系列單片機存在下列很顯著的優點:內部含Flash存儲器;和AT80CSl插座兼容;靜態時鐘方式:錯誤編程亦無廢品產生;可反復進行系統試驗。使用方便是ATMEL公司89系列單片機被廣泛應用的一個主要因素。一般的OTP產品,一旦錯誤編程就成了廢品,而89系列單片楓內部采用了Flash存儲器,所以,錯誤編程后仍可以重新編程,直到正確為止。其次是它可反復進行系統試驗。用89系列單片枕設計的系統,可以反復進行系統試驗,每次試驗可以編入不同的程序,這樣可以保證用戶的系統設計達到最優,而且還可以隨用戶的需要和發展進行修改,使系統能不斷追髓用戶的最新要求。89系列單片機可分為標準型號,低檔型號和高檔型號。鑒于以上的優點,經過分析比較,根據本課題的特點,選用ATMEL公司89系列懿標準型單片機STC89C52RC。型號電壓時鐘頻率HZFlash存儲器RAM降低EMI看門狗雙倍速P4口ISPIAPA/DEEPROMSTC89C52RC5V0-80M8K512無2K3.2土壤濕度傳感器的選取目前國內外測定土壤水分的方法有多種,最常用的方法是使用土鉆法(SA亦稱烘干法),即鉆取一定量的土,用烘箱烘干后再稱其純千重量,即可計算出土壤含水量。間接測量土壤含水量可以用石膏電阻塊法、負壓法和中子儀法等。20越紀80年代初期,為了準確測定土壤含水量,一些研究者開始對時域反射儀(簡稱TDR)技術產生了興趣。因為它具有許多優點,如無核輻射,測量快速,并與土壤類型基本沒有關系。TDR技術正逐漸成為土壤水分測定的一項重要的新工具。土壤水分的盈缺對作物生長有著最宣接的影響,在適宜的濕度環境下,作物長勢良好,所以土壤濕度傳感器的選用就要滿足可以使濕度控制在一定的范圍內,并能夠快速、準確地測定農田壤水分,以便適時作出灌溉、施肥決策和捧水措施等。本系統的輸入信號是傳感器所測土壤水分信息,因此傳感器的選擇很重要,如選用的土壤濕度傳感器精度太高,則增加了成本,糖度太低,則難以保證把土壤濕度控制在需要的范圍內,綜合考慮選用SS2802M 土壤水分傳感器。SS2802M 土壤水分傳感器為可遠距離傳輸的土壤水分傳感器,可長期埋設于土壤和堤壩內使用,對表層和深層土壤進行墑情的定點監測和在線測量,也叫農田墑情檢測儀。采用4-20mA工業通用接口,可直接接入各種顯示儀表,實現土壤水分監測。與數據采集器配合使用,可作為水分定點監測或移動測量的儀器。土壤的各種理化性狀、地形的差異作用、氣候變化和人為的土壤管理措施對土壤水分狀況有不同的影響,地表特征與土壤水分狀況也存在著依次的相關性。SS2802M是一種高精度、高可靠性、受土壤質地影響不明顯的快速土壤水分測量傳感器。傳感器采用世界先進的最新FDR原理制作,其性能和精度可與TDR型和FD型土壤水分傳感器相媲美,并在可靠性與測量速度上具有更大的優勢。本產品可應用在、農場自動化灌溉系統、溫室大棚種植土壤水分控制系統、食用菌水分控制系統、沙漠地區農業自動化滴灌系統。其它需要監測土壤水分的各種場合等。SS2802M為新一代土壤水分測量傳感器,采用工業級精密核心元件,使其具有優越的準確性與長期穩定性。小巧化的體積設計,方便攜帶和安裝。結構設計合理密封,不銹鋼探針保證適用性和廣泛性。以環氧樹脂密封膠灌封,可以直接埋入土壤中使用且不受腐蝕,保證較長的使用壽命。很高的測量靈敏度和精度,采用高抗干擾設計,性能可靠穩定。4-20mA工業通用接口,使現場測量更加靈活多變,可適應多種場合。技術參數:接口說明:設備輸出三線接口,紅黑線是傳感器電源接口,綠線是電流輸出接口。接口會引出三個接線座方便用戶接線。本設備綠線和黑線為4-2mA電流輸出,供電電壓為紅線和黑線,電壓為12-24V之間。具體顏色與引腳定義如下表所示:本設備采集工業通用的電流4-20mA信號輸出的方式,下圖為典型的應用接線示意圖。其中V-為電源的負極。V+與V-之間通常在本地接入電源。而A+與A-之間為水分信號電流輸出。因輸出為是電流信號,故可以遠距離信號傳輸。理論上最大可以在1000米距離范圍內可靠傳輸。使用說明:土壤含水率:規定條件下測得的土壤中水的量,以土壤的烘前質量與烘干質量的差數對烘干質量的百分率表示。簡單地說就是:(濕重-干重)/干重100%,含水率為土壤中自由水的質量在土壤總質量中占的百分比。實際使用時,當土壤中的含水量超過24%時土壤已達到飽和且呈溢出水狀態,因此檢測含水量超過24%的值沒有實際意義。農作物正常生長所需的適宜含水率土壤為12%-20%范圍之內。因此僅需要檢測低于飽和含水量24%的含水量就滿足灌溉和各種生產實際需要了。因此該傳感器的動態定為0-24%檢測范圍表示為0-100%的土壤含水率輸出。因輸出為模擬量,4-20mA分別對應設定的滿量程。3.3 A/D轉換器的選用AD轉換是把模擬量信號轉化成與其大小成正比的數字置信號,AD轉換電路是數據采集系統的核心電路。目前AD轉換電路的種類繁多,但大量投放市場的單片集成或模塊AD按其轉換原理主要分為逐次逼近式、雙積分式、量化反饋式和并行式AD轉換器。雙積分式AD轉換器轉換精度高,抗干擾能力強、價格低,但轉換速度較慢;并行式轉換器速度快,但價格高:逐次逼近式AD轉換器,轉換精度較高、速度快,大約在幾微妙到幾百微妙之間,但抗干擾能力弱。總的來講逐次逼近式AD轉換器的性價比最高,應用最廣泛,國內使用較多的芯片有ADC08080809,ADC0801-ADC0805及ADC08160817和ADS74等本系統選用中速、低廉的逐次逼近式ADC0809模數轉換芯片。AD轉換爨的主要技術指標為:分辨率表示輸出數字量變化一個相鄰數碼所需輸入模擬電壓的變化量,習慣上以輸出的二進制位數或BCD碼位數表示。量化誤差由AD轉換器的有限分辨率面引起的誤差。轉換精度反映一個實際AD轉換器在量化值上與理想AD轉換器的差值。轉換速率指能夠重復進行數據轉換的速疫,即每秒轉換的次數。3.4顯示器件選取顯示部分選用1602液晶顯示共十六引腳,1602液晶模塊內部的字符發生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,如表1所示,這些字符有:阿拉伯數字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A” 。藍底白字標準型16X2液晶顯示字符模塊(背光/藍屏)1602采用標準的16腳接口,其中:第1腳:VSS為地電源第2腳:VDD接5V正電源第3腳:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度第4腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和RW共同為低電平時可以寫入指令或者顯示地址,當RS為低電平RW為高電平時可以讀忙信號,當RS為高電平RW為低電平時可以寫入數據。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。第714腳:D0D7為8位雙向數據線。第15腳:背光電源正極第16腳:背光電源負極3.5開關與報警選取開關部分采用控制開關來控制電路。報警裝置采用的是蜂鳴器以及二極管。4.軟件語言的選取本系統下位機以單片機為核心,采用C語言編程。C語言是書寫程序的一種軟件語言,它是計算機軟件設計的重要工具。在系統軟件開發、實時控制的和實時處理領域中有著不可替代的地位。用C語言編程使編程簡潔易懂,進而進行高質量的設計,而且它不獨立于具體機器,是一種非常通用的高級程序設計語言,采用C語言編程,因此,在已經有眾多高級語言和可視化集成開發環境工具的今天,C語言有著重要的有效的程序設計語言地位。5.單片機的主要系統電路5.1時鐘電路單片機的時鐘信號用來提供單片機片內各種微操作的時間基準,時鐘信號通常用兩種電路形式得到:內部振蕩和外部振蕩。MCS-51單片機內部有一個用于構成振蕩器的高增益反向放大器,引腳XTALl和XTAL2分別是此放大電器的輸入端和輸出端,由于采用內部方式時,電路簡單,所得的時鐘信號比較穩定,實際使用中常采用這種方式,如圖所示在其外接晶體振蕩器(簡稱晶振)或陶瓷諧振器就構成了內部振蕩方式,片內高增益反向放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起可構成一個自激振蕩器并產生振蕩時鐘脈沖。圖中外接晶體以及電容C2和C3構成并聯諧振電路,它們起穩定振蕩頻率、快速起振的作用,其值均為30PF左右,晶振頻率選12MHz。5.2復位電路為了初始化單片機內部的某些特殊功能寄存器,必須采用復位的方式,復位后可使CPU及系統各部件處于確定的初始狀態,并從初始狀態開始正常工作。單片機的復位是靠外電路來實現的,在正常運行情況下,只要RST引腳上出現兩個機器周期時間以上的高電平,即可引起系統復位。但如果RST引腳上持續為高電平,單片機就處于循環復位狀態。復位后系統將輸入輸出(IO)端口寄存器置為FFH,堆棧指針SP置為07H,SBUF內置為不定值,其余的寄存器全部清0,內部RAM的狀態不受復位的影響,在系統上電時RAM的內容是不定的。復位操作有兩種情況,即上電復位和手動(開關)復位。本系統采用上電復位方式。5.3數據采集處理電路ADC0809是一種8位逐次逼近AD轉換器,內部具有鎖存控制的8路模擬開關,外接8路模擬輸入端,可同時對8路O一5V的輸入模擬電壓信號分時進行采集轉換,本系統只用到IN0輸入通道。ADC0809轉換器的分辨率為8位,最大不可調誤差小于1LSB,采用單一+5V供電,功耗為15mW,不必進行零點和滿度調整。由于ADC0809轉換器的輸出數據寄存器具有可控的三態輸出功能,輸出具有三態鎖存緩沖器,故其8位數據輸出引腳可直接與數據總線相連。AD轉換器需外部控制啟動轉換信號方能進行轉換,這一啟動轉換信號可由CPU提供,不同型號的AD轉換器,對啟動轉換信號的要求也不同,分脈沖啟動和電平啟動兩種,ADC0809采用脈沖啟動轉換,只需給AD轉換器的啟動控制轉換的輸入引腳(START)上,加入正脈沖信號,即啟動AD轉換器進行轉換,轉換開始后,轉換結束信號輸出端(EOC)信號變低,轉換結束時,EOC返回高電平,以通知主機讀取轉換結果的數字量,這個信號可以作為AD轉換器的狀態信號供查詢,也可以用作中斷請求信號。本系統中ADC0809與AT89C51單片機的接口如圖45所示,采用等待延時方ADC0809的時鐘頻率范圍要求在10一1280kHz,采用定時器給其脈沖頻率。如圖連接方式,ADC0809的8位數據輸出引腳可直接與數據總線相連,地址譯碼引腳A、B、C分別接地,以選通IN0通道。AT89C51的P:。作為片選信號,在啟動AID轉換時,由單片機的寫信號WR和P:。控制ADC的地址鎖存和轉換啟動。由于ALE與START連在一起,因此ADC0809在鎖存通道地址的同時也啟動轉換,在讀取轉換結果時,用單片機的讀信號RD和P,。引腳一級或菲門產生的正脈沖作為OE信號,用以打開三態輸出鎖存器。6.4 LCD液晶顯示該系統采用1602液晶顯示,數據口接單片機P0口,和AD0809公用數據口,LCD顯示簡單,電路接線也簡單,價格也便宜。6.5報警系統為了在某些緊急狀態或反常狀態下,能使操作人員不致忽視,以便及時處理,往往需要有某種更能引起人們注意提起警覺的報警信號產生,這種報警信號通常有三種類型:閃光報警、鳴音報警、語音報警,本系統采用簡單易行的光報警電路。報警設備選用壓電式蜂鳴器,它約需要10mA的驅動電流,只需在其兩條引線上加3一15v的直流電壓,即可產生3KHz左右的蜂鳴聲音,圖中蜂鳴器的一端接在高電平+5V,另一端接P17,在初態P17始終輸出高電平1,當需要報警時,程序對其端口清零即可,聲音的長短可用延時程序控制實現。6.軟件設計部分系統軟件程序設計主要包括:主程序設計采樣子程序設計。數據處理程序LCD顯示子程序,開關控制,蜂鳴器報警。6.1頭文件文件名稱:main.c版 本:Keil uVision4控 制 器: STC89C51/STC89C52RC/AT89C51/AT89C5212MHz 說 明:基于SHT10的自動花草澆水器控制程序說 明:傳感器SHT10,液晶顯示器LCD1602,蜂鳴器報警,繼電器控制,按鍵設置說 明:液晶實時顯示采集的濕度值,顯示濕度界限值,澆水倒計時時間說 明:三個設置按鍵,一個設定按鍵,一個增加按鍵,一個減少按鍵,檢測頻率150ms說 明:測量濕度值小于濕度界限值,自動打開繼電器澆水,蜂鳴器報警提示說 明:倒計時運行,顯示倒計時。加水期間,濕度值大于界限值,自動停止澆水*/*includes-*/ #include reg52.h#include intrins.h /*typedefs-*/typedef unsigned char u8;typedef unsigned int u16;/*-繼電器底層控制函數-*/*sbits-*/sbit Pin_Relay = P13; /Pin of Relay/*defines-*/ #define Relay_ResetPin() Pin_Relay = 0 #define Relay_SetPin() Pin_Relay = 1/* 函數名稱: Relay_Control(unsigned char State) * 功能書名: 繼電器1控制函數 */void Relay_Control(unsigned char State)if(State)Relay_ResetPin();elseRelay_SetPin();/*-蜂鳴器驅動函數-*/*sbits-*/sbit Pin_BuzzePhone = P24; /-Button pin of BuzzePhone/*defines-*/ #define BuzzePhone_ResetPin() Pin_BuzzePhone = 0 #define BuzzePhone_SetPin() Pin_BuzzePhone = 1/* 函數名稱: BuzzePhone_DelayOneMillisecond(void) * 功能書名: 蜂鳴器發聲延時函數,延時1個mS程序 */void BuzzePhone_DelayOneMillisecond(void)unsigned char i, j;i = 2;j = 239;dowhile (-j);while(-i);6.2主程序與子程序部分* 函數名稱: BuzzePhone_Switch(unsigned char State) * 功能書名: 蜂鳴開關控制 */void BuzzePhone_Switch(unsigned char State)if(State)BuzzePhone_ResetPin();else BuzzePhone_SetPin();/* 函數名稱: BuzzePhone_Music(unsigned int Number) * 功能書名: 蜂鳴器發音樂函數 */void BuzzePhone_Music(unsigned int Number,unsigned char Frequency)unsigned int i;unsigned char j,k;for(i = 0;i Number;i+)for(j = 0;j 20;j+)BuzzePhone_Switch(0x01);/蜂鳴器發聲音for(k=0;kFrequency;k+)BuzzePhone_DelayOneMillisecond();BuzzePhone_Switch(0x00);/蜂鳴器不發聲for(k=0;kFrequency/2;k+)BuzzePhone_DelayOneMillisecond();/*-按鍵檢測底層函數-*/*sbits-*/sbit Key_Up = P33; /遞增按鍵sbit Key_Set = P10; /設置按鍵sbit Key_Down = P15; /遞減按鍵/* 函數名稱: Check_ButtonState(void) * 功能說明: 檢測按鍵的狀態,返回按鍵的狀態值 */unsigned char Check_ButtonState(void) unsigned char ButtonFunctionValue; if(Key_Up = 0) ButtonFunctionValue = 0x03;else if(Key_Set = 0) ButtonFunctionValue = 0x01;else if(Key_Down = 0)ButtonFunctionValue = 0x02;else ButtonFunctionValue = 0xff;return ButtonFunctionValue;/*-LCD1602器驅動函數-*/*sbits-*/sbit LCD1602_RS = P27; /數據命令端口sbit LCD1602_RW = P26; /讀寫控制端口sbit LCD1602_EN = P25; /器件使能端口 /*defines-*/#define LCD1602_ResetRS() LCD1602_RS = 0 #define LCD1602_SetRS() LCD1602_RS = 1#define LCD1602_ResetRW() LCD1602_RW = 0#define LCD1602_SetRW() LCD1602_RW = 1#define LCD1602_ResetEN() LCD1602_EN = 0#define LCD1602_SetEN() LCD1602_EN = 1#define LCD1602_DataPort_In P0#define LCD1602_DataPort_Out P0 /*函數名稱:LCD1602_DelayMs(unsigned int i)函數功能:對于11.0592MHz時鐘, 例i=10,則大概延時10ms*/void LCD1602_DelayMs(unsigned int i)unsigned int j;while(i-)for(j = 0; j 125; j+);/*函數名稱:LCD1602_WriteDataToHD44780(unsigned char Data) 描 述:寫數據到LCD1602的控制器HD44780 */ void LCD1602_WriteDataToHD44780(unsigned char Data) LCD1602_SetRS(); /數據指令選擇,1表示數據,0表示指令LCD1602_ResetEN();/器件使能控制,1表示失能,0表示使能LCD1602_DataPort_In = Data;/數據傳送到LCD數據輸入口LCD1602_SetEN();/器件使能控制,1表示失能,0表示使能LCD1602_DelayMs(1);LCD1602_ResetEN();/器件使能控制,1表示失能,0表示使能LCD1602_DataPort_In = (Data 4);/數據傳送到LCD數據輸入口LCD1602_SetEN();/器件使能控制,1表示失能,0表示使能LCD1602_ResetEN();/器件使能控制,1表示失能,0表示使能 /*函數名稱:LCD1602_WriteCommandToHD44780(unsigned char Command) 描 述:寫指令到LCD1602的控制器HD44780 */ void LCD1602_WriteCommandToHD44780(unsigned char Command) LCD1602_ResetRS(); /數據指令選擇,1表示數據,0表示指令LCD1602_ResetEN();/器件使能控制,1表示失能,0表示使能LCD1602_DataPort_In = Command;/數據傳送到LCD數據輸入口LCD1602_SetEN();/器件使能控制,1表示失能,0表示使能LCD1602_DelayMs(1);LCD1602_ResetEN();/器件使能

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論