0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

esp8266加入到c51单片机单通道程序的编写

汽车玩家 来源:CSDN 作者:CSDN 2021-07-08 17:57 次阅读

ESP8266连接本地服务器的51单片机汇编程序

at89c2051单片机,晶振11.096MHZ,通讯速率9600,TCP多连接方式,本地连接地址192.168.1.107,收发数据成功

汇编程序如下:

这是main.c

#include

#include

#include "usart.h"

#include "wifi.h"

char Recive_table[20]=""; //接收缓冲,最大20个字节

char Recive_state = 0; //接收完成标志

int main (void)

{

/********************功能初始化***********************/

Uart_Init();//串口初始化,波特率为9600

ms_delay(1000) ;

WIFI_Init(); //wifi初始化

/****************************************************/

/**********************主循环************************/

for(;;)

{

ms_delay(10) ;

if(Recive_state == 1)

{

ES=0; //清空接收标志位

if((Recive_table[0]=='+')&&(Recive_table[1]=='I')&&(Recive_table[2]=='P'))//接收到的字符串形式为+IPD,x,x:y

{

if((Recive_table[3]=='D')&&(Recive_table[6]==','))

{

if(Recive_table[9]=='0')

P1 = 0;

if(Recive_table[9]=='1')

P1 = 0xff;

}

}

memset(Recive_table,'\0',20);

Recive_state = 0;

ES=1; //打开接收标志位

}

}

/****************************************************/

}

/******************************************************************

函 数: void Uart_Interrupt() interrupt 4

功 能: 串口中断函数,将收到的字符存到Recive_table[]数组中

参 数: 无

返回值: 无

*******************************************************************/

void Uart_Interrupt() interrupt 4

{

static char i=0; //因为是一位一位接收,所以用static

if(RI==1)

{

ES = 0;

RI=0;

Recive_table[i]=SBUF;

i++;

if((Recive_table[i-1] == '\n'))

{

Recive_table[i]='\0';

i=0;

Recive_state = 1;

}

ES = 1;

}

else

TI = 0;

}

这是usart.c

#include "usart.h"

/******************************************************************

函 数: void Uart_Init(void)

功 能: 串口初始化,波特率为9600(这个不会,上网百度)

参 数: 无

返回值: 无

*******************************************************************/

void Uart_Init(void)

{

TMOD=0x20;

TH1=0xfD;

TL1=0xfD;

TR1=1;

REN=1;

SM0=0;

SM1=1;

EA=1;

ES=1;

}

这是wifi.c

#include

#include "wifi.h"

/******************************************************************

函 数: void ms_delay(int t)

功 能: 毫秒级延时

参 数: 无

返回值: 无

*******************************************************************/

void ms_delay(int t)

{

int i,j;

for(i=t;i>0;i--)

for(j=110;j>0;j--);

}

/******************************************************************

函 数: void LED(void)

功 能: 发送完命令后显示用的函数

参 数: 无

返回值: 无

*******************************************************************/

void LED(void)

{

P1 = 0;

ms_delay(100);

P1 = 0xff;

ms_delay(100);

}

/******************************************************************

函 数: void WIFI_Init(void)

功 能: wifi初始化(名字:esp8266;密码:1234567890)

参 数: 无

返回值: 无

*******************************************************************/

void WIFI_Init(void)

{

ES = 0;

TI = 1;

printf("AT+RST\r\n");

LED();

ms_delay(1000) ;

printf("AT+CWMODE=3\r\n");

LED();

ms_delay(1000) ;

printf("AT+CIPMUX=1\r\n");

LED();

ms_delay(1000) ;

printf("AT+CIPSERVER=1,8080\r\n");

LED();

ms_delay(1000) ;

while(!TI);

TI = 0;

ES = 1;

}

文章综合来源:CSDN

编辑:ymf

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C51单片机
    +关注

    关注

    11

    文章

    164

    浏览量

    34477
  • ESP8266
    +关注

    关注

    50

    文章

    947

    浏览量

    43921
