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

下載本文檔

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

文檔簡介

1、邵陽學院畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)課 題 名 稱 基于單片機的智能抽水灌溉系統(tǒng)設(shè)計 學 生 姓 名 X X 學 號 0000000000 系、年級專業(yè) XXXXXXXXXXXXXXXXXXXXXXXXX 指 導 教 師 SDWDSDSDDDSD職 稱 WDS2016年 5月 18日 邵陽學院畢業(yè)設(shè)計(論文)摘 要當今世界日新月異,在我們學過的歷史中,有第一次工業(yè)革命,第二次工業(yè)革命,每次的革命都意味著技術(shù)的提升,解放人們的雙手,縱觀歷史,我們會發(fā)現(xiàn),科技是推動一切發(fā)展的根源,人們的欲望又推動著科技的發(fā)展,現(xiàn)在人們吃喝住行,愈來愈智能化,意味著生活一切的智能,現(xiàn)在人們已經(jīng)開始追求智能的生活

2、了,智能最多的是體現(xiàn)在了城市中,在農(nóng)村很少有智能的東西,因此束縛了農(nóng)民的勞動力,農(nóng)村也需要智能也需要改革。以前農(nóng)民種植都是需要農(nóng)民自己澆灌,很費時間和資源,農(nóng)民也不能經(jīng)常外出打工,因為農(nóng)業(yè)智能化低,需要很多的勞動力,所以在這種矛盾中我們開始了智能抽水灌溉系統(tǒng),目的就是解放農(nóng)民的雙手,讓他們有更多的時間可以外出務(wù)工,增加家庭收入。智能抽水灌溉系統(tǒng)是用51單片機為核心控制的,YL-69是一個傳感器就是把土壤濕度信息傳給單片機的,LCD1602是把數(shù)據(jù)讀出來讓人們可以直觀的看到,蜂鳴器是一個喇叭有發(fā)出聲音的作用。使用YL-69把濕度信息傳給單片機,單片機來處理傳輸來的信息,判斷怎么執(zhí)行,然后將執(zhí)行的

3、信號發(fā)給各個控制器,這就完成了一個系統(tǒng)的功能了。關(guān)鍵詞:澆灌;YL-69;濕度;AT89C51單片機;水泵;LCD1602ABSTRACTIn today's rapidly changing world, in we learned about the history, the first industrial revolution, the second industrial revolution, every revolution means the promotion of technology, liberating the people's hands, throu

4、ghout history, we will find that, science and technology is the source of promoting the development of all, the desire of the people and promote the development of science and technology, people now eat to live, become more and more intelligent means of all life's intelligent, now people have be

5、gan to pursue the smart living, smart most is reflected in the cities, in rural areas is rarely a smart things and so shackled the labor of farmers, rural areas need a smart also needs reform.Before farmers are farmers and pour yourself, it costs time and resources, farmers can't often go out to

6、 work, because of the low intelligent agriculture, requires a lot of labor force, so in this contradiction we began intelligent pumping irrigation system, purpose is to liberate their hands, let them have more time to migrant workers, increase the income of the family.Intelligent pumping irrigation

7、system is with 51 single-chip microcomputer as the core control, YL-69 is a sensor is the soil moisture information to single chip, LCD1602 is to read out the data so that people can see intuitively, the buzzer is a horn sound effect. Use YL-69 to the humidity information to the microcontroller, the

8、 microcontroller to process the transmission of information, to judge how to perform, and then the signal to each controller, which completes the function of a system.Key words: YL-69; humidity; AT89C51 MCU; water pump; LCD16II目錄摘 要IABSTRACTII第一章 緒論21.1 課題介紹及發(fā)展趨勢21.2 課題設(shè)計要求3第2章 方案設(shè)計與論證42.1系統(tǒng)設(shè)計思路42.2

9、 系統(tǒng)方案論證4第3章 系統(tǒng)硬件設(shè)計以及電路圖63.1 核心器件模塊及主要引腳說明73.2 液晶顯示模塊73.3 AT89C51復位電路模塊93.4 YL-69土壤濕度傳感器113.5 ADC0832功能特點及引腳113.6 繼電器123.7 蜂鳴器及按鍵13第4章 系統(tǒng)軟件設(shè)計154.1 主界面控制流程154.2液晶顯示程序164.3 時鐘芯片程序194.4 按鍵程序22第5章 仿真與調(diào)試255.1 軟件調(diào)試255.2 仿真結(jié)果26結(jié)論28參考文獻29附 錄30致 謝31第一章 緒論1.1 課題介紹及發(fā)展趨勢 伴隨著現(xiàn)代科技的發(fā)展,及電子行業(yè)科學的飛速崛起,單片機系統(tǒng)在自動控制領(lǐng)域中的應(yīng)用已

10、經(jīng)是常見了,人們對于單片機的使用都非常的熟悉的了,但卻鮮有人知它內(nèi)部的結(jié)構(gòu)及工作的原理。因為單片機系統(tǒng)是智能抽水灌溉的系統(tǒng)的核心處理器,可以通過它檢測溫度和濕度進而來做出判斷是否抽水灌溉,達到智能的效果。另外外界的溫度和土壤的濕度可由LCD1602讀出來。而且可以鍵盤實現(xiàn)土壤水分的最大值和最小值的更改,最后蜂鳴器用作對外的報警信號。種植業(yè)是從古至今一直延續(xù)的最古老的,是生存的基礎(chǔ),。種植業(yè)的改革長遠來看重中之重,首先是用水,其次是技術(shù)。從古老農(nóng)業(yè)向科技農(nóng)業(yè)的轉(zhuǎn)變,由散點種植向集群種植的轉(zhuǎn)變,前提是一定要科技的支持科技在種植業(yè)的巨大變革,再來一次技術(shù)革命。種植灌水體系科技水平較低是阻止我們國家效

