• 方案介紹
  • 附件下載
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機的自動澆花系統(tǒng)設計

2024/12/16
3424
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

有需要資料的可了解一下.docx

共1個文件

畢業(yè)設計是設計一種51單片機控制的自動澆水系統(tǒng),實現(xiàn)室內盆花澆水的自動化系統(tǒng)。該系統(tǒng)可對土壤的濕度進行監(jiān)控,并對作物進行適時適量的澆水。其核心是51單片機和土壤濕度檢測器YL-69和顯示電路以及澆水繼電器驅動電路構成的檢測控制部分。主要研究土壤濕度與澆水時間之間的關系、澆灌控制技術及設備系統(tǒng)的硬件、軟件編程各個部分。

檢測部分,單片機選用AT89C51單片機,軟件選用C51語言編程。土壤濕度采集與顯示電路可將檢測到的土壤濕度模擬量放大轉換成數(shù)字量通過單片機內程序控制精確的將溫度與濕度分別顯示在LED數(shù)碼管顯示屏上,通過單片機內的中斷服務程序判斷是否要給盆花澆水,若需澆水,則單片機系統(tǒng)發(fā)出澆水信號,開始澆水,若不需要澆水,則進行下一次循環(huán)檢測。

在澆水系統(tǒng)中也同時設計一個定時澆水部分,通過按鍵開關設置不同的澆水時間段,在時間段以內時,單片機驅動澆水系統(tǒng),開始澆水,如不在時間段內,則不澆水。

/ADC0809
sbit ST=P3^3;
sbit EOC=P3^4;
sbit OE=P3^2;
//按鍵
sbit Key1=P3^5;
sbit Key2=P3^6;
sbit Key3=P3^7;

//顯示數(shù)組		0-9+F
uchar Data_[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x71,0x3f};
sbit Wei1 = P2^7;
sbit Wei2 = P2^6;
sbit Wei3 = P2^5;
sbit Wei4 = P2^4;
//函數(shù)聲明
extern uchar ADC0809();
void Display(uchar X,uchar Data);
void delay(uint t);

//酒精含量變量
uchar temp=0;
//蜂鳴器變量
uchar FF=125;
//顯示模式
uchar Mode=0;
uchar p;

void main()
{

	while(1)
	{
		//正常模式
		if(Mode==0)
		{
			//讀取AD值
			temp=ADC0809();
			for(p=0;p<30;p++)
			Display(0,temp);
			//判斷是否報警
			if(temp>FF)
			{
				Feng=0;
			}
			else
			{
				Feng=1;
			}
		}
		//調整模式
		else
		{
			Display(1,FF);
		}
		//功能鍵
		if(Key3==0)
		{
			Feng=0;
			delay(100);
			while(Key3==0)
			{
				if(Mode==0)
					Display(0,temp);	
				else
					Display(1,FF);									
			}
			if(Mode==0)
				Mode=1;
			else
				Mode=0;
			Feng=1;
		}
		//增加
		if(Key2==0&&Mode==1)
		{
			Feng=0;
			delay(100);
			while(Key2==0)
			{
					Display(1,FF);									
			}
			FF++;
			if(FF==251)	
				FF=250;	
			Feng=1;
		}
		//減少
		if(Key1==0&&Mode==1)
		{
			Feng=0;
			delay(100);
			while(Key1==0)
			{
					Display(1,FF);									
			}
			FF--;
			if(FF==0xff)	
				FF=0;	
			Feng=1;
		}
	}
}
//ADC0809讀取信息
uchar ADC0809()
{
	uchar temp_=0x00;
	//初始化高阻太
	OE=0;
	//轉化初始化
	ST=0;
	//開始轉換
	ST=1;
	ST=0;
	//外部中斷等待AD轉換結束
	while(EOC==0)
	//讀取轉換的AD值
	OE=1;
	temp_=Data_ADC0809;
	OE=0;
	return temp_;
}
//延時
void delay(uint t)
{
	uint i,j;
	for(i=0;i<t;i++)
		for(j=0;j<10;j++);
}

//顯示       X表示狀態(tài)     Data表示數(shù)據(jù)
void Display(uchar X,uchar Data)
{
	Wei1=1;
	Wei2=1;
	Wei3=1;
	Wei4=1;
	P0=0xff;

	//正常模式
	if(X==0)
	{
		P0=~Data_[11];
	}
	//非正常
	else

資料借鑒于此紛傳

  • 有需要資料的可了解一下.docx
    下載

相關推薦

方案定制

去合作
方案開發(fā)定制化,2000+方案商即時響應!