无线wifi模块-51单片机-C语言程序_第1页
无线wifi模块-51单片机-C语言程序_第2页
无线wifi模块-51单片机-C语言程序_第3页
无线wifi模块-51单片机-C语言程序_第4页
无线wifi模块-51单片机-C语言程序_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

无线WIFI模块ESP8266和51单片机 实现LED灯的无线控制一、关于51单片机和无线WIFI模块的接线方面RXD、TXD、GND和51单片机的TXD、RXD、GND接好,模块其他引脚均为高电平,电源VCC是3.3V左右(两节1.5v干电池),本人由于没有稳压模块,偷懒了当时使用5V的直流源,测试结果目前没有问题(不过不建议啊!)二、关于安卓手机方面 测试时可以使用,网络调试助手(下载这个app安装在手机即可)发送数字1表示小灯亮,0表示灯灭。后续想深入的话可以自己开发安卓app软件。三、参数设置 由于参数的设置方法和步奏网上资料很全,这里提供相关的网址自行参考。Uart-WiFi模块ESP8266把玩记/kangear/article/details/物联网wifi模块工作的STA和AP模式详细介绍/archives/239四、资料可能存在不足之处,仅作参考!/*题目:基于STC12C560S2 单片机无线WIFI模块控制内容:通过MCU上位机对ESP8266wifi模块的控制和设置,实现手机端控制LED灯 的亮灭。注意:该型号单片机是普通89C51单片执行速度的12倍,内含RAM1280字节,ROM为60K,PCA 计数器,PWM发生模块,ADC转换模块等,晶振一定是11.0592MHz。*/#include /包含头文件#define uint unsigned int#define uchar unsigned char#define RELOAD_COUNT 0xFA/宏定义波特率发生器的载入值/define RELOAD_COUNT (256-(/16)/12)/9600) 也可以或波特率9600 /256-晶振频率/波特率x16=BRT/*LED灯对应P0口的1个端口*/sbit LED0=P32;/*波特率发生器相关功能寄存器的定义*/sfr AUXR=0x8E;sfr BRT=0x9C;sfr AUXR1=0xA2;/*相关变量*/uchar Receive,i; uint n;uchar Recive_table15;/用于接收wifi模块反馈到MCU上的数据/*名称:延时函数作用:毫秒级延时,微妙级延时函数,为数据收发完成作等待.*/void ms_delay(uint t)uint i,j;for(i=t;i0;i-) for(j=110;j0;j-);void us_delay(uchar t)while(t-);/*名称:波特率发生器函数作用:波特率发生器可以是T1定时器实现,也可以是MCU内部独立的波特率发生器,各自不同的载入值计算式,具体根据寄存器相关设置来参考计算,以实现异步串行通讯。(经测试,两种设置方式均可用,可任选一种。)*/void Uart_Init()/使用定时器1作为波特率发生器(STC89C52、STC89C51、AT89C51或者STC12C560S2等均可)SCON=0x50;/设置为串行口以方式1工作,8位异步通讯,允许接收中断。/一帧信息为10位,1位起始位,8位数据位(低位在先),1位停止位。PCON=0x80;/SMOD波特率选择位为1,SMOD=1.TMOD=0x21;/设置定时器1为波特率发生器,工作在模式2,8位自动装载TH1=RELOAD_COUNT;/波特率9600 ,TH1=256-FOSC/16/12/波特率TL1=TH1;EA=1; /总中断打开ES=0; /关闭串口中断TR1=1; /启动定时器1/*void Uart_Init()/使用独立的波特率发生器(STC12C560S2或带有独立波特率发生器/、/的单片机均可)SCON=0x50;/设置为串行口以方式1工作,8位异步通讯,允许接收中断。PCON=0x80;/SMOD波特率选择位为1,SMOD=1.BRT=RELOAD_COUNT; /波特率9600 256-晶振频率/波特率x16=BRTAUXR=0xD5;/T0、T1不12分频,速度是89C51的12倍,启动独立波特率/发生器,每个时钟计数一次/设置串口1的波特率发生器为独立波特率发生器,AUXR1=0x80;/切换到P1口ES=1;/开启串口中断EA=1;/开启总中断*/*名称:串口发送函数功能:MCU向其他与其连接的设备发送数据(此处是无线WIFI模块ESP8266)*/void Send_Uart(uchar value)ES=0;/关闭串口中断TI=0;/清发送完毕中断请求标志位SBUF=value;/发送while(TI=0);/等待发送完毕TI=0;/清发送完毕中断请求标志位ES=1;/允许串口中断 /*名称:WIFI模块设置函数作用: 启动模块,以便可以实现无线接入和控制*/void ESP8266_Set(uchar *puf) / 数组指针*puf指向字符串数组 while(*puf!=0) /遇到空格跳出循环Send_Uart(*puf); /向WIFI模块发送控制指令。us_delay(5);puf+;us_delay(5);Send_Uart(r); /回车us_delay(5);Send_Uart(n); /换行ms_delay(1000);/*名称:ESP8266发送数据函数功能:用于与wifi模块相连的终端发送数据*/void ESP8266_Sent(uchar *puf) / 数组指针*puf指向字符串数组 ESP8266_Set(AT+CIPSEND=0,4);while(*puf!=0) /遇到空格跳出循环Send_Uart(*puf); /向WIFI模块发送控制指令。us_delay(5);puf+;us_delay(5);Send_Uart(n); /换行ms_delay(10);/*名称:主函数作用:程序的执行入口*/void main()LED0=0;/关闭LED灯Uart_Init();/使用独立的波特率发生器ESP8266_Set(AT+CWMODE=2);/设置路由器模式 1 station模式 2 AP /点 路由器模式 3 station+AP混合模式ESP8266_Set(AT+RST);/重新启动wifi模块 ESP8266_Set(AT+CWSAP=WIFI,11,4); /设置模块SSID:WIFI, PWD:密码 及安全类型加密模式(WPA2-PSK)ESP8266_Set(AT+CIPMUX=1);/开启多连接模式,允许多个各客户端接入ESP8266_Set(AT+CIPSERVER=1,5000); /启动TCP/IP 端口为8080 实现基于网络/控制ES=1;/允许串口中断while(1)if(Recive_table0=+)&(Recive_table1=I)&(Recive_table2=P)/MCU接收到的数据为+IPD时进入判断控制01来使小灯亮与灭 if(Recive_table3=D)&(Recive_table6=,) if(Recive_table9=0)LED0=0; /0 灯灭ESP8266_Sent(灯灭);/wifi模块向pc端或手机端 发送灯灭 else if (Recive_table9=1)LED0=1; /1 灯亮 ESP8266_Sent(灯亮); /wifi模块向pc端或手机端 发送灯亮 /*名称:串行通讯中断作用:发送或接收结束后进入该函数,对相应的标志位软件清0,实现模块对数 据正常的收发。*/void

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论