#include<reg52.h> //51单片机常用的头文件
#define uchar unsigned char //宏定义一个无符号的char类型
#define uint unsigned int //宏定义一个无符号的int类型
sbit L1 = P2^0;
sbit L2 = P2^1;
sbit L3 = P2^2;
uint i;
uchar receiveTable[20]=' ';//用来存放接收到的字符串
void delayms(uint ms) //延时
{
uchar i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
void sendByte(uchar b)
{
SBUF = b;
while(!TI);
TI=0;
}
//发送字符串
void sendString(uchar *s)
{
while(*s != '\0') //字符串默认结尾'\0',以此来判断字符串的结束
{
sendByte(*s);
s++;
}
}
void ManyConnect_AP()
{
SCON = 0x50; //8位数据,可变波特率
TMOD = 0x20; //设置定时器1位16位自动重装模式
TL1 = 0xfd; //设置定时器初值,波特率为9600
TH1 = 0xfd;
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
EA = 1;//开总中断
delayms(1000);
sendString("AT\r\n");
delayms(1000);
sendString("AT+RST\r\n");
delayms(1000); //延时
sendString("AT+CWMODE=2\r\n"); //设置ESP8266工作在station模式下,具体的AT指令可网上搜素一下
delayms(1000);
sendString("AT+CIOBAUD=9600\r\n"); //设置9600波特率,因为esp8266波特率默认是115200
delayms(1000);
sendString("AT+CIPMUX=1\r\n"); //允许多连接
delayms(1000);
sendString("AT+CIPSERVER=1,8080\r\n"); //建立服务器
delayms(1000);
ES = 1; //esp8266初始化之后开串口中断
}
void UART() interrupt 4
{
if(RI == 1)
{
RI = 0; //清除串口接收标志位
receiveTable[i]=SBUF;
if(receiveTable[0]=='+')
{
i++;
}
else
{
i=0;
}
if(i==10)
{
i=0;
switch(receiveTable[9])
{
case '1':
L1=0;
break;
case '2':
L1=1;
break;
case '3':
L2=0;
break;
case '4':
L2=1;
break;
case '5':
L3=0;
break;
case '6':
L3=1;
break;
}
}
}
}
void main()
{
ManyConnect_AP();
}