模擬灌溉系統(tǒng).doc_第1頁
模擬灌溉系統(tǒng).doc_第2頁
模擬灌溉系統(tǒng).doc_第3頁
模擬灌溉系統(tǒng).doc_第4頁
模擬灌溉系統(tǒng).doc_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

微機(jī)與單片機(jī)原理及應(yīng)用課程設(shè)計報告題 目:模擬智能灌溉系統(tǒng) 學(xué) 號: 110603136 姓 名: 黃鑫 年 級: 11級自動化 指導(dǎo)教師: 叢玉華 開課學(xué)期教室上交時間成績大三上實B3032013-12-21 一、 硬件部分1、涉及芯片:(1)、STC90C519RD+基本功能8位CPU4kbytes程序存儲器(ROM) (52為8K)128bytes的數(shù)據(jù)存儲器(RAM) (52有256bytes的RAM)32條I/O口線111條指令,大部分為單字節(jié)指令21個專用寄存器2個可編程定時/計數(shù)器5個中斷源,2個優(yōu)先級(52有6個)一個全雙工串行通信口外部數(shù)據(jù)存儲器尋址空間為64kB外部程序存儲器尋址空間為64kB邏輯操作位尋址功能雙列直插40PinDIP封裝單一+5V電源供電CPU:由運(yùn)算和控制邏輯組成,同時還包括中斷系統(tǒng)和部分外部特殊功能寄存器;RAM:用以存放可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);ROM:用以存放程序、一些原始數(shù)據(jù)和表格;I/O口:四個8位并行I/O口,既可用作輸入,也可用作輸出T/C:兩個定時/記數(shù)器,既可以工作在定時模式,也可以工作在記數(shù)模式;五個中斷源的中斷控制系統(tǒng);一個全雙工UART(通用異步接收發(fā)送器)的串行I/O口,用于實現(xiàn)單片機(jī)之間或單片機(jī)與微機(jī)之間的串行通信;片內(nèi)振蕩器和時鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最佳振蕩頻率為6M12M。引腳圖引腳功能P0口有三個功能: 1、外部擴(kuò)展存儲器時,當(dāng)做數(shù)據(jù)總線 2、外部擴(kuò)展存儲器時,當(dāng)作地址總線 3、不擴(kuò)展時,可做一般的I/O使用,但內(nèi)部無上拉電阻,作為輸入或輸出時應(yīng)在外部接上拉電阻。、P1口只做I/O口使用:其內(nèi)部有上拉電阻。 P2口有兩個功能: 1、擴(kuò)展外部存儲器時,當(dāng)作地址總線使用 2、做一般I/O口使用,其內(nèi)部有上拉電阻; P3口有兩個功能:除了作為I/O使用外(其內(nèi)部有上拉電阻),還有一些特殊功能,由特殊寄存器來設(shè)置,PSEN 外部程序存儲器讀選通信號ALE 地址鎖存控制信號EA 訪問和序存儲器控制信號XTAL1和XTAL2 外接晶振引腳。當(dāng)使用芯片內(nèi)部時鐘時,此二引腳用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時鐘時,用于接外部時鐘脈沖信號。VCC:電源+5V輸入 VSS:GND接地 RST 復(fù)位信號(2)、74HC138基本功能HC138 按照三位二進(jìn)制輸入碼和賦能輸入條件,從8 個輸出端中譯出一個 低電平輸出。真值表 引腳圖引腳功能(3)、DS1302基本功能74HC138可以對年、月、日、周、日、時、分、秒進(jìn)行計時,且具有閏年補(bǔ)償?shù)榷喾N功能。引腳圖引腳功能DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)傳送的方法。當(dāng)RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時,在Vcc2.0V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向)。SCLK為時鐘輸入端。數(shù)據(jù)格式控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。(4)、PCF8591基本功能PCF8591的功能包括多路模擬輸入、內(nèi)置跟蹤保持、8-bit模數(shù)轉(zhuǎn)換和8-bit數(shù)模轉(zhuǎn)換。引腳圖引腳功能AIN0AIN3:模擬信號輸入端。 A0A2:引腳地址端。VDD、VSS:電源端。(2.56V) SDA、SCL:I2C 總線的數(shù)據(jù)線、時鐘線。OSC:外部時鐘輸入端,內(nèi)部時鐘輸出端。EXT:內(nèi)部、外部時鐘選擇線,使用內(nèi)部時鐘時 EXT 接地。AGND:模擬信號地。 AOUT:D/A 轉(zhuǎn)換輸出端。 VREF:基準(zhǔn)電源端。數(shù)據(jù)格式在傳輸數(shù)據(jù)的時候,SDA線必須在時鐘的高電平周期保持穩(wěn)定,SDA的高或低電平狀態(tài)只有在SCL 線的時鐘信號是低電平時才能改變 。SCL 線是高電平時,SDA 線從高電平向低電平切換,這個情況表示起始條件;SCL 線是高電平時,SDA 線由低電平向高電平切換,這個情況表示停止條件。(5)、24C02基本功能串行E2PROM是基于I2C-BUS 的存儲器件,遵循二線制協(xié)議,其具有接口方便,體積小,數(shù)據(jù)掉電不丟失等特點。引腳圖引腳功能A0,A1,A2:器件地址選擇 SDA:串行數(shù)據(jù)、地址 SCL:串行時鐘WP:寫保護(hù) Vcc:1.8V-6.0V工作電壓 Vss:地數(shù)據(jù)格式同上(PCF8591)2、 系統(tǒng)電路圖:二、 軟件部分2、程序#include #includei2c.h #includeds1302.h #include #define GPIO_DIG P0 /-定義使用的IO-/-定義PCF8591的讀寫地址-/#define WRITEADDR 0x90 /寫地址#define READADDR 0x91 /讀地址/74LS138定義 sbit LSA=P22; sbit LSB=P23; sbit LSC=P24; /獨立按鍵 sbit S4=P10; sbit S5=P11; sbit S6=P12; sbit S7=P13; sbit LED_RED=P14; /紅燈,手動模式 sbit LED_GREEN=P15; /綠燈,自動模式 sbit fengmingqi=P16; sbit RELAY=P17; bit flag_mode=0; bit issetting=0; uchar num=50; /-定義全局變量-/ unsigned char code DIG_CODE17=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼 unsigned char DisplayData8;/用來存放要顯示的8位數(shù)的值 unsigned char table8; /用來存放自動模式下設(shè)置界面 /-聲明全局變量-/ void DigDisplay(); void Delay10ms(uchar c); bit ISendByte(unsigned char sla,unsigned char c); unsigned char IRcvByte(unsigned char sla); void At24c02Write(unsigned char ,unsigned char ); unsigned char At24c02Read(unsigned char ); void Timer0Configuration(); void Key_down(); /*PCF8591*/ void Pcf8591SendByte(unsigned char channel); unsigned char Pcf8591ReadByte();/* 函 數(shù) 名 : main* 函數(shù)功能 : 主函數(shù)* 輸 入 : 無* 輸 出 : 無*/void main() unsigned int adNum;float value;LED_RED=0;LED_GREEN=0;num = At24c02Read(2);Ds1302Init(); while(1) Pcf8591SendByte(0); /發(fā)送電位器轉(zhuǎn)換命令 adNum = Pcf8591ReadByte(); /將轉(zhuǎn)換結(jié)果讀走value = adNum / 2.55 ; if(adNum99) adNum=99;if(adNumnum) RELAY=1; fengmingqi=1; else RELAY=0;fengmingqi=0; Ds1302ReadTime();Key_down();DisplayData0 = DIG_CODETIME2/16;/時DisplayData1 = DIG_CODETIME2&0x0f; DisplayData2 = 0x40;DisplayData3 = DIG_CODETIME1/16;/分DisplayData4 = DIG_CODETIME1&0x0f;DisplayData5 = 0x00;DisplayData6 = DIG_CODEadNum/10;DisplayData7 = DIG_CODEadNum%10;table0=0x40;table1=0x40;table2=0x40;table3=0x40;table4=0x40;table5=0x40;table6=DIG_CODEnum/10;table7=DIG_CODEnum%10; DigDisplay();/* 按鍵*/void Key_down() uchar n=0; if(S7=0) Delay10ms(1); if(S7=0) if(flag_mode=0) flag_mode=1; else flag_mode=0; while(n50)&(S7=0) Delay10ms(1); n+; n=0;if(flag_mode) /手動模式 LED_RED=1; LED_GREEN=0; if(S6=0) Delay10ms(1);if(S6=0) fengmingqi=fengmingqi;while(n50)&(S6=0) Delay10ms(1); n+;n=0; if(S5=0) Delay10ms(1);if(S5=0) RELAY=0; /打開灌溉系統(tǒng)while(n50)&(S5=0) Delay10ms(1); n+;n=0; if(S4=0) Delay10ms(1);if(S4=0) RELAY=1; /關(guān)閉灌溉系統(tǒng) while(nnum) RELAY=1; fengmingqi=1; else/自動模式 LED_RED=0;LED_GREEN=1; if(S6=0) Delay10ms(1);if(S6=0) issetting=issetting;while(n50)&(S6=0) Delay10ms(1); n+;n=0; if(issetting) if(S5=0) Delay10ms(1);if(S5=0) if(num99) num+;while(n0) num-;while(nnum) RELAY=1; fengmingqi=1;else RELAY=0; fengmingqi=0; /* 函 數(shù) 名 : DigDisplay* 函數(shù)功能 : 使用數(shù)碼管顯示* 輸 入 : 無* 輸 出 : 無*/void DigDisplay()unsigned char i;unsigned int j;for(i=0;i0;c-) for(b=38;b0;b-) for(a=130;a0;a-); 三、 系統(tǒng)說明手冊功能簡述:要求“模擬智能灌溉系統(tǒng)”能夠?qū)崿F(xiàn)土壤濕度測量、土壤濕度和時間顯示、濕度閾值設(shè)定及存儲等基本功能。通過電位器Rb2輸出電壓信號,模擬濕度傳感器輸出信號,再通過AD采集完成濕度測量功能;通過DS1302芯片提供時間信息;通過按鍵完成灌溉系統(tǒng)控制和濕度閾值調(diào)整功能,通過LED完成系統(tǒng)工作狀態(tài)指示功能。系統(tǒng)硬件電路主要由單片機(jī)控制電路、顯示單元、ADC采集單元、RTC單元、EEPROM存儲單元、繼電器控制電路及報警輸出電路組成,系統(tǒng)框圖如圖1所示:1. 系統(tǒng)工作及初始化狀態(tài)說明1.1、自動工作狀態(tài),根據(jù)濕度數(shù)據(jù)自動控制打開或關(guān)閉灌溉設(shè)備,以L1點亮指示;1.2、手動工作狀態(tài),通過按鍵控制打開或關(guān)閉灌溉設(shè)備,以L2點亮指示;1.3、系統(tǒng)上電后處于自動工作狀態(tài),系統(tǒng)初始濕度閾值為50%,此時若濕度低于50%,灌溉設(shè)備自動打開,達(dá)到50%后,灌溉設(shè)備自動關(guān)閉;1.4、灌溉設(shè)備打開或關(guān)閉通過繼電器工作狀態(tài)模擬。2. 數(shù)碼管單元“模擬智能灌溉系統(tǒng)”通過讀取DS1302時鐘芯片相關(guān)寄存器獲得時間,DS1302芯片時、分、秒寄存器在程序中設(shè)定為系統(tǒng)進(jìn)行初始化設(shè)定,時間為08時30分。3. 報警輸出單元系統(tǒng)工作于手動工作狀態(tài)下時,若當(dāng)前濕度低于濕度閾值,蜂鳴器發(fā)出提示音,并可通過按鍵S6關(guān)閉提醒功能。4. 功能按鍵4.1、按鍵S7設(shè)定為系統(tǒng)工作狀態(tài)切換按鍵;4.2、手動工作狀態(tài)下按鍵S6、S5、S4功能設(shè)定如下:按下S6關(guān)閉蜂鳴器提醒功能,再次按下S6打開蜂鳴器提醒功能,如此循環(huán);S5功能設(shè)定為打開灌溉系統(tǒng);S4功能設(shè)定為關(guān)閉灌溉系統(tǒng)。4.3、自動工作狀態(tài)下按鍵S6、S5、S4功能設(shè)定如下:S6功能設(shè)定為濕度閾值調(diào)整按鍵,按下S6后,進(jìn)入濕度閾值調(diào)整界面(如圖3所示),此時按下

溫馨提示

  • 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

提交評論