历史上的今天

今天是:2024年09月17日(星期二)

2020年09月17日 | STC15单片机利用ESP8266控制LED 源程序

发布者:数据旅人 来源: 51hei关键字:STC15单片机  ESP8266  控制LED 手机看文章 扫描二维码
随时随地手机看文章

输入ESPKLED,LED灯亮,输入ESPGLED,灯灭


单片机源程序如下:

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

*

*    平台:keil5 + STC154K58S

*    功能:输入ESPKLED,LED灯亮,输入ESPGLED,灯灭

*    日期:2020年7月22日

*

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


# include "config.h"

# include "GPIO.h"

# include "delay.h"

# include "USART.h"

# include


# define uchar unsigned char

# define uint unsigned int


uchar s;

uchar flag;

uchar a;


sbit LED = P0^0;


void delay()   //延时1000ms

{

    uchar i;

    for(i=0;i<5;i++)

    {

        delay_ms(200);

    }

}



void GPIO_init()   //将P3口设置为准双向口

{

    GPIO_InitTypeDef GPIO_init3;

    GPIO_init3.Mode = GPIO_PullUp;

    GPIO_init3.Pin = GPIO_Pin_All;

    GPIO_Inilize(GPIO_P3, &GPIO_init3);

}


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

*

*   功能:串口初始化

*   描述:8位波特率可变,使用定时器1,波特率为115200

*         使用P30,P31口

*

*

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


void USART_init1()  

{

   

    COMx_InitDefine USART_init1;         

    USART_init1.UART_Mode = UART_8bit_BRTx;     //模式

    USART_init1.UART_BRT_Use = BRT_Timer1;      //使用定时器1作为波特率发生器

    USART_init1.UART_BaudRate = 115200UL;        //波特率

    USART_init1.Morecommunicate = DISABLE;      //多机通讯禁止

    USART_init1.UART_RxEnable = ENABLE;         //允许接收

    USART_init1.BaudRateDouble = DISABLE;        //波特率不加倍

    USART_init1.UART_Interrupt = ENABLE;         //允许中断

    USART_init1.UART_Polity = PolityLow;        //优先级低(默认)

    USART_init1.UART_P_SW = UART1_SW_P30_P31;   //USART端口

    USART_init1.UART_RXD_TXD_Short = DISABLE;  //内部短路RXD与TXD, 做中继

    USART_Configuration(USART1, &USART_init1);

   

}


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

*

*  功能:ESP8266模块初始化

*  描述:利用AT指令,

*        设置WIFI名称为:ESPESP1

*        密码:12345678

*        端口:3333

*        IP地址:192.168.4.1(默认)

*

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


void ESP8266_init()

{

   

    for(s=0;s<3;s++)  //多进行几次初始化

     {  

       PrintString1("ATrn");

       PrintString1("AT+RSTrn");

       delay();

       PrintString1("AT+CWMODE=3rn");

       delay();

       PrintString1("AT+CWSAP="ESPESP1","12345678",5,3rn");

       delay();

       PrintString1("AT+RSTrn");

       delay();

       PrintString1("AT+CIPMUX=1rn");

       delay();

       PrintString1("AT+CIPSERVER=1,3333rn");

       delay();

     }

}

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

功能描述:握手成功与否函数

入口参数:uint8 *a

返回值:位

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

bit Hand(uchar *a)

{

    if(strstr(RX1_Buffer,a)!=NULL)     //判断字符串a是否是字符串Rec_Buf的子串

            return 1;                     //如果字符串a是字符串Rec_Buf的子串

        else

                  return 0;                     //如果字符串a不是字符串Rec_Buf的子串

}

void main()

{

    GPIO_init();

    delay_ms(10);

   

    USART_init1();

   

    ES = 1;               //允许串口1中断

    EA = 1;               //允许总中断

    delay_ms(20);

   

    ESP8266_init();

   

    while (1)

        {

                delay_ms(1);

                if(COM1.RX_TimeOut > 0)                //超时计数

                {

                        if(--COM1.RX_TimeOut == 0)

                        {

                                if(COM1.RX_Cnt > 0)

                                {

                    if(Hand("ESPKLED"))

                                        {

                                       

                          ES = 0;   //关闭串口1中断

                          LED = 0;

                          ES = 1;  //打开串口1中断

                                        }  

                                        if(Hand("ESPGLED"))

                                        {

                                       

                          ES = 0;   //关闭串口1中断

                          LED = 1;

                          ES = 1;  //打开串口1中断

                                        }  

                                }

                                COM1.RX_Cnt = 0;

                        }

                }

        }

}


关键字:STC15单片机  ESP8266  控制LED 引用地址:STC15单片机利用ESP8266控制LED 源程序

上一篇:自制单片机STC12C5A60S2+1602电压表
下一篇:STC89c52+DS1302时钟,数码管显示时间日期,可调节

