欣欣 发表于 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 旗舰版 |