11、率種植業(yè)的發(fā)展的最根本原因。古老的大水灌溉模式科技度低,總體上就是以人工操作為主,人們的控制能力不行,更好的提高灌水效率,減少勞動的時間和節(jié)省水資源,一定要大力的提高智能抽水系統(tǒng)的發(fā)展。當代智能控制器是一種有效的方法和技術(shù)對于智能灌溉系統(tǒng)田間管理,可以提高對水灌溉的高精度,有助于灌水過程中的科學化種植。一方面能最大限度的節(jié)省人們的勞動,最主要是由于它能精準、時空、給定量的、效率地給農(nóng)作物智能補充水分,為了提高農(nóng)作物的產(chǎn)值、重量,節(jié)約水、環(huán)保。當代灌溉技術(shù)的研究使用在我國種植業(yè)、林業(yè)不多,與世界發(fā)達國家比較,有非常大的差距,都處于人工操作上,束縛勞動力1。更重要的是農(nóng)作物的需求有時候根本滿足不了

12、,從而會影響到農(nóng)作物的正常規(guī)律生長;另外灌溉量太大,土壤中的肥水流走,從而造成能源的浪費。并且古老的灌水還要農(nóng)業(yè)技術(shù)員時時刻刻的盯著作物生長并且指導生產(chǎn),勞動付出大于生產(chǎn)匯報,在這個方面不能滿足于當代農(nóng)業(yè)的提升、高效率化方向發(fā)展的要求。再次我國高價購買國外的先進技術(shù)來彌補我國的技術(shù)不足,多數(shù)用于種植業(yè)的示范區(qū)、科研地方,并且不符合我國本土的土壤特點。我國本身的現(xiàn)代農(nóng)業(yè)灌溉技術(shù)的鉆研和普及于大眾,還處于最開始階段,我國科研我們的、系統(tǒng)體系功能強且具有很強擴展性的,由我國生產(chǎn)的智能抽水灌溉器,是刻不容緩的。伴隨著微型處理器和傳感器硬件的高速的發(fā)展,人們普遍的都能接受這種高科技產(chǎn)品的價格,同時性能日

13、益提高。綜上,可以發(fā)現(xiàn)微型計算機技術(shù)改造古老農(nóng)業(yè)是可行的,是刻不容緩的。能夠?qū)⒏呖萍纪度氲睫r(nóng)業(yè)灌溉里面,這將是我國農(nóng)業(yè)甚至經(jīng)濟未來發(fā)展的方向。1.2 課題設(shè)計要求能夠?qū)崿F(xiàn)基于單片機與LY-69芯片聯(lián)合控制的LCD1602顯示濕度,并能由單片機控制外圍電路中的抽水機澆水。完成硬件設(shè)計和軟件設(shè)計2。1.2.1 主要工作制作基于單片機的智能抽水灌溉系統(tǒng):(1) 系統(tǒng)的原理圖的分析和設(shè)計;(2) 元器件的選擇;(3) 程序的編寫;(4) 制作和調(diào)試實物。1.2.2 基本要求該智能抽水灌溉系統(tǒng)基本功能應(yīng)該包括有準確檢測濕度,檢測范圍為0-99,能夠以數(shù)字的方式在LCD上顯示當前的外界濕度,人工自行設(shè)置的

14、最小值濕度和最大值濕度,以英文字母加上數(shù)字的形式進行讀出,同時能使用按鍵對最小值和最大值進行校準功能,此外就是智能系統(tǒng)具有恢復出廠設(shè)置功能,并能智能的低于最小值濕度時報警。這個設(shè)計以AT89C51單片機為核心,在LCD1602顯示器上顯示目前的測試土壤的濕度,而且用戶可以通過按鍵來設(shè)置能是抽水機工作停止的邊界值3。(1) 使用LCD1602作為輸出信號的顯示器。(2) 顯示格式為:最上面顯示出來濕度,最下面顯示人工設(shè)置的最小值濕度和最大值濕度。(3) 四開關(guān)鍵,分別為:K1濕度顯示、K2復位、K3濕度加、K4濕度減。(4) 運行后,先設(shè)置最大濕度值,再設(shè)置濕度最小值,再按K1開始運行系統(tǒng)。(5

15、) 程序執(zhí)行后系統(tǒng)默認開始工作,默認濕度上限值為40%,下限為20%,當前濕度低于最小值時,蜂鳴器響起報警并抽水;當土壤濕度達到了植物生長所需要的水分時候,抽水機就可以停止工作了。第2章 方案設(shè)計與論證2.1系統(tǒng)設(shè)計思路當下的中國大部分的農(nóng)業(yè)種植中都是使用人工大水灌溉,這種灌水的的特點是連續(xù)的、不停止的。選取這種灌溉系統(tǒng)僅僅只能保證植物作物不會缺水而死,相反呢,這種灌溉對作物來說并不是最好的成長環(huán)境,浪費了水資源又無法使作物健康成長。為了解決上面問題使農(nóng)業(yè)灌溉技術(shù)得到改善,我們設(shè)計了這套智能抽水灌溉系統(tǒng),這套系統(tǒng)的優(yōu)點是他可以解放勞動力,并且還可以更科學的灌溉,更合理的給植物所需要的水資源,節(jié)

16、約了成本,節(jié)省了能演。本系統(tǒng)是依據(jù)微型計算機單片機原理,通過采集土壤濕度通過傳感器收集信號,然后通過人為按鍵來調(diào)整濕度最大值最小值,YL-69土壤傳感器將土壤中的濕度變成電信號傳送給單片機,單片機的處理中心接受信號,分析信號,這樣一個過程處理器就知道土壤的濕度值了,這時候處理器又拿這個值跟人們設(shè)置的最值比較,小于的時候開始上水,大于的時候就停止供水。從而達到智能抽水灌溉的目的。這次實驗最主要的是要完成下面的幾個系統(tǒng):1.利用YL-69來對土壤濕度進行檢測;2.用LCD作為輸出信號顯示。3.在對最值設(shè)置的時候要問這方面的專家,確定好了最值在設(shè)置最值;4.用單片機作為最后的核心處理,計算出需不需要

