|
程序和APP程序都是網上找的 經過修改后就成了現在的樣子 手機不經過路由和8266直連
哪位大神可以幫忙把程序和APP改成帶反饋的(壓縮包內帶e4a文件)
比如在手機上按了某個按鍵 單片機收到后再反饋一個信號 APP收到后改變按鍵圖標
現在的不帶反饋 多個按鍵快速按下不看接收端就不知道按下的按鍵有沒有生效
e4a APP源碼
51hei.png (126.36 KB, 下載次數: 30)
下載附件
2020-12-17 16:01 上傳
源程序如下:
- ;AT+CWMODE=1 設置模式,模式說明:AT+CWMODE = :1-Station模式,2-AP模式,3-AP兼Station模式。重啟后生效
- ;AT+CIPMUX=0 ;單路連接時發送指令為AT+CIPSEND=x , x為發送的字節數 注意只有在單連接的時候才可以設置為透傳模式--就是串口的數據直接發送到網絡,網絡的數據直接發送到串口
- ;AT+CIPSTART="TCP","183.230.40.39",876
- ;AT+CIPSEND=50 向主機發送50個字節
- ;三、匯編程序如下:
- ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- ORG 0000H
- ; AJMP MAIN;轉入主程序
- ; ORG 0003H ;外部中斷P3.2腳INT0入口地址
- ; RETI
- ; ORG 000BH;中斷陷阱
- ; LJMP CT
- ; RETI
- ; ORG 0013H;中斷陷阱
- ; RETI
- ; ORG 0023H
- ; RETI
- DD1 EQU P1.0;運行狀態指示
- DD2 EQU P1.1;
- SETB DD1;
- SETB DD2;
-
- FLAG_0 EQU 20H.0 ;接收到上行串口發來數據標志 p3.0
- MAIN: MOV SCon,#50h; 方式1,REN=1.SM0,SM1,SM2,REN,TB8,RB8,TI,RI
- MOV TMOD,#21H;波特率發生器T1工作在模式2上
- MOV TH1,#0FDH
- MOV TL1,TH1
- MOV PCON,#0H
- SETB TR1 ;啟動定時器T1
- MOV TH0, #0DCH ;
- MOV TL0, #00H
- MOV DPTR,#5000;延時5秒 ;
- LCALL DelayXmS
-
- ;發送AT檢測8266
- LCALL ATEOK ;發送AT指令! 返回ok指令 檢測8266是否正常
- MOV DPTR,#5000;延時5秒
- LCALL DelayXmS
-
- ;模式設置
- ; LCALL CWMODE;模式說明:AT+CWMODE =3 :1-Station模式,2-AP模式,3-AP兼Station模式。重啟后生效 滅
- ; MOV DPTR,#5000;延時5秒 #5000;延時5秒
- ; LCALL DelayXmS
- ///////////////////////////////////////////////////////////////
- ;設置模塊
- LCALL SSID;
- MOV DPTR,#5000;延時5秒
- LCALL DelayXmS
-
- ;單鏈接、多連接
- LCALL CIPMUX ; CIPMUX=0 單路連接時(+CIPMUX=0) 多路連接時(+CIPMUX=1)
- MOV DPTR,#5000;延時5秒 ;
- LCALL DelayXmS
-
- ////////////////////////////////////////////////////////////////////////
- ;啟動TCP IP //啟動TCP/IP 實現基于網絡//控制 ESP8266_Set("AT+CIPSERVER=1,5000");
- LCALL CIPSERVER;
- MOV DPTR,#5000;延時5秒 ;
- LCALL DelayXmS
-
- ;永不超時
- LCALL CIPSTO;
- MOV DPTR,#5000;延時5秒 ;
- LCALL DelayXmS
- A1: MOV DPTR,#1000;延時5秒
- LCALL DelayXmS
- CLR FLAG_0
- ORL 0A8H, #82H;允許定時器0中斷
- A2: SETB TR0
- JB FLAG_0,A3 ;不為1等待,定時器0工作1分鐘時會使FLAG_0=1,接收到數據使FLAG_0=1
- JB RI,UARTI
- AJMP A2
- ;**********************************************
- A3: CLR TR0
- AJMP A1
- ;**********************************************
- UARTI: CLR TR0
- LCALL PDDA;調用串口接收0D/0A數據子程序
- UARTI1: CLR RI;清楚串口中斷標志
- LCALL PDRI
- /////////////////////////////////////////////////////////////////////////
- ;+IPD,
- MOV A,SBUF
- XRL A,#2BH; + #2BH ;+
- JNZ A2;判斷串口數據是不是“+號” ;
-
- UARTI2: CLR RI;軟件清除串口中斷標記
- LCALL PDRI;等待下一個串口數據
- MOV A,SBUF;將串口寄存器中接收到de數據給A
- CJNE A,#49H,EXITT;判斷串口數據;"I"
- CLR RI;軟件清除串口中斷標記 8個
- LCALL PDRI;等待下一個串口數據
- MOV A,SBUF;將串口寄存器中接收到de數據給A
- CJNE A,#50H,EXITT;判斷串口數據;"P"
- CLR RI;軟件清除串口中斷標記 8個
- LCALL PDRI;等待下一個串口數據
- MOV A,SBUF;將串口寄存器中接收到de數據給A
- CJNE A,#44H,EXITT;判斷串口數據;"D"
- CLR RI;軟件清除串口中斷標記 8個
- LCALL PDRI;等待下一個串口數據
- MOV A,SBUF;將串口寄存器中接收到de數據給A
- CJNE A,#2CH,EXITT;判斷串口數據;","
- CLR RI;軟件清除串口中斷標記 8個
- LCALL PDRI;等待下一個串口數據
- CLR DD2;
-
- MOV R3,#10;定義接收數據總長度 5
- LCALL TGSJ;調用接收串口數據子程序
- /////////////////////////////////////////////////////////////////////////
- ;解碼
- MOV A,SBUF;將串口寄存器中接收到de數據給A
- CJNE A,#30H,OUT1;
- CPL P2.0;
- LJMP EXITT;
- OUT1: CJNE A,#31H,OUT2;
- CPL P2.1;
- LJMP EXITT;
- OUT2: CJNE A,#32H,OUT3;
- CPL P2.2;
- LJMP EXITT;
- OUT3: CJNE A,#33H,OUT4;
- CPL P2.3;
- LJMP EXITT;
- OUT4: CJNE A,#34H,OUT5;
- CPL P2.4;
- LJMP EXITT;
- OUT5: CJNE A,#35H,OUT6;
- CPL P2.5;
- LJMP EXITT;
- OUT6: CJNE A,#36H,OUT7;
- CPL P2.6;
- LJMP EXITT;
- OUT7: CJNE A,#37H,EXITT;
- CPL P2.7;
- LJMP EXITT;
- ////////////////////////////////////////////////////////////////////////////////
- EXITT: MOV DPTR,#2000;延時5秒
- LCALL DelayXmS
- CLR RI;軟件清除串口中斷標記,退出串口中斷
- SETB DD2;
- AJMP A1
- ;***************************************************
- ;入口參數:DPTR=MS(毫秒1-65535mS)
- DELAYXMS:
- ; MOV WDT_CONTR ,#37H;喂狗
- MOV A,DPH
- MOV R7,#01
- JZ DF1
- MOV R7,DPH
- DF1: MOV A,DPl
- MOV R6,#1
- JZ DEL1
- MOV R6,DPl
- DEL1: MOV B,#0
- DJNZ B,$
- DJNZ B,$
- DJNZ R6,DEL1
- DJNZ R7,DF1
- RET
- ////////////////////////////////////////////////////
- ;********************************************** 0891683108403505F011000D91683131868651F8 0008000854084E0A75356E90
- //AT+CWSAP="wifi","123456789",11,4 設置模塊SSID:WIFI, PWD:密碼 及安全類型加密模式(WPA2-PSK)
- SSID:
- ;AT+CWSAP=
- MOV DPTR,#SSIDTAB0
- MOV R4,#9
- LCALL TABS; 查表
- MOV A,#22H ; "
- LCALL FS
- ;用戶名
- MOV DPTR,#SSIDTAB1
- MOV R4,#8 ;修改用戶名后用戶名幾位就改幾
- LCALL TABS; 查表
-
- MOV A,#22H ; "
- LCALL FS
- MOV A,#2CH ; ,
- LCALL FS
- MOV A,#22H ; "
- LCALL FS
- ;密碼
- MOV DPTR,#SSIDTAB2
- MOV R4,#8 ;修改密碼后密碼幾位就改幾
- LCALL TABS; 查表
- MOV A,#22H ; "
- LCALL FS
- ;信道 模式
- MOV DPTR,#SSIDTAB3
- MOV R4,#5 ;信道1位改4 信道2位改5
- LCALL TABS; 查表
-
- LCALL HCOK;
- RET;
- ////////////////////////////////////////////////////////////////////////////////////
- //啟動TCP/IP 實現基于網絡//控制 ESP8266_Set("AT+CIPSERVER=1,5000");
- CIPSERVER:
- MOV DPTR,#CIPSERVERTAB;
- MOV R4,#19
- LCALL TABS; 查表
- LCALL HCOK;
- RET;
- ////////////////////////////////////////////////////////////////////////////////////////
- //開啟多連接模式,允許多個各客戶端接入
- CIPMUX: MOV DPTR,#CIPMUXTAB;
- MOV R4,#11
- LCALL TABS; 查表
- LCALL HCOK;
- RET;
- ////////////////////////////////////////////////////////////////////////////////////
- //發送 AT+CWMODE=1 設置路由器模式1 station,模式2 AP,模式3 station+AP混合模式
- CWMODE: MOV DPTR,#CWMODETAB;
- MOV R4,#11
- LCALL TABS; 查表
- LCALL HCOK;
- RET;
- /////////////////////////////////////////////////////////////////////////////////
- //永遠不超時 發送AT+CIPSTO=0
- CIPSTO: MOV DPTR,#CIPSTOTAB;
- MOV R4,#11
- LCALL TABS
- //////////////////////////////////////////////////////
- HCOK:
- LCALL HC;回車!
- MOV R2,#15
- HCOK0: LCALL PDOK;判斷手機shi否回答OK?
- XRL A,#0FFH
- JZ HCOK1;如果沒有檢測到OK,重復發
- DJNZ R2,HCOK0
- HCOK1: RET
- /////////////////////////////////////////////////////////////////////////////////////
- TABS:
- DDD: CLR A
- MOVC A,@A+DPTR
- INC DPTR
- LCALL FS
- DJNZ R4,DDD
- RET
- /////////////////////////////////////////////////////////////////////////////////
- SSIDTAB0: DB "AT+CWSAP=" // AT+CWSAP="wifi","123456789",11,4 設置模塊SSID:WIFI, PWD:密碼 及安全類型加密模式(WPA2-PSK)
- SSIDTAB1: DB "WIFI_LED" // 用戶名
- SSIDTAB2: DB "12345678" // 密碼
- SSIDTAB3: DB ",11,4" // 信道和加密模式
- CIPSERVERTAB: DB "AT+CIPSERVER=1,5000" // 啟動TCP/IP 實現基于網絡//控制 ESP8266_Set("AT+CIPSERVER=1,5000");
- CIPMUXTAB: DB "AT+CIPMUX=1" // 開啟多連接模式,允許多個各客戶端接入
- CWMODETAB: DB "AT+CWMODE=3" // 發送 AT+CWMODE=1 設置路由器模式1 station,模式2 AP,模式3 station+AP混合模式
- CIPSTOTAB: DB "AT+CIPSTO=0" // 永遠不超時 發送AT+CIPSTO=0
- $INCLUDE (ATEOK.ASM)
復制代碼
|
評分
-
查看全部評分
|