收藏 人收藏

    评论

    相关推荐

    单片机怎么连接wifi模块esp

    连接WiFi模块ESP8266单片机有多种方法和步骤。在这篇文章中,我将为您详细介绍如何连接ESP8266模块到Arduino单片机。本文将涵盖以下内容:
    的头像 发表于 12-25 13:42 792次阅读

    怎样通过路由器与电脑和其他链接ESP8266单片机进行信息交流?

    有没有相关的教程,用串口操作ESP8266,怎样使用,数据怎样传输,怎样通过路由器与电脑和其他链接ESP8266单片机进行信息交流
    发表于 11-10 07:16

    使用CW32单片机通过ESP8266连接OneNET物联网平台

    这期视频向大家介绍如何使用CW32单片机通过ESP8266连接OneNET物联网平台,发送温湿度数据到平台,并接受平台的云控制。
    的头像 发表于 11-09 14:32 615次阅读

    单片机esp8266串口通讯时,用转ttl模块发不了信息怎么解决?

    单片机esp8266串口通讯时, uart转ttl模块同时接上,txd接单片机的txd(即esp8266的rxd)发现esp8266接收不
    发表于 11-09 08:04

    51单片机控制esp8266无线模块,如何设置能够用来通过路由器传输单片机与PC之间的数据?

    51单片机控制esp8266无线模块,如何设置能够用来通过路由器传输单片机与PC之间的数据。
    发表于 10-26 06:43

    请问手机APP如何通过ESP8266单片机进行控制?

    手机APP是怎么通过ESP8266 WIFI模块对单片机进行控制的,例如让单片机量一盏灯的?想知道其中的原理,其中可能关系到WiFi模块是怎么工作的,单片机
    发表于 10-23 08:31

    nodemcu和esp8266是什么关系?

    nodemcu和esp8266是什么关系 nodemcu和esp8266是什么关系?通俗理解就是nodemcu是一个开发板,基于esp8266的开发板。 目前市面上搭载有ESP8266
    的头像 发表于 10-20 14:53 2238次阅读
    nodemcu和<b class='flag-5'>esp8266</b>是什么关系?

    ESP8266里面烧了自己写的单片机程序,AT固件是不是就被覆盖了?

    ESP8266里面烧了自己写的单片机程序,AT固件是不是就被覆盖了?
    发表于 10-17 06:59

    单片机连接esp8266无法执行AT指令怎么解决?

    单片机串口发送AT指令给8266,并执行但是:现在的问题是串口调试助手能收到指令, 但8266不是执行,是回车换行的问题吗。 void Send_Uart(uchar value
    发表于 09-27 07:34

    ESP8266ESP32上的WiFi Webradio

    电子发烧友网站提供《ESP8266ESP32上的WiFi Webradio.zip》资料免费下载
    发表于 06-13 11:38 0次下载
    <b class='flag-5'>ESP8266</b>或<b class='flag-5'>ESP</b>32上的WiFi Webradio

    ESP8266初次如何实现无线通信(基于电脑与ESP8266)

    一.需要的软件及硬件 1.软件 2.硬件 二.ESP8266的使用 .ESP8266的介绍 2.ESP8266进行初始AT指令的配置步骤 三.所用软件安装分享 ESP8266
    发表于 05-30 09:53 14次下载
    <b class='flag-5'>ESP8266</b>初次如何实现无线通信(基于电脑与<b class='flag-5'>ESP8266</b>)

    ESP8266 DevKitC V1如何下载FW定制ESP8266板?

    载固件/应用程序。这是唯一的方法还是我可以使用 ESP8266 DevKitC 板进行下载。如果能帮我指明正确的方向,我将不胜感激。如果没有办法,我可能会继续购买像 sparkfun 的 FTDI basic 这样的 USB-TTL FTDI 板,但我很好奇是否有可能使用
    发表于 05-30 07:41

    如何在esp8266编写简单的基于套接字的程序

    想在 esp8266编写简单的基于套接字的程序。在 lwipopts.h 中设置标志 LWIP_SOCKET = 1 时出错
    发表于 05-23 09:58

    使用WIFI模块ESP8266连接单片机与上位机通信

    ATK-ESP8266 是 ALIENTEK 推出的一款高性能的 UART-WiFi(串口-无线)模块,此处使用的是正点原子团队自主开发的ATK-ESP-01模块。该模块通过串口与 单片机(此处
    发表于 05-09 10:50 13次下载
    使用WIFI模块<b class='flag-5'>ESP8266</b>连接<b class='flag-5'>单片机</b>与上位机通信

    51单片机通过WIFI模块ESP8266控制四路继电器

    手机APP通过ESP8266 WIFI模块与51单片机通信控制四路继电器。下位机由单片机ESP8266模块和继电器模块组成,上位机由And
    发表于 04-26 09:22 7次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>通过WIFI模块<b class='flag-5'>ESP8266</b>控制四路继电器