基于單片機的智能抽水灌溉系統(tǒng)設計_第1頁
基于單片機的智能抽水灌溉系統(tǒng)設計_第2頁
基于單片機的智能抽水灌溉系統(tǒng)設計_第3頁
基于單片機的智能抽水灌溉系統(tǒng)設計_第4頁
基于單片機的智能抽水灌溉系統(tǒng)設計_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

畢業(yè)設計(論文)課題名稱基于單片機的智能抽水灌溉系統(tǒng)設計學生姓名XX學號0000000000系、年級專業(yè)XXXXXXXXXXXXXXXXXXXXXXXXX指導教師SDWDSDSDDDSD職稱WDS2023年5月18日摘要當今世界日新月異,在我們學過的歷史中,有第一次工業(yè)革命,第二次工業(yè)革命,每次的革命都意味著技術的提升,解放人們的雙手,縱觀歷史,我們會發(fā)現(xiàn),科技是推動一切開展的根源,人們的欲望又推動著科技的開展,現(xiàn)在人們吃喝住行,愈來愈智能化,意味著生活一切的智能,現(xiàn)在人們已經(jīng)開始追求智能的生活了,智能最多的是表達在了城市中,在農(nóng)村很少有智能的東西,因此束縛了農(nóng)民的勞動力,農(nóng)村也需要智能也需要改革。以前農(nóng)民種植都是需要農(nóng)民自己澆灌,很費時間和資源,農(nóng)民也不能經(jīng)常外出打工,因為農(nóng)業(yè)智能化低,需要很多的勞動力,所以在這種矛盾中我們開始了智能抽水灌溉系統(tǒng),目的就是解放農(nóng)民的雙手,讓他們有更多的時間可以外出務工,增加家庭收入。智能抽水灌溉系統(tǒng)是用51單片機為核心控制的,YL-69是一個傳感器就是把土壤濕度信息傳給單片機的,LCD1602是把數(shù)據(jù)讀出來讓人們可以直觀的看到,蜂鳴器是一個喇叭有發(fā)出聲音的作用。使用YL-69把濕度信息傳給單片機,單片機來處理傳輸來的信息,判斷怎么執(zhí)行,然后將執(zhí)行的信號發(fā)給各個控制器,這就完成了一個系統(tǒng)的功能了。關鍵詞:澆灌;YL-69;濕度;AT89C51單片機;水泵;LCD1602ABSTRACTIntoday'srapidlychangingworld,inwelearnedaboutthehistory,thefirstindustrialrevolution,thesecondindustrialrevolution,everyrevolutionmeansthepromotionoftechnology,liberatingthepeople'shands,throughouthistory,wewillfindthat,scienceandtechnologyisthesourceofpromotingthedevelopmentofall,thedesireofthepeopleandpromotethedevelopmentofscienceandtechnology,peoplenoweattolive,becomemoreandmoreintelligentmeansofalllife'sintelligent,nowpeoplehavebegantopursuethesmartliving,smartmostisreflectedinthecities,inruralareasisrarelyasmartthingsandsoshackledthelaboroffarmers,ruralareasneedasmartalsoneedsreform.Beforefarmersarefarmersandpouryourself,itcoststimeandresources,farmerscan'toftengoouttowork,becauseofthelowintelligentagriculture,requiresalotoflaborforce,sointhiscontradictionwebeganintelligentpumpingirrigationsystem,purposeistoliberatetheirhands,letthemhavemoretimetomigrantworkers,increasetheincomeofthefamily.Intelligentpumpingirrigationsystemiswith51single-chipmicrocomputerasthecorecontrol,YL-69isasensoristhesoilmoistureinformationtosinglechip,LCD1602istoreadoutthedatasothatpeoplecanseeintuitively,thebuzzerisahornsoundeffect.UseYL-69tothehumidityinformationtothemicrocontroller,themicrocontrollertoprocessthetransmissionofinformation,tojudgehowtoperform,andthenthesignaltoeachcontroller,whichcompletesthefunctionofasystem.Keywords:YL-69;humidity;AT89C51MCU;waterpump;LCD16目錄TOC\o"1-2"\h\z\u摘要IABSTRACTII第一章緒論21.1課題介紹及開展趨勢21.2課題設計要求3第2章方案設計與論證42.1系統(tǒng)設計思路42.2系統(tǒng)方案論證4第3章系統(tǒng)硬件設計以及電路圖63.1核心器件模塊及主要引腳說明73.2液晶顯示模塊73.3AT89C51復位電路模塊93.4YL-69土壤濕度傳感器113.5ADC0832功能特點及引腳113.6繼電器123.7蜂鳴器及按鍵13第4章系統(tǒng)軟件設計154.1主界面控制流程154.2液晶顯示程序164.3時鐘芯片程序194.4按鍵程序22第5章仿真與調試255.1軟件調試255.2仿真結果26結論28參考文獻29附錄30致謝31第一章緒論1.1課題介紹及開展趨勢伴隨著現(xiàn)代科技的開展,及電子行業(yè)科學的飛速崛起,單片機系統(tǒng)在自動控制領域中的應用已經(jīng)是常見了,人們對于單片機的使用都非常的熟悉的了,但卻鮮有人知它內部的結構及工作的原理。因為單片機系統(tǒng)是智能抽水灌溉的系統(tǒng)的核心處理器,可以通過它檢測溫度和濕度進而來做出判斷是否抽水灌溉,到達智能的效果。另外外界的溫度和土壤的濕度可由LCD1602讀出來。而且可以鍵盤實現(xiàn)土壤水分的最大值和最小值的更改,最后蜂鳴器用作對外的報警信號。種植業(yè)是從古至今一直延續(xù)的最古老的,是生存的根底,。種植業(yè)的改革長遠來看重中之重,首先是用水,其次是技術。從古老農(nóng)業(yè)向科技農(nóng)業(yè)的轉變,由散點種植向集群種植的轉變,前提是一定要科技的支持科技在種植業(yè)的巨大變革,再來一次技術革命。種植灌水體系科技水平較低是阻止我們國家效率種植業(yè)的開展的最根本原因。古老的大水灌溉模式科技度低,總體上就是以人工操作為主,人們的控制能力不行,更好的提高灌水效率,減少勞動的時間和節(jié)省水資源,一定要大力的提高智能抽水系統(tǒng)的開展。當代智能控制器是一種有效的方法和技術對于智能灌溉系統(tǒng)田間管理,可以提高對水灌溉的高精度,有助于灌水過程中的科學化種植。一方面能最大限度的節(jié)省人們的勞動,最主要是由于它能精準、時空、給定量的、效率地給農(nóng)作物智能補充水分,為了提高農(nóng)作物的產(chǎn)值、重量,節(jié)約水、環(huán)保。當代灌溉技術的研究使用在我國種植業(yè)、林業(yè)不多,與世界興旺國家比擬,有非常大的差距,都處于人工操作上,束縛勞動力[1]。更重要的是農(nóng)作物的需求有時候根本滿足不了,從而會影響到農(nóng)作物的正常規(guī)律生長;另外灌溉量太大,土壤中的肥水流走,從而造成能源的浪費。并且古老的灌水還要農(nóng)業(yè)技術員時時刻刻的盯著作物生長并且指導生產(chǎn),勞動付出大于生產(chǎn)匯報,在這個方面不能滿足于當代農(nóng)業(yè)的提升、高效率化方向開展的要求。再次我國高價購置國外的先進技術來彌補我國的技術缺乏,多數(shù)用于種植業(yè)的示范區(qū)、科研地方,并且不符合我國外鄉(xiāng)的土壤特點。我國本身的現(xiàn)代農(nóng)業(yè)灌溉技術的鉆研和普及于群眾,還處于最開始階段,我國科研我們的、系統(tǒng)體系功能強且具有很強擴展性的,由我國生產(chǎn)的智能抽水灌溉器,是刻不容緩的。伴隨著微型處理器和傳感器硬件的高速的開展,人們普遍的都能接受這種高科技產(chǎn)品的價格,同時性能日益提高。綜上,可以發(fā)現(xiàn)微型計算機技術改造古老農(nóng)業(yè)是可行的,是刻不容緩的。能夠將高科技投入到農(nóng)業(yè)灌溉里面,這將是我國農(nóng)業(yè)甚至經(jīng)濟未來開展的方向。1.2課題設計要求能夠實現(xiàn)基于單片機與LY-69芯片聯(lián)合控制的LCD1602顯示濕度,并能由單片機控制外圍電路中的抽水機澆水。完成硬件設計和軟件設計[2]。主要工作制作基于單片機的智能抽水灌溉系統(tǒng):系統(tǒng)的原理圖的分析和設計;元器件的選擇;程序的編寫;制作和調試實物。1.2.2根本要求該智能抽水灌溉系統(tǒng)根本功能應該包括有準確檢測濕度,檢測范圍為0-99,能夠以數(shù)字的方式在LCD上顯示當前的外界濕度,人工自行設置的最小值濕度和最大值濕度,以英文字母加上數(shù)字的形式進行讀出,同時能使用按鍵對最小值和最大值進行校準功能,此外就是智能系統(tǒng)具有恢復出廠設置功能,并能智能的低于最小值濕度時報警。這個設計以AT89C51單片機為核心,在LCD1602顯示器上顯示目前的測試土壤的濕度,而且用戶可以通過按鍵來設置能是抽水機工作停止的邊界值[3]。使用LCD1602作為輸出信號的顯示器。顯示格式為:最上面顯示出來濕度,最下面顯示人工設置的最小值濕度和最大值濕度。四開關鍵,分別為:K1濕度顯示、K2復位、K3濕度加、K4濕度減。運行后,先設置最大濕度值,再設置濕度最小值,再按K1開始運行系統(tǒng)。程序執(zhí)行后系統(tǒng)默認開始工作,默認濕度上限值為40%,下限為20%,當前濕度低于最小值時,蜂鳴器響起報警并抽水;當土壤濕度到達了植物生長所需要的水分時候,抽水機就可以停止工作了。第2章方案設計與論證2.1系統(tǒng)設計思路當下的中國大局部的農(nóng)業(yè)種植中都是使用人工大水灌溉,這種灌水的的特點是連續(xù)的、不停止的。選取這種灌溉系統(tǒng)僅僅只能保證植物作物不會缺水而死,相反呢,這種灌溉對作物來說并不是最好的成長環(huán)境,浪費了水資源又無法使作物健康成長。為了解決上面問題使農(nóng)業(yè)灌溉技術得到改善,我們設計了這套智能抽水灌溉系統(tǒng),這套系統(tǒng)的優(yōu)點是他可以解放勞動力,并且還可以更科學的灌溉,更合理的給植物所需要的水資源,節(jié)約了本錢,節(jié)省了能演。本系統(tǒng)是依據(jù)微型計算機單片機原理,通過采集土壤濕度通過傳感器收集信號,然后通過人為按鍵來調整濕度最大值最小值,YL-69土壤傳感器將土壤中的濕度變成電信號傳送給單片機,單片機的處理中心接受信號,分析信號,這樣一個過程處理器就知道土壤的濕度值了,這時候處理器又拿這個值跟人們設置的最值比擬,小于的時候開始上水,大于的時候就停止供水。從而到達智能抽水灌溉的目的。這次實驗最主要的是要完成下面的幾個系統(tǒng):1.利用YL-69來對土壤濕度進行檢測;2.用LCD作為輸出信號顯示。3.在對最值設置的時候要問這方面的專家,確定好了最值在設置最值;4.用單片機作為最后的核心處理,計算出需不需要開啟水泵灌溉。硬件和軟件組成了這個系統(tǒng),硬件局部又分為單片機接受到信號信息,然后做出類似于人類大腦的判斷、信號LCD的輸出、種植地的土壤水分計算、最值得輸入、是否開啟水泵、蜂鳴器響六大模塊。核心AT89C51相當于大腦級別的信號分析功能;YL-69土壤的濕度檢測器;按鍵對濕度最值的輸入;顯示模塊是輸出傳感器傳送來的信息即土壤濕度及設置的最大最下濕度值;水泵和蜂鳴器用來接收單片機發(fā)來的命令[4]。軟件結構與硬件配置相適應,本系統(tǒng)很靈活方便,有很強的動態(tài)性,能隨時更改濕度的最大最小值;另外本系統(tǒng)研發(fā)和設計的時候,將軟件局部和硬件局部實時交互性。2.2系統(tǒng)方案論證本設計主要討論了,對實現(xiàn)LED屏顯示的智能抽水灌溉系統(tǒng)的硬件局部設計和軟件局部設計,以及實現(xiàn)LED屏的顯示,濕度的檢測傳輸,下面介紹本設計系統(tǒng)所需器件以及最優(yōu)選擇。2.2.1芯片的選擇微型處理器單片機的選擇:對于單片機最優(yōu)選擇,假設采用8031的系列,因為內部沒RAM,恰恰本系統(tǒng)需要一塊兒存儲空間,所以不可用;那么51系列的ROM為4K足夠,因此設計上采用AT89C51單片機芯片。A/D轉換:ADC0812雙通及8位分辨率。LCD屏的選擇:用來輸出信號顯示土壤濕度值。LCD1600是最好的選擇性價比高。2.2.2按鍵控制單個復位開關價格廉價實用價值高做成按鍵。本系統(tǒng)要四個按鈕,恢復按鈕、設置按鈕、增按鈕、減按鈕。四個鍵:K1、K2、K3、K4功能以下:K1:系統(tǒng)恢復按鍵;K2:設置初值鍵;K3:數(shù)值加;4K:數(shù)值減。啟動電源開始,開始時首先按K2初值的設置,再次點確認,點K3加溫度值,點K4減溫度值,按K1恢復初值,默認初值最大40%,最小20%[5]。第3章系統(tǒng)硬件設計以及電路圖通過大學期間學習,在課堂中學習的單片機主要以C51為主,平常的練習多以匯編為主,單片機就是微型處理器,國外創(chuàng)造的。它的集成高、個小、廉價、用電量低等許多優(yōu)點所以被廣泛的應用[6]。本系統(tǒng)采用C51單片機,系統(tǒng)的核心電路模塊有幾個大局部,根據(jù)上面介紹由,微處理器模塊、信號輸出顯示模塊、采集信息模塊、按鍵模塊等外圍電路組成。模塊的聯(lián)系如圖3.1所示:圖3.1電路模塊圖系統(tǒng)的總電路圖如以下圖3.2圖3.2電路模塊圖3.1核心器件模塊及主要引腳說明AT89C51實物如圖3.3所示:圖3.3AT89C51實物它的集成高、個小、廉價、用電量低等許多優(yōu)點所以被廣泛的應用。AT89C51的引腳圖如圖3.4所示[7]:圖3.4AT89C51引腳P0口:全部用作在LCD屏的顯示。XTAL1、XTAL2:這兩個口為晶振信號傳輸口。RST:這個口是給單片機一個復位信號。P1口:這個口是用作數(shù)據(jù)輸入輸出口。3.2液晶顯示模塊智能抽水灌溉系統(tǒng)用的是LCD1602屏輸出的信息,LCD的原理很簡單,通過亮光與暗來顯示的,這樣的輸出信息穩(wěn)定,人們也估計看不到量點的閃爍問題,這樣更對人眼不會有損傷作用,價格也可以讓平常人買的起,所以是最好的選擇[8]。LCD的電路如圖3.5所示:圖3.5LCD16023.2.1液晶顯示原理這里我們講解顯示技術,液晶有兩塊玻璃,大概有1mm厚,與此同時,中間有特殊材料間隔開了。我們都知道液晶它自己是不發(fā)光的對吧,那么為了到達發(fā)光的目的我們在旁邊安裝有燈管,并且呢在后面我們還有個特殊發(fā)光的板子和反射板,特殊發(fā)光板是有熒光材料制作的可以發(fā)光。背板光線在穿過第一層偏振過濾到包含無數(shù)的液晶微滴的液晶層。LCD中的液滴都被包含在單元中,一個或多個第一個構成屏幕上的一個像素。還有透明的材料夾在在玻璃板與液晶材料之間,這種透明材料有行和列,行和列的集合點,LCD的旋光可以有電壓控制,當LCD中的電極產(chǎn)生電場時,液晶分子就會產(chǎn)生扭曲,從而將穿越其中的光線進行有規(guī)律的折射,然后進過第二層過濾層的過濾在屏幕上顯示出來。3.2.2LCD1602特性①+5V電壓,比照度可調;②內含復位電路;③提供各種控制命令;④有八十字節(jié)顯示數(shù)據(jù)存儲器;⑤內建字符發(fā)生器;⑥個可由用戶自定義的5×7的字符發(fā)生器CGRAM。3.2.3LCD1602管腳功能LCD1602采用標準的16腳接口,如圖3.6所示,其中:圖3.6LCD1602引腳圖第1腳:VSS為電源地;第2腳:VDD接5V電源正極;第3腳:V0是用來弄比照度的;第4腳:RS選擇指令和數(shù)據(jù),由電平選擇,高為數(shù)據(jù);低為指令。第5腳:R/W很明顯為READ和WRITE,讀和寫高為讀低為寫;第6腳:E(或EN)端為使能(enable)端;第7~14腳:DB0~DB7為8位雙向數(shù)據(jù)端;第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負極。3.3AT89C51復位電路模塊RST端口是本系統(tǒng)中AT89C51單片機的復位端,當我們啟動單片機,單片機進行工作的時候,時鐘電路就會自動進行運作,如果在運行單片機時有大于2個周期的高水平存在,和RST輸入端口的單片機,這個時候就復位,并運行該程序將從頭開始。還有一種能夠進行復位的方法,那就是利用定時計數(shù)器,進行定時復位。單片機復位,程序計數(shù)器PC為0000H,中央處理器將從源頭開始運行,在外圍電路的設置,我們連接到電源。整個系統(tǒng)就等于再復位,還有就是有一個復位按鈕可以設置復位[9]。如圖3.7所示,圖中描述了一個很簡單的復位的電路原理。當通電一剎那,由于電容的延時特性,使得電容兩個電片之間的電壓不能夠迅速發(fā)生變化,所以單片機RST為“1〞,電容充電過程,RST引腳的電壓會逐漸下降,到了圖3.8所示的t1時刻,單片機復位端的電壓降到了3.6V的水平,隨著充電的繼續(xù),電容將會被充滿電,那么復位端口的電壓最終將會變成0。如圖3.8所示的是復位端口電平的變化圖。如果要單片機重啟,就需要有兩個機械周期時間存在“1〞,在單片機中,機器所用的頻率是由所給的外圍的晶振提供的,圖3.7中,所使用的電阻不能過小,一般使用的電阻值是8.2kΩ;可以通過電阻R和其頻率f的數(shù)值算出C3電容的大小。圖3.7RC上電復位電路圖3.8RST引腳電壓-時間關系圖3.9組合復位電路如圖3.9中所顯示的,電阻R2一般設置得比擬小,很多時候都是十幾歐姆,由于R2遠遠小于R1,而我們的電壓VR端與電源根本相同,使得復位引腳的電壓被設置成了高電平,松開復位鍵后,過程和我們重啟是一樣的。在單片機系統(tǒng)中,為了使單片機復位時,需要穩(wěn)定的電路設計外,并在第一連接微控制器。這種方法,有利于穩(wěn)定設計,整個系統(tǒng)工作穩(wěn)定,也提高了系統(tǒng)壽命。當設計的系統(tǒng)中需要多個復位的芯片的時候,我們選擇的復位芯片,如果它的匹配性合理,可以將他們直接接在單片機上,所以盡量選這種芯片更簡單。詳情如圖3.9所示,而圖3.10表示的是74HCl4施密特電路的原理圖[10]。監(jiān)控電路和復位電路。這樣的集成電路不僅能夠提供可靠性高的復位信號,還具備有監(jiān)制、看門狗功能。復位后,ALE引腳端電平為輸入功能;片上RAM不受影響;P0~P3口的各個引腳輸出的是高電平,這些端口是用作雙端口,但是是用于輸入的,程序計數(shù)器指向程序代碼指令的開始位置,因此從程序存儲器0000H位置控制器開始取出一條指令并解析實現(xiàn)。因此,當我們的程序出現(xiàn)了死循環(huán)或者有DEBUG時,我們可以使其重新運行。圖3.1074HCl4施密特反相器3.4YL-69土壤濕度傳感器YL-69器件是一個小的芯片,用來測量土壤濕度的傳感器。內部是個電容,收到濕度的影響,濕度影響它的電阻,在地里面的水分發(fā)生變化時,它的阻止變化從而能產(chǎn)生變化的電信號,這樣就能將濕度直接轉化成電信號。它的體積小,價格很廉價,適合大規(guī)模的生產(chǎn),因此被廣泛的應用[11]。在本智能系統(tǒng)中的電路原理圖如圖3.11。圖3.11YL-69與AD轉電路3.5ADC0832功能特點及引腳ADC0832是模數(shù)轉換器。三根線連接了它與單片機,價格廉價,用電量低,用在小的智能系統(tǒng)里面很多。ADC0832的分辨率是八位,所以平常的信號都能模擬出來。由于模數(shù)轉換會不準確,所以它用了雙數(shù)據(jù)的傳輸,準確平安,穩(wěn)定。它能自己輸入,這樣單片機就能同一時間處理多個器件。我們用DI端灌入數(shù)據(jù),這樣可以很簡單。其主要特點如下:(1)8位分辨率,基準電壓為5V;(2)功耗低僅僅為15mW。(3)5V的電源供電;(4)輸入和輸出電平與CMOS及TTL兼容;(5)輸入模擬信號的電壓范圍在0到5V之間;(6)在時鐘頻率為250KHZ時,轉換時間是32us;ADC0832有DIP和SOIC兩類,DIP的ADC0832引腳排列如圖3.12所示。各引腳說明如下:(1)CS——片選端,低電平有效。(2)CH0,CH1——兩路模擬信號的輸入端。(3)DI——數(shù)據(jù)信號輸入,選擇通道控制。(4)DO——數(shù)據(jù)信號輸出,轉換數(shù)據(jù)輸出。(5)CLK——串行時鐘輸入端。(6)Vcc/REF——電源的輸入和參考電壓輸入。(7)GND——電源地。圖3.12ADC0832引腳圖3.6繼電器繼電器其實就是一種開關,繼電器工作的原理很簡單,它就是用非常小的電流去控制大的電流,這樣做可以保證平安,還可以遠程控制,在就是單片機只能是小電流,所以必須用繼電器做一個開關,來關聯(lián)水泵和單片機。市面上有很多種繼電器,本智能抽水系統(tǒng)采用的是電磁繼電器,這種繼電器的工作機制很簡單,電磁顧名思義就是磁鐵相關了,在它的內部有線圈和鐵塊,這就是為了曾大它的磁力。當通電的時候它內部產(chǎn)生磁力,從而把那個貼片吸引下來,這樣就形成了閉路,這樣被控制的那個模塊電路就連同了,從而到達了開啟的作用。斷電磁力消失,鐵片在彈簧的作用下又彈回,斷開。這樣就形成了開閉電路的作用[12]。如圖3.13中,三極管基極為低電平時,三極管導通,繼電器有磁力K1接通,水泵開始工作,LED亮起。圖3.13繼電器控制水泵3.7蜂鳴器及按鍵蜂鳴器:蜂鳴器是本系統(tǒng)的報警器,電路結構如圖:3.14所示。PNP管子通電時報警。圖3.14蜂鳴器輸入按鈕模塊:設計圖如圖3.15所示。S1恢復出廠設置、S2設置濕度最值、S3調整最值加、S4調整最值減。圖3.15按鍵電路按鍵模塊按照要求,控制的按鍵為4個:S1、S2、S3、S4,各個按鍵的功能如下:S1:復位按鍵;S2:設置濕度上下限和啟動按鍵;S3:濕度值加;S4:濕度值減。啟動灌溉系統(tǒng)時,可以用S2按鍵來修改系統(tǒng)默認設置的濕度上限值和下限值,首先根據(jù)已經(jīng)掌握的知識來設置值,用S3、S4來增加減少。如圖4.12是其電路圖,復位引腳接S1,S2-S4分別接單片機的P3.0-P3.2引腳[13]。以啟動電源開始,S2用來控制要設置濕度上限值和下限值,即系統(tǒng)啟動時,顯示的是系統(tǒng)默認的濕度上下限設置,那按一次S2就可以進行濕度上下限的設置了;按S2開始設置濕度值,這時候點S3濕度值增加,S4濕度值減少;設置好后,我們再點S2確認,這個時候濕度最值就設置好了,與此同時智能抽水系統(tǒng)開始運行。在實驗土壤的濕度小于我們設置的最值時候,這個時候報警、抽水,相反,大于的時候停止工作。在兩個最值之間的時候停止報警,但是繼續(xù)抽水。第4章系統(tǒng)軟件設計上面是我們設計的硬件的局部,確實硬件局部很重要,但是軟件局部的系統(tǒng)設計也是本系統(tǒng)的核心,也是非常重要的一個局部。軟件的編程局部也會關系到系統(tǒng)的穩(wěn)定性,以及效率。為了讓系統(tǒng)更好的運行,穩(wěn)定,我們采用了最為根底的語言C語言,它具有穩(wěn)定性,軟件我們用Keil軟件。4.1主界面控制流程主界面如圖4.1所示,從程序控制的硬件來看,智能灌溉系統(tǒng)被啟動時,單片機進行復位,液晶顯示屏也開始顯示啟動,晶振電路在單片機控制下復位并工作。LCD1602顯示屏在最開始的內容就是系統(tǒng)默認的初始值,還有當前土壤的濕度值,這時候的默認值為百分之四十和百分之二十,在最上面的顯示的是傳感器傳回來的濕度值。啟動并且有顯示后,可以通過四個按鍵開始分別進行濕度的上限值和下限值以及復位設置,通過按鍵的調整,得到我們所需要的濕度控制范圍,再點擊按鍵中的開始,這樣,灌溉系統(tǒng)就可以啟動了。圖4.1是由程序控制的大體流程圖,各模塊的詳細控制將在講解各模塊時做詳細介紹[14]。圖4.1程序流程圖4.2液晶顯示程序對于時鐘的設計,我們就是要看到顯示出來的信息;所以在本設計中,顯示這一局部是最重要的。在這一局部程序中,主要有:LCD顯示的初始化,讀取數(shù)據(jù),寫入指令,查狀態(tài)和在指定位置顯示字符等程序。下面我們來介紹關于LCD1602的地址和指令[15]。4.2.1LCD1602地址HD44780內置了DDRAM〔顯示數(shù)據(jù)存儲RAM〕、CGROM〔字符存儲ROM〕和CGRAM〔用戶自定義RAM〕。顯示數(shù)據(jù)就儲存在DDRAM中,它來存放將要顯示的字符代碼。一共80個字節(jié),地址與屏幕的對應關系見下表4.1:表4.1DDRAM地址和屏幕的關系顯示位置1234567……40DDRAM地址第一行00H01H02H03H04H05H06H……27H第二行40H41H42H43H44H45H46H……67H打個比方要在LCD上面一個地方顯示“K〞我們要輸入命令,在哪個地方輸入這個字符就對了。至于詳細的寫入我們要在下面講到。在LCD中有四十個地址,我們用前十六個滿足了就。應見下表4.2:表4.2DDRAM地址與顯示位置的對應關系1234……13141516第一行00H01H02H03H……0CH0DH0EH0FH第二行40H41H42H43H……4CH4DH4EH4FH在這里我們要強調一個考前須知,在顯示中我們在第一個位置輸入一個數(shù)字“2〞我們不能直接把“2〞輸入進去,這樣做是一個容易出錯的,所以我們要拿出來講解下,如果要輸入字,我們要在這個地址上面加上80H,也就是你想要輸入的地址都要加上80H這樣就能正確的顯示了。4.2.2LCD1602指令表4.3LCD1602指令集指令名稱指令編碼指令功能RSR/WDB7~DB0Clear0000000001去除,在DDRAM中寫入20H。光標歸位閃爍點歸位000000001x輸入閃爍點移到LCD屏幕的開始輸入模式設置000001I/Ds用來指定字符移動的方向顯示開關控制0000001DCBLCD屏的顯示、閃爍點顯示/關閉由CB控制,設定顯示屏/光標移動方向000001S/CR/Lxx使光標移位或整個顯示屏移位功能設定00001DLNFX數(shù)據(jù)總線的位數(shù)、LCD顯示的行以及字形的設置CGRAM地址的設置0001CGRAM的地址設定下一個要存入數(shù)據(jù)的CGRAM的地址設定DDRAM地址001DDRAM的地址設定下一個要存入數(shù)據(jù)的DDRAM的地址讀忙信號/AC地址01BFAC內容讀取忙信號BF的內容,AC地址的內容寫入數(shù)據(jù)10在CGRAM中寫入數(shù)據(jù)讀出數(shù)據(jù)11讀出DDRAM或CGRAM中的內容指令如表4.3想要看到什么樣的信息,就輸入對應的指令,上表說了十一條指令:1602液晶的操作有4種:①狀態(tài)讀操作——輸入:RS=0、R/W=1、E=1,輸出:DB0~DB7的狀態(tài)字;②數(shù)據(jù)讀操作——輸入:RS=1、R/W=1、E=1,輸出:DB0~DB7的數(shù)據(jù);③指令寫操作——輸入:RS=0、R/W=0、E=1,輸出:無;④數(shù)據(jù)寫操作——輸入:RS=1、R/W=1、E=1,輸出:無。4.2.3LCD1602字符集在LCD顯示屏的內部有個儲存器〔記憶器〕,在這個記憶器可以生產(chǎn)出字符,這些字符可以輸出一個圖,大致的目標就是下面這樣的:阿拉伯數(shù)字,字母、包括大小寫和符號每個字符能夠針對一段代碼,打比方一個字母C對應43H,這個就是用十六進制來表示的,最后的顯示就是把對應的地址中的數(shù)據(jù)拿出來就會顯示在LCD屏上了。這個對應是由ASCII碼識別的,只能夠用它來識別,所以在設計中我們用的都會被轉化成ASCII碼,ASCII可以直接顯示,也可以由LCD內部的記憶器轉換,這個過程不需要我們人為的去轉換。4.2.4LCD1602程序那么我們簡單說下LCD的初始化和在一個固定地方顯示字符;初始化的流程圖如圖4.2所示:包括液晶顯示開始啟動,顯示模式設置初始化,關閉顯示,清屏顯示,顯示光標移動設置,顯示開以及光標設置、退出等。圖4.2液晶初始化流程圖LCD屏的初始化是有關顯示器的機制,和原理的相關操作。我就不多說了。下面是在一個固定位置顯示的代碼,如下:voidDLC(ucharX,ucharY,ucharcode*DData){ucharListLength,j;ListLength=strlen(DData);Y&=0x1;X&=0xF;//限制X不能大于15,Y不能大于1if(X<=0xF)//X坐標應小于0xF{for(j=0;j<ListLength;j++) {DOC(X,Y,DData[j]);//顯示單個字符X++;}}}上面這些代碼,很簡單主要是在LCD屏上的固定的位置顯示一堆字符;我們可以看到代碼中定義了一個unchar的變量X,Y他們的值分別小于等于十五,小于等于一,這里他們表示了LCD中顯示的位置,為什么用這樣的限制,這里我們還要看上面對LCD的介紹,上面說了LCD的屏幕大小只有16長度,2列寬度,所以對X,Y的值做了這樣的限制。4.3時鐘芯片程序這里呢首先我們要從DS1302這個里面讀取它內部的信息,給了單片機,接著呢在LCD的屏中顯示出來,還有呢就是在它的時間需要對準的時候,外部按鍵更正時間,然后在存入芯片里面。4.3.1DS1302控制命令字節(jié)DS1302控制命令字節(jié)結構如表4.4所示:表4.4DS1302控制命令字節(jié)結構765432101A4A3A2A1A0從上面的表中我們需要知道,在這里面第七位字節(jié),必須是“1〞,因為當它是“0〞的時候不能在它里面寫入數(shù)據(jù),第六位中如果是“0〞那么表示是時間數(shù)據(jù),如果是“1〞那么就表示在RAM中存數(shù)據(jù),其他位是操作單元的地址,最后一個位置上如果是“0〞那么表示執(zhí)行寫入操作,如果是“1〞那么就讀取操作。4.3.2DS1302的存放器上面一節(jié)中我們介紹了DS1302的控制命令,不同的地址有不同的命令,那么我們想他有這么多功能,肯定內部有許多存放器,來存放這些數(shù)據(jù),其實它內部有12個,在這個存放器中,跟日歷、時間有關的存放器最多,他們以BCD碼存入,詳細的介紹看下面表4.5:表4.5DS1302存放器存放器名命令字取值范圍各位內容寫操作讀操作76543210秒80H81H0-59CH10SECSEC分82H83H0-59010MINMIN時84H85H01-1200-2312/24010/APHRHR日86H87H01-28、2930、310010DATEDATE月88H89H01-1200010MMONTH周8AH8BH01-0700000WEEK年8CH8DH00-9910YEARYEAR有些位我們要單獨的拿出來特別的說一下:CH:它用來控制時鐘的停止和開始,它為高電平的時候振蕩器停止工作,DS1302為低消耗的備份模式,相反,低電平的時候時鐘會啟開工作。2/24:用來控制輸出時間的方式,有兩種方式12和24,當它是1的時候為12小時制。要特別說的是12小時制下,第五位是上午下午的選擇,1表示下午,0表示上午。24小時制,第五位是第2個小時位二十到二十三。操作說明:①第一要寫入數(shù)據(jù),所以我們要把寫保護關閉,并且在日期時間的存放器中初始化;②然后就可以對80H、82H、84H、86H、88H、8AH、8CH進行初值寫入,另外我們也能在妙存放器中的第七位的CH改成0,這樣DS1302就開始工作了;③當初值初始化成功后,我們就不需要再進行初始化了所以這個時候我們需要開啟寫入保護,防止存放器的值被更改;④我們接下來做的就是不間斷的讀取存放器80H到8CH中的值,然后將他們的格式修改,在LCD屏上面顯示。4.3.3DS1302數(shù)據(jù)傳輸DS1302是通過I/O串行來讀寫數(shù)據(jù)的。由于硬件的設置,它的讀寫數(shù)據(jù)每次不能低于2個字節(jié),第一個位是控制,說白了它就是一條命令,它來指示DS1302對數(shù)據(jù)怎么處理,是寫進還是讀出,并且還告訴對那個存放器使用,和操作地址;第二個位內容就是我們要讀寫的具體數(shù)據(jù)。它的具體的時序以下圖5.3所示:圖4.3DS1302數(shù)據(jù)傳輸數(shù)據(jù)寫入:當我們操作的時候,我們要在這之前做準備工作,就是把RST設置為“1〞’,接著,用單片機控制位的數(shù)字,通過數(shù)據(jù)口,穩(wěn)定,SCLK為“1〞,DS1302開始讀取信息,接著SCLK為“0〞,數(shù)據(jù)口被高水平,一直這樣進行,這樣將一個字節(jié)控制字的八位轉給了DS。后面再傳讀數(shù)據(jù)給DS,完成后數(shù)據(jù)傳送后,單片機RST置“0〞,結束工作。數(shù)據(jù)取出:數(shù)據(jù)的取出跟數(shù)據(jù)的寫入類似,差不多是個相反的過程,SCLK置“1〞DS1302把數(shù)據(jù)傳到IO口里面,SCLK置“0〞數(shù)據(jù)鎖定,這時候單片機讀取IO口數(shù)據(jù)。一直這樣進行,最后數(shù)據(jù)傳到單片機。4.4按鍵程序機械性質是一般按鍵都有的性質。問題在按鍵點下的時候,不會很好的連接。還有問題是我們按下的時候來回彈跳,時間極快,我們人體感知是不會體會到的,但是我們都知道單片機的運行時上百萬次的,所以這個在我們按下來回彈跳時間對單片機來說時間是極長的。單片時機接受到非常多的上下電流,如果不適當控制下,會影響性能,所以我們做了個判斷具體流程以下圖4.4所示。開始開始鍵按下?延時30ms鍵還按下?讀取鍵值等待釋放圖4.4按鍵流程圖unsignedcharv_readkey_f(void);/////延時程序{unsignedcharkey;if(P17=0){delay(30);/延時30msif(P17=0){key=1;while(!P17)/等待釋放}elsekey=0}}4.4.1ADC0832芯片接口程序為了能夠使信息傳輸?shù)酶旌头€(wěn)定,由于C語言的模塊化接口比擬好用,所以,本設計利用C語言進行接口編程是非常好的。數(shù)模轉換裝置是非??斓?,其轉換時間一般只有短短的32us,所以A/D轉換的周期小,頻率非???,這也有利于在一些特定的需要中使用。數(shù)據(jù)是在子程序中被賦予的,屏蔽了外面函數(shù)模塊中的信息,盡量減少了全局變量的使用,因為全局變量在各個模塊函數(shù)中都能夠被使用,在這樣的情況下,如果在一個子程序中使用了全局變量,又在另外一個子程序中使用了此全局變量,那變量數(shù)據(jù)就有可能達不到我們所要的要求,數(shù)據(jù)也有可能被某個模塊中的函數(shù)破壞掉了,這樣對于整個設計是非常不利的。而如果我們使用的是模塊函數(shù),并且使用的是局部變量,這樣就可以屏蔽外界的信息,保證本模塊能夠唯一做一件事,不會對其他模塊中的數(shù)據(jù)產(chǎn)生影響,并且在程序運行的時候,動態(tài)類的局部變量是存在于棧中的,一旦子程序定義了此類變量,程序才開始為此變量分配空間,一旦子程序運行完畢,這個變量所屬的空間會釋放掉,不再占用內存空間,這樣更有利于解決單片機內存缺乏,運行速度稍微慢等缺點。此外,模塊化的程序設計思想,有利于程序的移植,即當我們寫過一個程序,下一次要做同樣類似的操作的時候,可以進行代碼復用,有利于縮短開發(fā)的周期,結余了時間和本錢。如圖4.5所示的是ADC0832讀取數(shù)據(jù)的流程圖。開始開始產(chǎn)生時鐘信號能使芯片輸入通道控制字讀取2字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù)矯正將值送入指定存放器結束圖4.5ADC0832讀取數(shù)據(jù)流程圖第5章仿真與調試仿真與調試,程序我們是用C寫的所以我們用得Keil軟件作為開發(fā)平臺,這個軟件很好用,我們用它進行編譯,最后生成可執(zhí)行的文件,然后最后通過數(shù)據(jù)線的鏈接傳送到單片機里面,這個過程就是平常大家說的燒進去,在編程中Keil會給你提示編程中出現(xiàn)的錯誤,很方便的更改,這樣我們就有目的更改,最后這個軟件也能進行編譯,編譯成功后我們就可以燒進單片機中[16]。5.1軟件調試上面是大概的一個介紹,下面我們做詳細的講解,當我們把程序做好后,我們就需要用數(shù)據(jù)線吧把它傳進單片機中,下面我們來看看Keil的編程具體操作。5.1.1Keil軟件介紹美國我們大家都知道,人家的科技是非常興旺的,所以一些先進的東西最先一般是由美國人創(chuàng)造的,Keil也不例外,它是由美國公司開發(fā)的,用來進行C語言與單片機的編寫,最一開始的編程我們都知道那是匯編,枯燥難懂,所以美國人又開展到C,這個就比匯編更容易學習,更容易操作,優(yōu)勢非常突出。Keil軟件界面如圖5.1所示:圖5.1Keil軟件界面5.1.2程序調試首先我們需要建立一個工程,之后新建一個XX.C文件,把該文件添加到工程中進行編譯生成XX.HEX文件。如圖5.2。圖5.2編譯過程5.2仿真結果本系統(tǒng)的仿真圖,如圖5.3:圖5.3開始運行圖5.3中液晶顯示屏所顯示的為系統(tǒng)默認設置的濕度最值,是由程序中默認控制顯示的,顯示內容為濕度最上限40%,最下限20%,當前濕度34.1%。當電源掉電或者按復位鍵重新啟動時,每次都是顯示此默認設置。圖5.4設置后運行結果當啟動電源后,顯示濕度上限值和下限值是系統(tǒng)默認的,最上面顯示的是當前檢測到的環(huán)境濕度值。通過按鍵K2,切換到設置模式,此時灌溉系統(tǒng)暫停,轉為設置態(tài),我們通過K3來加濕度的最值,通過K4來減濕度的最值,同時K2鍵也充當確實設置鍵,如圖5.4所示,經(jīng)過我們查找資料,最后我們設置了濕度的最大值56%,最小值為35%,當前環(huán)境濕度值為33%。我們再次按下K2鍵后,表示設置完畢,智能抽水灌溉系統(tǒng)繼續(xù)工作。當我們設置的濕度高于測試地方的濕度時,喇叭響起報警,這個時候抽水機開啟了,進行灌溉;當環(huán)境的濕度位于我們所設置的濕度上限值和下限值之間時,蜂鳴器不會報警,但是由于沒有到達我們所要求的土壤濕度,所以灌溉系統(tǒng)繼續(xù)抽水;當我們設置的濕度低于測試地的濕度時候,這個時候澆水到達要求,抽水機就停止工作了,整個系統(tǒng)保持檢測狀態(tài),一旦出現(xiàn)濕度低于上限值,會對應著做出對應的工作。結論本論文設計的基于單片機的智能抽水灌溉系統(tǒng),這個系統(tǒng)是根據(jù)電子學的自動檢測和自動控制裝置設計出來的,屬于嵌入式系統(tǒng),是依靠軟件進行程序控制的。本系統(tǒng)用的是普遍運用的傳感技術,此技術在當今已經(jīng)很成熟了,利用此傳感技術,采集到土壤環(huán)境中的濕度值,并將收集到的數(shù)據(jù)發(fā)送給作為中央控制器的單片機,單片機收到數(shù)據(jù)后,會對收集到的土壤數(shù)據(jù)進行分析和處理,并實時的做出一定的反響,通過外圍電路控制系統(tǒng)對各個局部進行合理的控制,到達自動檢測和自動灌溉的目標要求。本設計的單片機自動灌溉系統(tǒng)由兩大局部組成:一是通過LY-69芯片檢測土壤的濕度,并把數(shù)據(jù)發(fā)送給單片機處理器,單片機處理分析數(shù)據(jù)后,會把結果寫入到LCD1602中進行顯示,二是單片機收到土壤濕度數(shù)據(jù)后,進行分析比照結構,比擬當前土壤濕度和我們所要求的濕度,并對澆灌控制器做出合理的控制。本系統(tǒng)中所使用的YL-6

溫馨提示

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

最新文檔

評論

0/150

提交評論