找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1214|回复: 0
打印 上一主题 下一主题
收起左侧

利用ESP8266实现的双电子设备通信实验程序

[复制链接]
跳转到指定楼层
楼主
功能并不复杂,会用ESP8266便能想到思路;
但是在实现wifi模块接受设备一的消息后将消息处理后发送给设备二的功能时,还是颇费脑筋的;
最后一提,当时找不到现成历程,oled字模便自己取了,这么一说没有功劳也有苦劳了哈。

以下是部分程序:

  1. #include <reg52.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <intrins.h>
  5. #define U unsigned char
  6. sbit scl=P1^1;
  7. sbit sda=P1^0;
  8. sbit key1=P1^6;
  9. sbit key2=P1^7;
  10. U a[81]={1},st=1,sq=1;
  11. char page=0;
  12. U num=0,sw=1;           //"Enter" controlling
  13. U code order1[]="AT+RST\r\n";
  14. U code order2[]="AT+CWMODE=2\r\n";
  15. U code order3[]="AT+CWSAP=\"sPinAr\",\"22222222\",11,3\r\n";
  16. U code order4[]="AT+CIPMUX=1\r\n";
  17. U code order5[]="AT+CIPSERVER=1,808

  18. void time(){
  19. U i,j;
  20. for(i=200;i>0;i--)
  21. for(j=200;j>0;j--);
  22. }
  23. U scan(){
  24. U i;
  25. if(!key1){
  26.   time();while(!key1);
  27.   return 2;
  28.   }
  29. if(!key2){
  30.   time();while(!key2);
  31.   return 2;
  32.   }
  33. if(sw&&num>=2){
  34.   for(i=1;i<81;i++)a[i]=0;
  35.   sw=0;
  36.   return 3;
  37.   }
  38. return 0;
  39. }

  40. void wificommand(U k[]){
  41. U i,j;
  42. ES=0;
  43. TI=1;
  44. puts(k);     
  45. while(!TI);
  46. TI=0;
  47. ES=1;
  48. while(1){
  49.   if(a[1]){
  50.    OLED_SetPos(0,page);  
  51.    for(i=1;i<81;i++){
  52.     if(a[i]>='0'&&a[i]<='9')
  53.      for(j=0;j<6;j++)dat(digital[a[i]-48][j]);
  54.     else if(a[i]=='.')
  55.      for(j=0;j<6;j++)dat(dt_pls[0][j]);
  56.     else if(a[i]>='A'&&a[i]<='Z')
  57.      for(j=0;j<6;j++)dat(alpha[a[i]-65][j]);
  58.     else if(a[i]>='a'&&a[i]<='z')
  59.      for(j=0;j<6;j++)dat(bet[a[i]-97][j]);
  60.     else if(a[i]=='+')
  61.      for(j=0;j<6;j++)dat(dt_pls[1][j]);
  62.     else dat(0x00);
  63.     }
  64.    }
  65.   if(scan()==2){
  66.    for(i=1;i<81;i++)a[i]=0;
  67.    break;
  68.    }
  69.   }
  70. page=4*!page;
  71. }
  72. void doublechat(){
  73. U i,j,l;
  74. while(1){
  75.   if(a[3]=='+'&&a[4]=='I'&&a[5]=='P'&&a[6]=='D'&&sq){
  76.    sq=0;
  77.    l=(a[11]>='0'&&a[11]<='9')?(a[10]-48)*10+(a[11]-48):a[10]-48;
  78.    if(a[8]-48){
  79.     if(l==1){
  80.      st=0;
  81.      ES=0;
  82.      TI=1;
  83.      printf("AT+CIPSEND=0,1\r\n");
  84.      while(!TI);
  85.      TI=0;
  86.      time();
  87.      TI=1;
  88.      puts(a+12);
  89.      while(!TI);
  90.      TI=0;
  91.      ES=1;
  92.      time();
  93.      st=1;
  94.      }
  95.     else if(l==2){
  96.      st=0;
  97.      ES=0;
  98.      TI=1;
  99.      printf("AT+CIPSEND=0,2\r\n");
  100.      while(!TI);
  101.      TI=0;
  102.      time();
  103.      TI=1;
  104.      puts(a+12);
  105.      while(!TI);
  106.      TI=0;
  107.      ES=1;
  108.      time();
  109.      st=1;
  110.      }
  111.     else if(l==3){
  112.      st=0;
  113.      ES=0;
  114.      TI=1;
  115.      printf("AT+CIPSEND=0,3\r\n");
  116.      while(!TI);
  117.      TI=0;
  118.      time();
  119.      TI=1;
  120.      puts(a+12);
  121.      while(!TI);
  122.      TI=0;
  123.      ES=1;
  124.      time();
  125.      st=1;
  126.      }
  127.     else if(l==4){
  128.      st=0;
  129.      ES=0;
  130.      TI=1;
  131.      printf("AT+CIPSEND=0,4\r\n");
  132.      while(!TI);
  133.      TI=0;
  134.      time();
  135.      TI=1;
  136.      puts(a+12);
  137.      while(!TI);
  138.      TI=0;
  139.      ES=1;
  140.      time();
  141.      st=1;
  142.      }
  143.     else if(l==5){
  144.      st=0;
  145.      ES=0;
  146.      TI=1;
  147.      printf("AT+CIPSEND=0,5\r\n");
  148.      while(!TI);
  149.      TI=0;
  150.      time();
  151.      TI=1;
  152.      puts(a+12);
  153.      while(!TI);
  154.      TI=0;
  155.      ES=1;
  156.      time();
  157.      st=1;
  158.      }
  159.     else if(l==6){
  160.      st=0;
  161.      ES=0;
  162.      TI=1;
  163.      printf("AT+CIPSEND=0,6\r\n");
  164.      while(!TI);
  165.      TI=0;
  166.      time();
  167.      TI=1;
  168.      puts(a+12);
  169.      while(!TI);
  170.      TI=0;
  171.      ES=1;
  172.      time();
  173.      st=1;
  174.      }
  175.     else if(l==7){
  176.      st=0;
  177.      ES=0;
  178.      TI=1;
  179.      printf("AT+CIPSEND=0,7\r\n");
  180.      while(!TI);
  181.      TI=0;
  182.      time();
  183.      TI=1;
  184.      puts(a+12);
  185.      while(!TI);
  186.      TI=0;
  187.      ES=1;
  188.      time();
  189.      st=1;
  190.      }
  191.     else if(l==8){
  192.      st=0;
  193.      ES=0;
  194.      TI=1;
  195.      printf("AT+CIPSEND=0,8\r\n");
  196.      while(!TI);
  197.      TI=0;
  198.      time();
  199.      TI=1;
  200.      puts(a+12);
  201.      while(!TI);
  202.      TI=0;
  203.      ES=1;
  204.      time();
  205.      st=1;
  206.      }
  207.     else if(l==9){
  208.      st=0;
  209.      ES=0;
  210.      TI=1;
  211.      printf("AT+CIPSEND=0,9\r\n");
  212.      while(!TI);
  213.      TI=0;
  214.      time();
  215.      TI=1;
  216.      puts(a+12);
  217.      while(!TI);
  218.      TI=0;
  219.      ES=1;
  220.      time();
  221.      st=1;
  222.      }
  223.     else if(l==10){
  224.      st=0;
  225.      ES=0;
  226.      TI=1;
  227.      printf("AT+CIPSEND=0,10\r\n");
  228.      while(!TI);
  229.      TI=0;
  230.      time();
  231.      TI=1;
  232.      puts(a+13);
  233.      while(!TI);
  234.      TI=0;
  235.      ES=1;
  236.      time();
  237.      st=1;
  238.      }
  239.     else if(l==11){
  240.      st=0;
  241.      ES=0;
  242.      TI=1;
  243.      printf("AT+CIPSEND=0,11\r\n");
  244.      while(!TI);
  245.      TI=0;
  246.      time();
  247.      TI=1;
  248.      puts(a+13);
  249.      while(!TI);
  250.      TI=0;
  251.      ES=1;
  252.      time();
  253.      st=1;
  254.      }
  255.     else if(l==12){
  256.      st=0;
  257.      ES=0;
  258.      TI=1;
  259.      printf("AT+CIPSEND=0,12\r\n");
  260.      while(!TI);
  261.      TI=0;
  262.      time();
  263.      TI=1;
  264.      puts(a+13);
  265.      while(!TI);
  266.      TI=0;
  267.      ES=1;
  268.      time();
  269.      st=1;
  270.      }
  271.     else if(l==13){
  272.      st=0;
  273.      ES=0;
  274.      TI=1;
  275.      printf("AT+CIPSEND=0,13\r\n");
  276.      while(!TI);
  277.      TI=0;
  278.      time();
  279.      TI=1;
  280.      puts(a+13);
  281.      while(!TI);
  282.      TI=0;
  283.      ES=1;
  284.      time();
  285.      st=1;
  286.      }
  287.     else if(l==14){
  288.      st=0;
  289.      ES=0;
  290.      TI=1;
  291.      printf("AT+CIPSEND=0,14\r\n");
  292.      while(!TI);
  293.      TI=0;
  294.      time();
  295.      TI=1;
  296.      puts(a+13);
  297.      while(!TI);
  298.      TI=0;
  299.      ES=1;
  300.      time();
  301.      st=1;
  302.      }
  303.     else if(l==15){
  304.      st=0;
  305.      ES=0;
  306.      TI=1;
  307.      printf("AT+CIPSEND=0,15\r\n");
  308.      while(!TI);
  309.      TI=0;
  310.      time();
  311.      TI=1;
  312.      puts(a+13);
  313.      while(!TI);
  314.      TI=0;
  315.      ES=1;
  316.      time();
  317.      st=1;
  318.      }
  319.     else if(l==16){
  320.      st=0;
  321.      ES=0;
  322.      TI=1;
  323.      printf("AT+CIPSEND=0,16\r\n");
  324.      while(!TI);
  325.      TI=0;
  326.      time();
  327.      TI=1;
  328.      puts(a+13);
  329.      while(!TI);
  330.      TI=0;
  331.      ES=1;
  332.      time();
  333.      st=1;
  334.      }
  335.     else if(l==17){
  336.      st=0;
  337.      ES=0;
  338.      TI=1;
  339.      printf("AT+CIPSEND=0,17\r\n");
  340.      while(!TI);
  341.      TI=0;
  342.      time();
  343.      TI=1;
  344.      puts(a+13);
  345.      while(!TI);
  346.      TI=0;
  347.      ES=1;
  348.      time();
  349.      st=1;
  350.      }
  351.     else if(l==18){
  352.      st=0;
  353.      ES=0;
  354.      TI=1;
  355.      printf("AT+CIPSEND=0,18\r\n");
  356.      while(!TI);
  357.      TI=0;
  358.      time();
  359.      TI=1;
  360.      puts(a+13);
  361.      while(!TI);
  362.      TI=0;
  363.      ES=1;
  364.      time();
  365.      st=1;
  366.      }
  367.     else if(l==19){
  368.      st=0;
  369.      ES=0;
  370.      TI=1;
  371.      printf("AT+CIPSEND=0,19\r\n");
  372.      while(!TI);
  373.      TI=0;
  374.      time();
  375.      TI=1;
  376.      puts(a+13);
  377.      while(!TI);
  378.      TI=0;
  379.      ES=1;
  380.      time();
  381.      st=1;
  382.      }
  383.     else{
  384.      st=0;
  385.      ES=0;
  386.      TI=1;
  387.      printf("AT+CIPSEND=0,20\r\n");
  388.      while(!TI);
  389.      TI=0;
  390.      time();
  391.      TI=1;
  392.      puts(a+13);
  393.      while(!TI);
  394.      TI=0;
  395.      ES=1;
  396.      time();
  397.      st=1;
  398.      }
  399.     }
  400.    else{
  401.     if(l==1){
  402.      st=0;
  403.      ES=0;
  404.      TI=1;
  405.      printf("AT+CIPSEND=1,1\r\n");
  406.      while(!TI);
  407.      TI=0;
  408.      time();
  409.      TI=1;
  410.      puts(a+12);
  411.      while(!TI);
  412.      TI=0;
  413.      ES=1;
  414.      time();
  415.      st=1;
  416.      }
  417.     else if(l==2){
  418.      st=0;
  419.      ES=0;
  420.      TI=1;
  421.      printf("AT+CIPSEND=1,2\r\n");
  422.      while(!TI);
  423.      TI=0;
  424.      time();
  425.      TI=1;
  426.      puts(a+12);
  427.      while(!TI);
  428.      TI=0;
  429.      ES=1;
  430.      time();
  431.      st=1;
  432.      }
  433.     else if(l==3){
  434.      st=0;
  435.      ES=0;
  436.      TI=1;
  437.      printf("AT+CIPSEND=1,3\r\n");
  438.      while(!TI);
  439.      TI=0;
  440.      time();
  441.      TI=1;
  442.      puts(a+12);
  443.      while(!TI);
  444.      TI=0;
  445.      ES=1;
  446.      time();
  447.      st=1;
  448.      }
  449.     else if(l==4){
  450.      st=0;
  451.      ES=0;
  452.      TI=1;
  453.      printf("AT+CIPSEND=1,4\r\n");
  454.      while(!TI);
  455.      TI=0;
  456.      time();
  457.      TI=1;
  458.      puts(a+12);
  459.      while(!TI);
  460.      TI=0;
  461.      ES=1;
  462.      time();
  463.      st=1;
  464.      }
  465.     else if(l==5){
  466.      st=0;
  467.      ES=0;
  468.      TI=1;
  469.      printf("AT+CIPSEND=1,5\r\n");
  470.      while(!TI);
  471.      TI=0;
  472.      time();
  473.      TI=1;
  474.      puts(a+12);
  475.      while(!TI);
  476.      TI=0;
  477.      ES=1;
  478.      time();
  479.      st=1;
  480.      }
  481.     else if(l==6){
  482.      st=0;
  483.      ES=0;
  484.      TI=1;
  485.      printf("AT+CIPSEND=1,6\r\n");
  486.      while(!TI);
  487.      TI=0;
  488.      time();
  489.      TI=1;
  490.      puts(a+12);
  491.      while(!TI);
  492.      TI=0;
  493.      ES=1;
  494.      time();
  495.      st=1;
  496.      }
  497.     else if(l==7){
  498.      st=0;
  499.      ES=0;
  500.      TI=1;
  501.      printf("AT+CIPSEND=1,7\r\n");
  502.      while(!TI);
  503.      TI=0;
  504.      time();
  505.      TI=1;
  506.      puts(a+12);
  507.      while(!TI);
  508.      TI=0;
  509.      ES=1;
  510.      time();
  511.      st=1;
  512.      }
  513.     else if(l==8){
  514.      st=0;
  515.      ES=0;
  516.      TI=1;
  517.      printf("AT+CIPSEND=1,8\r\n");
  518.      while(!TI);
  519.      TI=0;
  520.      time();
  521.      TI=1;
  522.      puts(a+12);
  523.      while(!TI);
  524.      TI=0;
  525.      ES=1;
  526.      time();
  527.      st=1;
  528.      }
  529.     else if(l==9){
  530.      st=0;
  531.      ES=0;
  532.      TI=1;
  533.      printf("AT+CIPSEND=1,9\r\n");
  534.      while(!TI);
  535.      TI=0;
  536.      time();
  537.      TI=1;
  538.      puts(a+12);
  539.      while(!TI);
  540.      TI=0;
  541.      ES=1;
  542.      time();
  543.      st=1;
  544.      }
  545.     else if(l==10){
  546.      st=0;
  547.      ES=0;
  548.      TI=1;
  549.      printf("AT+CIPSEND=1,10\r\n");
  550.      while(!TI);
  551.      TI=0;
  552.      time();
  553.      TI=1;
  554.      puts(a+13);
  555.      while(!TI);
  556.      TI=0;
  557.      ES=1;
  558.      time();
  559.      st=1;
  560.      }
  561.     else if(l==11){
  562.      st=0;
  563.      ES=0;
  564.      TI=1;
  565.      printf("AT+CIPSEND=1,11\r\n");
  566.      while(!TI);
  567.      TI=0;
  568.      time();
  569.      TI=1;
  570.      puts(a+13);
  571.      while(!TI);
  572.      TI=0;
  573.      ES=1;
  574.      time();
  575.      st=1;
  576.      }
  577.     else if(l==12){
  578.      st=0;
  579.      ES=0;
  580.      TI=1;
  581.      printf("AT+CIPSEND=1,12\r\n");
  582.      while(!TI);
  583.      TI=0;
  584.      time();
  585.      TI=1;
  586.      puts(a+13);
  587.      while(!TI);
  588.      TI=0;
  589.      ES=1;
  590.      time();
  591.      st=1;
  592.      }
  593.     else if(l==13){
  594.      st=0;
  595.      ES=0;
  596.      TI=1;
  597.      printf("AT+CIPSEND=1,13\r\n");
  598.      while(!TI);
  599.      TI=0;
  600.      time();
  601.      TI=1;
  602.      puts(a+13);
  603.      while(!TI);
  604.      TI=0;
  605.      ES=1;
  606.      time();
  607.      st=1;
  608.      }
  609.     else if(l==14){
  610.      st=0;
  611.      ES=0;
  612.      TI=1;
  613.      printf("AT+CIPSEND=1,14\r\n");
  614.      while(!TI);
  615.      TI=0;
  616.      time();
  617.      TI=1;
  618.      puts(a+13);
  619.      while(!TI);
  620.      TI=0;
  621.      ES=1;
  622.      time();
  623.      st=1;
  624.      }
  625.     else if(l==15){
  626.      st=0;
  627.      ES=0;
  628.      TI=1;
  629.      printf("AT+CIPSEND=1,15\r\n");
  630.      while(!TI);
  631.      TI=0;
  632.      time();
  633.      TI=1;
  634.      puts(a+13);
  635.      while(!TI);
  636.      TI=0;
  637.      ES=1;
  638.      time();
  639.      st=1;
  640.      }
  641.     else if(l==16){
  642.      st=0;
  643.      ES=0;
  644.      TI=1;
  645.      printf("AT+CIPSEND=1,16\r\n");
  646.      while(!TI);
  647.      TI=0;
  648.      time();
  649.      TI=1;
  650.      puts(a+13);
  651.      while(!TI);
  652.      TI=0;
  653.      ES=1;
  654.      time();
  655.      st=1;
  656.      }
  657.     else if(l==17){
  658.      st=0;
  659.      ES=0;
  660.      TI=1;
  661.      printf("AT+CIPSEND=1,17\r\n");
  662.      while(!TI);
  663.      TI=0;
  664.      time();
  665.      TI=1;
  666.      puts(a+13);
  667.      while(!TI);
  668.      TI=0;
  669.      ES=1;
  670.      time();
  671.      st=1;
  672.      }
  673.     else if(l==18){
  674.      st=0;
  675.      ES=0;
  676.      TI=1;
  677.      printf("AT+CIPSEND=1,18\r\n");
  678.      while(!TI);
  679.      TI=0;
  680.      time();
  681.      TI=1;
  682.      puts(a+13);
  683.      while(!TI);
  684.      TI=0;
  685.      ES=1;
  686.      time();
  687.      st=1;
  688.      }
  689.     else if(l==19){
  690.      st=0;
  691.      ES=0;
  692.      TI=1;
  693.      printf("AT+CIPSEND=1,19\r\n");
  694.      while(!TI);
  695.      TI=0;
  696.      time();
  697.      TI=1;
  698.      puts(a+13);
  699.      while(!TI);
  700.      TI=0;
  701.      ES=1;
  702.      time();
  703.      st=1;
  704.      }
  705.     else{
  706.      st=0;
  707.      ES=0;
  708.      TI=1;
  709.      printf("AT+CIPSEND=1,20\r\n");
  710.      while(!TI);
  711.      TI=0;
  712.      time();
  713.      TI=1;
  714.      puts(a+13);
  715.      while(!TI);
  716.      TI=0;
  717.      ES=1;
  718.      time();
  719.      st=1;
  720.      }
  721.     }
  722.    }
  723.   if(a[1]){
  724.    OLED_SetPos(0,page);  
  725.    for(i=1;i<81;i++){
  726.     if(a[i]>='0'&&a[i]<='9')
  727.      for(j=0;j<6;j++)dat(digital[a[i]-48][j]);
  728.     else if(a[i]=='.')
  729.      for(j=0;j<6;j++)dat(dt_pls[2][j]);
  730.     else if(a[i]>='A'&&a[i]<='Z')
  731.      for(j=0;j<6;j++)dat(alpha[a[i]-65][j]);
  732.     else if(a[i]>='a'&&a[i]<='z')
  733.      for(j=0;j<6;j++)dat(bet[a[i]-97][j]);
  734.     else if(a[i]=='+')
  735.      for(j=0;j<6;j++)dat(dt_pls[1][j]);
  736.     else if(a[i])for(j=0;j<6;j++)dat(0x00);
  737.     }
  738.    }
  739.   switch(scan()){
  740.    case 1:
  741.    case 3:for(i=1;i<81;i++)a[i]=0;
  742.        sq=1;
  743.        goto lop;
  744.    case 2:for(i=1;i<81;i++)a[i]=0;
  745.        OLED_clear();
  746.        sq=page=0;
  747.    }
  748.   }
  749. lop:
  750. page+=2;
  751. if(page==8){
  752.   time();time();time();time();time();time();
  753.   time();time();time();time();time();time();
  754.   OLED_clear();
  755.   page=0;
  756.   }
  757. }
  758. main(){
  759. TMOD=0x21;
  760. TH1=TL1=0xfd;
  761. TH0=0x4c;
  762. TL0=0xd0;  
  763. EA=ET0=ES=SM1=TR1=REN=1;
  764. SM0=TR0=0;
  765. iic_init();
  766. OLED_Init();
  767. wificommand(order1);
  768. wificommand(order2);                                                   
  769. wificommand(order3);
  770. wificommand(order4);
  771. wificommand(order5);
  772. wificommand(order6);
  773. time();time();time();time();time();time();
  774. time();time();time();time();time();time();
  775. TR0=1;
  776. page=-2;
  777. OLED_clear();
  778. while(1)doublechat();
  779. }
复制代码


全部资料51hei下载地址(有乱码,谨慎下载):
programme.7z (10.25 MB, 下载次数: 7)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表