基于單片機(jī)自動(dòng)滴灌控制系統(tǒng)設(shè)計(jì)_第1頁
基于單片機(jī)自動(dòng)滴灌控制系統(tǒng)設(shè)計(jì)_第2頁
基于單片機(jī)自動(dòng)滴灌控制系統(tǒng)設(shè)計(jì)_第3頁
基于單片機(jī)自動(dòng)滴灌控制系統(tǒng)設(shè)計(jì)_第4頁
基于單片機(jī)自動(dòng)滴灌控制系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程名稱: 單片機(jī)課程設(shè)計(jì) 設(shè)計(jì)項(xiàng)目: 基于單片機(jī)自動(dòng)滴灌控制系統(tǒng)設(shè)計(jì) 專業(yè)班級: 姓名(學(xué)號): 實(shí)驗(yàn)時(shí)間: 批閱時(shí)間: 指導(dǎo)教師: 成 績: 目 錄第一章 緒論31.1 本設(shè)計(jì)任務(wù)和主要內(nèi)容3第二章 硬件電路設(shè)計(jì)32.1 單片機(jī)控制系統(tǒng)原理32.2 單片機(jī)主機(jī)系統(tǒng)電路42.2.1時(shí)鐘電路42.2.2復(fù)位電路52.3 數(shù)據(jù)采集處理電路52.4 LED顯示系統(tǒng)電路62.5 超限報(bào)警電路7第三章 系統(tǒng)的軟件設(shè)計(jì)8第四章 總結(jié)14基于單片機(jī)的自動(dòng)滴灌控制系統(tǒng)的設(shè)計(jì)第一章 緒論1.1 本設(shè)計(jì)任務(wù)和主要內(nèi)容本論文主要研究基于單片機(jī)的自動(dòng)滴灌控制系統(tǒng),分別對土壤濕度與灌水量之間的關(guān)系、滴灌控制技術(shù)及系統(tǒng)

2、設(shè)備的軟、硬件各個(gè)部分進(jìn)行了研究。主要內(nèi)容如下:1.根據(jù)滴灌技術(shù)的特點(diǎn),進(jìn)行節(jié)水灌溉控制系統(tǒng)的整體研究與設(shè)計(jì)。2.土壤濕度變化使用DHT11型溫濕度傳感器采集,再對濕度傳感器的輸出信號進(jìn)行分析。3 .數(shù)碼管顯示土壤濕度值。4.使用步進(jìn)電機(jī)控制閥門的開啟或關(guān)閉。5.當(dāng)土壤濕度值低于設(shè)定的最低值時(shí),系統(tǒng)可自動(dòng)報(bào)警。第二章 硬件電路設(shè)計(jì)2.1單片機(jī)控制系統(tǒng)原理本系統(tǒng)的設(shè)計(jì)方案是基于微控、無線數(shù)據(jù)接收和傳感器測量技術(shù),采用濕度傳感器采集土壤的濕度信息,根據(jù)采集的相應(yīng)數(shù)據(jù)及農(nóng)作物生長所需水分的需求量的設(shè)置,及時(shí)、精確、高效地控制滴灌的水量。系統(tǒng)根據(jù)傳感器反饋的數(shù)據(jù)的大小控制滴灌的水量,使農(nóng)作物及時(shí)的獲得

3、所需的水分,控制過程中當(dāng)?shù)喂嗟阶魑锼璧乃繒r(shí),系統(tǒng)會及時(shí)的關(guān)閉水源的流入,這樣則避免水資源的浪費(fèi),有效的實(shí)現(xiàn)節(jié)水灌溉的設(shè)計(jì)要求。種植作物的土壤土壤濕度傳感90C51單片機(jī)數(shù)碼管顯示濕度LED報(bào)警步進(jìn)電機(jī)驅(qū)動(dòng)閥門開啟或關(guān)閉圖1 單片機(jī)控制系統(tǒng)原理框圖2.2 單片機(jī)主機(jī)系統(tǒng)電路STC90C51單片機(jī)是STC推出的新一代超強(qiáng)抗干擾、高速、低功耗的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),12時(shí)鐘/機(jī)器周期和6時(shí)鐘/機(jī)器周期可以任意選擇。片上集成1280字節(jié)或512字節(jié)或256字節(jié)RAM,共3個(gè)16位定時(shí)器/計(jì)數(shù)器,其中定時(shí)器0還可以當(dāng)成2個(gè)8位定時(shí)器使用,外部中斷4路,下降沿中斷或低電平觸發(fā)中斷