17、開啟水泵灌溉。硬件和軟件組成了這個系統(tǒng),硬件部分又分為單片機接受到信號信息,然后做出類似于人類大腦的判斷、信號LCD的輸出、種植地的土壤水分計算、最值得輸入、是否開啟水泵、蜂鳴器響六大模塊。核心AT89C51相當于大腦級別的信號分析功能;YL-69土壤的濕度檢測器;按鍵對濕度最值的輸入;顯示模塊是輸出傳感器傳送來的信息即土壤濕度及設(shè)置的最大最下濕度值;水泵和蜂鳴器用來接收單片機發(fā)來的命令4。軟件結(jié)構(gòu)與硬件配置相適應(yīng),本系統(tǒng)很靈活方便,有很強的動態(tài)性,能隨時更改濕度的最大最小值;另外本系統(tǒng)研發(fā)和設(shè)計的時候,將軟件部分和硬件部分實時交互性。2.2 系統(tǒng)方案論證本設(shè)計主要討論了,對實現(xiàn)LED屏顯示的

18、智能抽水灌溉系統(tǒng)的硬件部分設(shè)計和軟件部分設(shè)計,以及實現(xiàn)LED屏的顯示,濕度的檢測傳輸,下面介紹本設(shè)計系統(tǒng)所需器件以及最優(yōu)選擇。2.2.1 芯片的選擇微型處理器單片機的選擇:對于單片機最優(yōu)選擇,假設(shè)采用8031的系列,因為內(nèi)部沒RAM,恰恰本系統(tǒng)需要一塊兒存儲空間,所以不可用;那么51系列的ROM為4K足夠,因此設(shè)計上采用AT89C51單片機芯片。A/D轉(zhuǎn)換:ADC0812雙通及8位分辨率。LCD屏的選擇:用來輸出信號顯示土壤濕度值。LCD1600是最好的選擇性價比高。2.2.2 按鍵控制單個復位開關(guān)價格便宜實用價值高做成按鍵。本系統(tǒng)要四個按鈕,恢復按鈕、設(shè)置按鈕、增按鈕、減按鈕。四個鍵:K1、

19、K2、K3、K4功能下列:K1:系統(tǒng)恢復按鍵;K2:設(shè)置初值鍵;K3:數(shù)值加;4K:數(shù)值減。啟動電源開始,開始時首先按K2初值的設(shè)置,再次點確認,點K3加溫度值,點K4減溫度值,按K1恢復初值,默認初值最大40%,最小20%5。 第3章 系統(tǒng)硬件設(shè)計以及電路圖通過大學期間學習,在課堂中學習的單片機主要以C51為主,平常的練習多以匯編為主,單片機就是微型處理器,國外發(fā)明的。它的集成高、個小、便宜、用電量低等許多優(yōu)點所以被廣泛的應(yīng)用6。本系統(tǒng)采用C51單片機,系統(tǒng)的核心電路模塊有幾個大部分,根據(jù)上面介紹由,微處理器模塊、信號輸出顯示模塊、采集信息模塊、按鍵模塊等外圍電路組成。模塊的聯(lián)系如圖3.1所

20、示:圖3.1 電路模塊圖系統(tǒng)的總電路圖如下圖3.2圖3.2 電路模塊圖3.1 核心器件模塊及主要引腳說明AT89C51實物如圖3.3所示:圖3.3 AT89C51實物它的集成高、個小、便宜、用電量低等許多優(yōu)點所以被廣泛的應(yīng)用。AT89C51的引腳圖如圖3.4所示7:圖3.4 AT89C51引腳P0口:全部用作在LCD屏的顯示。 XTAL1、XTAL2:這兩個口為晶振信號傳輸口。RST:這個口是給單片機一個復位信號。P1口:這個口是用作數(shù)據(jù)輸入輸出口。 3.2 液晶顯示模塊智能抽水灌溉系統(tǒng)用的是LCD1602屏輸出的信息,LCD的原理很簡單,通過亮光與暗來顯示的,這樣的輸出信息穩(wěn)定,人們也估計看

21、不到量點的閃爍問題,這樣更對人眼不會有損傷作用,價格也可以讓平常人買的起,所以是最好的選擇8。LCD的電路如圖3.5所示:圖3.5 LCD16023.2.1 液晶顯示原理這里我們講解顯示技術(shù),液晶有兩塊玻璃,大概有1mm厚,與此同時,中間有特殊材料間隔開了。我們都知道液晶它自己是不發(fā)光的對吧,那么為了達到發(fā)光的目的我們在旁邊安裝有燈管,并且呢在后面我們還有個特殊發(fā)光的板子和反射板,特殊發(fā)光板是有熒光材料制作的可以發(fā)光。背板光線在穿過第一層偏振過濾到包含無數(shù)的液晶微滴的液晶層。LCD中的液滴都被包含在單元中,一個或多個第一個構(gòu)成屏幕上的一個像素。還有透明的材料夾在在玻璃板與液晶材料之間,這種透明

