找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2290|回复: 0
打印 上一主题 下一主题
收起左侧

ESP8266与51单片机通信源码

[复制链接]
跳转到指定楼层
楼主
ID:345035 发表于 2018-6-4 22:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>

void UartConfiguration();
void Uart();
void change_name();
void ESP8266_init();
void DelayUs2x(unsigned char t);
void DelayMs(unsigned char t);


void DelayUs2x(unsigned char t)
{   
while(--t);
}

void DelayMs(unsigned char t)
{

while(t--)
{
     DelayUs2x(245);
         DelayUs2x(245);
}
}
void send()
{

   char *a="AT+CIPSEND=0,5\r\n";
   char *b="12346\r\n";
   while(*a!='\0')
        {
                SBUF=*a;
                while(!TI);    //等待发送完成
                TI=0;
                a++;
        }
        DelayMs(100);
        while(*b!='\0')
        {
                SBUF=*b;
                while(!TI);    //等待发送完成
                TI=0;
                b++;
        }
}

void connect_init()
{
        char *a="AT+CIPMUX=1\r\n";
        char *b="AT+CIPSERVER=1,8080\r\n";
        while(*a!='\0')
        {
                SBUF=*a;
                while(!TI);    //等待发送完成
                TI=0;
                a++;
        }       
        DelayMs(5);
        while(*b!='\0')
        {
                SBUF=*b;
                while(!TI);    //等待发送完成
                TI=0;
                b++;
        }               
}


void UartConfiguration()
{
          TMOD=0x20;      //设置计数器1的工作方式2
        TH1=0xfd;                        //设置计数器1的初值,决定波特率
        TL1=0xfd;                        //设置计数器1的初值,决定波特率
        PCON=0x00;      // 波特率倍增0x00不加倍         0x80加倍
        SCON=0x50;                //设置工作方式1 开启接受允许
        EA=1;                    //开启总中断
        ES=1;                        //开启串口接受中断
        TR1=1;                        //计数器1开始运行
}
void ESP8266_init()
{
        UartConfiguration();
        TI=0;             //清除发送完成标记
        connect_init();
}

void Uart() interrupt 4
{

}

/*
        uchar date;

        date=SBUF;        //取出接受到的数据
        RI=0;                          //清除接受中断标志位
        SBUF=date;                  //接收到的数据放入发送缓存器发送
        while(!TI);        //等待发送数据完成
        TI=0;                                //清除发送完成标志位
  */





void main()
{
        DelayMs(3000);
        ESP8266_init();
        while(1)
        {
           send();
        }
       
       
       
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表