標(biāo)題: 51單片機(jī)+ESP8266點(diǎn)亮LED小燈 [打印本頁]

作者: 進(jìn)擊的小牛    時(shí)間: 2020-3-21 11:39
標(biāo)題: 51單片機(jī)+ESP8266點(diǎn)亮LED小燈
ESP8266模塊采用STA工作模式,先在電腦上用串口調(diào)試助手,將ESP8266模塊設(shè)置為STA模式,波特率9600,具體指令如下:
1. 設(shè)置AP模式 AT+CWMODE=2
2. 復(fù)位生效 AT+RST
3. 配置熱點(diǎn) AT+CWSAP="test","12345678",1,3
這樣即使ESP8266復(fù)位也不會(huì)將這些信息擦除,直接上后面的指令就可以
單片機(jī)接ESP8266一定注意兩者一定要共地,否則ESP8266不能正常工作,ESP8266電源要3.3V供電,5V的貌似不行,ESP8266的EN腳外接一個(gè)1K歐的電阻再接3.3V電源

#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit LED = P1^0;u8 dat;
void Init(void);//串口初始化函數(shù)
void Delay_ms(u16 n);//延時(shí)子函數(shù)
void Sent_ZF(u8 dat);//發(fā)送一個(gè)字節(jié)
void AT_Send_String(u8 *string);//發(fā)送字符串
void ESP8266_Init();//ESP8266初始化
void Init(void)                //串口初始化函數(shù)
{

        TMOD=0x20;        //定時(shí)器工作方式2,8位自動(dòng)重載(0010 0000)
        TL1=0xfd;                //裝入初值
        TH1=0xfd;               
        TR1=1;        //啟動(dòng)定時(shí)器1
        REN=1;    //允許串行口接收數(shù)據(jù)
        SM0=0;    //工作方式1,10位異步收發(fā)
        SM1=1;   
        EA=1;   //打開全局中斷控制
        ES=1;     //打開串行口中斷
}

void main()
{
    Init();
    ESP8266_Init();
    while(1);
}

void Sent_ZF(u8 dat)  //發(fā)送一個(gè)字節(jié)
{
        ES = 0;
        TI=0;
        SBUF = dat;
        while(!TI);
        TI = 0;
        ES = 1;
}
void Delay_ms(u16 n)  //延時(shí)子程序
{
        unsigned int i,j;
        for(i=0;i<n;i++)
        for(j=0;j<123;j++);
}

void AT_Send_String(u8 *string)  //發(fā)送字符串
{
  while(*string!='\0')
  {
    Sent_ZF(*string);
        string++;
                Delay_ms(10);
  }

}
void ESP8266_Init()   //ESP8266初始化
{       
         AT_Send_String("AT+RST\r\n");  //重啟模塊
        Delay_ms(10000);
        Delay_ms(10000);
    AT_Send_String("AT+CIPMUX=1\r\n");  //設(shè)置為多連接模式,啟動(dòng)模塊
        Delay_ms(10000);
        Delay_ms(10000);
  AT_Send_String("AT+CIPSERVER=1,8080\r\n"); //服務(wù)器的設(shè)置端口
          Delay_ms(10000);
        Delay_ms(10000);
}

void InterruptUART() interrupt 4  //控制小燈開關(guān)
{
        RI= 0;        //清零
        dat= SBUF;    //收到的數(shù)據(jù)占存到SBUF中
          {
         if(dat=='o')
                                 {
                                         LED =0;   
                                 }
                                 if(dat=='f')  
                                 {                                                 
                                    LED =1;
                                 }                                         
          }
}
手機(jī)上下載一個(gè)叫網(wǎng)絡(luò)調(diào)試助手的軟件,IP為192.168.4.1(貌似都是這個(gè)端口),端口為8080,連接成功后發(fā)送f或者o可以控制LED小燈開關(guān)


作者: yeghoster    時(shí)間: 2020-3-22 12:20
謝謝,我試了很好
作者: 123451    時(shí)間: 2020-4-27 15:27
開發(fā)板跟我的一樣,我都把開發(fā)板線路改動(dòng)過了
作者: weidoit    時(shí)間: 2020-6-5 18:26
51單片機(jī)+ESP8266點(diǎn)亮LED小燈