22、材料有行和列,行和列的匯合點,LCD的旋光可以有電壓控制,當LCD中的電極產(chǎn)生電場時,液晶分子就會產(chǎn)生扭曲,從而將穿越其中的光線進行有規(guī)律的折射,然后進過第二層過濾層的過濾在屏幕上顯示出來。3.2.2 LCD1602特性+5V電壓,對比度可調(diào);內(nèi)含復位電路;提供各種控制命令;有八十字節(jié)顯示數(shù)據(jù)存儲器;內(nèi)建字符發(fā)生器;個可由用戶自定義的5×7的字符發(fā)生器CGRAM。3.2.3 LCD1602管腳功能LCD1602采用標準的16腳接口,如圖3.6所示,其中:圖3.6 LCD1602引腳圖第1腳:VSS為電源地;第2腳:VDD接5V電源正極;第3腳:V0是用來弄對比度的;第4腳:RS選擇指

23、令和數(shù)據(jù),由電平選擇,高為數(shù)據(jù);低為指令。第5腳:R/W很明顯為READ和WRITE,讀和寫高為讀低為寫;第6腳:E(或EN)端為使能(enable)端;第714腳:DB0DB7為8位雙向數(shù)據(jù)端;第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負極。3.3 AT89C51復位電路模塊RST端口是本系統(tǒng)中AT89C51單片機的復位端,當我們啟動單片機,單片機進行工作的時候,時鐘電路就會自動進行運作,如果在運行單片機時有大于2個周期的高水平存在,和RST輸入端口的單片機,這個時候就復位,并運行該程序?qū)念^開始。還有一種能夠進行復位的方法,那就是利用定時計數(shù)器,進行定時復位。單片機復位,程序

24、計數(shù)器PC為0000H,中央處理器將從源頭開始運行,在外圍電路的設(shè)置,我們連接到電源。整個系統(tǒng)就等于再復位,還有就是有一個復位按鈕可以設(shè)置復位9。如圖3.7所示,圖中描述了一個很簡單的復位的電路原理。當通電一剎那,由于電容的延時特性,使得電容兩個電片之間的電壓不能夠迅速發(fā)生變化,所以單片機RST為“1”,電容充電過程,RST引腳的電壓會逐漸下降,到了圖3.8所示的t1時刻,單片機復位端的電壓降到了3.6V的水平,隨著充電的繼續(xù),電容將會被充滿電,那么復位端口的電壓最終將會變成0。如圖3.8所示的是復位端口電平的變化圖。如果要單片機重啟,就需要有兩個機械周期時間存在“1”,在單片機中,機器所用的

25、頻率是由所給的外圍的晶振提供的,圖3.7中,所使用的電阻不能過小,一般使用的電阻值是 8.2k;可以通過電阻R和其頻率f的數(shù)值算出C3電容的大小。圖3.7RC上電復位電路 圖3.8 RST引腳電壓-時間關(guān)系 圖3.9 組合復位電路如圖3.9中所顯示的,電阻R2一般設(shè)置得比較小,很多時候都是十幾歐姆,由于R2遠遠小于R1,而我們的電壓VR端與電源基本相同,使得復位引腳的電壓被設(shè)置成了高電平,松開復位鍵后,過程和我們重啟是一樣的。在單片機系統(tǒng)中,為了使單片機復位時,需要穩(wěn)定的電路設(shè)計外,并在第一連接微控制器。這種方法,有利于穩(wěn)定設(shè)計,整個系統(tǒng)工作穩(wěn)定,也提高了系統(tǒng)壽命。當設(shè)計的系統(tǒng)中需要多個復位的

26、芯片的時候,我們選擇的復位芯片,如果它的匹配性合理,可以將他們直接接在單片機上,所以盡量選這種芯片更簡單。詳情如圖 3.9所示,而圖3.10 表示的是74HCl4施密特電路的原理圖10。 監(jiān)控電路和復位電路。這樣的集成電路不僅能夠提供可靠性高的復位信號,還具備有監(jiān)制、看門狗功能。復位后,ALE引腳端電平為輸入功能;片上RAM不受影響;P0P3口的各個引腳輸出的是高電平,這些端口是用作雙端口,但是是用于輸入的,程序計數(shù)器指向程序代碼指令的開始位置,因此從程序存儲器0000H位置控制器開始取出一條指令并解析實現(xiàn)。因此,當我們的程序出現(xiàn)了死循環(huán)或者有DEBUG時,我們可以使其重新運行。圖3.10 7

27、4HCl4施密特反相器3.4 YL-69土壤濕度傳感器YL-69器件是一個小的芯片,用來測量土壤濕度的傳感器。內(nèi)部是個電容,收到濕度的影響,濕度影響它的電阻,在地里面的水分發(fā)生變化時,它的阻止變化從而能產(chǎn)生變化的電信號,這樣就能將濕度直接轉(zhuǎn)化成電信號。它的體積小,價格很便宜,適合大規(guī)模的生產(chǎn),因此被廣泛的應(yīng)用11。在本智能系統(tǒng)中的電路原理圖如圖3.11。圖3.11YL-69與AD轉(zhuǎn)電路3.5 ADC0832功能特點及引腳ADC0832是模數(shù)轉(zhuǎn)換器。三根線連接了它與單片機,價格便宜,用電量低,用在小的智能系統(tǒng)里面很多。ADC0832的分辨率是八位,所以平常的信號都能模擬出來。由于模數(shù)轉(zhuǎn)換會不準確

28、,所以它用了雙數(shù)據(jù)的傳輸,準確安全,穩(wěn)定。它能自己輸入,這樣單片機就能同一時間處理多個器件。我們用DI端灌入數(shù)據(jù),這樣可以很簡單。其主要特點如下:(1)8位分辨率,基準電壓為5V;(2)功耗低僅僅為15mW。(3)5V的電源供電;(4)輸入和輸出電平與CMOS及TTL兼容;(5)輸入模擬信號的電壓范圍在0到5V之間;(6)在時鐘頻率為250KHZ時,轉(zhuǎn)換時間是32us;ADC0832有DIP和SOIC兩類,DIP的ADC0832引腳排列如圖3.12所示。各引腳說明如下:(1)CS片選端,低電平有效。(2)CH0,CH1兩路模擬信號的輸入端。(3)DI數(shù)據(jù)信號輸入,選擇通道控制。(4)DO數(shù)據(jù)信