4、,通用異步串行口(UART),還可用定時(shí)器軟件實(shí)現(xiàn)多個(gè)UART,內(nèi)部集成MAX810專用復(fù)位電路,當(dāng)時(shí)鐘頻率在6MHz時(shí),該復(fù)位電路是可靠的;當(dāng)時(shí)鐘頻率在12MHz時(shí),勉強(qiáng)可用。在要求不高的情況下,可在復(fù)位腳外接電阻電容復(fù)位。圖2 單片機(jī)主機(jī)系統(tǒng)圖2.2.1時(shí)鐘電路單片機(jī)的時(shí)鐘信號用來提供單片機(jī)片內(nèi)各種微操作的時(shí)間基準(zhǔn),時(shí)鐘信號通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩。MCS-51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,引腳XTALl和XTAL2分別是此放大電器的輸入端和輸出端,由于采用內(nèi)部方式時(shí),電路簡單,所得的時(shí)鐘信號比較穩(wěn)定,實(shí)際使用中常采用這種方式,如圖2所示在其外接晶體振

5、蕩器(簡稱晶振)或陶瓷諧振器就構(gòu)成了內(nèi)部振蕩方式,片內(nèi)高增益反向放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起可構(gòu)成一個(gè)自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。圖3中外接晶體以及電容C2和C1構(gòu)成并聯(lián)諧振電路,它們起穩(wěn)定振蕩頻率、快速起振的作用,其值均為30P左右,晶振頻率選6MHz。2.2.2復(fù)位電路 為了初始化單片機(jī)內(nèi)部的某些特殊功能寄存器,必須采用復(fù)位的方式,復(fù)位后可使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初始狀態(tài)開始正常工作。單片機(jī)的復(fù)位是靠外電路來實(shí)現(xiàn)的,在正常運(yùn)行情況下,只要RST引腳上出現(xiàn)兩個(gè)機(jī)器周期時(shí)間以上的高電平,即可引起系統(tǒng)復(fù)位,但如果RST引腳上持續(xù)為高電平,單片機(jī)就處于循

6、環(huán)復(fù)位狀態(tài)。復(fù)位后系統(tǒng)將輸入/輸出(1/0)端口寄存器置為FFH,堆棧指針SP置為07H, SBUF內(nèi)置為不定值,其余的寄存器全部清0,內(nèi)部RAM的狀態(tài)不受復(fù)位的影響,在系統(tǒng)上電時(shí)RAM的內(nèi)容是不定的。復(fù)位操作有兩種情況,即上電復(fù)位和手動(dòng)(開關(guān))復(fù)位。本系統(tǒng)采用上電復(fù)位方式。 圖2中R9和Cl組成上電復(fù)位電路,其值R取為1KQ, C取為1pF.2.3數(shù)據(jù)采集電路(數(shù)字溫濕度傳感器DHT11)DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測

7、溫元件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比極高等優(yōu)點(diǎn)。每個(gè)DHT11傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲存在OTP內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達(dá)20米以上,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。產(chǎn)品為4 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。測量分辨率分別為8bit(溫度)、8bit(濕度)。圖32.4 LED顯示系統(tǒng)電路微機(jī)化測控系統(tǒng)中常用的測量數(shù)據(jù)的顯示器有發(fā)光二極管顯

8、示器(簡稱LED或數(shù)碼管)和液晶顯示器(簡稱LCD)。這兩種顯示器都具有線路簡單、耗電少、成本低、壽命長等優(yōu)點(diǎn),本系統(tǒng)輸出結(jié)果選用4個(gè)LED顯示。數(shù)碼管有共陰共陽之分,本系統(tǒng)采用8段共陰型LED,其原理圖如圖6所示,每位數(shù)碼管內(nèi)部有8個(gè)發(fā)光二極管,公共端由8個(gè)發(fā)光二極管的陰極并接而成,正常顯示時(shí)公共端接低電平(GND),各發(fā)光二極管是否點(diǎn)亮取決于a-dp各引腳上是否是高電平。 LED數(shù)碼管的外形結(jié)構(gòu)如圖6,外部有10個(gè)引腳,其中3, 8腳為公共端也稱位選端,其余8個(gè)引腳稱為段選端,當(dāng)要使某一位數(shù)碼管顯示某一數(shù)字(0-9中的一個(gè))必須在這個(gè)數(shù)碼管的段選端加上與數(shù)字顯示數(shù)字對應(yīng)的8位段選碼(也稱字

9、形碼),在位選端加上低電平即可。由于系統(tǒng)要顯示的內(nèi)容比較簡單,顯示量不多,所以選用數(shù)碼管既方便又經(jīng)濟(jì)。LED有共陰極和共陽極兩種。如圖5所示。二極管的陰極連接在一起,通常此公共陰極接地,而共陽極則將發(fā)光二極管的陽極連接在一起,接入+5V的電壓。一位顯示器由8個(gè)發(fā)光二極管組成,其中7個(gè)發(fā)光二極管構(gòu)成字型“8”的各個(gè)筆劃(段)ag,另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。當(dāng)在某段發(fā)光二極管施加一定的正向電壓時(shí),該段筆劃即亮;不加電壓則暗。為了保護(hù)各段LED不被損壞,需外加限流電阻。 符號和引腳 共陰極 共陽極圖5 LED數(shù)碼管結(jié)構(gòu)原理圖:數(shù)碼管顯示器有兩種工作方式,即靜態(tài)顯示方式和動(dòng)態(tài)掃描顯示方式。為節(jié)省端

