1. 程式人生 > 實用技巧 >298【畢設課設】基於51微控制器的灌溉系統設計

298【畢設課設】基於51微控制器的灌溉系統設計

【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

51灌溉系統設計-土壤-PCF8591-光敏-藍芽

本設計由STC89C52微控制器電路+2路土壤溼度感測器電路+藍芽模組電路+PCF8591 AD模組電路+水泵控制電路+光敏電阻模組電路+電源電路組成。

1、實時檢測2路土壤溼度,取平均值通過藍芽顯示在手機APP上。

2、通過手機發送指令(具體指令賣家自行確定)可以設定平均的土壤溼度值的上限和下限,噹噹前檢測到的平均土壤溼度低於下限,則水泵不啟動,如果大於下限,但是沒超過上限,則水泵啟動。超過上限,水泵也不啟動。

3、白天水泵不啟動,晚上可以水泵啟動。且光照閾值可以通過光敏電阻模組上的電位器調節。(備註:光照條件的優先順序是最高的)

接收命令:

Now:50 10-80 //表示當前50溼度 10為下限 80為上線

傳送命令:

*S10-80#

* //起始標誌

S10-80 //設定命令 設定值可以是0-99

# //結束標誌

#include<reg52.h> //包含標頭檔案,一般情況不需要改動,標頭檔案包含特殊功能暫存器的定義
#include<stdio.h>
#include "delay.h"
#include "i2c.h"

sbit shuibeng=P1^1;		//水泵介面
sbit ligh=P1^0;		//光照介面
		  
unsigned char dis0[16];			   //列印陣列初始化
unsigned long time_20ms=0;		   //定時器計數
unsigned char firstin =0;			  //首次接收到標誌
unsigned char tab[10];				  //串列埠資料暫存
unsigned char Count=0;				  //串列埠接收計數
unsigned char  uartbusy =0;			  //串列埠判忙
unsigned char reportFlag = 0;		  //資料上報標誌
unsigned char setFlag = 0;		  //資料上報標誌

unsigned int shiduVal =0; 
unsigned char doSetNum = 20;//下限
unsigned char upSetNum = 70;//上限

void Init_Timer0(void);		//函式宣告
void uartSendStr(unsigned char *s,unsigned char length);
void UART_Init(void);
void uartSendByte(unsigned char dat);

void main (void)
{    
	unsigned char mid01,mid02; 
	Init_Timer0();        //定時器0初始化
	UART_Init();