历史上的今天
返回首页

历史上的今天

今天是:2024年10月28日(星期一)

正在发生

2019年10月28日 | ESP8266的单片机程序,一页版

2019-10-28 来源:51hei

单片机源程序如下:

#include


#define uint unsigned int

#define uchar unsigned char


sbit lcd0=P1^0;

sbit lcd1=P1^1;

sbit lcd2=P1^2;

sbit lcd3=P1^3;

sbit lcd4=P1^4;

sbit lcd5=P1^5;

sbit lcd6=P1^6;

sbit lcd7=P1^7;

sbit key_config_Ap=P2^1;

sbit key_config_Air=P2^3;


uchar usartbuf[50]={0};

uchar sn,checksum,usrtlen,usarrtflag,num_usart;

uchar send_3_config,send_7_error,send_8_dev,send_9_dev;


/*wifi模组请求设备信息,mcu回复*/

uchar mcu_send_1[75]={

0xff,0xff,0x00,0x47,0x02,0x55,0x00,0x00,

0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,

0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,

0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,

0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,

0x34,0x39,0x33,0x35,0x33,0x31,0x33,0x36,

0x30,0x66,0x38,0x66,0x34,0x32,0x37,0x64,

0x38,0x64,0x33,0x34,0x35,0x39,0x36,0x62,

0x33,0x37,0x33,0x62,0x38,0x61,0x39,0x30,

0x00,0x00,0x55};                                                                                                                                                


/*wifi模组与设备mcu心跳,mcu回复*/

uchar mcu_send_2[9]={0xff,0xff,0x00,0x05,0x08,0x55,0x00,0x00,0x55};


/*设备mcu通知wifi模组进入配置模式,mcu发送*/

uchar mcu_send_3[10]={0xff,0xff,0x00,0x06,0x09,0x55,0x00,0x00,0x11,0x55};


/*设备mcu重置wifi,mcu发送*/

uchar mcu_send_4[9]={0xff,0xff,0x00,0x05,0x0b,0x55,0x00,0x00,0x55};


/*wifi模组向设备通知工作状态变化,mcu回复*/

uchar mcu_send_5[9]={0xff,0xff,0x00,0x05,0x0e,0x55,0x00,0x00,0x55};


/*wifi模组请求重启mcu,mcu回复*/

uchar mcu_send_6[9]={0xff,0xff,0x00,0x05,0x10,0x55,0x00,0x00,0x55};


/*非法消息通知,mcu回复*/

uchar mcu_send_7[10]={0xff,0xff,0x00,0x06,0x12,0x55,0x00,0x00,0x11,0x55};


/*wifi模组读取设备当前状态,mcu回复*/

uchar mcu_send_8[11]={0xff,0xff,0x00,0x07,0x04,0x55,0x00,0x00,0x03,0x11,0x55};


/*设备向wifi主动上报当前状态,mcu发送*/

uchar mcu_send_9[11]={0xff,0xff,0x00,0x07,0x05,0x55,0x00,0x00,0x04,0x11,0x55};


/*wifi模组控制设备,mcu回复*/

uchar mcu_send_10[9]={0xff,0xff,0x00,0x05,0x04,0x55,0x00,0x00,0x55};


/*mcu通知wifi进入可绑定模式,mcu发送*/

uchar mcu_send_12[9]={0xff,0xff,0x00,0x05,0x15,0x55,0x00,0x00,0x55};


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

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

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

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

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

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

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

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


/*延时函数*/

void Delay_ms(unsigned char z)

{

        unsigned char x,y;

        for(x=z;x>0;x--)

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

}


/*初始化函数*/

void Usart_Init()

{

        TMOD=0x21;                                        //定时器0工作方式1,定时器1工作方式2

        TH0=(65536-10000)/256;

        TL0=(65536-10000)%256;

        TH1=0xfd;

        TL1=0xfd;

        TR0=1;

        TR1=1;

        REN=1;

        SM0=0;

        SM1=1;

        EA=1;

        ES=1;        

}


/*mcu发送数据程序*/

void Usart_SendArrang(uchar *dat,uchar len)

