標題: ESP8266與51單片機通信源碼 [打印本頁]

作者: 不動生色    時間: 2018-6-4 22:22
標題: ESP8266與51單片機通信源碼
#include<reg52.h>

void UartConfiguration();
void Uart();
void change_name();
void ESP8266_init();
void DelayUs2x(unsigned char t);
void DelayMs(unsigned char t);


void DelayUs2x(unsigned char t)
{   
while(--t);
}

void DelayMs(unsigned char t)
{

while(t--)
{
     DelayUs2x(245);
         DelayUs2x(245);
}
}
void send()
{

   char *a="AT+CIPSEND=0,5\r\n";
   char *b="12346\r\n";
   while(*a!='\0')
        {
                SBUF=*a;
                while(!TI);    //等待發(fā)送完成
                TI=0;
                a++;
        }
        DelayMs(100);
        while(*b!='\0')
        {
                SBUF=*b;
                while(!TI);    //等待發(fā)送完成
                TI=0;
                b++;
        }
}

void connect_init()
{
        char *a="AT+CIPMUX=1\r\n";
        char *b="AT+CIPSERVER=1,8080\r\n";
        while(*a!='\0')
        {
                SBUF=*a;
                while(!TI);    //等待發(fā)送完成
                TI=0;
                a++;
        }       
        DelayMs(5);
        while(*b!='\0')
        {
                SBUF=*b;
                while(!TI);    //等待發(fā)送完成
                TI=0;
                b++;
        }               
}


void UartConfiguration()
{
          TMOD=0x20;      //設置計數(shù)器1的工作方式2
        TH1=0xfd;                        //設置計數(shù)器1的初值,決定波特率
        TL1=0xfd;                        //設置計數(shù)器1的初值,決定波特率
        PCON=0x00;      // 波特率倍增0x00不加倍         0x80加倍
        SCON=0x50;                //設置工作方式1 開啟接受允許
        EA=1;                    //開啟總中斷
        ES=1;                        //開啟串口接受中斷
        TR1=1;                        //計數(shù)器1開始運行
}
void ESP8266_init()
{
        UartConfiguration();
        TI=0;             //清除發(fā)送完成標記
        connect_init();
}

void Uart() interrupt 4
{

}

/*
        uchar date;

        date=SBUF;        //取出接受到的數(shù)據(jù)
        RI=0;                          //清除接受中斷標志位
        SBUF=date;                  //接收到的數(shù)據(jù)放入發(fā)送緩存器發(fā)送
        while(!TI);        //等待發(fā)送數(shù)據(jù)完成
        TI=0;                                //清除發(fā)送完成標志位
  */





void main()
{
        DelayMs(3000);
        ESP8266_init();
        while(1)
        {
           send();
        }
       
       
       
}






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1