久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
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.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲成人网在线观看
|
欧美性生活免费
|
国产精品成人一区二区三区夜夜夜
|
欧美视频日韩
|
国产成人亚洲精品
|
国产黄色av网站
|
毛片久久久
|
亚洲第一视频
|
亚洲欧美日韩在线
|
欧美色视频免费
|
欧美日韩国产精品一区
|
日韩欧美三区
|
成人水多啪啪片
|
一级毛片视频
|
一区二区高清不卡
|
免费v片
|
三级黄色大片网站
|
日韩久久久久久久
|
91在线免费视频
|
国产一区二区在线免费视频
|
亚洲男人天堂2024
|
特级黄一级播放
|
国产精品久久网
|
天堂成人国产精品一区
|
欧美久久一区二区三区
|
午夜视频在线免费观看
|
久久久久久黄
|
一级毛片视频
|
日本亚洲欧美
|
欧美xxxⅹ性欧美大片
|
欧美日韩中文字幕在线
|
一区二区三区四区在线
|
国产午夜亚洲精品不卡
|
一区二区三区精品
|
国产在线一区二区三区
|
一区二区三区不卡视频
|
日本精品视频在线观看
|
国产精品久久久久av
|
亚洲成人免费观看
|
毛片综合
|
欧美黑人一区二区三区
|