![]() |
發布時間: 2021-4-30 19:42
正文摘要:很久很久以前樓主跟著QQ群友一起擼了好幾塊ESP8266的模塊, 最近一段時間比較閑,拿出塵封的往事,哦不對是ESP8266模塊,決定研究研究! 在網上查找各種資料,例程,過程挺難的。 雖然現在還是很迷茫,但應該算是 ... |
欣欣 發表于 2021-5-1 02:19 非常感謝樓主無私奉獻!學習了。 |
'經過2個小時的奮戰,終于用E4A編出了手機控制程序,程序代碼如下,能實現和電腦完全一樣的功能(我可是現學的哦) 事件 按鈕1.被單擊() 客戶1.連接服務器("192.168.4.1",1111,5000) 保存對象("客戶1",客戶1) 結束 事件 事件 客戶1.連接完畢(連接結果 為 邏輯型) 如果 連接結果 = 真 則 按鈕1.可視=假 按鈕2.可視=真 按鈕3.可視=真 按鈕4.可視=真 按鈕5.可視=真 按鈕6.可視=真 按鈕7.可視=真 按鈕8.可視=真 結束 如果 結束 事件 事件 按鈕8.被單擊() 客戶1.斷開連接() 按鈕1.可視=真 按鈕2.可視=假 按鈕3.可視=假 按鈕4.可視=假 按鈕5.可視=假 按鈕6.可視=假 按鈕7.可視=假 按鈕8.可視=假 結束 事件 事件 按鈕2.被單擊() 變量 字節集 為 字節型(1) 字節集(0)=65 客戶1.發送數據(字節集) 結束 事件 事件 按鈕3.被單擊() 變量 字節集 為 字節型(1) 字節集(0)=66 客戶1.發送數據(字節集) 結束 事件 事件 按鈕4.被單擊() 變量 字節集 為 字節型(1) 字節集(0)=67 客戶1.發送數據(字節集) 結束 事件 事件 按鈕5.被單擊() 變量 字節集 為 字節型(1) 字節集(0)=68 客戶1.發送數據(字節集) 結束 事件 事件 按鈕6.被單擊() 變量 字節集 為 字節型(1) 字節集(0)=69 客戶1.發送數據(字節集) 結束 事件 事件 按鈕7.被單擊() 變量 字節集 為 字節型(1) 字節集(0)=70 客戶1.發送數據(字節集) 結束 事件 '至此整個帖子就完成了,已經達到立貼時的目標,不知道你們學會了嗎?有問題可以提問哦,共同進步啊! |
斷開燒錄器與單片機的串口線,只保留電源線,我們就快樂的玩耍了。 下面我把源碼奉上 上位機軟件功能就是通過WIFI網絡傳送 A B C D E F這幾個字母給單片機而已,原理也很簡單。 畢竟樓主現在還只會點皮毛。 接下來我將去學如何在安卓手機上編寫上位機程序了,希望會這個的師兄賜教! |
208.59 KB, 下載次數: 37, 下載積分: 黑幣 -5
//STC15W408AS單片機程序源代碼如下: //QQ:9173002 STC15W408AS @11.0592MHZ #include <reg52.h> #include "intrins.h" typedef unsigned int u16; typedef unsigned char u8; sfr P5 = 0xc8; sfr AUXR = 0x8E; sfr T2H = 0xD6; sfr T2L = 0xD7; sbit LED1=P1^2; sbit LED2=P1^5; sbit LED3=P5^5; u8 receive[2]; u8 sign=0; void Delay1000ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); i = 8; j = 1; k = 243; do { do { while (--k); } while (--j); } while (--i); } void Init()//115200bps@11.0592MHz { SCON = 0x50; AUXR |= 0x01; AUXR |= 0x04; T2L = 0xE8; T2H = 0xFF; AUXR |= 0x10; TR1 = 1; } void send(u8 value) { ES=0; TI=0; SBUF=value; while(!TI); TI=0; ES=1; } void wifi_init() { u8 j=0; u8 a[]="AT+CWMODE=2\r\n"; //1=station 2=ap 3=station+ap u8 b[]="AT+CIOBAUD=115200\r\n";//BAND u8 c[]="AT+CWSAP_DEF=\"My_8266\",\"1234567890\",1,0,3,0\r\n"; //set wifi u8 d[]="AT+CIPMUX=1\r\n"; u8 e[]="AT+CIPSERVER=1,1111\r\n"; j=0; while(a[j]!='\0') { send(a[j]); j++; } j=0; Delay1000ms(); while(b[j]!='\0') { send(b[j]); j++; } Delay1000ms(); j=0; while(c[j]!='\0') { send(c[j]); j++; } Delay1000ms(); j=0; while(d[j]!='\0') { send(d[j]); j++; } Delay1000ms(); j=0; while(e[j]!='\0') { send(e[j]); j++; } Delay1000ms(); } void wifi_data() { if(receive[0]=='A') { LED1=0; } if(receive[0]=='B') { LED1=1; } if(receive[0]=='C') { LED2=0; } if(receive[0]=='D') { LED2=1; } if(receive[0]=='E') { LED1=0; LED2=0; } if(receive[0]=='F') { LED1=1; LED2=1; } } void main() { Init(); EA = 1; ES = 0; wifi_init(); while(1) { wifi_data(); } } void ZD() interrupt 4 { LED3=~LED3; if(RI) { RI=0; if(sign==1) { receive[0]=SBUF; sign=0; } if(SBUF==':') { sign=1; } } } //程序的主要算法來自 網友 a1bc2de3f |
本帖最后由 欣欣 于 2021-4-30 20:19 編輯 本例實現的功能:用上位機軟件通過ESP8266模塊控制STC15W408AS單片機以點了LED指示燈 主要元件:ESP-01S(ESP8266)模塊 一個 STC15W408AS單片機 一個 因為這個單片機支持3.3V電壓 發光二極管 N個 電阻 5.1K N個 所使用的軟件有: protel(畫電路圖) delphi7.0(編寫上位機軟件) keil5 V5.11.0.0(編寫單片機軟件)STC-ISP V6.88(下載單片機程序) 樓主電腦系統是WIN7 旗艦版 |