标题:
ESP8266安卓客户端.apk下载及51单片机测试程序
[打印本页]
作者:
Toreader
时间:
2017-5-15 17:21
标题:
ESP8266安卓客户端.apk下载及51单片机测试程序
esp8266测试程序和ESP8266安卓客户端.apk提供下载
0.png
(65.71 KB, 下载次数: 127)
下载附件
2017-5-15 18:51 上传
单片机源程序如下:
/************* 本地常量声明 **************/
#define MAIN_Fosc 22118400L //定义主时钟
#define RX1_Lenth 32 //串口接收缓冲长度
//#define BaudRate1 9600UL //选择波特率
//#define Timer1_Reload (65536UL -(MAIN_Fosc / 4 / BaudRate1)) //Timer 1 重装值, 对应300KHZ
//#define Timer2_Reload (65536UL -(MAIN_Fosc / 4 / BaudRate1)) //Timer 2 重装值, 对应300KHZ
#include"STC15Fxxxx.H"
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
/************* 本地变量声明 **************/
u8 idata RX1_Buffer[RX1_Lenth]; //接收缓冲
u8 TX1_Cnt; //发送计数
u8 RX1_Cnt; //接收计数
bit B_TX1_Busy; //发送忙标志
/************* 端口引脚定义 **************/
sbit LED1=P1^0;//LED1
sbit LED2=P1^1;//LED2
sbit LED3=P3^7;//LED3
sbit DK1=P3^3;//继电器
sbit BEEP=P3^4;//蜂鸣器
sbit K1=P1^3;//按键1
sbit K2=P1^2;//按键2
sbit K3=P1^4;//按键3
sbit DQ=P1^6;//18B20温度传感器
char led1bl,led2bl,led3bl;
#define jump_ROM 0xCC //跳过ROM命令
#define start 0x44 //启动转换命令
#define read_EEROM 0xBE //读存储器命令
uchar TMPH,TMPL; //温度值
uchar HL; //当前温度
unsigned char LYMS[13]="AT+CWMODE=2\r\n";
unsigned char SZLY[38]="AT+CWSAP='ESP8266','0123456789',11,0\r\n";
unsigned char RST[8]="AT+RST\r\n";
unsigned char SZDLJ[13]="AT+CIPMUX=1\r\n";
unsigned char KQFU[21]="AT+CIPSERVER=1,5000\r\n";
unsigned char FSSJ[13]="AT+CIPSEND=\r\n";//AT+CIPSEND= 发送数据
unsigned char WDSJ[4]={0x00,0x00,0x00,0x00};
void Delay1(unsigned long ms)
{
unsigned char i, j,k;
for(k=0;k<ms;k++)
{
_nop_();
_nop_();
i = 22;
j = 128;
do
{
while (--j);
} while (--i);
}
}
void Delay2(unsigned long cnt)
{
long i;
for(i=0;i<cnt*100;i++);
}
void Delay3(unsigned int N)
{
int i;
for(i=0;i<N*10;i++);
}
//--------------------
// 函数名称: Reset
// 入口参数: 无
// 返回deceive_ready
// 函数功能:复位
//--------------------
unsigned char Reset(void)
{
unsigned char deceive_ready;
Delay3(10);
DQ=0; //拉低DQ线
Delay3(29); //延时至少480us~960us
DQ=1; //将DQ线设置位逻辑高
Delay3(3); //延时等待deceive_ready响应
deceive_ready=DQ; //采样deceive_ready信号
Delay3(25); //等待时序结束
return(deceive_ready); //有deceive_ready信号时返回0,否则返回1
}
//---------------------------
// 函数名称:read_bit
// 入口参数: 无
// 返回接收的数据
// 函数功能:读一个bit子程序
//---------------------------
unsigned char read_bit(void)
{
unsigned char i;
DQ=0; //拉低DQ线开始时序
DQ=1; //升高DQ线
for(i=0;i<3;i++); //延时至时序开始15us
return(DQ); //返回DQ值
}
//---------------------------
// 函数名称: write_bit
// 入口参数: bitval
// 函数功能:写一个bit子程序
//---------------------------
void write_bit(unsigned char bitval)
{
DQ=0; //拉低DQ线开始时序
if(bitval==1)
DQ=1; //如果写逻辑为高
Delay3(5); //延时
DQ=1; //升高DQ线
}
//----------------------------
// 函数名称: write_byte
// 入口参数: val
// 函数功能:写一个byte子程序
//----------------------------
void write_byte(unsigned char val)
{
unsigned char i,temp;
for(i=0;i<8;i++)
{
temp=val>>i; //将val位右移i位赋值给比temp
temp=temp&0x01; //取temp最低位
write_bit(temp);
Delay3(5); //延时至时序结束
}
}
//----------------------------
// 函数名称: read_byte
// 返回接收的数据 value
// 函数功能:读一个byte子程序
//----------------------------
unsigned char read_byte(void)
{
unsigned char i,m,receive_data;
m=1;receive_data=0; //初始化
for(i=0;i<8;i++)
{
if(read_bit())
{
receive_data=receive_data+(m<<i);
} //每读一位数据据,左移一位
Delay3(6); //延时至时序结束
}
return(receive_data); //返回value
}
//---------------------------
// 函数名称: Get_temp
// 返回接收的数据 TMPL, TMPH
// 函数功能:取出温度值
//---------------------------
uint Get_temp(void)
{
unsigned int T;
//EA = 0;
Reset();
write_byte(jump_ROM); //发跳过ROM命令
write_byte(start); //发启动转换命令
Reset();
write_byte(jump_ROM); //发跳过ROM命令
write_byte(read_EEROM); //发跳过ROM命令
TMPL=read_byte(); //读低8位温度值
TMPH=read_byte(); //读高8位温度值
//EA = 0;
T=TMPL+TMPH*256;
if(T==0xFFFF) return 0xFFFF;
if(T>0x8000) //温度为负
{
T=~T+1;
return(0x8000+T*5/8);
}
else //温度位正
{
return(T*5/8);
}
}
void UARTSendByte(unsigned char byte)//?????????
{
SBUF=byte; //???????????
while(TI==0); //??????,TI?????1
TI=0; //?????????
}
void DisplayTemp(unsigned int temp)
{
uchar i=0;
uchar TmpTable[3] = {0};
TmpTable[ 0 ] = (temp%1000)/100;
TmpTable[ 1 ] = (temp%100)/10;
TmpTable[ 2 ] = (temp%10);
// UARTSendByte(TmpTable[0] + 0x30);Delay3(9);
// UARTSendByte(TmpTable[1] + 0x30);Delay3(9);
// UARTSendByte('.');Delay3(9);
// UARTSendByte(TmpTable[2] + 0x30);Delay3(9);
// UARTSendByte(0x0d);Delay3(9);
// UARTSendByte(0x0a);Delay3(9);
WDSJ[0]=(TmpTable[0] + 0x30);
WDSJ[1]=(TmpTable[1] + 0x30);
WDSJ[2]=('.');
WDSJ[3]=(TmpTable[2] + 0x30);
}
void main(void)
{
char i=0;
B_TX1_Busy = 0;
RX1_Cnt = 0;
TX1_Cnt = 0;
S1_8bit(); //8位数据
S1_USE_P30P31(); //UART1 使用P30 P31口 默认
/*AUXR &= ~(1<<4); //Timer stop 波特率使用Timer2产生
AUXR |= 0x01; //S1 BRT Use Timer2;
AUXR |= (1<<2); //Timer2 set as 1T mode
TH2 = (u8)(Timer2_Reload >> 8);
TL2 = (u8)Timer2_Reload;
AUXR |= (1<<4); //Timer run enable
REN = 1; //允许接收
ES = 1; //允许中断
EA = 1; //允许全局中断*/
S2CON = 0x50; //8位数据,可变波特率
AUXR |= 0x04; //定时器2时钟为Fosc,即1T
T2L = 0xD0; //设定定时初值
T2H = 0xFF; //设定定时初值
AUXR |= 0x10; //启动定时器2
REN = 1; //允许接收
ES = 1; //允许中断
EA = 1; //允许全局中断*/
P3M1 = 0x00;
P3M0 = 0xFF;
RX1_Cnt=0;
DK1=0;
BEEP=0;
Delay2(2000);
for(i=0;i<13;i++)//AT+CWMODE=2 设置成路由模式
{
SBUF=LYMS[i];Delay1(5);
}
Delay2(1000);
for(i=0;i<38;i++)//AT+CWSAP="ESP8266","0123456789",11,0 设置路由
{
SBUF=SZLY[i];Delay1(5);
}
Delay2(3000);
for(i=0;i<8;i++)//AT+RST 重启
{
SBUF=RST[i];Delay1(5);
}
Delay2(5000);
for(i=0;i<13;i++)//AT+CIPMUX=1 设置成多连接
{
SBUF=SZDLJ[i];Delay1(5);
}
Delay2(2000);
for(i=0;i<21;i++)//AT+CIPSERVER=1,5000 开启TCP服务端口
{
SBUF=KQFU[i];Delay1(5);
}
Delay2(2000);
Get_temp();
Delay3(50000);
Get_temp();
Delay3(50000);
while (1)
{
DisplayTemp(Get_temp());//刷新18B20
if(K1==0)
{
Delay1(5);
if(K1==0)
{
LED1=!LED1;
}
while(K1==0);
}
if(K2==0)
{
Delay1(5);
if(K2==0)
{
LED2=!LED2;
}
while(K2==0);
}
if(K3==0)
{
Delay1(5);
if(K3==0)
{
LED3=!LED3;
}
while(K3==0);
}
}
}
/********************* UART1中断函数************************/
void UART1_int (void) interrupt UART1_VECTOR
{
char i,a,b,c;
if(RI)
{
RI = 0;
RX1_Buffer[RX1_Cnt] = SBUF; //保存一个字节
if(RX1_Buffer[0]==0x45)
{
RX1_Cnt++;
}
else
{
RX1_Cnt=0;
}
if(RX1_Cnt>=10)
{
if(RX1_Buffer[0]==0x45&&RX1_Buffer[1]==0x53&&RX1_Buffer[2]==0x50)
{
if(RX1_Buffer[4]==0x4C&&RX1_Buffer[5]==0x45&&RX1_Buffer[6]==0x44)//判断LED
{
if(RX1_Buffer[7]==0x31)//判断LED1
{
if(RX1_Buffer[3]==0x4B)//判断开
{
LED1=0;
}
if(RX1_Buffer[3]==0x47)//判断关
{
LED1=1;
}
}
if(RX1_Buffer[7]==0x32)//判断LED2
{
if(RX1_Buffer[3]==0x4B)//判断开
{
LED2=0;
}
if(RX1_Buffer[3]==0x47)//判断关
{
LED2=1;
}
}
if(RX1_Buffer[7]==0x33)//判断LED3
{
if(RX1_Buffer[3]==0x4B)//判断开
{
LED3=0;
}
if(RX1_Buffer[3]==0x47)//判断关
{
LED3=1;
}
}
}
if(RX1_Buffer[4]==0x4A&&RX1_Buffer[5]==0x44&&RX1_Buffer[6]==0x51)//判断继电器
{
if(RX1_Buffer[7]==0x31)//判断LED1
{
if(RX1_Buffer[3]==0x4B)//判断开
{
DK1=1;
}
if(RX1_Buffer[3]==0x47)//判断关
{
DK1=0;
}
}
}
if(RX1_Buffer[3]==0x46&&RX1_Buffer[4]==0x4D&&RX1_Buffer[5]==0x51&&RX1_Buffer[6]==0x43&&RX1_Buffer[7]==0x53)//判断蜂鸣器
{
BEEP=1;Delay2(100);BEEP=0;Delay2(100);BEEP=1;Delay2(100);BEEP=0;Delay2(100);
}
if(RX1_Buffer[3]==0x43&&RX1_Buffer[4]==0x58&&RX1_Buffer[5]==0x53&&RX1_Buffer[6]==0x4A)//查询数据
{
if(LED1==0){a=0x4B;}else{a=0x47;}
if(LED2==0){b=0x4B;}else{b=0x47;}
if(LED3==0){c=0x4B;}else{c=0x47;}
for(i=0;i<11;i++)//AT+CIPSEND= 发送数据
{
SBUF=FSSJ[i];Delay1(5);
}
SBUF=0x30;Delay1(5);
SBUF=0x2C;Delay1(5);
SBUF=0x32;Delay1(5);
SBUF=0x36;Delay1(5);
SBUF=0x0D;Delay1(5);
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
安信可测试版使用说明.rar
(1.04 MB, 下载次数: 286)
2017-5-15 17:20 上传
点击文件名下载附件
8266WiFi模块测试程序
下载积分: 黑币 -5
作者:
admin
时间:
2017-5-15 18:54
好资料,51黑有你更精彩!!!
作者:
hymtnzc
时间:
2017-5-15 20:36
太好了下来测试,论坛有你更精彩。
作者:
kk276988160
时间:
2017-5-16 15:19
真有你的 不过还是不错
作者:
维超
时间:
2017-5-18 14:19
通过串口发送AT命令来实现无线传输的
作者:
583653368
时间:
2017-10-23 18:55
你好 源码编译是提示目标未创建 不知道该怎么解决
* RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 12D5H BYTE (235%) *
******************************************************************************
Program Size: data=204.1 xdata=225 code=5197
LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)
*** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
MODULE: C:\KEIL\C51\LIB\C51C.LIB (-----)
LIMIT: 0800H BYTES
目标未创建
作者:
wuxishun
时间:
2017-12-10 13:16
安装了,运行不了怎么解决?
作者:
陈百通
时间:
2017-12-12 13:41
学习一下!!!!!!!!!!!!!!!!
作者:
陈百通
时间:
2017-12-12 13:41
学习一下!!!!!!!!!!!!!!!!
作者:
zc98
时间:
2017-12-13 20:10
apk不能用,,
作者:
876866648
时间:
2017-12-14 12:50
谢谢你,很有用
作者:
aking991
时间:
2017-12-16 16:18
值得学习,可惜黑币不够了
作者:
ntlclxyc
时间:
2018-2-11 17:06
好好东西啊,能免费下么?
作者:
jjj12345
时间:
2018-4-10 20:36
ntlclxyc 发表于 2018-2-11 17:06
好好东西啊,能免费下么?
还不错,只需要谢谢
作者:
stillwater
时间:
2018-4-14 19:12
希望有用
作者:
么么了
时间:
2018-4-16 20:46
好想试试
作者:
itzheng
时间:
2018-7-24 15:34
好好东西啊,能免费下么?
作者:
chuyuanjie
时间:
2018-9-23 16:24
终于找到了,正发愁手机客户端不知怎么编写呢,可以用以下下
作者:
可可分享
时间:
2018-9-24 14:44
安装了可惜打不开APP
作者:
WFX777888
时间:
2018-10-26 10:52
好资料,51黑有你更精彩!!!
作者:
Wong410yj
时间:
2018-10-26 17:10
感觉有点难,慢慢写
作者:
zgp
时间:
2018-11-19 13:16
学习学习
作者:
无色丶
时间:
2018-12-17 16:00
赞。好东西
作者:
阿斯顿马丁
时间:
2019-5-11 22:54
学习一下
作者:
jemery1030
时间:
2019-7-22 16:53
這很棒,感謝分享。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1