esp8266wifi模块教程89c51
时间: 2023-07-02 18:09:31 浏览: 249
基于STC89C52RC的ESP8266WIFI模块调试源码.pdf
ESP8266是一款非常流行的Wi-Fi模块,而89C51是一款常见的单片机。这两个设备可以通过串口通信进行互联,实现Wi-Fi模块的网络控制。
下面是一些步骤,帮助你把ESP8266和89C51连接起来。
步骤1:连接ESP8266模块和89C51单片机
ESP8266的引脚需要和89C51单片机的串口引脚连接。ESP8266模块有两个串口,一个是AT指令串口,另一个是数据串口。在这里,我们使用数据串口和89C51单片机的串口通信。
ESP8266模块的VCC和GND引脚连接电源。ESP8266模块的RX引脚连接到89C51单片机的TX引脚上,ESP8266模块的TX引脚连接到89C51单片机的RX引脚上。
步骤2:编写代码
接下来,你需要编写代码,以便让89C51单片机能够控制ESP8266模块。你需要使用89C51的串口通信功能与ESP8266进行通信。
以下是一些代码示例:
```c
#include<reg51.h>
#include<intrins.h>
#define ESP8266_TX P2_0
#define ESP8266_RX P2_1
void delay(unsigned int i)
{
while(i--);
}
void Init_ESP8266()
{
SCON = 0x50; //设置串口工作方式
TMOD = 0x20; //定时器方式
TH1 = 0xFD; //设置波特率9600
TL1 = 0xFD;
TR1 = 1; //启动定时器1
TI = 1; //发送标志位
}
void Send_ESP8266(char dat)
{
SBUF = dat;
while(TI == 0);
TI = 0;
}
void SendString_ESP8266(char *s)
{
while(*s != '\0')
{
Send_ESP8266(*s);
s++;
}
}
char Recv_ESP8266()
{
char dat;
while(RI == 0);
dat = SBUF;
RI = 0;
return dat;
}
void RecvString_ESP8266(char *s)
{
do
{
*s = Recv_ESP8266();
s++;
}while(*(s-1) != '\r');
}
void main()
{
Init_ESP8266();
SendString_ESP8266("AT+RST\r\n");
delay(10000);
SendString_ESP8266("AT+CWMODE=1\r\n");
delay(1000);
SendString_ESP8266("AT+CWJAP=\"SSID\",\"PASSWORD\"\r\n");
delay(10000);
SendString_ESP8266("AT+CIFSR\r\n");
delay(1000);
SendString_ESP8266("AT+CIPMUX=1\r\n");
delay(1000);
SendString_ESP8266("AT+CIPSERVER=1,80\r\n");
while(1)
{
if(ESP8266_RX == 0)
{
char RecvBuf[128];
RecvString_ESP8266(RecvBuf);
if(strstr(RecvBuf,"GET /LED=ON") != NULL)
{
P1 = 0x00;
SendString_ESP8266("LED ON");
}
if(strstr(RecvBuf,"GET /LED=OFF") != NULL)
{
P1 = 0xFF;
SendString_ESP8266("LED OFF");
}
}
}
}
```
步骤3:测试
最后,你需要测试你的系统是否正常工作。将ESP8266和89C51单片机连接到电源,并检查它们之间的连接是否正确。打开串口调试助手,在地址栏输入ESP8266的IP地址,并尝试通过发送GET请求来控制LED灯的开启和关闭。如果一切正常,LED灯将会开启或关闭。
希望这个教程能够帮助你成功地将ESP8266和89C51单片机连接起来。
阅读全文