ESP8266无线18B20温度手机接收有源代码和开源
2019-11-25 来源:51hei
WIFI无线通信结合手机E4A编程,很好的学习例程,开源全部代码,如ESP8266无线网地址是直接做进E4A了,每次一键接入,初始值10.10.10.208
端口5000
不会E4A的就只能按这个值烧录ESP8266模块了。会E4A就直接改成你自己的IP
单片机源程序:
/********************************************************************/
/* WIFI无线传输手机显示 */
/********************************************************************/
#include #include #include #define uint unsigned int #define uchar unsigned char /*****************相关变量**************/ uint Receive,i,xm1,xm2,xm3,xm0; long s; [size=36.9444px]uchar Recive_table[40]; //用于接收wifi模块反馈到MCU上的数据 [/size] uchar code ta[]='0123456789- '; //测试一下 uchar table[]='温度:00.0 C';//传送用定位模板 sbit dq=P3^7;//18B20总线接口。DQ bit tflag;//定义一个温度标志位。+、- uint tvalue;//定义一个全局变量,用来合高低8位温度//显示温度 void delay (int a)//毫秒级延时 { int x,y; for(x=a;x>0;x--) for(y=110;y>0;y--); } void delayus(int t)//微秒级延时 { while(t--); } /******************************************************************* 名称:延时函数 作用:毫秒级延时,微妙级延时函数,为数据收发完成作等待....... ********************************************************************/ void ms_delay(uint t) { uint i,j; for(i=t;i>0;i--) for(j=110;j>0;j--); } void us_delay(uchar t) { while(t--); } /*------------------------------------------------ uS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时 长度如下 T=tx2+5 uS ------------------------------------------------*/ void DelayUs2x(unsigned char t); /*------------------------------------------------ mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编 ------------------------------------------------*/ void DelayMs(unsigned char t); /*------------------------------------------------ uS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时 长度如下 T=tx2+5 uS ------------------------------------------------*/ void DelayUs2x(unsigned char t) { [size=36.9444px] while(--t);[/size] } /*------------------------------------------------ mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编 ------------------------------------------------*/ void DelayMs(unsigned char t) { [size=36.9444px] while(t--) //大致延时1mS[/size] [size=36.9444px] {[/size] [size=36.9444px] DelayUs2x(245);[/size] DelayUs2x(245); [size=36.9444px] }[/size] } [size=36.9444px]void Uart_Init() //使用定时器1作为波特率发生器(STC89C52、STC89C51、AT89C51等均可) [/size] { TMOD = 0x21; [size=36.9444px] SCON = 0x50; //设置串行方式[/size] [size=36.9444px] TH1 = 0xFD; //波特率9600[/size] TL1 = TH1; PCON = 0x00; [size=36.9444px] EA = 1; //总中断打开 [/size] [size=36.9444px] ES = 1; //开串口中断 [/size] [size=36.9444px] TR1 = 1; //启动定时器1[/size] } /******************************************************************** 名称:串口发送函数 功能:MCU向无线WIFI模块ESP8266发送数据 ********************************************************************/ void Send_Uart(uchar value) { ES=0; //关闭串口中断 TI=0; //清发送完毕中断请求标志位 SBUF=value; //发送 while(TI==0); //等待发送完毕 TI=0; //清发送完毕中断请求标志位 ES=1; //允许串口中断 TH0=0; TL0=0; } /******************************************************************** 名称:WIFI模块设置函数 作用: 启动模块,以便可以实现无线接入和控制 ********************************************************************/ [size=36.9444px]void ESP8266_Set(uchar *puf) // 数组指针*puf指向字符串数组 [/size] { while(*puf!='