-7c9d9bcf9216fd51.png (68.65 KB, 下載次數(shù): 150)

-7c9d9bcf9216fd51.png

作者: 檸檬肥宅    時(shí)間: 2020-6-7 00:32
weidoit 發(fā)表于 2020-6-5 18:26
51單片機(jī)+ESP8266點(diǎn)亮LED小燈

兄弟 你這個(gè)esp8266的仿真模塊是在哪找到的 能分享下這個(gè)模塊不
作者: ewsdxs    時(shí)間: 2020-7-13 19:15
能下載能發(fā)送數(shù)據(jù),就是無法控制小燈,無反應(yīng)
作者: ewsdxs    時(shí)間: 2020-7-13 19:16
控制不了小燈,其他正常的
作者: 快樂a123    時(shí)間: 2020-7-24 05:02
多路控制程序怎么寫?
作者: 1648915681    時(shí)間: 2021-3-13 15:04
手機(jī)通過8266發(fā)送到單片機(jī)的數(shù)據(jù)前8位+IPD,0,1:不用做判斷嗎
作者: curry玩單機(jī)    時(shí)間: 2021-5-27 22:00
樓主,為什么我的一直連接不上
作者: cedtek    時(shí)間: 2021-10-22 15:12
給模塊發(fā)送的字符和程序根本就不匹配啊
作者: leobuhuidpj    時(shí)間: 2022-5-16 23:08
weidoit 發(fā)表于 2020-6-5 18:26
51單片機(jī)+ESP8266點(diǎn)亮LED小燈

能分享一下這個(gè)仿真模塊嗎
作者: lanxichang    時(shí)間: 2022-5-23 16:07
快樂a123 發(fā)表于 2020-7-24 05:02
多路控制程序怎么寫?

同問,ESP8266 里邊的程序是用Arduino編寫的,51單片機(jī)是用Keil編寫的,可以嗎?
作者: lids    時(shí)間: 2022-9-28 15:04
要設(shè)置正確才行的
ESP8266模塊采用STA工作模式,先在電腦上用串口調(diào)試助手,將ESP8266模塊設(shè)置為STA模式,波特率9600,
具體指令如下:
1. 設(shè)置AP模式 AT+CWMODE=2
2. 復(fù)位生效 AT+RST
3. 配置熱點(diǎn) AT+CWSAP="test","12345678",1,3
這樣即使ESP8266復(fù)位也不會(huì)將這些信息擦除,直接上后面的指令就可以
單片機(jī)接ESP8266一定注意兩者一定要共地,否則ESP8266不能正常工作,ESP8266電源要3.3V供電,
5V的貌似不行,ESP8266的EN腳外接一個(gè)1K歐的電阻再接3.3V電源

手機(jī)上下載一個(gè)叫網(wǎng)絡(luò)調(diào)試助手的軟件,協(xié)議類型TCP Client,IP為192.168.4.1(貌似都是這個(gè)端口),
端口為8080,連接成功后發(fā)送f或者o可以控制LED小燈開關(guān)

設(shè)置ESP8266模塊時(shí),ESP8266模塊 TXD接開發(fā)板單片機(jī)P31(TXD),RXD接單片機(jī)P30(RXD)
正常工作時(shí),ESP8266模塊 TXD接開發(fā)板單片機(jī)P30(RXD),RXD接單片機(jī)P31(TXD)
作者: zf初學(xué)者    時(shí)間: 2022-12-11 10:07
代碼可以在哪里下載呢
作者: qiuen    時(shí)間: 2023-1-11 15:09
ESP8266不是可以直接控制燈嗎還要單片機(jī)?
作者: CIKAR    時(shí)間: 2023-4-25 11:28
ewsdxs 發(fā)表于 2020-7-13 19:15
能下載能發(fā)送數(shù)據(jù),就是無法控制小燈,無反應(yīng)

中斷中增加一個(gè)判斷語句就好了,我試了
作者: 滑動(dòng)的憨憨    時(shí)間: 2023-4-29 11:57
Proteus上面有ESP8266仿真模塊嗎?我怎末找不到

作者: 滑動(dòng)的憨憨    時(shí)間: 2023-4-30 21:55
Proteus中ESP8266模塊在哪




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1