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单片机
    +关注

    关注

    12

    文章

    164

    浏览量

    34716
  • ESP8266
    +关注

    关注

    50

    文章

    962

    浏览量

    44801
收藏 人收藏

    评论

    相关推荐

    通过C51单片机控制数码管显示

    电子发烧友网站提供《通过C51单片机控制数码管显示.docx》资料免费下载
    发表于 11-12 15:51 2次下载

    esp8266加入到c51单片机单通道程序怎么写

    要将ESP8266模块加入到C51单片机单通道程序中,您需要了解如何通过串行通信(UART)与
    的头像 发表于 10-18 11:32 369次阅读

    ESP8266 太空人动画的 OLED 显示

    ESP8266 太空人动画的 OLED 显示
    的头像 发表于 10-08 15:06 205次阅读
    <b class='flag-5'>ESP8266</b> 太空人动画的 OLED 显示

    STM32 ESP8266阿里云链接源码

    stm32F103C8T6 ESP8266 物联网电表 登录阿里云
    发表于 08-29 14:21 5次下载

    esp8266esp32区别是什么

    Xtensa® 32-bit LX6 CPU,主频可达240MHz,具有更强大的处理能力。 内存 : ESP8266 :通常有64KB512KB的RAM,以及1MB4MB的闪存。 ESP
    的头像 发表于 08-19 18:16 4184次阅读

    ESP8266需要烧录固件库嘛

    的步骤。 一、固件库的作用 固件库是一组预先编写好的程序代码,用于实现ESP8266模块的特定功能。这些代码通常由经验丰富的开发者编写,经过多次测试和优化,具有较高的稳定性和可靠性。使
    的头像 发表于 08-19 17:30 687次阅读

    esp8266不烧录可以使用吗

    ESP8266是一款非常流行的Wi-Fi模块,广泛应用于物联网项目中。然而,如果不进行烧录,ESP8266将无法正常工作。 1. ESP8266简介 ESP8266是一款由Espres
    的头像 发表于 08-19 17:28 607次阅读

    ESP8266_RTOS_SDK-1.5.0下编写的代码升级ESP8266_RTOS_SDK-2.0.0出现编译不过的原因?

    以前在ESP8266_RTOS_SDK-1.5.0下编写的代码现在升级ESP8266_RTOS_SDK-2.0.0就出现编译不过的错误。 xtensa-lx106-elf-gcc-
    发表于 07-10 07:45

    使用esp8266的Hspi与单片机通信,打印的W0-W7寄存器数据和发送的数据不符合,为什么?

    在使用esp8266的Hspi与单片机通信,发现单片机可以进行数据读取,但是单片机写数据就会出现esp8266这边的主机写完成中断被触发,但
    发表于 07-10 07:04

    使用esp8266的HSPI与STM32进行通信时遇到的疑问求解

    在使用esp8266的HSPI与STM32进行通信时,发现单片机可以对其进行读操作,但是单片机esp8266里面写数据的话就会出现esp8266
    发表于 07-10 06:45

    请问ESP8266为什么无法加入AP?

    我正在使用ESP8266最新的 SDK 版本 3.4。我编写了一个将加入 AP 的代码。代码在 ESP8266 Devkit 上运行,但不在 ESP
    发表于 07-08 08:24

    国产低成本Wi-Fi SoC解决方案芯片ESP8266ESP8285对比差异

    ESP8285对比ESP8266差异如下: 1、ESP8285内部集成1/2MB Flash,DOUT模式。ESP8266则需要外接Flash; 2、
    的头像 发表于 05-17 11:44 1162次阅读
    国产低成本Wi-Fi SoC解决方案芯片<b class='flag-5'>ESP8266</b>与<b class='flag-5'>ESP</b>8285对比差异

    使用Wi-Fi ESP8266方案模组接入云平台

    选择Wi-Fi的应用模式,列出、加入、退出接入点,建立TCP/UDP连接、获得状态、发送数据等操作。ESP8266模块的三种工作模式如下:①Sation模式:Sat
    的头像 发表于 05-10 08:20 1719次阅读
    使用Wi-Fi <b class='flag-5'>ESP8266</b>方案模组接入云平台

    keil5mdk怎么编写51单片机程序

    编写51单片机程序需要以下步骤: 编写程序框架:首先,你需要定义程序所需要的变量和常量,以及设置
    的头像 发表于 12-25 14:54 1438次阅读

    单片机怎么连接wifi模块esp

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