推荐阅读

长期以来量子计算机一直被吹捧为功能强大得令人难以置信的机器。相比于世界上现有的计算机,量子计算机能够以更快的速度解决极其复杂的计算问题。但目前还没有就开发量子计算机的最佳方式达成一致。最终谁将赢得这场比赛? 量子计算机能否揭开我们身体和宇宙的奥秘?  计算机科学家说,超高速量子计算机可以加速新药物的研制,破解最复杂的密码安全系统...
早前苹果已正式发布旗下的新款iPhone 11系列设备以及iOS 13。而近日一位安全人员发现了一个存在于iOS 13中的漏洞,其允许黑客即使在iPhone处于锁屏状态下仍旧可以窃取用户信息。近日一位名叫Jose Rodriguez的安全研究人员发布了一段YouTube视频并展示了他在现有的iOS 13系统中发现的漏洞:通过进行FaceTime呼叫,然后启用Siri VoiceOver功能,iPhone...
单片机源程序如下:#include<reg52.h>#define uchar unsigned char#define uint unsigned int#define DAdata P0 //DA数据端口sbit DA_S1= P2^0; // 控制DAC0832的8位输入寄存器,仅当都为0时,可以输出数据(处于直通状态),否则,输出将被锁存sbit DA_S2= P2^1; // 控制DAC0832的8位DAC寄存器,仅当都为0时,可以输出数...
OFweek 2021中国机器人系统集成商峰会 | 展商推介松诺盟科技有限公司www.chnsnm.com       1关于松诺盟科技       松诺盟科技有限公司是一家拥有自主知识产权,致力于高性能纳米薄膜智能压力传感器、扭矩传感器、温度传感器、变送器及精密仪器仪表研发、生产和销售于一体的国家高新技术企业。公司总部位于国家级浏阳经济技术开发区,注册...

史海拾趣

问答坊 | AI 解惑

大赛安排

本帖最后由 paulhyde 于 2014-9-15 09:19 编辑  …

查看全部问答∨

CE6.0设置系统时间,重启后丢失?

在CE6.0控制面板中更改了系统当前时间,ARM RESET复位后时间能够保留,可是要系统断电后启动,时间不能够保留。 注册表是HIVE注册表。请问这个是什么原因? 时间是保存在注册表哪里的?…

查看全部问答∨

触摸屏检测时中断截取不到的原因,高手进来看看

问题: 硬件:EPDZ3338+触摸屏(层电阻阻值在5-6K) 芯片集成了触摸屏驱动,在检测的时候,只要设定触摸屏检测标志位就可打开触摸屏检测有无按下,按下的时候会产生中断,通过这个中断A/D转化实现其他的功能,现在就是中断出不来,不管怎么按下啊 ...…

查看全部问答∨

高手请进,USART配置问题

STM32F103的串口2配置/******************************************************************************** Function Name  : RCC_Configuration* Description    : Configures  ...…

查看全部问答∨

参加全国比赛,方向是电源类。对模块的供电电源设计存在些问题,想请教下各位高手

本帖最后由 paulhyde 于 2014-9-15 09:11 编辑 由于本人参加此次全国大学生电子电路设计大赛,方向是电源类。由于电源类的 题目中,不允许使用现有电源,只给220V的交流电。其他的电压都需要自己做。 例如微处理器及显示模块的供电,驱动电路等 ...…

查看全部问答∨

20几类430单片机的datasheet(整理硬盘看到的,各取所需吧)

                           [ 本帖最后由 huang91 于 2012-1-28 19:31 编辑 ]…

查看全部问答∨

玩游戏体验易电源 晒成绩 谈体会

呵先上图,争取套件。顺便问一下什么时候出结果啊? 设计中有用过ti的一些模拟片子,不过限于整板预算平衡,数量和种类不多。总体印象是可靠性高,在一些比较恶劣的条件下够皮实,当然咯,价格嘛会有点点肉疼,毕竟我们应用台系方案为主。 我是 ...…

查看全部问答∨

spwm超级无敌stm32步进电机控制教程

本帖最后由 huo_hu 于 2014-3-10 14:00 编辑 本教程介绍步进电机驱动和细分的工作原理,以及stm32103为主控芯片制作的一套自平衡的两轮车系统,附带原理图pcb图和源代码,有兴趣的同学一起来吧.本系统还有一些小问题,不当之处希望得到大家的指正. & ...…

查看全部问答∨

想了解一个程序是如何从源代码到编译连接然后运行的吗?请看《深入理解计算机系统?

         找工作之前认真把《深入理解计算机系统》看了一遍,看完最大的收获是理解了一个程序如何从源代码,经过编译链接,变成正在运行的程序。每次面试的时候把程序地址空间一讲,佯装自己专业基础扎实,硬是把面 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved