基于單片機(jī)的節(jié)水灌溉系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計_第1頁
基于單片機(jī)的節(jié)水灌溉系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計_第2頁
基于單片機(jī)的節(jié)水灌溉系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計_第3頁
基于單片機(jī)的節(jié)水灌溉系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計_第4頁
基于單片機(jī)的節(jié)水灌溉系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設(shè)計題 目:基于單片機(jī)的智能節(jié)水灌溉的設(shè)計與實現(xiàn)院 系: 信息與控制學(xué)院 專 業(yè): 自動化 班級學(xué)號: 學(xué)生姓名: 指導(dǎo)教師: 成 績: 年 月 日error! no bookmark name given.目 錄1 方案設(shè)計11.1 設(shè)計任務(wù)要求11.2 硬件方案設(shè)計11.3 編程語言與調(diào)試環(huán)境選擇31.3.1 編程語言的介31.3.2 調(diào)試環(huán)境的選擇32 智能節(jié)水灌溉系統(tǒng)的硬件設(shè)計52.1 at89s52單片機(jī)的硬件結(jié)構(gòu)52.1.1 單片機(jī)的結(jié)構(gòu)及引腳52.2 顯示電路的設(shè)計92.2.1 顯示電路選擇92.2.2 液晶顯示接口電路設(shè)計102.3 a/d 轉(zhuǎn)換芯片adc0832102.3

2、.1 adc0832 具有以下特點102.3.2 adc0832 與單片機(jī)的接口電路112.4 按鍵電路方案的設(shè)計122.4.1 按鍵電路的選擇122.4.2 按鍵電路的設(shè)計122.5 單片機(jī)晶振電路原理及作用132.6 復(fù)位電路的設(shè)計142.7 報警電路的設(shè)計152.8 土壤濕度傳感器 yl-69 土壤濕度計檢測模塊152.8.1 yl-69 土壤濕度計檢測計特點152.8.2 使用說明162.9 步進(jìn)電機(jī)驅(qū)動模塊172.9.1 步進(jìn)電機(jī)簡介和原理172.9.2 uln2003驅(qū)動芯片182.9.3 步進(jìn)電機(jī)驅(qū)動模塊183 系統(tǒng)軟件設(shè)計193.1 軟件系統(tǒng)總體工作流程193.2 濕度控制模塊

3、的設(shè)計203.2.1 濕度控制程序流程203.3 按鍵電路子程序213.4 1602液晶顯示模塊設(shè)計22參考文獻(xiàn)24附錄a 硬件原理圖25附錄b 程序代碼26附錄c 實物圖片31iierror! no bookmark name given.沈陽工學(xué)院本科畢業(yè)設(shè)計1 方案設(shè)計1.1 設(shè)計任務(wù)要求1、能夠檢測土壤濕度,當(dāng)達(dá)到設(shè)定值時,起動灌溉系統(tǒng),能夠通過鍵盤設(shè)定不同的灌溉速度,顯示灌溉狀態(tài)。 2、濕度傳感器對土壤多點采集信號轉(zhuǎn)換后傳給單片機(jī),單片機(jī)對輸入信號做出處理(灌溉與否)。顯示模塊將采集數(shù)據(jù)和灌溉信息顯示在顯示屏上。通過鍵盤可以設(shè)置灌溉閾值和灌溉速度。1.2 硬件方案設(shè)計該課題以at89

4、s52單片機(jī)做為主要硬件模版,通過對軟件的編程來實現(xiàn)對土壤溫度、濕度值進(jìn)行多點檢測,當(dāng)所測的實際濕度低于警戒值時,將會自動觸發(fā)灌溉控制器系統(tǒng),進(jìn)行自動的灌溉,該系統(tǒng)還可以完成手動控制灌溉,隨時進(jìn)行灌溉,從而也體現(xiàn)了人性化、多用途的現(xiàn)代自動化、智能化系統(tǒng)設(shè)計要求。根據(jù)該設(shè)計的功能要求,確定方案: at89s52單片機(jī)做為控制電路核心,采用模塊化設(shè)計的方案。模塊化設(shè)計簡單地說,就是把產(chǎn)品的一些要素組合在一起來構(gòu)成一個有特定功能的子系統(tǒng),把該系統(tǒng)作為通用性的模塊和其他的產(chǎn)品要素多種組合,構(gòu)成新的系統(tǒng),所產(chǎn)生多種相同功能或不相同功能、但不同性能的一系列產(chǎn)品。模塊化是一種新的設(shè)計思想,是在傳統(tǒng)的設(shè)計基礎(chǔ)

5、上新發(fā)展起來的,現(xiàn)在已經(jīng)成為一種新的技術(shù)已被廣泛應(yīng)用在生活中,尤其現(xiàn)在正處于信息時代,電子產(chǎn)品不斷推出新產(chǎn)品,應(yīng)用模塊化設(shè)計的產(chǎn)品也正在不斷涌現(xiàn)。當(dāng)代模塊化設(shè)計已經(jīng)被廣泛應(yīng)用于航空、航天、機(jī)床、電子產(chǎn)品等設(shè)計領(lǐng)域。模塊化已經(jīng)開始從理念轉(zhuǎn)化成為比較成熟的設(shè)計方法也是綠色設(shè)計方法之一1。該設(shè)計總共分為:步進(jìn)電機(jī)驅(qū)動模塊、濕度采集模塊、液晶顯示模塊、ad轉(zhuǎn)換模塊、報警電路。本設(shè)計中步進(jìn)電機(jī)采用28byj48型四相八拍電機(jī),步進(jìn)電機(jī)控制電路是以驅(qū)動芯片uln2003做為核心。濕度采集模塊中核心器件是yl-69土壤濕度傳感器,ad轉(zhuǎn)換模塊中主要器件是adc0832 ad轉(zhuǎn)換器,液晶顯示器以lcd 160

6、2為顯示電路核心,時鐘模塊是以ds1302做為核心器件,再配合上鍵盤電路,實現(xiàn)對土壤濕度檢測。在本系統(tǒng)中,濕度灌溉系統(tǒng)可以分為兩種控制方式:方案一閉環(huán)控制方式,方案二時間控制方式,所以用戶可以在兩種方式任選其一。采用方案一:用濕度采集模塊把檢測多處不同地點的濕度通過校準(zhǔn)的數(shù)字信號數(shù)據(jù)處理,傳送給單片機(jī)。單片機(jī)則將接收來的數(shù)據(jù)與單片機(jī)內(nèi)存儲的數(shù)據(jù)進(jìn)行比對,如果收到的數(shù)據(jù)低于設(shè)定值,步進(jìn)電機(jī)的控制電路模塊將啟動步進(jìn)電機(jī)實行灌溉。如果收到的數(shù)據(jù)高于設(shè)定值,則步進(jìn)電機(jī)不啟動或者停止工作,與此同時單片機(jī)把采集到的數(shù)據(jù)與系統(tǒng)的灌溉情況在顯示屏上顯示出來。當(dāng)灌溉進(jìn)行到一定的時間時,自動停止工作,這個時間是由

7、用戶加載到單片機(jī)內(nèi)部的數(shù)據(jù)來決定。在時間控制方式下時,用戶通過灌溉周期和鍵盤輸入的灌溉時間,對應(yīng)的數(shù)據(jù)會顯示在屏上。該灌溉方式主要應(yīng)用在特殊情況之下,所以本設(shè)計采用方案一2。綜上所述,該系統(tǒng)具有非常好的人機(jī)互交界面,更方便進(jìn)行實時控制功能,且能及時的響應(yīng)用戶請求。該系統(tǒng)支持的灌溉系統(tǒng)方式非常靈活,用戶可以根據(jù)實際情況選擇模式。系統(tǒng)結(jié)構(gòu)簡單,各類功能很容易實現(xiàn),極大提高了系統(tǒng)的實用性和可靠性。系統(tǒng)的模塊原理圖如圖1.1所示。圖1.1 自動灌溉控制器系統(tǒng)基本模塊原理框圖1.3 編程語言與調(diào)試環(huán)境選擇1.3.1 編程語言的介 c語言是一種被廣泛應(yīng)用,并能夠靈活的實現(xiàn)計算機(jī)編程語言。用c語言編出來的程

8、序,可以應(yīng)用在很多平臺上,可移植性較強(qiáng)。計算機(jī)的操作系統(tǒng)和一些大型軟件都可用c語言來完成。還有很多的聊天工具也可用c語言來編程。c語言有個突出的優(yōu)點適合于多種操作系統(tǒng)如unix、dos,也適用于多種機(jī)型。c語言既有匯編語言的特點,又具有高級語言的特點;是一個很成功的系統(tǒng)設(shè)計語言,有時候一個使用的程序設(shè)計語言,既能用來編寫各種系統(tǒng)程序,又能用來編寫不依賴計算機(jī)硬件的應(yīng)用程序;所以c語言是一種應(yīng)用廣泛且很受歡迎的程序設(shè)計語言。 c語言不僅有高級語言的特點,還有匯編語言的特點,它是由美國貝爾實驗室的dennis m. ritchie在1972年推出的,1978年以后,c語言慢慢被移植到大、中、小以及

9、微型機(jī)上,他可以作為工作系統(tǒng)的設(shè)計語言,編寫系統(tǒng)hyperlink的應(yīng)用程序。它具備很強(qiáng)的數(shù)據(jù)處理能力,不僅是在軟件開發(fā)上,且各類科研也需要用到c語言,適用于編寫系統(tǒng)軟件,二維錐形,三維和動畫等。 1972年是由美國的dennis ritchie設(shè)計發(fā)明,且首次在unix操作系統(tǒng)的decpdp-11計算機(jī)上使用,他是由早期的編程編程語言hyperlink發(fā)展而來的在1970年,貝爾實驗室的kenthposon根據(jù)bcpl語言設(shè)計出比較先進(jìn)的并且取名為b的語言,最后有了c語言的問世。 然而b語言之前還有a語言,取名來自世界上第一位女程序員ada(艾達(dá))。 在微型計算機(jī)的日益普及, c語言出現(xiàn)了許

10、多版本。由于沒有統(tǒng)一的標(biāo)準(zhǔn), 使的c語言之間出現(xiàn)了很多不一致的地方。為了改變這一情況,美國的國家標(biāo)準(zhǔn)研究所(ansi)為c語言制定一套ansi標(biāo)準(zhǔn),是現(xiàn)行的c語言標(biāo)準(zhǔn),所以c語言是世界上使用最廣泛、最流行的高級程序設(shè)計語言之一3。1.3.2 調(diào)試環(huán)境的選擇軟件部分應(yīng)用c語言作為開發(fā)語言,開發(fā)工具使用的是keil作為開發(fā)工具。keil c51是美國的keil software公司專門為單片機(jī)開發(fā)生產(chǎn)的51系列兼容c語言的軟件開發(fā)系統(tǒng),和匯編語言相比,c在結(jié)構(gòu)性、功能上、可維護(hù)性、可讀性上具有很明顯的優(yōu)勢,所以很容易學(xué)習(xí)使用。keil提供了宏匯編器、c編譯器、連接、庫管理器與一個功能強(qiáng)大的仿真器和

