|
- #include<reg52.h>
- #include<math.h>
- #include <stdio.h>
- #define uchar unsigned char
- #define uint unsigned int
- code uchar smg[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};
- sbit jdq1=P2^0;
- sbit jdq2=P2^1;
- sbit jdq3=P2^2;
- sbit jdq4=P2^3;
- sbit LED=P1^0;
- uchar *pr; //指针-重启模块(AT指令)
- uchar *pc; //指针-设置工作模式(1-STA,2-AP,3-STA+AP)
- uchar *pd; //指针-设置AP热点的SSID,密码,和加密方式等0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK
- uchar *pa; //指针-设置AP地址(AT指令)
- uchar *pm; //指针-设置多连接(AT指令)
- uchar *ps; //指针-开启TCP服务器模式(AT指令)
- uchar *pt; //指针-设置服务超时时长(AT指令)
- uchar Buffer='a'; //从串口接收的数据(给个初值用于防误判)
- uint i,j;
- uint aa=200;
- void Delay_1ms(uint i)//1ms延时
- {
- uint x,j;
- for(j=0;j<i;j++)
- for(x=0;x<=148;x++);
- }
- void Com_Int(void) interrupt 4 //串口中断函数
- {
- EA = 0;
- if(RI == 1) //当硬件接收到一个数据时,RI会置位
- {
- Buffer=SBUF;
- RI = 0;
- }
- EA = 1;
- }
- void Com_Init(void) // 串口初始化 -- 晶振11.0592,波特率9600,使能串口中断
- {
- TMOD = 0x20;
- PCON = 0x00;
- SCON = 0x50;
- TH1 = 0xFd; //设置波特率 9600
- TL1 = 0xFd;
- TR1 = 1; //启动定时器1
- ES = 1; //开串口中断
- EA = 1; //开总中断
- }
- void main()
- {
- Com_Init();//串口初始化
- Delay_1ms(2000); //延时几秒时间等模块启动
- LED=1;
- while(0)
- {
- pr="AT+RST\r\n";
- while(*pr)
- {
- SBUF=*(pr++);
- while(TI==0); //以查询方式查询串口是否发送完毕
- TI=0; //清发送标志
- }
- Delay_1ms(900);
- if(Buffer=='\n')
- {
- Buffer='a';
- break;
- }
- }
- //设置工作模式(1-STA,2-AP,3-STA+AP)
- while(1)
- {
- pc="AT+CWMODE=2\r\n";
- while(*pc)
- {
- SBUF=*(pc++);
- while(TI==0);
- TI=0;
- }
- Delay_1ms(900);
- if(Buffer=='\n')
- {
- Buffer='a';
- break;
- }
- }
- //设置AP热点的SSID,密码,和加密方式等
- pd="AT+CWSAP=\"ESP8266_xiaoyu\",\"0123456789\",11,4\r\n";
- while(1)
- {
- while(*pd)
- {
- SBUF=*(pd++);
- while(TI==0);
- TI=0;
- }
- Delay_1ms(900);
- if(Buffer=='\n')
- {
- Buffer='a';
- break;
- }
- }
- //串口发送指令AT+CIPMUX=1,让ESP8266进入多连接模式
- while(1)
- {
- pm="AT+CIPMUX=1\r\n";
- while(*pm)
- {
- SBUF=*(pm++);
- while(TI==0); //以查询方式查询串口是否发送完毕
- TI=0; //清发送标志
- }
- Delay_1ms(900);
- if(Buffer=='\n')
- {
- Buffer='a';
- break;
- }
- }
- //串口发送指令AT+CIPSERVER=1,5000,让模块开启TCP服务器模式,端口为5000
- while(1)
- {
- ps="AT+CIPSERVER=1,5000\r\n";
- while(*ps)
- {
- SBUF=*(ps++);
- while(TI==0);
- TI=0;
- }
- Delay_1ms(900);
- if(Buffer=='\n')
- {
- Buffer='a';
- break;
- }
- }
-
- //串口发送指令AT+CIPSTO=0,设置服务超时时间,0即永远不超时
- while(1)
- {
- pt="AT+CIPSTO=0\r\n";
- while(*pt)
- {
- SBUF=*(pt++);
- while(TI==0);
- TI=0;
- }
- Delay_1ms(900);
- if(Buffer=='\n')
- {
- Buffer='a';
- break;
- }
- }
- //串口发送指令AT+CIPAP="192.168.1.110",设置8266 AP地址
- while(1)
- {
- pa="AT+CIPAP=\"192.168.1.110\"\r\n";
- while(*pa)
- {
- SBUF=*(pa++);
- while(TI==0);
- TI=0;
- }
- Delay_1ms(900);
- if(Buffer=='\n')
- {
- Buffer='a';
- break;
- }
- }
-
-
- LED=0;
- while(1)
- {
- if(Buffer=='q')
- jdq1=0;
- if(Buffer=='w')
- jdq2=0;
- if(Buffer=='e')
- jdq3=0;
- if(Buffer=='r')
- jdq4=0;
- if(Buffer=='a')
- jdq1=1;
- if(Buffer=='s')
- jdq2=1;
- if(Buffer=='d')
- jdq3=1;
- if(Buffer=='f')
- jdq4=1;
- }
- }
复制代码
|
评分
-
查看全部评分
|