10、口及降低功耗,本系統(tǒng)采用動(dòng)態(tài)掃描顯示方式。動(dòng)態(tài)掃描顯示方式需要解決多位LED數(shù)碼管的“段控”和“位控”問題,本電路的通過P1口實(shí)現(xiàn):而每一位的公共端,即LED數(shù)碼管的“位控”,則由P3口控制。這種連接方式由于多位字段線連在一起,因此,要想顯示不同的內(nèi)容,必然要采取輪流顯示的方式,即在某一瞬間,只讓其中的某一位的字位線處于選通狀態(tài),其它各位的字位線處于斷開狀態(tài),同時(shí)字段線上輸出這一位相應(yīng)要顯示字符的字段碼。在這一瞬時(shí),只有這一位在顯示,其他幾位則暗。在本系統(tǒng)中,字位線的選通與否是通過PNP三極管的導(dǎo)通與截止來控制,即三極管處于“開頭”狀態(tài)。2.5超限報(bào)警電路為了在某些緊急狀態(tài)或反常狀態(tài)下,能使操

11、作人員不致忽視,以便及時(shí)處理,往往需要有某種更能引起人們注意提起警覺的報(bào)警信號產(chǎn)生,這種報(bào)警信號通常有三種類型:閃光報(bào)警、鳴音報(bào)警、語音報(bào)警,本系統(tǒng)采用簡單易行的LED發(fā)光報(bào)警電路。 如圖6所示報(bào)警電路,報(bào)警設(shè)備選用LED發(fā)光二極管,圖中接入的發(fā)光二極管LED為超高限與超低限報(bào)警器,在濕度低于最低濕度或高于最高濕度時(shí),二極管發(fā)光報(bào)警。報(bào)警設(shè)備選用LED發(fā)光二極管,圖中發(fā)光二極管的一端接在高電平+5V,另一端分別接P2.6與P2.7,當(dāng)P2.6、P2.7端輸出為低電平0時(shí),二極管導(dǎo)通,燈亮發(fā)出報(bào)警信號。圖6報(bào)警電路第三章 系統(tǒng)的軟件設(shè)計(jì)#include <reg51.h>#inclu

12、de <intrins.h> /typedef unsigned char U8; /* 無符號8位整型變量 */typedef signed char S8; /* 有符號8位整型變量 */typedef unsigned int U16; /* 無符號16位整型變量 */typedef signed int S16; /* 有符號16位整型變量 */typedef unsigned long U32; /* 無符號32位整型變量 */typedef signed long S32; /* 有符號32位整型變量 */typedef float F32; /* 單精度浮點(diǎn)數(shù)(32位

13、長度)*/typedef double F64; /* 雙精度浮點(diǎn)數(shù)(64位長度)*/#define uchar unsigned char#define uint unsigned int#define Data_0_time 4sbit P2_0 = P20 ;U8 U8FLAG;U8 U8count,U8temp;U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkda

14、ta_temp;U8 U8comdata;U8 outdata5; /定義發(fā)送的字節(jié)數(shù) U8 indata5;U8 count, count_r=0;U8 str5=0,0,0,0,0;U16 U16temp1,U16temp2;uchar LedOut4;/此表為 LED 的字模, 共陰數(shù)碼管 0-9 - unsigned char code Disp_Tab = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40; /段碼控制/此表為8個(gè)數(shù)碼管位選控制, 共陰數(shù)碼管 1-8個(gè) - unsigned char code FFW8=0x

15、f1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9; /反轉(zhuǎn)unsigned char code FFZ8=0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1; /正轉(zhuǎn)uint K;sbit LS138A = P22; /定義138譯碼器的輸入A腳由P2.2控制 sbit LS138B = P23; /定義138譯碼器的輸入腳B由P2.3控制sbit LS138C = P24; /定義138譯碼器的輸入腳C由P2.4控制/Motorsbit F1 = P10;sbit F2 = P11;sbit F3 = P12;sbit F4 = P13;

