esp8266通过串口实现pc端的控制

1.前提介绍:
esp8266通过串口实现pc端的控制_第1张图片

#include"reg52.h"
#include"UART_INIT.h"
void initESP8266()
{	
	delay(1000);
	send("AT+CWMODE_DEF=1\r\n");
	delay(1000);
    send("AT+CWJAP_DEF=\"gcc-tech\",\"18650711783\"\r\n");
	delay(5000);
	send("AT+CIPSTART=\"TCP\",\"192.168.1.29\",8080\r\n");
	delay(5000);
	send("AT+CIPMODE=1\r\n");
	delay(1000);
    send("AT+CIPSEND\r\n");
    delay(1000);
}
int main()
{ 
	char buf[30];
	initDate115200();
	initESP8266();	 

	return 0;
}  		  
#include"reg52.h"
#include"UART_INIT.h"
#include
sbit Echo=P1^0;//接受端
sbit Trig=P1^1;//控制端
sbit relay=P2^4;//继电器

void delay(unsigned long time)
{
	int i;
	int j;
	for(i=0;i<100;i++)
	for(j=0;j<time;j++);
}
/*void initDate9600()
{
	SCON=0x50;
	TMOD=0x20;
	TH1=0xFD;
	TL1=0xFD;
	TR1=1;
	ES=1;
	EA=1; 
}	*/
void initDate115200()
{
	SCON=0x50;
	T2CON=0x1<<4|0x1<<5;
	TH2=0xFF;
	TL2=0xFD;
	RCAP2H=0xFF;
	RCAP2L=0xFD;
	TR2=1;
	ES=1;
	EA=1; 
}
void send(char *pstr)
{
	while(*pstr!='\0')
	{
		SBUF=*pstr;
		pstr++;
		while(TI!=1);
		TI=0;
		delay(5);	
	}
		
}

void Delay10us()
{
	TMOD|=0x1;
	TH0=0xff;
	TL0=0xf6;
	TR0=1;
	//while(!TF0);
	//TR0=0;		
}
void CSB_Rstart()//启动模块
{
	Trig=0;
	Trig=1;
	Delay10us();
	Trig=0;
}
void CSB_Init()
{
	TMOD|=0x01;
	TH0=0;
	TL0=0;
}

float CSB_GetDistance()
{
	unsigned int time=TH0*256+TL0;//得到总时间,单位us
	float distance=(float)(time*0.017);
	//TH0=0;
	//TL0=0;//清空定时器
	return distance;
}
void starttime()
{
	TH0=0;
	TL0=0;
	TR0=1;
}
float CSB_GetOnce()//得到一次超声波测距模块的距离
{
	CSB_Rstart();
	while(!Echo);//当Echo为零时等待
	starttime();//开启计数
	while(Echo);//当Echo为1计数并等待
	TR0=0;//关闭计数
	return CSB_GetDistance();//计算
}
void start_relay()
{	 	
	relay=0;
	delay(30);
	relay=1;
	relay=0;		
}
void stop_relay()
{
	
}		   

你可能感兴趣的:(单片机)