11、調(diào)試器等在內(nèi)的完整開發(fā)方案,且依靠一個集成開發(fā)環(huán)境(uvision)把這幾個部分組合在一起。要運行keil軟件只需要win2000、winxp、win98、nt等操作系統(tǒng)。若你用c語言進(jìn)行編程,那么keil就是你的最佳選擇,即便你不使用c語言而使用的是匯編語言編程,其強(qiáng)大的仿真軟件、集成環(huán)境、調(diào)試工具讓你更加方便4。2 智能節(jié)水灌溉系統(tǒng)的硬件設(shè)計2.1 at89s52單片機(jī)的硬件結(jié)構(gòu)單片機(jī)的全稱是微型計算機(jī)(single chip microcomputer)。在應(yīng)用方面來看,單片機(jī)主要應(yīng)用于控制,所以又叫微控制器(microcontrollerunit)、嵌入式控制器(embedded co

12、ntroller)。單片機(jī)是集成計算機(jī)的基本部件在一塊芯片上的最小系統(tǒng)計算機(jī),其工作原理和基本組成與通用微型計算機(jī)是一樣的。主要由i/o接口、微處理器(cpu)、存儲器三大功能部分通過總線連接而成的,外部通過i/o接口,配置各種外部設(shè)備構(gòu)成了微機(jī)的硬件系統(tǒng)。單片機(jī)成本低,運用靈活,易于產(chǎn)品化,體積小;面向控制,能很好的解決由簡單到復(fù)雜的各類控制任務(wù);適用范圍較廣,抗干擾能力強(qiáng)5。 at89s52是一種高性能、低功耗cmos 8位微控制器, 在系統(tǒng)中可編程flash 存儲器。片上flash可將程序存儲器在系統(tǒng)里可編程,也適用于常規(guī)編程器。在單芯片上,具有靈巧的8 位cpu 和系統(tǒng)編程flash,

13、以便at89s52為眾多嵌入式控制系統(tǒng)提供超有效、高靈活的解決方案。2.1.1 單片機(jī)的結(jié)構(gòu)及引腳1 、at89s52型號的單片機(jī)的主要特性:l 和mcs-51單片機(jī)產(chǎn)品兼容;l 8k字節(jié)在系統(tǒng)可以編程flash存儲器;l 全靜態(tài)操作:0hz33hz;l 1000次擦寫周期;l 三個16位定時器/計數(shù)器;l 三級加密程序存儲器;l 32個可編程i/o口線;l 全雙工uart串行通道;l 掉電標(biāo)識符;l 雙數(shù)據(jù)指針;l 看門狗定時器;l 掉電后中斷可喚醒;l 低功耗空閑和掉電模式;l 八個中斷源。at89s52具有如下標(biāo)準(zhǔn)功能:256字節(jié)ram,看門狗定時器,一個6向量2級中斷結(jié)構(gòu),三個16 位

14、定時器/計數(shù)器,2 個數(shù)據(jù)指針,32 位i/o 口線,片內(nèi)晶振及時鐘電路全雙工串行口,8k字節(jié)flash。另外,at89s52 可降到0hz 靜態(tài)的邏輯操作,支持2種軟件可以選擇節(jié)電模式。處于空閑模式下時,cpu停止工作,但允許ram、計數(shù)器/定時器、中斷、串口繼續(xù)工作。當(dāng)處于掉電保護(hù)方式時,振蕩器被凍結(jié),ram內(nèi)容被保存,單片機(jī)停止一切工作,直到下一個硬件或中斷復(fù)位為止。2、芯片引腳封裝:at89s52引腳封裝圖如圖2-1所示。圖2-1 at89s52引腳封裝圖 3、芯片引腳說明:vcc : 電源端口。gnd: 接地端口。p0 端口(p0.0-p0.7):p0口是個8位漏極開路雙向i/o口。

15、作為輸出口,每位能夠驅(qū)動8個ttl邏輯電平。當(dāng)p0端口為“1”時,引腳處于高阻抗輸入。當(dāng)訪問數(shù)據(jù)存儲器時與外部程序,p0口也被當(dāng)做低8位數(shù)據(jù)/地址復(fù)用。在這種模式時,p0具有內(nèi)部上拉電阻。在 flash編程時p0口也用于接收指令字節(jié);在程序校驗時輸出指令 字節(jié)。程序校驗時,需要外部的上拉電阻。p1 端口(p1.0-p1.7):p1口是個具有內(nèi)部上拉電阻8 位雙向i/o口,p1輸出緩沖器能夠驅(qū)動4 個ttl 邏輯電平。當(dāng)p1端口為“1”時,內(nèi)部上拉電阻將端口拉高,這時可以作為輸入口使用。當(dāng)作為輸入使用時,在被外部拉低的引腳由于內(nèi)部電阻原因,將輸出電流(iil)。此外,p1.0和p1.2分別作計數(shù)

16、器/定時器2的外部計數(shù)輸入(p1.0/t2)和計數(shù)/定時器2的觸發(fā)輸入(p1.1/t2ex),具體如下表3-1所示。在flash編程與校驗時,p1口接收低8位地址字節(jié)。表2-1 p1口線的第二功能引腳號第二功能信號第二功能信號名稱p1.0t2定時器/計數(shù)器t2的外部計數(shù)輸入,時鐘輸出p1.1t2ex定時器/計數(shù)器t2的捕捉/重載觸發(fā)信號和方向控制p1.5mosi在系統(tǒng)編程用p1.6miso在系統(tǒng)編程用p1.7sck在系統(tǒng)編程用p2 端口(p2.0-p2.7):p2 口是個具有內(nèi)部上拉電阻8 位雙向i/o 口,p2 輸出緩沖器能夠驅(qū)動4 個ttl 邏輯電平。當(dāng)p2 端口為“1”時,內(nèi)部的上拉電阻

