版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
模擬灌溉系統(tǒng)本頁(yè)僅作為文檔頁(yè)封面,使用時(shí)可以刪除Thisdocumentisforreferenceonly-rar21year.March微機(jī)與單片機(jī)原理及應(yīng)用
課程設(shè)計(jì)報(bào)告題目:模擬智能灌溉系統(tǒng)學(xué)號(hào):110603136姓名:黃鑫年級(jí):11級(jí)自動(dòng)化指導(dǎo)教師:叢玉華開(kāi)課學(xué)期教室上交時(shí)間成績(jī)大三上實(shí)B3032013-12-21-、硬件部分1、涉及芯片:(1)、STC90C519RD+基本功能8位CPU-4kbytes程序存儲(chǔ)器(ROM)(52為8K)128bytes的數(shù)據(jù)存儲(chǔ)器(RAM)(52有256bytes的RAM)32條I/O口線-111條指令,大部分為單字節(jié)指令21個(gè)專用寄存器2個(gè)可編程定時(shí)/計(jì)數(shù)器?5個(gè)中斷源,2個(gè)優(yōu)先級(jí)(52有6個(gè))一個(gè)全雙工串行通信口外部數(shù)據(jù)存儲(chǔ)器尋址空間為64kB外部程序存儲(chǔ)器尋址空間為64kB邏輯操作位尋址功能?雙列直插40PinDIP封裝單一+5V電源供電CPU:由運(yùn)算和控制邏輯組成,同時(shí)還包括中斷系統(tǒng)和部分外部特殊功能寄存器;RAM:用以存放可以讀寫(xiě)的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);ROM:用以存放程序、一些原始數(shù)據(jù)和表格;I/O口:四個(gè)8位并行I/O口,既可用作輸入,也可用作輸出T/C:兩個(gè)定時(shí)/記數(shù)器,既可以工作在定時(shí)模式,也可以工作在記數(shù)模式;五個(gè)中斷源的中斷控制系統(tǒng);一個(gè)全雙HUART(通用異步接收發(fā)送器)的串行I/O口,用于實(shí)現(xiàn)單片機(jī)之間或單片機(jī)與微機(jī)之間的串行通信;片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最佳振蕩頻率為6M—12M。引腳圖P1.0匚1V如□VccP1.1C239□P0.0PL2c338□P0,1F1.3c4町nTO,2F1.4匚538ziFO一3匚fi臨ZIKO.1P1.6匚7—34□P0.5PL7e8g33□P0,6RSifvpl)匚96界qPD.7洋.O/RXJ)匚10迂31=iI■:A/VppP3.1/TX1)匚11—30nM.E/P[fOCrs.a/nTO匚12o跆□P5EN嘴3/INTI匚13g卵□P2.74/TOt[427□PLs曩n/T]C15□P3.6/■亟匚1625□P2.4P3.7/RD匚1724nP2.3XTAI-2仁M對(duì)□5匚22□E2.1&c2021=iP2.0引腳功能P0口有三個(gè)功能:1、外部擴(kuò)展存儲(chǔ)器時(shí),當(dāng)做數(shù)據(jù)總線2、外部擴(kuò)展存儲(chǔ)器時(shí),當(dāng)作地址總線3、不擴(kuò)展時(shí),可做一般的I/O使用,但內(nèi)部無(wú)上拉電阻,作為輸入或輸出時(shí)應(yīng)在外部接上拉電阻。、P1口只做I/O口使用:其內(nèi)部有上拉電阻。P2口有兩個(gè)功能:1、擴(kuò)展外部存儲(chǔ)器時(shí),當(dāng)作地址總線使用2、做一般I/O口使用,其內(nèi)部有上拉電阻;P3口有兩個(gè)功能:除了作為I/O使用外(其內(nèi)部有上拉電阻),還有一些特殊功能,由特殊寄存器來(lái)設(shè)置,PSEN外部程序存儲(chǔ)器讀選通信號(hào)ALE地址鎖存控制信號(hào)EA訪問(wèn)和序存儲(chǔ)器控制信號(hào)XTAL1和XTAL2外接晶振引腳。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此二引腳用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號(hào)。VCC:電源+5V輸入VSS:GND接地RST復(fù)位信號(hào)、74HC138基本功能HC138按照三位二進(jìn)制輸入碼和賦能輸入條件,從8個(gè)輸出端中譯出一個(gè)低電平輸出。真值表引腳圖
EsE2ElA*Ai&YOy1Y2Y3Y4EsE2ElA*Ai&YOy1Y2Y3Y4Y5Y6Y7XElXXXXEEIEHHHHEEHXXHXXXFFHHHHrrBIXXXXXrrHHHHrrBHLLLLLLHHHHHHHHLLLLHHLHHHHHHHLLLHLH.HLHHHH.HHLLLHHH.HHLHHH.HIILLHLLE[I[HHLHE[IIHLr.HLHFFHHHHLrrHHLLHHLHHHHHHLHHLLHHHHHHHHHHL74HC138集成譯碼器功能表.A0*ETE7E3(¥7)¥7頃4DtJEEEEEEldcg網(wǎng)網(wǎng)(¥3){Y4(V5(V6
VCY0Y1Y2Y3Y4Y5Ye
SS23232313235]“H一高電平L一低電平X一任意電平E3.E2.E?為輸入使能端Aw,Ai,Aq為二進(jìn)制數(shù)據(jù)輸入端可"寸為8個(gè)輸出信號(hào)字母上面的J號(hào)說(shuō)明該輸入或輸出是低電平有效、DS1302基本功能74HC138可以對(duì)年、月、日、周、日、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償?shù)榷喾N功能。引腳圖VcC218X127?X236GND—45—VcciSCLKI/ORST引腳功能DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),Vcc2給VcC218X127?X236GND—45—VcciSCLKI/ORSTX1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)傳送的方法。當(dāng)RST為高電
平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過(guò)程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向)。SCLK為時(shí)鐘輸入端。數(shù)據(jù)格式的控剖宇節(jié)的控剖宇節(jié)控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫(xiě)入DS1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫(xiě)操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開(kāi)始輸出。(4)、PCF8591基本功能PCF8591的功能包括多路模擬輸入、內(nèi)置跟蹤保持、8-bit模數(shù)轉(zhuǎn)換和8-bit數(shù)模轉(zhuǎn)引腳圖引腳功AIN0?地址dElIX匕pcraseiE叵A1NDA1NLA1N2A1N3A1A£Vga畫(huà)AOUT模轉(zhuǎn)引腳圖引腳功AIN0?地址dElIX匕pcraseiE叵A1NDA1NLA1N2A1N3A1A£Vga畫(huà)AOUT回’『R3F畫(huà)EXT回OSC亟5CLTSDA換。VDD、VSS:電源端。(2.5?6V)能AIN3:模擬信號(hào)輸入端。A0?A2:引腳端。SDA、SCL:I2C總線的數(shù)據(jù)線、時(shí)鐘線。OSC:外部時(shí)鐘輸入端,內(nèi)部時(shí)鐘輸出端。EXT:內(nèi)部、外部時(shí)鐘選擇線,使用內(nèi)部時(shí)鐘時(shí)EXT接地。AGND:模擬信號(hào)地。AOUT:D/A轉(zhuǎn)換輸出端。VREF:基準(zhǔn)電源端。數(shù)據(jù)格式在傳輸數(shù)據(jù)的時(shí)候,SDA線必須在時(shí)鐘的高電平周期保持穩(wěn)定,SDA的高或低電平狀態(tài)只有在SCL線的時(shí)鐘信號(hào)是低電平時(shí)才能改變。SDASCL教據(jù)線穩(wěn)定'允音教數(shù)據(jù)正常|據(jù)改變SCL線是高電平時(shí),SDA線從高電平向低電平切換,這個(gè)情況表示起始條件;SCLSDASCL教據(jù)線穩(wěn)定'允音教數(shù)據(jù)正常|據(jù)改變、24C02基本功能串行E2PROM是基于I2C-BUS的存儲(chǔ)器件,遵循二線制協(xié)議,其具有接口方便,體積小,數(shù)據(jù)掉電不丟失等特點(diǎn)。引腳圖引腳功能A0,A1,A2:器件地址選擇SDA:串行數(shù)據(jù)、地址SCL:串行時(shí)鐘WP:寫(xiě)保護(hù)Vcc:1.8V-6.0V工作電壓Vss:地?cái)?shù)據(jù)格式同上(PCF8591)2、系統(tǒng)電路圖:二、軟件部分2、程序#include<reg51.h>#include〃i2c.h〃#include"ds1302.h"#include<intrins.h>#defineGPIO_DIGP0//--定義使用的IO--////--定義PCF8591的讀寫(xiě)地址--//#defineWRITEADDR0x90//寫(xiě)地址#defineREADADDR0x91//讀地址//74LS138定義sbitLSA=P2"2;sbitLSB=P2”3;sbitLSC=P2"4;〃獨(dú)立按鍵sbitS4=P「0;sbitS5=P「1;sbitS6=P「2;sbitS7=P「3;sbitLED_RED=P1"4;//紅燈,手動(dòng)模式sbitLED_GREEN=P1”5;〃綠燈,自動(dòng)模式sbitfengmingqi=P1"6;sbitRELAY=P1”7;bitflag_mode=0;bitissetting=0;ucharnum=50;//—定義全局變量--//unsignedcharcodeDIG_CODE[17]={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的顯示碼unsignedcharDisplayData[8];//用來(lái)存放要顯示的8位數(shù)的值unsignedchartable[8];//用來(lái)存放自動(dòng)模式下設(shè)置界面//--聲明全局變量--//voidDigDisplay();voidDelay10ms(ucharc);bitISendByte(unsignedcharsla,unsignedcharc);unsignedcharIRcvByte(unsignedcharsla);voidAt24c02Write(unsignedchar,unsignedchar);unsignedcharAt24c02Read(unsignedchar);voidTimer0Configuration();voidKey_down();/*****PCF8591**********/voidPcf8591SendByte(unsignedcharchannel);unsignedcharPcf8591ReadByte();/********************************************************************************函數(shù)名:main*函數(shù)功能:主函數(shù)*輸入:無(wú)*輸出:無(wú)*******************************************************************************/voidmain()(unsignedintadNum;floatvalue;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(adNum>99)adNum=99;if(adNum>num)(RELAY=1;fengmingqi=1;}else(RELAY=0;fengmingqi=0;}Ds1302ReadTime();Key_down();DisplayData[0]=DIG_CODE[TIME[2]/16];〃時(shí)DisplayData[1]=DIG_CODE[TIME[2]&0x0f];DisplayData[2]=0x40;DisplayData[3]=DIG_CODE[TIME[1]/16];〃分DisplayData[4]=DIG_CODE[TIME[1]&0x0f];DisplayData[5]=0x00;DisplayData[6]=DIG_CODE[adNum/10];DisplayData[7]=DIG_CODE[adNum%10];table[0]=0x40;table[1]=0x40;table[2]=0x40;table[3]=0x40;table[4]=0x40;table[5]=0x40;table[6]=DIG_CODE[num/10];table[7]=DIG_CODE[num%10];DigDisplay();}}/********************************************************************************按鍵*******************************************************************************/voidKey_down()(ucharn=0;if(S7==0)(Delay10ms(1);if(S7==0)(if(flag_mode==0)flag_mode=1;elseflag_mode=0;}while((n<50)&&(S7==0))(Delay10ms(1);n++;}n=0;}if(flag_mode)//手動(dòng)模式(LED_RED=1;LED_GREEN=0;if(S6==0)(Delay10ms(1);if(S6==0)(fengmingqi—fengmingqi;}while((n<50)&&(S6==0))(Delay10ms(1);n++;}n=0;}if(S5==0)(Delay10ms(1);if(S5==0)(RELAY=0;//打開(kāi)灌溉系統(tǒng)}while((n<50)&&(S5==0))(Delay10ms(1);n++;}n=0;}if(S4==0)(Delay10ms(1);if(S4==0)(RELAY=1;//關(guān)閉灌溉系統(tǒng)}while((n<50)&&(S4==0))(Delay10ms(1);n++;}n=0;}if(adNum>num)(RELAY=1;fengmingqi=1;}}else//自動(dòng)模式(LED_RED=0;LED_GREEN=1;if(S6==0)Delay10ms(1);if(S6==0)issetting=~issettingwhile((n<50)&&(S6==0))Delay10ms(1);n++;n=0;if(issetting)if(S5==0)Delay10ms(1);if(S5==0)if(num<99)
num++;while((n<50)&&(S5==0))Delay10ms(1);n++;n=0;if(S4==0)Delay10ms(1);if(S4==0)if(num>0)num--;while((n<50)&&(S4==0))Delay10ms(1);n++;}}else(At24c02Write(2,num);}if(adNum>num)(RELAY=1;fengmingqi=1;}else(RELAY=0;fengmingqi=0;}}}/********************************************************************************函數(shù)名:DigDisplay*函數(shù)功能:使用數(shù)碼管顯示*輸入:無(wú)*輸出:無(wú)*******************************************************************************/voidDigDisplay()(unsignedchari;unsignedintj;for(i=0;i<8;i++)(switch(i)//位選,選擇點(diǎn)亮的數(shù)碼管,(case(0):LSA=0;LSB=0;LSC=0;break;//顯示第0位case(1):LSA=1;LSB=0;LSC=0;break;//顯示第1位case(2):LSA=0;LSB=1;LSC=0;break;//顯示第2位case(3):LSA=1;LSB=1;LSC=0;break;//顯示第3位case(4):LSA=0;LSB=0;LSC=1;break;//顯示第4位case(5):LSA=1;LSB=0;LSC=1;break;//顯示第5位case(6):LSA=0;LSB=1;LSC=1;break;//顯示第6位case(7):LSA=1;LSB=1;LSC=1;break;//顯示第7位}if(issetting)(GPIO_DIG=table[i];〃發(fā)送段碼}else(GPIO_DIG=DisplayData[i];//發(fā)送段碼}j=50;//掃描間隔時(shí)間設(shè)定while(j--);GPIO_DIG=0x00;//消隱}}/*******************************************************************************函數(shù)名:voidAt24c02Write(unsignedcharaddr,unsignedchardat)*函數(shù)功能:往24c02的一個(gè)地址寫(xiě)入一個(gè)數(shù)據(jù)*輸入:無(wú)*輸出:無(wú)*******************************************************************************/voidAt24c02Write(unsignedcharaddr,unsignedchardat)(I2C_Start();I2C_SendByte(0xa0,1);//發(fā)送寫(xiě)器件地址I2C_SendByte(addr,1);//發(fā)送要寫(xiě)入內(nèi)存地址I2C_SendByte(dat,0);〃發(fā)送數(shù)據(jù)I2C_Stop();}/*******************************************************************************函數(shù)名:unsignedcharAt24c02Read(unsignedcharaddr)*函數(shù)功能:讀取24c02的一個(gè)地址的一個(gè)數(shù)據(jù)*輸入:無(wú)*輸出:無(wú)*******************************************************************************/unsignedcharAt24c02Read(unsignedcharaddr)(unsignedcharnum;I2C_Start();I2C_SendByte(0xa0,1);//發(fā)送寫(xiě)器件地址I2C_SendByte(addr,1);//發(fā)送要讀取的地址I2C_Start();I2C_SendByte(0xa1,1);//發(fā)送讀器件地址num=I2C_ReadByte();〃讀取數(shù)據(jù)I2C_Stop();returnnum;}/*******************************************************************************函數(shù)名:Pcf8591SendByte*函數(shù)功能:寫(xiě)入一個(gè)控制命令*輸入:channel(轉(zhuǎn)換通道)*輸出:無(wú)*******************************************************************************/voidPcf8591SendByte(unsignedcharchannel)(I2C_Start();I2C_SendByte(WRITEADDR,1);//發(fā)送寫(xiě)器件地址I2C_SendByte(0x40|channel,0);//發(fā)送控制寄存器I2C_Stop();}/*******************************************************************************函數(shù)名:Pcf8591ReadByte*函數(shù)功能:讀取一個(gè)轉(zhuǎn)換值*輸入:無(wú)*輸出:dat*******************************************************************************/unsignedcharPcf8591ReadByte()(unsignedchardat;I2C_Start();I2C_SendByte(READADDR,1);//發(fā)送讀器件地址dat=I2C_ReadByte();//讀取數(shù)據(jù)I2C_Stop();//結(jié)束總線returndat;}voidDelay10ms(ucharc)(uchara,b;for(;c>0;c--)(for(b=38;b>0;b--)(for(a=130;a>0;a--);}}}三、系統(tǒng)說(shuō)明手冊(cè)功能簡(jiǎn)述:要求“模擬智能灌溉系統(tǒng)”能夠?qū)崿F(xiàn)土壤濕度測(cè)量、土壤濕度和時(shí)間顯示、濕度閾值設(shè)定及存儲(chǔ)等基本功能。通過(guò)電位器Rb2輸出電壓信號(hào),模擬濕度傳感器輸出信號(hào),再通過(guò)AD采集完成濕度測(cè)量功能;通過(guò)DS1302芯片提供時(shí)間信息;通過(guò)按鍵完成灌溉系統(tǒng)控制和濕度閾值調(diào)整功能,通過(guò)LED完成系統(tǒng)工作狀態(tài)指示功能。系統(tǒng)硬件電路主要由單片機(jī)控制電路、顯示單元、ADC采集單元、RTC單元、EEPROM存儲(chǔ)單元、繼
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年哈爾濱貨運(yùn)從業(yè)資格考試題目和答案大全
- 人物實(shí)踐調(diào)研報(bào)告范文
- 社會(huì)實(shí)踐報(bào)告表范文
- 2025年昌都貨運(yùn)從業(yè)資格模擬考試題
- 2025年贛州b2考貨運(yùn)資格證要多久
- 2025年湖北貨運(yùn)從業(yè)資格證考試題庫(kù)工具箱
- 2025年北京年貨運(yùn)從業(yè)資格證考試題庫(kù)
- 小兒糖尿病的飲食護(hù)理
- 八年級(jí)英語(yǔ)Howlonghaveyoubeencollectingshells課件
- 【培訓(xùn)課件】軟件開(kāi)發(fā)過(guò)程中的項(xiàng)目管理
- 電梯困人應(yīng)急演練方案
- 【初中歷史】西晉的短暫統(tǒng)一和北方各族的內(nèi)遷課件 2024-2025學(xué)年統(tǒng)編版七年級(jí)歷史上冊(cè)
- 2024供應(yīng)鏈合作伙伴采購(gòu)基本協(xié)議
- 中醫(yī)治療淋巴水腫
- 2024年高考真題-政治(江蘇卷) 含解析
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院污水處理技術(shù)方案
- 課件小學(xué)體育教學(xué)課件
- 2024年人教版初二地理下冊(cè)期末考試卷(附答案)
- 易制毒、易制爆化學(xué)品防盜搶?xiě)?yīng)急演練及預(yù)案
- 餐飲服務(wù)電子教案 學(xué)習(xí)任務(wù)3 西餐正餐服務(wù)
- 財(cái)務(wù)管理案例光線傳媒影視巨頭的資本路
評(píng)論
0/150
提交評(píng)論