{

        unsigned char i;

        for(i=0;i        {

                        ES=0;

                        SBUF=dat[i];

                        while(!TI);

                        TI=0;

                        ES=1;

        }

}


/*定时器0中断*/

void Timer0_Int() interrupt 1

{

        TH0=(65536-10000)/256;

        TL0=(65536-10000)%256;

        num_usart++;

}


/*串口中断函数*/

void Usart_Int() interrupt 4

{

        num_usart=0;

        ET0=1;

        usartbuf[usrtlen++]=SBUF;

        if(usrtlen==2)

        {

                if(usartbuf[0]!=0xff||usartbuf[1]!=0xff)

                {

                        usrtlen=0;

                }

        }

        RI=0;

}



/*改变设备状态*/

void Control_Mcu()

{

        switch(usartbuf[9])

        {

                case 0x01:

                        if(usartbuf[10]==0x01)

                        {

                                lcd0=0;

                        }

                        else if(usartbuf[10]==0)

                        {

                                lcd0=1;

                        }

                        break;


                case 0x02:

                        if(usartbuf[10]==0x02)

                        {

                                lcd1=0;

                        }

                        else if(usartbuf[10]==0)

                        {

                                lcd1=1;

                        }

                        break;


                case 0x04:

                        if(usartbuf[10]==0x04)

                        {

                                lcd2=0;

                        }

                        else if(usartbuf[10]==0)

                        {

                                lcd2=1;

                        }

                        break;


                case 0x08:

                        if(usartbuf[10]==0x08)

                        {

                                lcd3=0;

                        }

                        else if(usartbuf[10]==0)

                        {

                                lcd3=1;

                        }

                        break;


                case 0x10:

                        if(usartbuf[10]==0x10)

                        {

                                lcd4=0;

                        }

                        else if(usartbuf[10]==0)

                        {

                                lcd4=1;

                        }

                        break;

推荐阅读

史海拾趣

FIDELIX公司的发展小趣事

2015年,中国半导体企业东芯半导体有限公司看中了FIDELIX在存储芯片领域的优势,决定对其进行收购。经过多轮谈判和协商,东芯半导体成功收购了FIDELIX 25.3%的股权,成为其第一大股东及实际控制人。这次收购不仅加强了东芯半导体在存储芯片领域的技术实力,也为FIDELIX提供了更广阔的市场和发展空间。

Hirschmann公司的发展小趣事
在通信领域中,定时电路也扮演着重要角色。例如,在数字通信系统中,定时电路可以用于产生同步信号或控制信号的定时发送。这种可编程定时电路可以根据通信协议的要求灵活设置定时参数,确保通信过程的稳定性和可靠性。
EPCOS/TDK公司的发展小趣事

TDK,一个历史悠久的电子工业品牌,其创始人加藤与五郎和武井武两位博士于1935年在东京创办了东京电气化学工业株式会社(Tokyo Denkikagaku Kogyo K.K.),后更名为TDK株式会社。公司自创立之初就致力于磁性材料的研发,并成功地将铁氧体磁芯商业化,为收音机等产品提供了优质的音频解决方案。TDK不断推动技术创新,逐步扩展至数据存储、电子元器件等领域,并以其卓越的品质和技术赢得了全球客户的信赖。

Hei Inc Optoelectronic Division公司的发展小趣事
无触点操作减少了机械动作产生的噪音,并降低了电磁干扰,对工作环境和周边设备更为友好。
Hengstler GmbH公司的发展小趣事
无触点操作减少了机械动作产生的噪音,并降低了电磁干扰,对工作环境和周边设备更为友好。
GE Oil & Gas Digital Solutions公司的发展小趣事
在电路制作完成后,使用已知阻值的标准电阻对电路进行校准,确保测量结果与标准值一致。

问答坊 | AI 解惑

PSPICE高频开关电源仿真实例

这是PSPICE的高频开关电源仿真实例,跟大家分享。…

查看全部问答>

step7编程之地址概念详解

完整的一条指令,应该包含指令符+操作数(当然不包括那些单指令,比如NOT等)。其中的操作数是指令要执行的目标,也就是指令要进行操作的地址。    我们知道,在PLC中划有各种用途的存储区,比如物理输入输出区P、映像输入区I、映像输出区Q、位 ...…

查看全部问答>

Wince5.0 从sleep wakeup后出现问题

各位大侠,我用的wince5.0+s3C2451的平台,系统sleep正常,但是Wakeup后提示: ERROR: Power Handler function yield to low priority thread. 查了相关资料,说是在驱动的电源处理power_up和power_down部分不要使用同步对象和系统调用,但是似 ...…

查看全部问答>

彩信猫 接受彩信问题

我现在有一个西门子模块的GPRS彩信猫。我需要接受送来的彩信。哪么。。。。我用AT+CMGR可以读短信。。。短信里有URL,接下来应该怎么做才能下载彩信的图片呢…

查看全部问答>

嵌入式系统都是RISC的cpu架构吗

嵌入式系统都是RISC的cpu架构吗?本人是外行…

查看全部问答>

如何把标准linux内核改成arm下用的linux内核

arm上运行的Linux内核与http://www.kernel.org上发布的内核有啥关系?翻阅了一天的资料,云里雾里的。基本是以下几种说法: (1):arm linux = Linux + arm补丁(http://www.arm.linux.org.uk/developer) (2):通过skyeye来移植 (3):用已有的arm lin ...…

查看全部问答>

《PLC零基础自学入门》

众多学员反应,在自学PLC的过程中,有些人能在纸上画梯形图但无法输入电脑送进PLC执行、有些人对软件基本上就是拿来就用,但确无法理解梯形图的真正含义、其中有一个最让我哭笑不得的学员,为了PWM k10 k10 Y00的指令,把东莞市 ...…

查看全部问答>

求教STM32USART高速通讯的怪问题

俺用的是STM32F103VB,72MHz运行。USART2,半双工通讯,DMA发送,中断接收。在速率为19200、115200时一切正常。 但是项目要求速率达到0.5Mbps,更改波特率设置(用的是FWLib)后,通讯无法进行。示波器查出发送正确。我在接收中断函数 入口 ...…

查看全部问答>

2011电子设计大赛,大家准备得怎么样了啊!

本帖最后由 paulhyde 于 2014-9-15 08:56 编辑 大家的进度怎么样了啊!一起聊一下,交流一下自己的心得,成果啊!让大家一起进步啊!  …

查看全部问答>

传一本英文版的书 Programming embedded system in c and c++

最近下载了一本中文版的,中文版的翻译的太过草率了。于是,好不容易找了本英文版的。 有需要的尽管拿去,呵呵  …

查看全部问答>