17、把端口拉高,這時可以作為輸入口使用。當(dāng)作為輸入使用時,在被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。在訪問外部的程序存儲器或者用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行movx dptr)時,p2 口將送出高八位地址。在這種應(yīng)用中,p2 口使用較強(qiáng)的內(nèi)部上拉發(fā)送1。當(dāng)使用8位地址(如movx ri)訪問外部的數(shù)據(jù)存儲器時,p2口輸出p2鎖存器的內(nèi)容。在flash編程與校驗時,p2口也接收到高8位地址字節(jié)與一些控制信號。p3 端口(p3.0-p3.7):p3 口是個具有內(nèi)部上拉電阻8 位雙向i/o 口,p2 輸出緩沖器能夠驅(qū)動4 個ttl 邏輯電平。當(dāng)p3 端口為“1”時,內(nèi)部上拉電

18、阻將端口拉高,這時可以作為輸入口使用。在作為輸入使用時,被外部的拉低的引腳由于內(nèi)部電阻原因,將輸出電流(iil)。p3口也作為at89s52特殊功能(第二功能)使用,如下表3-2所示。在flash編程與校驗時,p3口也接收一些控制信號。表2-2 p3口線的第二功能引腳號第二功能信號第二功能信號名稱p3.0rxd串行輸入p3.1txd串行輸出p3.2int0外部中斷0p3.3int0外部中斷0p3.4t0定時器0外部輸入p3.5t1定時器1外部輸入p3.6wr外部數(shù)據(jù)存儲器寫選通p3.7rd外部數(shù)據(jù)存儲器寫選通rst: 復(fù)位輸入。當(dāng)晶振工作時,該腳持續(xù)2個機(jī)器周期的高電平將使單片機(jī)復(fù)位??撮T狗計

19、時完成以后,rst 腳輸出96個晶振周期高電平,特殊寄存器auxr(地址8eh)上的disrto位可使此功能無效。disrto默認(rèn)狀態(tài)后,復(fù)位高電平有效。ale/prog:地址鎖存控制信號(ale)是訪問外部的程序存儲器時,鎖存低8 位地址輸出脈沖。在flash編程時,此引腳(prog)也用于編程輸入脈沖。當(dāng)在一般情況下時,ale 以晶振六分之一固定頻率輸出脈沖,可用來作為時鐘或外部定時器使用。然而,特別聲明,在每次訪問外部數(shù)據(jù)存儲器時,ale脈沖會跳過。如果需要,通過將地址為8eh的sfr的第0位置“1”,ale操作將無效。這一位置“1”,ale 僅在執(zhí)行movc或movx指令時有效。否則,

20、ale 會被微弱拉高。這個ale 使能標(biāo)志位(地址為8eh的sfr的第0位)設(shè)置對微控制器處于外部執(zhí)行模式下無效。psen:外部程序存儲器的選通信號(psen)是外部程序存儲器選通信號, at89s52從外部程序存儲器執(zhí)行外部的代碼時,psen在每個機(jī)器周期被激活兩次,在訪問外部數(shù)據(jù)存儲器時,psen將不能被激活。ea/vpp:訪問外部程序存儲器控制信號。為了使能從0000h 到ffffh的外部程序存儲器讀取指令,ea必須接gnd。為了執(zhí)行內(nèi)部程序指令,ea應(yīng)接vcc。在flash編程期間,ea也接收到12伏vpp電壓。xtal1:振蕩器反相放大器與內(nèi)部時鐘發(fā)生電路的輸入端。xtal2:振蕩器

21、反相放大器輸出端。2.2 顯示電路的設(shè)計2.2.1 顯示電路選擇方案一:數(shù)碼管顯示 led數(shù)碼管有動態(tài)和靜態(tài)兩種顯示,使用數(shù)碼管的動態(tài)顯示成本較低,硬件部分結(jié)構(gòu)簡單明了,容易理解且使用方便。但是數(shù)據(jù)顯示是需要進(jìn)行動態(tài)掃描顯示,這樣會占用大量的單片機(jī)運行周期,顯示位數(shù)比較多的時候,cpu需要逐一進(jìn)行掃描,占用cpu很多的時間。數(shù)碼管靜態(tài)顯示不需要占用單片機(jī)的系統(tǒng)內(nèi)部資源,數(shù)碼管只需要很小的電流可以獲得很高的亮度,編程簡單,占用cpu時間少,占用單片機(jī)的外部i/o口較少。但是占用系統(tǒng)的口線較多,硬件電路較復(fù)雜,且成本很高。所以適用于顯示數(shù)碼管個數(shù)少的設(shè)計。方案二:液晶顯示器顯示 液晶顯示器簡稱lc

