找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1828|回复: 0
收起左侧

wifi远程控制c程序ok

[复制链接]
ID:374751 发表于 2018-7-19 12:41 | 显示全部楼层 |阅读模式
  1. #include<reg52.h>
  2. #include<math.h>
  3. #include <stdio.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int

  6. code uchar smg[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};


  7. sbit jdq1=P2^0;
  8. sbit jdq2=P2^1;
  9. sbit jdq3=P2^2;
  10. sbit jdq4=P2^3;

  11. sbit LED=P1^0;


  12. uchar *pr;                        //指针-重启模块(AT指令)
  13. uchar *pc;                        //指针-设置工作模式(1-STA,2-AP,3-STA+AP)
  14. uchar *pd;                        //指针-设置AP热点的SSID,密码,和加密方式等0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK
  15. uchar *pa;                        //指针-设置AP地址(AT指令)
  16. uchar *pm;                        //指针-设置多连接(AT指令)
  17. uchar *ps;                        //指针-开启TCP服务器模式(AT指令)
  18. uchar *pt;                        //指针-设置服务超时时长(AT指令)


  19. uchar Buffer='a';      //从串口接收的数据(给个初值用于防误判)
  20. uint i,j;

  21. uint aa=200;

  22. void Delay_1ms(uint i)//1ms延时
  23. {
  24.         uint x,j;                  
  25.         for(j=0;j<i;j++)
  26.         for(x=0;x<=148;x++);       
  27. }

  28. void Com_Int(void) interrupt 4        //串口中断函数
  29. {       
  30.         EA = 0;
  31.         if(RI == 1)   //当硬件接收到一个数据时,RI会置位
  32.         {
  33.                 Buffer=SBUF;
  34.                 RI = 0;                 
  35.         }
  36.         EA = 1;
  37. }

  38. void Com_Init(void)         //        串口初始化        -- 晶振11.0592,波特率9600,使能串口中断
  39. {
  40.      TMOD = 0x20;
  41.      PCON = 0x00;
  42.      SCON = 0x50;                       
  43.      TH1 = 0xFd;    //设置波特率 9600
  44.      TL1 = 0xFd;
  45.      TR1 = 1;                //启动定时器1
  46.          ES = 1;                //开串口中断
  47.          EA = 1;                //开总中断               
  48. }

  49. void main()
  50. {
  51.         Com_Init();//串口初始化
  52.     Delay_1ms(2000);          //延时几秒时间等模块启动
  53.           LED=1;
  54.           while(0)
  55.          {
  56.           pr="AT+RST\r\n";               
  57.           while(*pr)
  58.           {
  59.             SBUF=*(pr++);                       
  60.             while(TI==0);                                 //以查询方式查询串口是否发送完毕
  61.             TI=0;                                                 //清发送标志
  62.           }
  63.           Delay_1ms(900);
  64.           if(Buffer=='\n')       
  65.           {
  66.             Buffer='a';
  67.             break;
  68.            }
  69.          }
  70.            //设置工作模式(1-STA,2-AP,3-STA+AP)
  71.         while(1)
  72.         {
  73.           pc="AT+CWMODE=2\r\n";       
  74.           while(*pc)
  75.           {
  76.             SBUF=*(pc++);               
  77.             while(TI==0);               
  78.             TI=0;                                               
  79.           }
  80.           Delay_1ms(900);
  81.           if(Buffer=='\n')       
  82.           {
  83.             Buffer='a';
  84.             break;
  85.            }
  86.         }
  87.           //设置AP热点的SSID,密码,和加密方式等
  88.           pd="AT+CWSAP=\"ESP8266_xiaoyu\",\"0123456789\",11,4\r\n";
  89.          while(1)
  90.         {       
  91.           while(*pd)
  92.           {
  93.             SBUF=*(pd++);               
  94.             while(TI==0);               
  95.             TI=0;                                               
  96.           }
  97.           Delay_1ms(900);
  98.           if(Buffer=='\n')       
  99.           {
  100.             Buffer='a';
  101.             break;
  102.            }
  103.         }
  104.           //串口发送指令AT+CIPMUX=1,让ESP8266进入多连接模式
  105.         while(1)
  106.         {
  107.           pm="AT+CIPMUX=1\r\n";               
  108.           while(*pm)
  109.           {
  110.             SBUF=*(pm++);                               
  111.             while(TI==0);                                 //以查询方式查询串口是否发送完毕
  112.             TI=0;                                                 //清发送标志
  113.           }
  114.           Delay_1ms(900);
  115.           if(Buffer=='\n')       
  116.           {
  117.             Buffer='a';
  118.             break;
  119.            }
  120.         }
  121.         //串口发送指令AT+CIPSERVER=1,5000,让模块开启TCP服务器模式,端口为5000
  122.         while(1)
  123.         {
  124.           ps="AT+CIPSERVER=1,5000\r\n";         
  125.           while(*ps)
  126.           {
  127.             SBUF=*(ps++);                       
  128.             while(TI==0);                       
  129.             TI=0;                                       
  130.           }
  131.           Delay_1ms(900);
  132.           if(Buffer=='\n')       
  133.           {
  134.             Buffer='a';
  135.             break;
  136.            }
  137.         }
  138.           
  139.         //串口发送指令AT+CIPSTO=0,设置服务超时时间,0即永远不超时
  140.         while(1)
  141.         {
  142.           pt="AT+CIPSTO=0\r\n";               
  143.           while(*pt)
  144.           {
  145.             SBUF=*(pt++);                       
  146.             while(TI==0);                       
  147.             TI=0;                                       
  148.           }
  149.           Delay_1ms(900);
  150.           if(Buffer=='\n')       
  151.           {
  152.             Buffer='a';
  153.             break;
  154.            }
  155.         }
  156.         //串口发送指令AT+CIPAP="192.168.1.110",设置8266 AP地址
  157.         while(1)
  158.         {
  159.           pa="AT+CIPAP=\"192.168.1.110\"\r\n";       
  160.           while(*pa)
  161.           {
  162.             SBUF=*(pa++);               
  163.             while(TI==0);               
  164.             TI=0;                                               
  165.           }
  166.           Delay_1ms(900);
  167.           if(Buffer=='\n')       
  168.           {
  169.             Buffer='a';
  170.             break;
  171.            }
  172.         }
  173.           
  174.        
  175.           LED=0;
  176.           while(1)
  177.           {
  178.                   if(Buffer=='q')
  179.                  jdq1=0;
  180.                   if(Buffer=='w')
  181.                  jdq2=0;
  182.                          if(Buffer=='e')
  183.                  jdq3=0;
  184.                          if(Buffer=='r')
  185.                  jdq4=0;

  186.                         if(Buffer=='a')
  187.                  jdq1=1;
  188.                   if(Buffer=='s')
  189.                  jdq2=1;
  190.                          if(Buffer=='d')
  191.                  jdq3=1;
  192.                          if(Buffer=='f')
  193.                  jdq4=1;
  194.           }

  195. }
复制代码


wifi远程控制c程序ok.rar

31.62 KB, 下载次数: 12, 下载积分: 黑币 -5

评分

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

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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