29、號輸出,轉(zhuǎn)換數(shù)據(jù)輸出。(5)CLK串行時鐘輸入端。(6)Vcc/REF電源的輸入和參考電壓輸入。(7)GND電源地。圖3.12 ADC0832引腳圖3.6 繼電器繼電器其實就是一種開關(guān),繼電器工作的原理很簡單,它就是用非常小的電流去控制大的電流,這樣做可以保證安全,還可以遠程控制,在就是單片機只能是小電流,所以必須用繼電器做一個開關(guān),來關(guān)聯(lián)水泵和單片機。市面上有很多種繼電器,本智能抽水系統(tǒng)采用的是電磁繼電器,這種繼電器的工作機制很簡單,電磁顧名思義就是磁鐵相關(guān)了,在它的內(nèi)部有線圈和鐵塊,這就是為了曾大它的磁力。當通電的時候它內(nèi)部產(chǎn)生磁力,從而把那個貼片吸引下來,這樣就形成了閉路,這樣被控制的那

30、個模塊電路就連同了,從而達到了開啟的作用。斷電磁力消失,鐵片在彈簧的作用下又彈回,斷開。這樣就形成了開閉電路的作用12。如圖3.13中,三極管基極為低電平時,三極管導通,繼電器有磁力K1接通,水泵開始工作,LED亮起。圖3.13繼電器控制水泵3.7 蜂鳴器及按鍵蜂鳴器:蜂鳴器是本系統(tǒng)的報警器,電路結(jié)構(gòu)如圖:3.14所示。PNP管子通電時報警。圖3.14 蜂鳴器輸入按鈕模塊:設(shè)計圖如圖3.15所示。S1恢復出廠設(shè)置、S2設(shè)置濕度最值、S3調(diào)整最值加、S4調(diào)整最值減。圖3.15 按鍵電路按鍵模塊按照要求,控制的按鍵為4個:S1、S2、S3、S4,各個按鍵的功能如下:S1:復位按鍵;S2:設(shè)置濕度上

31、下限和啟動按鍵;S3:濕度值加;S4:濕度值減。啟動灌溉系統(tǒng)時,可以用S2按鍵來修改系統(tǒng)默認設(shè)置的濕度上限值和下限值,首先根據(jù)已經(jīng)掌握的知識來設(shè)置值,用S3、S4來增加減少。如圖4.12是其電路圖,復位引腳接S1,S2-S4分別接單片機的P3.0-P3.2引腳13。以啟動電源開始,S2用來控制要設(shè)置濕度上限值和下限值,即系統(tǒng)啟動時,顯示的是系統(tǒng)默認的濕度上下限設(shè)置,那按一次S2就可以進行濕度上下限的設(shè)置了;按S2開始設(shè)置濕度值,這時候點S3濕度值增加,S4濕度值減少;設(shè)置好后,我們再點S2確認,這個時候濕度最值就設(shè)置好了,與此同時智能抽水系統(tǒng)開始運行。在實驗土壤的濕度小于我們設(shè)置的最值時候,這

32、個時候報警、抽水,相反,大于的時候停止工作。在兩個最值之間的時候停止報警,但是繼續(xù)抽水。第4章 系統(tǒng)軟件設(shè)計上面是我們設(shè)計的硬件的部分,的確硬件部分很重要,但是軟件部分的系統(tǒng)設(shè)計也是本系統(tǒng)的核心,也是非常重要的一個部分。軟件的編程部分也會關(guān)系到系統(tǒng)的穩(wěn)定性,以及效率。為了讓系統(tǒng)更好的運行,穩(wěn)定,我們采用了最為基礎(chǔ)的語言C語言,它具有穩(wěn)定性,軟件我們用Keil軟件。4.1 主界面控制流程主界面如圖4.1所示,從程序控制的硬件來看,智能灌溉系統(tǒng)被啟動時,單片機進行復位,液晶顯示屏也開始顯示啟動,晶振電路在單片機控制下復位并工作。LCD1602顯示屏在最開始的內(nèi)容就是系統(tǒng)默認的初始值,還有當前土壤的

33、濕度值,這時候的默認值為百分之四十和百分之二十,在最上面的顯示的是傳感器傳回來的濕度值。啟動并且有顯示后,可以通過四個按鍵開始分別進行濕度的上限值和下限值以及復位設(shè)置,通過按鍵的調(diào)整,得到我們所需要的濕度控制范圍,再點擊按鍵中的開始,這樣,灌溉系統(tǒng)就可以啟動了。圖4.1是由程序控制的大體流程圖,各模塊的詳細控制將在講解各模塊時做詳細介紹14。圖4.1 程序流程圖4.2液晶顯示程序?qū)τ跁r鐘的設(shè)計,我們就是要看到顯示出來的信息;所以在本設(shè)計中,顯示這一部分是最重要的。在這一部分程序中,主要有:LCD顯示的初始化,讀取數(shù)據(jù),寫入指令,查狀態(tài)和在指定位置顯示字符等程序。下面我們來介紹關(guān)于LCD1602

34、的地址和指令15。4.2.1 LCD1602地址HD44780內(nèi)置了DDRAM(顯示數(shù)據(jù)存儲RAM)、CGROM(字符存儲ROM)和CGRAM(用戶自定義RAM)。顯示數(shù)據(jù)就儲存在DDRAM中,它來寄存將要顯示的字符代碼。一共80個字節(jié),地址與屏幕的對應(yīng)關(guān)系見下表4.1:表4.1 DDRAM地址和屏幕的關(guān)系顯示位置123456740DDRAM地址第一行00H01H02H03H04H05H06H27H第二行40H41H42H43H44H45H46H67H打個比方要在LCD上面一個地方顯示“K”我們要輸入命令,在哪個地方輸入這個字符就對了。至于詳細的寫入我們要在下面講到。在LCD中有四十個地址,我