22、d,由于具有體積小、超薄型、功耗低、顯示高品質(zhì)等特點。很廣泛的應(yīng)分為應(yīng)用于便攜式電子產(chǎn)品中。我們現(xiàn)在使用的lcd是由lcd面板和驅(qū)動與控制電路組合而成,也稱為液晶顯示模塊。lcd的種類很多,通常用的有字符型與點陣型。字符型的lcd只顯示數(shù)字、字母與常用符號,而點陣型lcd不僅顯示字符,還可以顯示漢字及各種圖形信息等。對于我們的設(shè)計需要顯示字符所以只需要使用字符型的lcd1602便可以,其主要特性:具有字符發(fā)生器rom還可以顯示兩行總32個字符或者數(shù)字,同時能夠用字符標(biāo)識顯示的信息,具有80b的數(shù)據(jù)顯示存儲器,芯片的工作電壓5v。字符型的lcd1602使用簡單,方便,穩(wěn)定性好,并帶有液晶背光,更

23、適用于夜間使用,且背光可控,可以通過光敏器件調(diào)節(jié)其亮滅,在與單片機(jī)通信是采用并口的方式,傳輸數(shù)據(jù)速度快,穩(wěn)定性高6。其顯示具有顯示方便,能夠顯示足夠的信息,在顯示濕度信息的同時能夠顯示設(shè)置值的濕度的上下限。2.2.2 液晶顯示接口電路設(shè)計本設(shè)計使用1602液晶顯示屏與單片機(jī)相連,顯示電路如圖2.2所示,圖2.2. 單片機(jī)與液晶電路圖2.3 a/d 轉(zhuǎn)換芯片adc0832 adc0832 是由美國國家半導(dǎo)體公司出產(chǎn)的一種雙通道、8 位分辨率a/d 轉(zhuǎn)換芯片。它具有,兼容性強(qiáng),體積小,性價比高而很受單片機(jī)愛好者與一些企業(yè)的歡迎,當(dāng)前已經(jīng)有了很高的普及率。使用并學(xué)習(xí)adc0832 可以使我們更多了解

24、 a/d 轉(zhuǎn)換器的工作原理,且有助于我們學(xué)習(xí)單片機(jī)技術(shù)水平進(jìn)一步提高。2.3.1 adc0832 具有以下特點 5v 電供電時輸入電壓在 05v 之間; 雙通道 a/d 轉(zhuǎn)換; 輸入輸出電平與 ttl/cmos 相兼容; 8 位分辨率;工作頻率為 250khz,轉(zhuǎn)換時間為 32s; 商用級芯片溫寬為0°c to +70°c,工業(yè)級芯片溫寬為40°c to +85°c; 8p、14pdip(雙列直插) 、picc 多種封裝; 一般功耗僅為 15mw; 圖2.3 adc0832引腳芯片接口說明: · vcc/ref 電源輸入與參考電壓的輸入(復(fù)用)

25、 。 · clk 芯片時鐘輸入。 · do 數(shù)據(jù)信號的輸出,轉(zhuǎn)換數(shù)據(jù)輸出。 · di 數(shù)據(jù)信號的輸入且選擇通道控制。 · gnd 芯片參考 0 電位地 。 · ch1 模擬輸入通道 1,或者作為 in+/-使用。 · ch0 模擬輸入通道 0,或者作為 in+/-使用。 · cs_ 片選使能端,低電平芯片使能。2.3.2 adc0832 與單片機(jī)的接口電路 adc0832 是 8 位分辨率的 a/d 轉(zhuǎn)換芯片,它的最高分辨可以達(dá)到 256 級,可應(yīng)于一般模擬量的轉(zhuǎn)換要求。它的內(nèi)部電源輸入和參考電壓的復(fù)用,使的芯片的模擬電壓輸

26、入值在 05v 范圍之內(nèi)。芯片轉(zhuǎn)換時間只有 32s,具有雙數(shù)據(jù)輸出可以作為數(shù)據(jù)校驗,以便減少數(shù)據(jù)誤差,穩(wěn)定性能強(qiáng)且轉(zhuǎn)換速度快。獨立芯片的使能輸入,使處理器控制與多器件掛接變的很方便。通過 di 數(shù)據(jù)的輸入端,可很容易的實現(xiàn)通道功能選擇。單片機(jī)對 adc0832 控制原理:正常情況時 adc0832 和單片機(jī)接口應(yīng)該為 4 條數(shù)據(jù)線,分別是clk、cs、di、do。但是由于 do 端和 di 端在通信的時候并不能同時有效,且與單片機(jī)接口為雙向,所以在設(shè)計電路時可以把 di 與 do 并聯(lián)在一根數(shù)據(jù)線上使用。當(dāng) adc0832 沒有工作時 cs 輸入端應(yīng)該為高電平,這時芯片禁用,do/di 和 c

27、lk的電平可以任意。當(dāng)需要進(jìn)行 a/d 轉(zhuǎn)換時,必須先把 cs 使能端置于低電平且保持低電平一直到轉(zhuǎn)換完全結(jié)束。這是芯片便開始轉(zhuǎn)換工作,同時處理器可以向芯片時鐘輸入端 clk 輸入時鐘脈沖,do/di 端使用 di 端輸入通道功能選擇的是數(shù)據(jù)信號。圖2.4 a/d轉(zhuǎn)換接口電路2.4 按鍵電路方案的設(shè)計2.4.1 按鍵電路的選擇方案一:運用獨立按鍵,將單片機(jī)i/o端口和按鍵一端相接,若i/o端口的電壓發(fā)生變化時,軟件將會檢測電平的變化,同時做出相應(yīng)的變化,另一端接地。方案二:運用行列式矩陣按鍵,通過反轉(zhuǎn)的方法分別掃描列線和行線,來判斷哪一個按鍵被按下,并執(zhí)行相應(yīng)操作。總結(jié):通過兩種方按比較,它們

