找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机程序 WiFi模块控制

[复制链接]
ID:1156637 发表于 2025-8-24 15:44 | 显示全部楼层 |阅读模式
利用WiFi模块程序实现手机控制单片机

  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit key=P1^0;
  5. sbit key1=P1^1;
  6. sbit beep=P2^3;

  7. uchar Receive;
  8. uchar Receive_table[15];
  9. uint i;

  10. /***************延时毫秒***************************/
  11. void delay_ms(uint t)                //STC89C52
  12. {
  13.         uint i,j;
  14.     for(i=t;i>0;i--)
  15.         for(j=110;j>0;j--);

  16. }
  17. /***************延时微妙***************************/
  18. void delay_us(uchar t)
  19. {
  20.         while(t--);
  21. }

  22. /***************串口初始化***********************************/
  23. void Uart_Init(void)
  24. {
  25.         TMOD=0x20;
  26.         SCON=0x50;
  27.         TH1=0xFD;                //9600
  28.         TL1=TH1;
  29.         PCON=0x00;
  30.         EA=1;
  31.         TR1=1;
  32.         ES=1;
  33. }

  34. /*****************发送AT指令**********************************/
  35. void SENT_At(uchar *puf)
  36. {
  37.     ES=0;
  38.         while(*puf!='\0')        //字符串默认结尾‘\0’,以此来判断字符串的结束
  39.     {
  40.         SBUF=*puf;
  41.                 while(!TI);
  42.                 TI=0;
  43.                 delay_us(500);
  44.         puf++;
  45.     }
  46. }
  47. /****通过单片机配置AT指令*******/
  48. void WIFI_Init()
  49. {
  50.         delay_ms(10000);       
  51.         SENT_At("AT+CWMODE=1\r\n");                                                        //Sta模式,保存到flash
  52.         delay_ms(10000);       

  53.         SENT_At("AT+CWJAP=\"CMCC-SB\",\"18469347117\"\r\n");        //连接无线热点
  54.         delay_ms(8000);

  55.         SENT_At("AT+CIPMUX=1\r\n");                                                //0:单连接,1:多连接
  56.         delay_ms(10000);
  57.                           
  58.         SENT_At("AT+CIPSERVER=1,8888\r\n");        //配置目标TCP服务器
  59.         delay_ms(10000);

  60.         beep=0;
  61.         delay_ms(1000);
  62.         beep=1;
  63.         P1=0xff;

  64.         ES = 1;
  65.        
  66. }
  67. /**************主函数**********************************/
  68. void main()
  69. {
  70.         Uart_Init();
  71.         WIFI_Init();
  72.         while(1);
  73. }

  74. /*************接受数据***************************************/

  75. void Uart() interrupt 4
  76. {
  77.         if(RI==1)
  78.         {
  79.                 RI = 0;
  80.                 Receive_table[i]=SBUF;
  81.                 if(Receive_table[0]=='+')
  82.                 i++;
  83.                 else
  84.                         i = 0;
  85.                 if(i>=10)
  86.                 {
  87.                         if((Receive_table[0]=='+')&&(Receive_table[1]=='I')&&(Receive_table[2]=='P')&&(Receive_table[3]=='D'))
  88.                         {
  89.                                 if(Receive_table[9]=='0')                //第1路: 开
  90.                                         key=0;
  91.                                 if(Receive_table[9]=='1')                //第1路: 关
  92.                                         key=1;
  93.                                 if(Receive_table[9]=='2')                //第2路: 开
  94.                                         key1=0;
  95.                                 if(Receive_table[9]=='3')                //第2路: 关
  96.                                         key1=1;
  97.                         }
  98.                         i = 0;
  99.                 }
  100.         }
  101.         else
  102.                    TI = 0;               
  103. }
复制代码


回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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