16、sbit led1=P27;sbit led2=P26; void Delay(U16 j) U8 i; for(;j>0;j-) for(i=0;i<27;i+); void Delay_10us(void) U8 i; i-; i-; i-; i-; i-; i-; /* 步進(jìn)電機(jī)驅(qū)動(dòng)*/void motor_ffw() unsigned char i; unsigned int j; for (j=0; j<12; j+) /轉(zhuǎn)1*n圈 for (i=0; i<8; i+) /一個(gè)周期轉(zhuǎn)30度 if(K=1) P1 = FFWi&0x0f; /取數(shù)據(jù) if

17、(K=2) P1 = FFZi&0x0f; Delay(10); /調(diào)節(jié)轉(zhuǎn)速,速度太快會使電機(jī)只震動(dòng)不轉(zhuǎn)動(dòng) void COM(void) U8 i; for(i=0;i<8;i+) U8FLAG=2; while(!P2_0)&&U8FLAG+);Delay_10us(); Delay_10us();Delay_10us(); U8temp=0; if(P2_0)U8temp=1; U8FLAG=2; while(P2_0)&&U8FLAG+); /超時(shí)則跳出for循環(huán) if(U8FLAG=1)break; /判斷數(shù)據(jù)位是0還是1 / 如果高電平高

18、過預(yù)定0高電平值則數(shù)據(jù)位為 1 U8comdata<<=1; U8comdata|=U8temp; /0 /rof /-/-濕度讀取子程序 -/-/-以下變量均為全局變量-/-溫度高8位= U8T_data_H-/-溫度低8位= U8T_data_L-/-濕度高8位= U8RH_data_H-/-濕度低8位= U8RH_data_L-/-校驗(yàn) 8位 = U8checkdata-/-調(diào)用相關(guān)子程序如下-/- Delay();, Delay_10us();,COM(); /-void RH(void) /主機(jī)拉低18ms P2_0=0; Delay(80); P2_0=1; /總線由上

19、拉電阻拉高 主機(jī)延時(shí)20us Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us(); /主機(jī)設(shè)為輸入 判斷從機(jī)響應(yīng)信號 P2_0=1; /判斷從機(jī)是否有低電平響應(yīng)信號 如不響應(yīng)則跳出,響應(yīng)則向下運(yùn)行 if(!P2_0) /T ! U8FLAG=2; /判斷從機(jī)是否發(fā)出 80us 的低電平響應(yīng)信號是否結(jié)束 while(!P2_0)&&U8FLAG+); U8FLAG=2; /判斷從機(jī)是否發(fā)出 80us 的高電平,如發(fā)出則進(jìn)入數(shù)據(jù)接收狀態(tài) while(P2_0)&&U8FLAG+); /數(shù)據(jù)接收狀態(tài) COM()

20、; U8RH_data_H_temp=U8comdata; COM(); U8RH_data_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; P2_0=1; /數(shù)據(jù)校驗(yàn) U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp); if(U8temp=U8checkdata_temp) U8RH_data_H=U8

21、RH_data_H_temp; U8RH_data_L=U8RH_data_L_temp; U8T_data_H=U8T_data_H_temp; U8T_data_L=U8T_data_L_temp; U8checkdata=U8checkdata_temp; /fi /fivoid xianshi(uchar a) uchar i; /LedOut0=Disp_Taba/1000; /LedOut2=Disp_Taba/100; LedOut1=Disp_Taba%100/10; LedOut0=Disp_Taba%10; for( i=0; i<3; i+) /實(shí)現(xiàn)4位動(dòng)態(tài)掃描循環(huán)

22、 P0 = LedOuti; /將字模送到P0口顯示 Delay(2); switch(i) /使用switch 語句控制位選 也可以是用查表的方式 學(xué)員可以試著自己修改 case 0:LS138A=0; LS138B=0; LS138C=0; break; case 1:LS138A=1; LS138B=0; LS138C=0; break; /case 2:LS138A=0; LS138B=1; LS138C=0; break; /Delay(10); void time0_init() /計(jì)數(shù)器初始化函數(shù)TMOD= 0x01; /計(jì)數(shù)器0工作在方式模式1TH0 = (65536-800)/256; /晶振是11.0592,產(chǎn)生PCA時(shí)鐘為1.3824MTL0 = (65536-800)%256;/TH0 = (65536-6556)/256; /晶振是11.0592,產(chǎn)生PCA時(shí)鐘為1.3824M/TL0 = (65536-6536)%256;/AUXR=0xC0;/計(jì)數(shù)器均工作在1T模式。計(jì)數(shù)頻率11.0592MET0 = 1; /開中計(jì)數(shù)器0斷TR0 = 1; /開啟計(jì)數(shù)器0EA=1;void main()uchar m,flag=0,n; time0_init();while(1) for(n=0;n&l

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論