28、的區(qū)別在于按鍵的數(shù)量,矩陣按鍵更適合應(yīng)用在需求按鍵較多的電路中。獨立按鍵每一個按鍵都需要一個i/o口,則適用于使用按鍵數(shù)量較少的設(shè)計中。2.4.2 按鍵電路的設(shè)計根據(jù)我的設(shè)計需求,只需要4個按鍵即可,所以采用獨立按即鍵方案一。按鍵電路如下圖3.4所示,一端接單片機(jī)i/o口,另外一端接地,通過檢測與之相連的i/o口,產(chǎn)生相應(yīng)的動作,其中包括復(fù)位鍵,調(diào)速鍵,設(shè)置鍵和菜單鍵。電路圖如圖2.8所示。 圖2.5 按鍵電路電路圖2.5 單片機(jī)晶振電路原理及作用 在單片機(jī)的系統(tǒng)里都含有晶振,晶振作用很大,全程3全名叫晶體振蕩器。晶振與單片機(jī)內(nèi)部電路結(jié)合產(chǎn)生單片機(jī)需要的時鐘頻率,當(dāng)晶振所提供的時鐘頻率越高,單

29、片機(jī)運行的速度就越快,單片極接的所有指令執(zhí)行都是在單片機(jī)晶振提供的時鐘頻率下進(jìn)行的。通常工作條件下普通的晶振頻率絕對精度可以達(dá)到百萬分之五十,高級的精度更高。還有一些晶振可由外加電壓在給定范圍內(nèi)調(diào)節(jié)頻率,稱作壓控振蕩器(vco)。晶振用一種能夠?qū)㈦娔芘c機(jī)械能互相轉(zhuǎn)化的晶體共振的時候工作,可以提供精確,穩(wěn)定的單頻振蕩。 晶振的作用是給系統(tǒng)提供時鐘信號的。常常一個系統(tǒng)共使用一個晶振,這樣方便各部分保持同步。但是有的通訊系統(tǒng)的射頻和基頻使用不同的晶振,則需要通過電子調(diào)頻的方法保持同步。晶振也通常和鎖相環(huán)電路配合使用,用來提供系統(tǒng)所需要的時鐘頻率。若不同的子系統(tǒng)需不同的頻率的時鐘信號時,可用與同一個晶

30、振連接的不同鎖相環(huán)提供。圖2.6 時鐘電路電路圖2.6 復(fù)位電路的設(shè)計 mcs51系列單片機(jī)有內(nèi)部復(fù)位電路和外部復(fù)位電路而mcs51復(fù)位是由外部復(fù)位電路實現(xiàn)的。單片機(jī)一般都在開機(jī)時要做復(fù)位,這樣可以方便中央處理器cpu和存儲器等其他功能部件處在一個確定穩(wěn)定的初始狀態(tài),并從這個狀態(tài)開始工作。 外部復(fù)位電路通常有兩種即上復(fù)位電路和開關(guān)復(fù)位電路兩種方式。該電路兼有上復(fù)位和開關(guān)復(fù)位電路。 復(fù)位電路圖如圖reset。工作原理為:開關(guān)閉合,上電瞬間,rc電路充電,reset引腳上出現(xiàn)正脈沖,只要正脈沖保持100ms以上的高電平,就能靠單片機(jī)實現(xiàn)有效復(fù)位。該設(shè)計時鐘頻率為12mhz,c取10f,r取10k。

31、復(fù)位電路如圖3-3所示。 圖2.7 復(fù)位電路原理圖2.7 報警電路的設(shè)計該設(shè)計采用了聲光報警電路接口電路如圖3-13所示。mcs-51的口線p26接報警電路的輸入端,當(dāng)p26口輸出低電平時,發(fā)光二極管兩端電壓差接近5v,發(fā)光報警.壓電蜂鳴器兩條引線加上近5v的直流電壓,由壓電效應(yīng)而發(fā)出蜂鳴音報警。圖2.8 聲光報警電路接口電路2.8 土壤濕度傳感器 yl-69 土壤濕度計檢測模塊2.8.1 yl-69 土壤濕度計檢測計特點(1) yl-69是一個較簡單的水分傳感器可以用來檢測土壤的水分,土壤缺水時,模塊輸出一高電平,否則輸出低電平。(2) 靈敏度可以調(diào)(3) 工作電壓為3.3v-5v(4) 模

32、塊雙輸出模式,模擬量輸出更精確,數(shù)字量輸出簡單。 (5) 設(shè)有固定的螺栓孔,方便安裝 (6) 小板pcb尺寸:3cm * 1.6cm (7) 數(shù)字開關(guān)量輸出指示燈(綠色)電源指示燈(紅色)(8) 比較器采用lm393芯片,工作穩(wěn)定小板接口說明(4線制)1. gnd  外接gnd2. vcc  外接3.3v-5v 3. ao   小板模擬量輸出接口4. do   小板數(shù)字量輸出接口(0和1)2.8.2 使用說明1. 土壤濕度模塊對環(huán)境濕度最敏感常用來檢測土壤的濕度。2. 小板模擬量輸出ao可以與ad模塊相連,并通過ad轉(zhuǎn)換,可獲得土壤濕

33、度更精確的數(shù)值;3. 小板數(shù)字量輸出do也可以直接驅(qū)動繼電器模塊與蜂鳴器模塊等,所以可以組成一個土壤濕度報警系統(tǒng);4. 小板數(shù)字量輸出d0和單片機(jī)直接相連,利用單片機(jī)檢測高低電平,由此檢測土壤濕度;5. 在土壤濕度大于設(shè)定閾值時,模塊d0輸出為低電平模塊當(dāng)土壤濕度不超過設(shè)定閾值時,do口輸出為高電平;yl-69土壤濕度傳感器是個簡單的傳感器,土壤缺水時輸出高電平,否則輸出低電平。利用起來簡便、快速,傳感器原理圖如圖2.8.2所示,傳感器的兩個極片把土壤看作一個電阻來用,當(dāng)濕度越大電阻就越小,電阻變化后流過基極的電流增大,三極管發(fā)射極端輸出的電壓增高,運用這個原理來測量土壤的濕度。圖2.9 土壤