35、們用前十六個滿足了就。應(yīng)見下表4.2:表4.2 DDRAM地址與顯示位置的對應(yīng)關(guān)系123413141516第一行00H01H02H03H0CH0DH0EH0FH第二行40H41H42H43H4CH4DH4EH4FH在這里我們要強調(diào)一個注意事項,在顯示中我們在第一個位置輸入一個數(shù)字“2”我們不能直接把“2”輸入進去,這樣做是一個容易出錯的,所以我們要拿出來講解下,如果要輸入字,我們要在這個地址上面加上80H,也就是你想要輸入的地址都要加上80H這樣就能正確的顯示了。4.2.2 LCD1602指令表4.3 LCD1602指令集指令名稱指令編碼指令功能RSR/WDB7DB0Clear00000000

36、01清除,在DDRAM中寫入20H。光標歸位閃爍點歸位000000001x輸入閃爍點移到LCD屏幕的開始輸入模式設(shè)置000001 I/D s用來指定字符移動的方向顯示開關(guān)控制0000001DCBLCD屏的顯示、閃爍點顯示/關(guān)閉由CB控制,設(shè)定顯示屏/光標移動方向000001 S/C R/L x x使光標移位或整個顯示屏移位功能設(shè)定00001 DL N F X X數(shù)據(jù)總線的位數(shù)、LCD顯示的行以及字形的設(shè)置CGRAM地址的設(shè)置0001 CGRAM的地址設(shè)定下一個要存入數(shù)據(jù)的CGRAM的地址設(shè)定DDRAM地址001 DDRAM的地址設(shè)定下一個要存入數(shù)據(jù)的DDRAM的地址讀忙信號/AC地址01 BF

37、 AC內(nèi)容讀取忙信號BF的內(nèi)容,AC地址的內(nèi)容寫入數(shù)據(jù)10在CGRAM中寫入數(shù)據(jù)讀出數(shù)據(jù)11 讀出DDRAM或CGRAM中的內(nèi)容指令如表4.3想要看到什么樣的信息,就輸入對應(yīng)的指令,上表說了十一條指令:1602液晶的操作有4種:狀態(tài)讀操作輸入:RS=0、R/W=1、E=1,輸出:DB0DB7的狀態(tài)字;數(shù)據(jù)讀操作輸入:RS=1、R/W=1、E=1,輸出:DB0DB7的數(shù)據(jù);指令寫操作輸入:RS=0、R/W=0、E=1,輸出:無;數(shù)據(jù)寫操作輸入:RS=1、R/W=1、E=1,輸出:無。4.2.3 LCD1602字符集在LCD顯示屏的內(nèi)部有個儲存器(記憶器),在這個記憶器可以生產(chǎn)出字符,這些字符可以

38、輸出一個圖,大致的目標就是下面這樣的:阿拉伯數(shù)字,字母、包括大小寫和符號每個字符能夠針對一段代碼,打比方一個字母C對應(yīng)43H,這個就是用十六進制來表示的,最后的顯示就是把對應(yīng)的地址中的數(shù)據(jù)拿出來就會顯示在LCD屏上了。這個對應(yīng)是由ASCII碼識別的,只能夠用它來識別,所以在設(shè)計中我們用的都會被轉(zhuǎn)化成ASCII碼,ASCII可以直接顯示,也可以由LCD內(nèi)部的記憶器轉(zhuǎn)換,這個過程不需要我們?nèi)藶榈娜マD(zhuǎn)換。4.2.4 LCD1602程序那么我們簡單說下LCD的初始化和在一個固定地方顯示字符;初始化的流程圖如圖4.2所示:包括液晶顯示開始啟動,顯示模式設(shè)置初始化,關(guān)閉顯示,清屏顯示,顯示光標移動設(shè)置,顯

39、示開以及光標設(shè)置、退出等。圖4.2 液晶初始化流程圖LCD屏的初始化是有關(guān)顯示器的機制,和原理的相關(guān)操作。我就不多說了。下面是在一個固定位置顯示的代碼,如下:void DLC(uchar X, uchar Y, uchar code *DData) uchar ListLength,j; ListLength = strlen(DData); Y &= 0x1; X &= 0xF; /限制X不能大于15,Y不能大于1 if (X <= 0xF) /X坐標應(yīng)小于0xF for(j=0;j<ListLength;j+) DOC(X, Y, DDataj); /顯示單個字

40、符 X+; 上面這些代碼,很簡單主要是在LCD屏上的固定的位置顯示一堆字符;我們可以看到代碼中定義了一個unchar的變量X,Y他們的值分別小于等于十五,小于等于一,這里他們表示了LCD中顯示的位置,為什么用這樣的限制,這里我們還要看上面對LCD的介紹,上面說了LCD的屏幕大小只有16長度,2列寬度,所以對X,Y的值做了這樣的限制。4.3 時鐘芯片程序這里呢首先我們要從DS1302這個里面讀取它內(nèi)部的信息,給了單片機,接著呢在LCD的屏中顯示出來,還有呢就是在它的時間需要對準的時候,外部按鍵更正時間,然后在存入芯片里面。4.3.1 DS1302控制命令字節(jié)DS1302控制命令字節(jié)結(jié)構(gòu)如表4.4

