51單片機ESP8266WIFI模塊LED燈的無線控制
51單片機ESP8266WIFI模塊LED燈的無線控制。具體步驟如下:
1、51單片機和無線WIFI模塊的連接:RXD、TXD、GND和51單片機的TXD、RXD、GND接好,模塊其他引腳均為高電平,電源VCC是3.3V左右(兩節(jié)1.5v干電池)。
2、關(guān)于安卓手機方面測試時可以使用,網(wǎng)絡(luò)調(diào)試助手(下載這個app安裝在手機即可)發(fā)送數(shù)字1表示小燈亮,0表示燈滅。后續(xù)想深入的話可以自己開發(fā)安卓app軟件。
3、WIFI模塊參數(shù)設(shè)置由于參數(shù)的設(shè)置方法和步奏網(wǎng)上資料很全,也可以參考:
51單片機驅(qū)動ESP8266模塊的C語言程序:http://blog.sina.com.cn/s/blog_68541adc0102x8pk.html
AT89C51控制ESP8266WIFI模塊程序一文:http://blog.sina.com.cn/s/blog_68541adc0102y0jx.html
4、相關(guān)程序:
單片機無線WIFI模塊控制
內(nèi)容:通過MCU上位機對ESP8266wifi模塊的控制和設(shè)置,實現(xiàn)手機端控制LED燈
的亮滅。
注意:該型號單片機是普通89C51單片執(zhí)行速度的12倍,內(nèi)含RAM1280字節(jié),ROM為60K,PCA 計數(shù)器,PWM發(fā)生模塊,ADC轉(zhuǎn)換模塊等,晶振一定是11.0592MHz。
#include 'reg52.h' //包含頭文件
#define uint unsigned int
#define uchar unsigned char
#define RELOAD_COUNT 0xFA //宏定義波特率發(fā)生器的載入值
//define RELOAD_COUNT (256-(((11520000/16)/12)/9600)) 也可以或波特率9600 //256-晶振頻率/波特率x16=BRT
sbit LED0=P3^2;
sfr AUXR=0x8E;
sfr BRT=0x9C;
sfr AUXR1=0xA2;
uchar Receive,i;
uint n;
uchar Recive_table[15]; //用于接收wifi模塊反饋到MCU上的數(shù)據(jù)
void ms_delay(uint t)
{
uint i,j;
for(i=t;i>0;i--)
for(j=110;j>0;j--);
}
void us_delay(uchar t)
{
while(t--);
}
void Uart_Init()//使用定時器1作為波特率發(fā)生器(STC89C52、STC89C51、AT89C51或者STC12C560S2等均可)
{
SCON=0x50; //設(shè)置為串行口以方式1工作,8位異步通訊,允許接收中斷。
//一幀信息為10位,1位起始位,8位數(shù)據(jù)位(低位在先),1位停止位。
PCON=0x80; //SMOD波特率選擇位為1,SMOD=1.
TMOD=0x21; //設(shè)置定時器1為波特率發(fā)生器,工作在模式2,8位自動裝載
TH1=RELOAD_COUNT;//波特率9600 ,TH1=256-FOSC/16/12/波特率
TL1=TH1;
EA=1; //總中斷打開
ES=0; //關(guān)閉串口中斷
TR1=1; //啟動定時器1
}
void Send_Uart(uchar value)
{
ES=0; //關(guān)閉串口中斷
TI=0; //清發(fā)送完畢中斷請求標(biāo)志位
SBUF=value; //發(fā)送
while(TI==0); //等待發(fā)送完畢
TI=0; //清發(fā)送完畢中斷請求標(biāo)志位
ES=1; //允許串口中斷
}
void ESP8266_Set(uchar *puf) // 數(shù)組指針*puf指向字符串?dāng)?shù)組
{
while(*puf!='