34、傳感器檢測原理圖濕度采集模塊組成和單片機(jī)的連接示意圖如圖2.8.1所示。該設(shè)計檢測模擬信號需要外部接上ad轉(zhuǎn)換器,把傳感器檢測到的模擬信號通過ad轉(zhuǎn)換器在送到單片機(jī)即可,該設(shè)置中試用兩個土壤傳感器 。圖2.10 濕度采集模塊組成和單片機(jī)的連接圖2.9 步進(jìn)電機(jī)驅(qū)動模塊2.9.1 步進(jìn)電機(jī)簡介和原理步進(jìn)電機(jī)是把給定的電脈沖信號變?yōu)榫€位移或角位移的開環(huán)控制元件。在給定一個電脈沖信號,步進(jìn)電機(jī)的轉(zhuǎn)子就轉(zhuǎn)過相應(yīng)一個角度,這個角度就稱為該步進(jìn)電機(jī)的步距角。當(dāng)前常用的步進(jìn)電機(jī)步距角大多為0.9度(俗稱半步)或1.8度(俗稱一步)。用步距角為0.9度的步進(jìn)電機(jī)為例,當(dāng)給步進(jìn)電機(jī)一個電脈沖信號時,步進(jìn)電機(jī)轉(zhuǎn)過

35、0.9度;當(dāng)給了兩個脈沖信號時,步進(jìn)電機(jī)轉(zhuǎn)過1.8度。由此,連續(xù)的給定脈沖信號時,步進(jìn)電機(jī)便可以連續(xù)的運轉(zhuǎn)。由于電脈沖信號和步進(jìn)電機(jī)的轉(zhuǎn)角存在一定的線性關(guān)系,使步進(jìn)電機(jī)在位置控制、速度控制等方面應(yīng)用較廣【7】。步進(jìn)電機(jī)使用時需要三個方面配合,一電脈沖信號發(fā)生器必須按照給定的設(shè)置重復(fù)的為步進(jìn)電機(jī)傳送電脈沖信號,當(dāng)前這種信號大多數(shù)由單片機(jī)或可編程控制器來完成;二是驅(qū)動器即信號放大器,除了對電脈沖的信號進(jìn)行放大,驅(qū)動步進(jìn)電機(jī)轉(zhuǎn)動外,還可用來改善步進(jìn)電機(jī)使用的性能,實際中在步進(jìn)電機(jī)的系統(tǒng)中起著很重要作用,通常一種步進(jìn)電機(jī)根據(jù)不同的工作情況具有很多種驅(qū)動器;三是步進(jìn)電機(jī)它有多種的型號和控制原理,目前常用

36、的有混合式、反應(yīng)式、感應(yīng)子式等。 步進(jìn)電機(jī)是通過輸入脈沖頻率快慢來實現(xiàn)速度控制。當(dāng)發(fā)生脈沖的頻率增加時,步進(jìn)電機(jī)的速度就加快;當(dāng)頻率減小時,速度就降低。還可通過對頻率的改變從而提高步進(jìn)電機(jī)速度和位置精度。2.9.2 uln2003驅(qū)動芯片通常uln2003是用于灌溉電流的驅(qū)動。uln2003是大電流、高耐壓達(dá)林頓陳列,由七個硅npn 達(dá)林頓管組成的。uln2003的每對達(dá)林頓都串聯(lián)了一個2.7k的基極電阻,且在5v工作電壓下能夠和cmos與ttl電路直接相連,也可以直接得處理原來需要的標(biāo)準(zhǔn)邏輯緩沖器處理的數(shù)據(jù)。uln2003工作電流大,工作電壓很高,灌溉電流可以達(dá)到500ma,且能在關(guān)的狀態(tài)時

37、承受50v的電壓,輸出還可在高負(fù)載電流時并行運行【8】。(1)uln2003引腳說明:1-7號引腳:為輸入端 10-16號引腳:為輸出端 8號引腳:地端 9號引腳:電源+(2)達(dá)林頓驅(qū)動的典型應(yīng)用:用于電機(jī)調(diào)速,逆變電路,大功率開關(guān)電路,利用cmos電路通過達(dá)林頓管驅(qū)動高靈敏度的繼電器的電路;驅(qū)動lcd顯示屏lcd智能顯示屏由微型計算機(jī)控制的,以lcd矩陣板作為顯示的系統(tǒng),可以用來顯示各種圖案與文字。注意的是,達(dá)林頓管的內(nèi)部由多只管子和電阻組成,當(dāng)用萬用表測試時基極的正反向阻值和普通的三極管不同。2.9.3 步進(jìn)電機(jī)驅(qū)動模塊單片機(jī)的輸出波形信號脈沖寬度可以由延時子程序確定。但只要改變延時時間,

