|
程序和APP程序都是网上找的 经过修改后就成了现在的样子 手机不经过路由和8266直连
哪位大神可以帮忙把程序和APP改成带反馈的(压缩包内带e4a文件)
比如在手机上按了某个按键 单片机收到后再反馈一个信号 APP收到后改变按键图标
现在的不带反馈 多个按键快速按下不看接收端就不知道按下的按键有没有生效
e4a APP源码
源程序如下:
- ;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)
复制代码
|
评分
-
查看全部评分
|