51单片机连接ESP8266模块C语言程序
#include[reg52.h> //注意请把‘ [ ’换成 "<",下同。否则编译时会出错。
#include [intrins.h> //
 unsigned int a;
 int b=1;
 int c =1;
 int d =1;
 int e=1;
 int f=0;
 void main(void) 
 {
 unsigned char ldat;
  PCON |=0X80; //是否波特率倍增
SCON=0x50;
 TMOD=0X20; //设置定时器1为模式2,做为波特率发生器
TL1=0xFF; //57600波特率的初值,板子使用11.592M晶振,初值=256-12000000/32/12/2400
 TH1=0xFF; //
 TI = 1;
 TR1=1; //启动波特率发生
 //设置串口方式2
  do{
 for (a=0; a<50000; a++);
 printf ("AT+CIPMUX=1\n");
  do{
 if(RI)
 { //查询是否有数据接收
 ldat=SBUF; //数据暂存于变量中
 RI=0;
  if (ldat=='K')
  {
 b=0 ;
  d=0;
 }
  c++;
  if (c==1000)
  {
 c=1;
  d=0;
 }
 }
  }
 while (d); 
 }while(b) ;
 b=1;
 c =1;
 d =1;
  do{
 for (a=0; a<50000; a++);
 printf ("AT+CIPSERVER=1,7671\n");
  do{
 if(RI)
 { //查询是否有数据接收
 ldat=SBUF; //数据暂存于变量中
 RI=0;
  if (ldat=='K')
  {
 b=0 ;
  d=0;
 }
  c++;
  if (c==1000)
  {
 c=1;
  d=0;
 }
 }
  }while (d); 
 }while(b) ; 
 b=1;
 c =1;
 d =1;
 while(1)
 {
  if(RI)
 { //查询是否有数据接收
 ldat=SBUF; //数据暂存于变量中
 RI=0; //重新清0等待接收
//命令接收开始
 if (ldat=='}')
  {
 char k[50] ;
  do{
  if(RI)
 { //查询是否有数据接收
 ldat=SBUF; //数据暂存于变量中
 RI=0; //重新清0等待接收
 k[f]=ldat;
 f++ ;
 if(ldat==0x0A){e=0;}
  }
  } while (e) ;
  printf("%s\n", k);
  f=0;
  e=1;
  for (a=0; a<50; a++)
 {
  k[a]=0;
 }
 }
 //命令结束
 }
 }
 }