/*這是我的單片機程序,我現在讓他為AP模式*/
#include <reg52.h>
#include <stdio.h>
#include <intrins.h>
typedef unsigned int u16;
typedef unsigned char u8;
u8 receiveData;//接收數據的變量
u16 a;
bit flag=1;
float S=0;
void UsartInit()
{
SCON=0X50; //設置為工作方式1 0110
TMOD=0X21; //設置計數器工作方式2
TH1=0XFD; //計數器初始值設置,注意波特率是9600的
TL1=0XFD;
TH0=0;
TL0=0;
TR0=0;
ET0=1;
TI=1;//printf往手機發數據,不能少
TR1=1; //打開計數器
ES=0;
EA=1; //打開總中斷
TI=1;
for (a=0; a<50000; a++);//延時幾秒,讓模塊有時間啟動
printf ("AT+CWMODE=2\n");
do{
if(RI){
receiveData=SBUF;//接收緩存器
RI=0;
if(receiveData=='K')
flag=0;
}
}while(flag);
flag=1;
for (a=0; a<30000; a++);
printf ("AT+RST\n");
do{
if(RI){
receiveData=SBUF;//接收緩存器
RI=0;
if(receiveData=='y')
flag=0;
}
}while(flag);
flag=1;
for (a=0; a<50000; a++);
printf ("AT+CIPMUX=1\n"); //
do{
if(RI){
receiveData=SBUF;//接收緩存器
RI=0;
if(receiveData=='K')
flag=0;
}
}while(flag);
flag=1;
for (a=0; a<30000; a++);
printf ("AT+CIPSERVER=1,8080\n"); //
do{
if(RI){
receiveData=SBUF;//接收緩存器
RI=0;
if(receiveData=='K')
flag=0;
}
}while(flag);
flag=1;
for (a=0; a<30000; a++);
//RI=0;
ES=1; //打開串口中斷
}
void main()
{
UsartInit(); // 串口初始化
while(1)
{
if(receiveData=='1')
P2=0x00;
if(receiveData=='2')
P2=0xff;
}
}
void Usart() interrupt 4
{
receiveData=SBUF;//接收緩存器
RI = 0;//清除接收中斷標志位
} |