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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2164|回復: 0
收起左側

C51單片機執行ESP8266遠程命令源碼詳解

[復制鏈接]
ID:301377 發表于 2018-4-3 11:22 | 顯示全部樓層 |閱讀模式
c51單片機執行ESP8266遠程命令詳解,希望大家互相學習下

單片機源程序如下:
  1. /***************************************************************************
  2. c51單片機,遠程命令詳解

  3. ******************************************************************************/
  4. #include <AT89X51.H>
  5. #include <stdio.h>
  6. unsigned int a;
  7. int b=1;
  8. int c =1;
  9. int d =1;
  10. int e=1;
  11. int f=0;

  12. void main(void)  
  13. {
  14.         unsigned char ldat;
  15.          //PCON |=0X80;                //是否波特率倍增
  16.         SCON=0x50;
  17.         TMOD=0X20;                                //設置定時器1為模式2,做為波特率發生器
  18.         TL1=0xFD;                                //9600波特率的初值,板子使用11.592M晶振,初值=256-12000000/32/12/2400
  19.         TH1=0xFD;                                //
  20.         TI = 1;
  21.         TR1=1;                                        //啟動波特率發生
  22.                         //設置串口方式2
  23.                  do{
  24. for (a=0; a<50000; a++);        //延時幾秒,讓模塊有時間啟動
  25. printf ("AT+CIPMUX=1\n"); //發送命令AT+CIPMUX=1,讓模塊進入多連接模式
  26.         if(RI){                                //查詢是否有數據接收
  27.                         ldat=SBUF;                //數據暫存于變量中
  28.                         RI=0;
  29.                                 if (ldat=='K')//命令執行成功,就會返回OK,這里就是查詢是否有K返回,若有K返回,就說明執行成功,可以執行下一條,否則繼續循環
  30.                                 {b=0 ;
  31.                                 d=0;}
  32.                            c++;
  33.                         if (c==1000)
  34.                         {c=1;
  35.                         d=0;}}

  36.   }while (d);   
  37.         }while(b) ;
  38. b=1;
  39. c =1;
  40. d =1;//b、c、d復位,便于執行下一條命令



  41.                    do{
  42. for (a=0; a<10000; a++);
  43. printf ("AT+CIPSERVER=1,7671\n");
  44.          do{
  45.         if(RI){                                //查詢是否有數據接收
  46.                         ldat=SBUF;                //數據暫存于變量中
  47.                         RI=0;
  48.                                 if (ldat=='K')//同上
  49.                                 {b=0 ;
  50.                                 d=0;}
  51.                            c++;
  52.                         if (c==1000)
  53.                         {c=1;
  54.                         d=0;}}

  55.   }while (d);   
  56.         }while(b) ;         
  57. b=1;
  58. c =1;
  59. d =1;
  60.                  do{
  61. for (a=0; a<10000; a++);
  62. printf ("AT+CIPSTO=50\n");
  63.          do{
  64.         if(RI){                                //查詢是否有數據接收
  65.                         ldat=SBUF;                //數據暫存于變量中
  66.                         RI=0;
  67.                                 if (ldat=='K')//同上
  68.                                 {b=0 ;
  69.                                 d=0;}
  70.                            c++;
  71.                         if (c==1000)
  72.                         {c=1;
  73.                         d=0;}}

  74.   }while (d);   
  75.         }while(b) ;
  76. b=1;
  77. c =1;
  78. d =1;

  79. //執行上述命令,模塊進入服務模式,下面單片機就可以接收遠程發來的數據

  80.          while(1)
  81.         {        
  82.                   if(RI){                                //查詢是否有數據接收
  83.                         ldat=SBUF;                //數據暫存于變量中
  84.                         RI=0;                        //重新清0等待接收
  85.                         
  86.                         
  87. //命令接收開始
  88.                         if (ldat=='}')        
  89.                         { char k[50] ;//設置接收數據緩沖
  90.    
  91.    
  92.             
  93.    
  94.               do{
  95.            
  96.            if(RI){                                //查詢是否有數據接收
  97.                         ldat=SBUF;                //數據暫存于變量中
  98.                         RI=0;                        //重新清0等待接收
  99.                      k[f]=ldat;//一個個字符接收
  100.         f++        ;
  101.         if(ldat==0x0A){e=0;}        //若有新行字符,則結束接收,則說明命令接收完畢
  102.                 }
  103.            } while        (e)        ;
  104.             printf("%s\n", k);//執行遠程發來的命令
  105.          f=0;
  106.          e=1;
  107.                         for (a=0; a<50; a++){
  108.                         k[a]=0;
  109.                         
  110.                         }
  111.            
  112.   
  113. }
  114. //命令結束

  115.                
  116.                         if (ldat==']')
  117. {P1_4=1;
  118.   printf ("AT+CIPSEND=0,1\n");
  119. for (a=0; a<10000; a++);
  120. printf ("A");
  121. }

  122.                          if (ldat=='-')
  123. {P1_4=!P1_4;

  124. }
  125.                                  if (ldat=='[')
  126. {P1_4=0;
  127.   printf ("AT+CIPSEND=0,1\n");
  128. for (a=0; a<10000; a++);
  129. printf ("B");
  130. }

  131.                          if (ldat=='{')
  132. {
  133. if(P1_4==0){
  134. printf ("AT+CIPSEND=0,1\n");
  135. for (a=0; a<10000; a++);
  136. printf ("B");
  137. }

  138. else{
  139.   printf ("AT+CIPSEND=0,1\n");
  140. for (a=0; a<10000; a++);
  141. printf ("A");
  142. }
  143. }

  144.         
  145.                 }
  146.         }

  147.         
  148. }
復制代碼

所有資料51hei提供下載:
c51單片機執行ESP8266遠程命令詳解.zip (1.29 KB, 下載次數: 29)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩一区精品 | 成人网在线 | 欧美一区二区三区久久精品视 | 一区二区亚洲 | 国产精品一区二区在线观看 | 久久中文免费视频 | 日韩 欧美 二区 | 亚洲97| 我想看国产一级毛片 | 欧日韩在线观看 | 国产精品三级 | 中文字幕电影在线观看 | 国产精品欧美一区喷水 | 97av| 欧美 日韩 国产 成人 | 国产成人精品免费视频大全最热 | 欧美国产一区二区 | 亚洲欧美日韩精品久久亚洲区 | 超碰日韩| 91精品久久久久久久久中文字幕 | 色吊丝2 | 狠狠夜夜 | 精品成人一区二区 | av片免费| 亚洲手机视频在线 | 国产精品一区二区久久 | 一区在线视频 | 欧美性猛交一区二区三区精品 | 久久a久久 | 日韩免费高清视频 | 黄色网址在线免费观看 | 亚洲精视频 | 青娱乐一区二区 | 日韩欧美网 | 91在线观看| 欧美激情一区二区 | 秋霞电影一区二区 | 久久精品一区 | 超碰在线亚洲 | 久久久精品视频免费 | 国产色99精品9i |