久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2337|回復(fù): 1
收起左側(cè)

基于單片機(jī)的遠(yuǎn)程自動(dòng)農(nóng)業(yè)灌溉--連江設(shè)計(jì)

[復(fù)制鏈接]
ID:530391 發(fā)表于 2019-9-10 07:56 | 顯示全部樓層 |閱讀模式

基本原理
程序設(shè)置有自動(dòng)手動(dòng)模式,可用遠(yuǎn)程相關(guān)代碼控制模式的切換,自動(dòng)模式可檢測土壤濕度然后灌溉。
代碼
#include <reg52.h>
#include <intrins.h>
                      //包含頭文件
#define uint unsigned int
#define uchar unsigned char
#define RELOAD_COUNT 0xFA         //宏定義波特率發(fā)生器的載入值
//define RELOAD_COUNT (256-(((11520000/16)/12)/9600)) 也可以或波特率9600 //256-晶振頻率/波特率x16=BRT


sfr AUXR=0x8E;
sfr BRT=0x9C;
sfr AUXR1=0xA2;
uchar Receive;
uchar i;                             
uint n;
uchar Recive_table[15];        //用于接收wifi模塊反饋到MCU上的數(shù)據(jù)
sbit sd0 = P0^0;  //濕度端口
sbit sd1 = P0^1;
sbit sd2 = P0^2;
sbit sd3 = P0^3;


//繼電器端口
sbit jd1 = P2^0;
sbit jd2 = P0^5;
sbit jd3 = P0^6;
sbit jd4 = P0^7;


uchar k;  //  開水代碼
uchar m;        //        關(guān)稅代碼


sbit LED0 = P1^0;


void ms_delay(uint t)
{
      uint i,j;
      for(i=t;i>0;i--)
       for(j=110;j>0;j--);
}










void us_delay(uchar t)
{
      while(t--);
}














void Uart_Init()//使用定時(shí)器1作為波特率發(fā)生器(STC89C52、STC89C51、AT89C51或者STC12C560S2等均可)
{
      SCON=0x50;     //設(shè)置為串行口以方式1工作,8位異步通訊,允許接收中斷。
      //一幀信息為10位,1位起始位,8位數(shù)據(jù)位(低位在先),1位停止位。
      PCON=0x80;     //SMOD波特率選擇位為1,SMOD=1.
      TMOD=0x21;     //設(shè)置定時(shí)器1為波特率發(fā)生器,工作在模式2,8位自動(dòng)裝載
      TH1=RELOAD_COUNT;//波特率9600 ,TH1=256-FOSC/16/12/波特率
      TL1=TH1;
      EA=1;                            //總中斷打開
      ES=0;                             //關(guān)閉串口中斷
      TR1=1;                     //啟動(dòng)定時(shí)器1
}
















void Send_Uart(uchar value)
{
      ES=0;         //關(guān)閉串口中斷
      TI=0;         //清發(fā)送完畢中斷請(qǐng)求標(biāo)志位
      SBUF=value;     //發(fā)送
      while(TI==0);   //等待發(fā)送完畢
      TI=0;         //清發(fā)送完畢中斷請(qǐng)求標(biāo)志位
      ES=1;         //允許串口中斷
}












void ESP8266_Set(uchar *puf) // 數(shù)組指針*puf指向字符串?dāng)?shù)組               
{


      while(*puf!='\0')    //遇到空格跳出循環(huán)
      {
           Send_Uart(*puf);  //向WIFI模塊發(fā)送控制指令。
           us_delay(5);
           puf++;      
      }
      us_delay(5);
      Send_Uart('\r');//回車
      us_delay(5);
      Send_Uart('\n');   //換行
      ms_delay(50);
}  


//四位數(shù)據(jù)發(fā)送

void ESP8266_Sent(uchar *puf)      // 數(shù)組指針*puf指向字符串?dāng)?shù)組               
{
      ESP8266_Set("AT+CIPSEND=0,4");
           ms_delay(30);
      while(*puf!='\0')    //遇到空格跳出循環(huán)
      {
           Send_Uart(*puf);   //向WIFI模塊發(fā)送控制指令。
           us_delay(5);
           puf++;      
      }
      us_delay(5);
      Send_Uart('\n');   //換行
      ms_delay(10);
}   


//六位數(shù)據(jù)發(fā)送


void ESP82661_Sent(uchar *puf)      // 數(shù)組指針*puf指向字符串?dāng)?shù)組               
{
      ESP8266_Set("AT+CIPSEND=0,10");
           ms_delay(100);
      while(*puf!='\0')    //遇到空格跳出循環(huán)
      {
           Send_Uart(*puf);   //向WIFI模塊發(fā)送控制指令。
           us_delay(5);
           puf++;      
      }
      us_delay(5);
      Send_Uart('\n');   //換行
          Send_Uart('\n');   //換行
      ms_delay(100);
}   






//多位數(shù)據(jù)發(fā)送


void ESP826612_Sent(uchar *puf)      // 數(shù)組指針*puf指向字符串?dāng)?shù)組               
{
      ESP8266_Set("AT+CIPSEND=0,40");
           ms_delay(100);
      while(*puf!='\0')    //遇到空格跳出循環(huán)
      {
           Send_Uart(*puf);   //向WIFI模塊發(fā)送控制指令。
           us_delay(5);
           puf++;      
      }
      us_delay(5);
      Send_Uart('\n');   //換行
          Send_Uart('\n');   //換行
      ms_delay(100);
}   










void main()
{         jd1=0;
        sd0=1 ;
     LED0=0;          //gongzuozhishi
       ms_delay(5000)  ;
                   LED0=1;
                   ms_delay(1000)         ;
      LED0=0;//關(guān)閉LED燈
      Uart_Init();//使用獨(dú)立的波特率發(fā)生器
//   ESP8266_Set("AT+CWMODE=2"); //設(shè)置路由器模式 1 station模式 2 AP
//點(diǎn) 路由器模式 3 station+AP混合模式
       // ms_delay(1000)         ;
//ESP8266_Set("AT+RST");     //重新啟動(dòng)wifi模塊


       ms_delay(100)         ;


ESP8266_Set("AT+CIOBAUD=9600");     //重新啟動(dòng)wifi模塊
                                         ms_delay(1000)         ;


   //       ESP8266_Set("AT+CWSAP=\"WIFI\",\"1234567890\",11,4");
//設(shè)置模塊SSID:WIFI, PWD:密碼 及安全類型加密模式(WPA2-PSK)
ESP8266_Set("AT+CIPMUX=1");//開啟多連接模式,允許多個(gè)各客戶端接入


         ms_delay(1000)         ;


ESP8266_Set("AT+CIPSERVER=1,8899");  //啟動(dòng)TCP/IP 端口為8080 實(shí)現(xiàn)基于網(wǎng)絡(luò)//控制
                   ms_delay(1000)         ;
          ESP8266_Sent("連接");
                   ms_delay(1000)         ;
          ESP82661_Sent("即將開始  ");
                   ms_delay(2000)         ;
          ESP82661_Sent("初始化完成");




      ES=1;
           m=0;
      LED0=1;//關(guān)閉LED燈
          ms_delay(1000) ;
         
          ESP82661_Sent("進(jìn)入循環(huán)掃");        
                                                                                         //允許串口中斷
      while(1)
      {  
//sbit sd0 = P0^0;
//sbit sd1 = P0^1;
//sbit sd2 = P0^2;
//sbit sd3 = P0^3;








  if(m==0)
{
ESP82661_Sent("進(jìn)入自動(dòng)  ");


                     ms_delay(1000) ;




        if(sd0==1)
        {


           jd1=0;
           ESP8266_Sent("開水");


        }


         if(sd0==0)
        {


           jd1=1;
          ESP8266_Sent("關(guān)水");
           ms_delay(1000) ;
           //ESP8266_Sent("關(guān)水");


        }
}




  if(m==1)
{
          ESP82661_Sent("進(jìn)入遠(yuǎn)程  ");


                     ms_delay(1000) ;


        if(k==11)
        {


           jd1=0;
           ESP8266_Sent("開水");


        }


         if(k==12)
        {


           jd1=1;
          ESP8266_Sent("關(guān)水");
           ms_delay(1000) ;
           //ESP8266_Sent("關(guān)水");


        }


}


  /*


        if(k==12)
        {


           jd1=1;
           ESP8266_Sent("  12");
          ms_delay(2000)         ;
           ESP8266_Sent("來水");


        }




         if(k==13)
        {
           sd0=0;
           jd1=0;
          ESP8266_Sent("1313");
         // ms_delay(2000)         ;
          // ms_delay(1000) ;
           //ESP8266_Sent("關(guān)水");
            sd0=1;
        }




*/


































//sd0=1;


}         
}









void uart() interrupt 4
{
  static uchar i=0;


    if(RI == 1)   


    {


        RI = 0;     //清除串口接收標(biāo)志位


        Recive_table[ i]=SBUF;[ i]


        if(Recive_table[0]=='+')


        {


                i++;


        }


        else


        {


                i=0;


        }












        if(i>10)
        {
//                 if(Recive_table[7]=='1'||Recive_table[7]=='2')
                 {
            i=0;
                    }
                if(Recive_table[7]=='1')
                {
//                 ESP8266_Sent("7wei");
                        
                switch(Recive_table[9])
                {


                        case '1':


                                LED0=0;
                                ESP8266_Sent("循1");
        
                                break;


                        case '2':


                                LED0=1;
                                ESP8266_Sent("循2");
                                break;


                        case '3':
                                  ESP8266_Sent("循3");
                                LED0=0;


                                break;


                        case '4':


                                LED0=1;
                                  ESP8266_Sent("循4");
                                break;


                        case '5':


                                LED0=0;
                                    ESP8266_Sent("循5");
                                break;


                        case '6':


                                LED0=1;
                                    ESP8266_Sent("循6");
                                break;
               
                //        case '0':
         //
                //                LED0=1;
                //                    ESP8266_Sent("循0");
                //                break;


                        case '7':


                                LED0=0;
                                    ESP8266_Sent("循7");
                                break;




                        case '8':


                                LED0=1;
                                ESP8266_Sent("循8");
                                break;




                        case '9':


                                LED0=0;
                                    ESP8266_Sent("循9");
                                break;






                }        //switchjieshu
        }


           /*/
                         if(Recive_table[10]=='2')
    {
                                  ESP8266_Sent("10w2");


           }
                 */


         else if(Recive_table[7]=='2')
    {
                switch(Recive_table[10])


                {
                         case '0':




                                LED0=0;


                                k=10;


                                break;




                        case '1':


                                LED0=1;
                                   k=11;
//                         ESP8266_Sent("循11");
                                break;


                        case '2':


                                LED0=0;
                                   k=12;
                        //        ESP8266_Sent("循12");
                                break;


                        case '3':
                                 // ESP8266_Sent("循13");
                                 m=1;
                                 k=13;
                                LED0=1;


                                break;


                        case '4':


                                LED0=0;
                                m=0;
                         //          ESP8266_Sent("循14");
                                break;


                        case '5':


                                LED0=0;
                                  ESP8266_Sent("循15");
                                break;


                        case '6':


                                LED0=1;
                                  ESP8266_Sent("循16");
                                break;


                }        //switchjieshu
          }        ;
















        










                }        //switchjieshu














   


  }


}
















/*
void Uart_Interrupt() interrupt 4        
{
  static uchar i=0;
  
      if(RI==1)
      {
           RI=0;
      Receive=SBUF;        //MCU接收wifi模塊反饋回來的數(shù)據(jù)        


      Recive_table[15]=Receive;              
           i++;         
           if((Recive_table[i-1]=='\n'))i=0;


                     //遇到換行 重新裝值
                  
      }
      else TI=0;        
}
*/


回復(fù)

使用道具 舉報(bào)

ID:505058 發(fā)表于 2021-4-7 19:00 | 顯示全部樓層
請(qǐng)問有完整的工程文件和仿真嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久色视频在线 | 国产九九精品 | 国产成人免费视频 | 天天操天天射综合 | 日韩一级| 久久久精品视频一区二区三区 | 国内91在线| 五月天综合网 | 精品国产精品 | 91亚洲国产成人精品一区二三 | 色欧美综合 | 亚洲视频中文字幕 | 日韩视频在线播放 | 在线看亚洲 | 中文字幕人成乱码在线观看 | 一级做a爰片性色毛片16 | 在线观看国产www | 精品中文字幕视频 | 天天影视综合 | 亚洲精品一区二区三区中文字幕 | 99精品久久 | 北条麻妃视频在线观看 | 91欧美| 久久福利 | 特黄色一级毛片 | 日本中文在线视频 | 久久涩涩 | 久久亚洲国产精品 | 永久看片 | 一区二区三区中文字幕 | 亚洲成人日韩 | 一色桃子av一区二区 | 搞黄视频免费看 | zzzwww在线看片免费 | 中文字幕在线观看成人 | 五月婷婷在线视频 | 日韩免费视频一区二区 | 91免费电影 | 亚洲精品v日韩精品 | 韩国久久精品 | 一区二区三区欧美 |