38、便可改變驅(qū)動脈沖頻率,同時改變了步進(jìn)電機(jī)轉(zhuǎn)速。很顯然使用靈活、方便。單片機(jī)向p2口輸出驅(qū)動代碼并由程序進(jìn)行。在實際的編程過程中,將單片機(jī)的驅(qū)動代碼存入存儲器構(gòu)成控制表。只要cpu執(zhí)行傳送的命令,數(shù)據(jù)也依次取出,送入p2口便可以了。每輸出一個代碼,步進(jìn)電機(jī)就旋轉(zhuǎn)一步,連續(xù)的循環(huán)輸出,步進(jìn)電機(jī)也就連續(xù)運行;倒序輸出時,步進(jìn)電機(jī)便反向運行;停止輸出,步進(jìn)電機(jī)也停止工作。當(dāng)數(shù)據(jù)輸出的速度改變,同時輸出脈沖的頻率也改變,步進(jìn)電機(jī)運行的速度也就改變。圖2.11 步進(jìn)電機(jī)驅(qū)動模塊電路圖3 系統(tǒng)軟件設(shè)計3.1 軟件系統(tǒng)總體工作流程 主程序?qū)崿F(xiàn)的功能首先設(shè)定土壤濕度上下限值,對系統(tǒng)子程序初始化,土壤濕度傳感器啟

39、動對土壤濕度進(jìn)行檢測,將測量到的濕度值和設(shè)定值比較,如果測量值大于了設(shè)定值,返回重新測量,如果測量到的值小于設(shè)定值,報警電路進(jìn)行報警,灌溉系統(tǒng)啟動,進(jìn)行灌溉。當(dāng)系統(tǒng)通電時,各模塊電路開始啟動,將設(shè)定的上下限值輸入,檢測模塊中土壤濕度傳感器開始檢測土壤濕度,把采集到的濕度值送給單片機(jī),單片機(jī)將送入的值和設(shè)定值進(jìn)行比較,如果檢測值小于設(shè)定的下限值,步進(jìn)電機(jī)驅(qū)動灌溉,如果檢測值大于設(shè)定的下限值,停止灌溉。如此的將檢測到的當(dāng)前濕度和設(shè)定濕度循環(huán)比較,保持土壤濕度,實現(xiàn)良好的灌溉。圖3.1 主程序流程圖3.2 濕度控制模塊的設(shè)計3.2.1 濕度控制程序流程在該設(shè)計中利用濕度檢測模塊把多處地點檢測到的濕度

40、模擬值,通過ad轉(zhuǎn)換器進(jìn)行模數(shù)轉(zhuǎn)換,轉(zhuǎn)換后對數(shù)據(jù)綜合處理,再傳給給單片機(jī)。單片機(jī)會將接收到數(shù)值與單片機(jī)內(nèi)存中的設(shè)定值比較,如果接收到的數(shù)值低于了設(shè)定值,步進(jìn)電機(jī)控制電路模塊開始啟動步進(jìn)電機(jī)且進(jìn)行灌溉。如果收到的數(shù)值大于設(shè)定值,步進(jìn)電機(jī)不啟動進(jìn)行灌溉。與此同時單片機(jī)把檢測到的數(shù)值與系統(tǒng)的灌溉與否在實物模塊中顯示出來。灌溉同時進(jìn)行濕度的判斷,整個系統(tǒng)在這個閉環(huán)控制系統(tǒng)中運行。圖3.2 a/d轉(zhuǎn)換流程圖3.3 按鍵電路子程序按鍵用于人機(jī)界面的輸入,子程序用于按鍵的檢測。考慮按鍵軟件去抖成本要比硬件去抖成本低,所以電路使用軟件去抖。其過程為:掃描按鍵、去抖延時、再檢測、執(zhí)行對應(yīng)程序。 圖3.3 按鍵程

41、序流程3.4 1602液晶顯示模塊設(shè)計液晶顯示模塊是一個慢顯示器件,在執(zhí)行每條指令之前要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,則此指令失效,要顯示字符時要先輸入顯示字符地址,告訴模塊在哪里現(xiàn)實了字符。1602液晶顯示模塊可與stc89c52直接接口的。軟件流程圖 所示:圖3.4 顯示模塊子程序流程圖參考文獻(xiàn)1童時中模塊化設(shè)計原理方法及應(yīng)用m北京:中國標(biāo)準(zhǔn)出版社,2000:20-432節(jié)水灌溉編委會節(jié)水灌溉技術(shù)手冊m北京:中國大地出版社,2003:112-1363何立民單片機(jī)初級教程m北京:北京航空航天大學(xué)出版社,1999:73-944宋彩利,孫友倉,吳宏岐單片機(jī)原理與c51編程m西安:西安交通大

42、學(xué)出版社,2000:190-1915劉湘濤,江世明單片機(jī)原理與應(yīng)用m北京:電子工業(yè)出版社,2007:134-139,142-1486王毅單片機(jī)器件應(yīng)用手冊m北京:人民郵電出版社,1994:60-657王鴻鈺.步進(jìn)電機(jī)控制技術(shù)入門m.上海:同濟(jì)大學(xué)出版社,1990:29-658朱兵,彭宣戈匯編語言程序設(shè)計m.北京:北京航空航天大學(xué)出版社,2009:18-39附錄a 硬件原理圖圖a1 硬件原理圖32error! no bookmark name given.附錄b 程序代碼#include <reg52.h>#include<intrins.h>#define uchar

43、unsigned char#define uint unsigned int#define ulong unsigned long/*八拍方式驅(qū)動,順序為a ab b bc c cd d da*/unsigned char code clockwise=0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09; uchar h_temp=80;uchar l_temp=20;uchar c_temp=30;uint motor_speed=2000;uchar set_flag=0;uchar speed_flag=1; /速度標(biāo)志位uchar time1_num=0;uint ad_dat1=0;

溫馨提示

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

評論

0/150

提交評論