41、所示:表4.4 DS1302控制命令字節(jié)結(jié)構(gòu)765432101A4A3A2A1A0從上面的表中我們需要知道,在這里面第七位字節(jié),必須是“1”,因為當它是“0”的時候不能在它里面寫入數(shù)據(jù),第六位中如果是“0”那么表示是時間數(shù)據(jù),如果是“1”那么就表示在RAM中存數(shù)據(jù),其他位是操作單元的地址,最后一個位置上如果是“0”那么表示執(zhí)行寫入操作,如果是“1”那么就讀取操作。4.3.2 DS1302的寄存器上面一節(jié)中我們介紹了DS1302的控制命令,不同的地址有不同的命令,那么我們想他有這么多功能,肯定內(nèi)部有許多寄存器,來寄存這些數(shù)據(jù),其實它內(nèi)部有12個,在這個寄存器中,跟日歷、時間有關(guān)的寄存器最多,他們

42、以BCD碼存入,詳細的介紹看下面表4.5:表4.5 DS1302寄存器寄存器名命令字取值范圍各位內(nèi)容寫操作讀操作76543210秒80H81H0-59CH10SECSEC分82H83H0-59010MINMIN時84H85H01-1200-2312/24010/APHRHR日86H87H01-28、2930、310010DATEDATE月88H89H01-1200010MMONTH周8AH8BH01-0700000WEEK年8CH8DH00-9910 YEARYEAR有些位我們要單獨的拿出來特別的說一下:CH:它用來控制時鐘的停止和開始,它為高電平的時候振蕩器停止工作,DS1302為低消耗的備

43、份模式,相反,低電平的時候時鐘會啟動工作。2/24:用來控制輸出時間的方式,有兩種方式12和24,當它是1的時候為12小時制。要特別說的是12小時制下,第五位是上午下午的選擇,1表示下午,0表示上午。24小時制,第五位是第2個小時位二十到二十三。操作說明:第一要寫入數(shù)據(jù),所以我們要把寫保護關(guān)閉,并且在日期時間的寄存器中初始化;然后就可以對80H、82H、84H、86H、88H、8AH、8CH進行初值寫入,另外我們也能在妙寄存器中的第七位的CH改成0,這樣DS1302就開始工作了;當初值初始化成功后,我們就不需要再進行初始化了所以這個時候我們需要開啟寫入保護,防止寄存器的值被更改;我們接下來做的

44、就是不間斷的讀取寄存器80H到8CH中的值,然后將他們的格式修改,在LCD屏上面顯示。4.3.3 DS1302數(shù)據(jù)傳輸DS1302是通過I/O串行來讀寫數(shù)據(jù)的。由于硬件的設(shè)置,它的讀寫數(shù)據(jù)每次不能低于2個字節(jié),第一個位是控制,說白了它就是一條命令,它來指示DS1302對數(shù)據(jù)怎么處理,是寫進還是讀出,并且還告訴對那個寄存器使用,和操作地址;第二個位內(nèi)容就是我們要讀寫的具體數(shù)據(jù)。它的具體的時序下圖5.3所示:圖4.3 DS1302數(shù)據(jù)傳輸數(shù)據(jù)寫入:當我們操作的時候,我們要在這之前做準備工作,就是把RST設(shè)置為“1”,接著,用單片機控制位的數(shù)字,通過數(shù)據(jù)口,穩(wěn)定,SCLK為“1”,DS1302開始讀

45、取信息,接著SCLK為“0”,數(shù)據(jù)口被高水平,一直這樣進行,這樣將一個字節(jié)控制字的八位轉(zhuǎn)給了DS。后面再傳讀數(shù)據(jù)給DS,完成后數(shù)據(jù)傳送后,單片機RST置“0”,結(jié)束工作。數(shù)據(jù)取出:數(shù)據(jù)的取出跟數(shù)據(jù)的寫入類似,差不多是個相反的過程,SCLK置“1”DS1302把數(shù)據(jù)傳到IO口里面,SCLK置“0”數(shù)據(jù)鎖定,這時候單片機讀取IO口數(shù)據(jù)。一直這樣進行,最后數(shù)據(jù)傳到單片機。4.4 按鍵程序機械性質(zhì)是一般按鍵都有的性質(zhì)。問題在按鍵點下的時候,不會很好的連接。還有問題是我們按下的時候來回彈跳,時間極快,我們?nèi)梭w感知是不會體會到的,但是我們都知道單片機的運行時上百萬次的,所以這個在我們按下來回彈跳時間對單片

46、機來說時間是極長的。單片機會接受到非常多的高低電流,如果不適當控制下,會影響性能,所以我們做了個判斷具體流程下圖4.4所示。開始鍵按下?延時30ms鍵還按下?讀取鍵值等待釋放圖4.4 按鍵流程圖unsigned char v_readkey_f(void);/延時程序unsigned char key;if(P17=0)delay(30); /延時30msif(P17=0) key=1; while(!P17)/等待釋放 elsekey=04.4.1 ADC0832芯片接口程序為了能夠使信息傳輸?shù)酶旌头€(wěn)定,由于C語言的模塊化接口比較好用,所以,本設(shè)計利用C語言進行接口編程是非常好的。數(shù)模轉(zhuǎn)換

47、裝置是非常快的,其轉(zhuǎn)換時間一般只有短短的32us,所以A/D轉(zhuǎn)換的周期小,頻率非常快,這也有利于在一些特定的需要中使用。數(shù)據(jù)是在子程序中被賦予的,屏蔽了外面函數(shù)模塊中的信息,盡量減少了全局變量的使用,因為全局變量在各個模塊函數(shù)中都能夠被使用,在這樣的情況下,如果在一個子程序中使用了全局變量,又在另外一個子程序中使用了此全局變量,那變量數(shù)據(jù)就有可能達不到我們所要的要求,數(shù)據(jù)也有可能被某個模塊中的函數(shù)破壞掉了,這樣對于整個設(shè)計是非常不利的。而如果我們使用的是模塊函數(shù),并且使用的是局部變量,這樣就可以屏蔽外界的信息,保證本模塊能夠唯一做一件事,不會對其他模塊中的數(shù)據(jù)產(chǎn)生影響,并且在程序運行的時候,動

48、態(tài)類的局部變量是存在于棧中的,一旦子程序定義了此類變量,程序才開始為此變量分配空間,一旦子程序運行完畢,這個變量所屬的空間會釋放掉,不再占用內(nèi)存空間,這樣更有利于解決單片機內(nèi)存不足,運行速度稍微慢等缺點。此外,模塊化的程序設(shè)計思想,有利于程序的移植,即當我們寫過一個程序,下一次要做同樣類似的操作的時候,可以進行代碼復用,有利于縮短開發(fā)的周期,結(jié)余了時間和成本。如圖4.5所示的是ADC0832讀取數(shù)據(jù)的流程圖。開始產(chǎn)生時鐘信號能使芯片輸入通道控制字讀取2字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù)矯正將值送入指定寄存器結(jié)束圖4.5 ADC0832讀取數(shù)據(jù)流程圖第5章 仿真與調(diào)試仿真與調(diào)試,程序我們是用C寫的所以我們用得Ke

49、il軟件作為開發(fā)平臺,這個軟件很好用,我們用它進行編譯,最后生成可執(zhí)行的文件,然后最后通過數(shù)據(jù)線的鏈接傳送到單片機里面,這個過程就是平常大家說的燒進去,在編程中Keil會給你提示編程中出現(xiàn)的錯誤,很方便的更改,這樣我們就有目的更改,最后這個軟件也能進行編譯,編譯成功后我們就可以燒進單片機中16。5.1 軟件調(diào)試上面是大概的一個介紹,下面我們做詳細的講解,當我們把程序做好后,我們就需要用數(shù)據(jù)線吧把它傳進單片機中,下面我們來看看Keil的編程具體操作。5.1.1 Keil軟件介紹美國我們大家都知道,人家的科技是非常發(fā)達的,所以一些先進的東西最先一般是由美國人創(chuàng)造的,Keil也不例外,它是由美國公司

50、開發(fā)的,用來進行C語言與單片機的編寫,最一開始的編程我們都知道那是匯編,枯燥難懂,所以美國人又發(fā)展到C,這個就比匯編更容易學習,更容易操作 ,優(yōu)勢非常突出。Keil軟件界面如圖5.1所示:圖5.1 Keil軟件界面5.1.2 程序調(diào)試首先我們需要建立一個工程,之后新建一個XX.C文件,把該文件添加到工程中進行編譯生成XX.HEX文件。如圖5.2。圖5.2 編譯過程5.2 仿真結(jié)果本系統(tǒng)的仿真圖,如圖5.3:圖5.3 開始運行圖5.3中液晶顯示屏所顯示的為系統(tǒng)默認設(shè)置的濕度最值,是由程序中默認控制顯示的,顯示內(nèi)容為濕度最上限40%,最下限20%,當前濕度34.1%。當電源掉電或者按復位鍵重新啟動

51、時,每次都是顯示此默認設(shè)置。圖5.4 設(shè)置后運行結(jié)果當啟動電源后,顯示濕度上限值和下限值是系統(tǒng)默認的,最上面顯示的是當前檢測到的環(huán)境濕度值。通過按鍵K2,切換到設(shè)置模式,此時灌溉系統(tǒng)暫停,轉(zhuǎn)為設(shè)置態(tài),我們通過K3來加濕度的最值,通過K4來減濕度的最值,同時K2鍵也充當確實設(shè)置鍵,如圖5.4所示,經(jīng)過我們查找資料,最后我們設(shè)置了濕度的最大值56%,最小值為35%,當前環(huán)境濕度值為33%。我們再次按下K2鍵后,表示設(shè)置完畢,智能抽水灌溉系統(tǒng)繼續(xù)工作。當我們設(shè)置的濕度高于測試地方的濕度時,喇叭響起報警,這個時候抽水機開啟了,進行灌溉;當環(huán)境的濕度位于我們所設(shè)置的濕度上限值和下限值之間時,蜂鳴器不會報

52、警,但是由于沒有達到我們所要求的土壤濕度,所以灌溉系統(tǒng)繼續(xù)抽水;當我們設(shè)置的濕度低于測試地的濕度時候,這個時候澆水達到要求,抽水機就停止工作了,整個系統(tǒng)保持檢測狀態(tài),一旦出現(xiàn)濕度低于上限值,會對應(yīng)著做出對應(yīng)的工作。結(jié)論本論文設(shè)計的基于單片機的智能抽水灌溉系統(tǒng),這個系統(tǒng)是根據(jù)電子學的自動檢測和自動控制裝置設(shè)計出來的,屬于嵌入式系統(tǒng),是依靠軟件進行程序控制的。本系統(tǒng)用的是普遍運用的傳感技術(shù),此技術(shù)在當今已經(jīng)很成熟了,利用此傳感技術(shù),采集到土壤環(huán)境中的濕度值,并將收集到的數(shù)據(jù)發(fā)送給作為中央控制器的單片機,單片機收到數(shù)據(jù)后,會對收集到的土壤數(shù)據(jù)進行分析和處理,并實時的做出一定的反應(yīng),通過外圍電路控制系統(tǒng)對各個部分進行合理的控制,達到自動檢測和自動灌溉的目標要求。本設(shè)計的單片機自動灌溉系統(tǒng)由兩大部分組成:一是通過LY-69芯片檢測土壤的濕度,并把數(shù)據(jù)發(fā)送給單片機處理器,單片機處理分析數(shù)據(jù)后,會把結(jié)果寫入到LCD1602中進行顯示,二是單片機收到土壤濕度數(shù)據(jù)后,進行分析對比結(jié)構(gòu),比較當前土壤濕

溫馨提示

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

評論

0/150

提交評論