欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
ESP8266的單片機(jī)程序,一頁(yè)版
[打印本頁(yè)]
作者:
klhqqcom
時(shí)間:
2018-3-11 10:57
標(biāo)題:
ESP8266的單片機(jī)程序,一頁(yè)版
單片機(jī)源程序如下:
#include <reg52.h>
#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模組請(qǐng)求設(shè)備信息,mcu回復(fù)*/
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模組與設(shè)備mcu心跳,mcu回復(fù)*/
uchar mcu_send_2[9]={0xff,0xff,0x00,0x05,0x08,0x55,0x00,0x00,0x55};
/*設(shè)備mcu通知wifi模組進(jìn)入配置模式,mcu發(fā)送*/
uchar mcu_send_3[10]={0xff,0xff,0x00,0x06,0x09,0x55,0x00,0x00,0x11,0x55};
/*設(shè)備mcu重置wifi,mcu發(fā)送*/
uchar mcu_send_4[9]={0xff,0xff,0x00,0x05,0x0b,0x55,0x00,0x00,0x55};
/*wifi模組向設(shè)備通知工作狀態(tài)變化,mcu回復(fù)*/
uchar mcu_send_5[9]={0xff,0xff,0x00,0x05,0x0e,0x55,0x00,0x00,0x55};
/*wifi模組請(qǐng)求重啟mcu,mcu回復(fù)*/
uchar mcu_send_6[9]={0xff,0xff,0x00,0x05,0x10,0x55,0x00,0x00,0x55};
/*非法消息通知,mcu回復(fù)*/
uchar mcu_send_7[10]={0xff,0xff,0x00,0x06,0x12,0x55,0x00,0x00,0x11,0x55};
/*wifi模組讀取設(shè)備當(dāng)前狀態(tài),mcu回復(fù)*/
uchar mcu_send_8[11]={0xff,0xff,0x00,0x07,0x04,0x55,0x00,0x00,0x03,0x11,0x55};
/*設(shè)備向wifi主動(dòng)上報(bào)當(dāng)前狀態(tài),mcu發(fā)送*/
uchar mcu_send_9[11]={0xff,0xff,0x00,0x07,0x05,0x55,0x00,0x00,0x04,0x11,0x55};
/*wifi模組控制設(shè)備,mcu回復(fù)*/
uchar mcu_send_10[9]={0xff,0xff,0x00,0x05,0x04,0x55,0x00,0x00,0x55};
/*mcu通知wifi進(jìn)入可綁定模式,mcu發(fā)送*/
uchar mcu_send_12[9]={0xff,0xff,0x00,0x05,0x15,0x55,0x00,0x00,0x55};
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/*延時(shí)函數(shù)*/
void Delay_ms(unsigned char z)
{
unsigned char x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/*初始化函數(shù)*/
void Usart_Init()
{
TMOD=0x21; //定時(shí)器0工作方式1,定時(shí)器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發(fā)送數(shù)據(jù)程序*/
void Usart_SendArrang(uchar *dat,uchar len)
{
unsigned char i;
for(i=0;i<len;i++)
{
ES=0;
SBUF=dat[i];
while(!TI);
TI=0;
ES=1;
}
}
/*定時(shí)器0中斷*/
void Timer0_Int() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
num_usart++;
}
/*串口中斷函數(shù)*/
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;
}
/*改變?cè)O(shè)備狀態(tài)*/
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;
case 0x20:
if(usartbuf[10]==0x20)
{
lcd5=0;
}
else if(usartbuf[10]==0)
{
lcd5=1;
}
break;
case 0x40:
if(usartbuf[10]==0x40)
{
lcd6=0;
}
else if(usartbuf[10]==0)
{
lcd6=1;
}
break;
case 0x80:
if(usartbuf[10]==0x80)
{
lcd7=0;
}
else if(usartbuf[10]==0)
{
lcd7=1;
}
break;
}
}
/*處理串口數(shù)據(jù)*/
void Usart_Communication()
{
uchar i;
if(num_usart==10)
{
ET0=0;
num_usart=0;
usarrtflag=1;
REN=0;
}
if(usarrtflag)
{
sn=usartbuf[5];
checksum=0;
switch(usartbuf[4])
{
case 0x01:
mcu_send_1[5]=sn;
for(i=2;i<74;i++)
{
checksum=checksum+mcu_send_1[i];
}
checksum=checksum%256;
mcu_send_1[74]=checksum;
Usart_SendArrang(mcu_send_1,75);
break;
case 0x07:
mcu_send_2[5]=sn;
for(i=2;i<8;i++)
{
checksum=checksum+mcu_send_2[i];
}
checksum=checksum%256;
mcu_send_2[8]=checksum;
Usart_SendArrang(mcu_send_2,9);
break;
case 0x0a:
break;
case 0x0c:
break;
case 0x0d:
mcu_send_5[5]=sn;
for(i=2;i<8;i++)
{
checksum=checksum+mcu_send_5[i];
}
checksum=checksum%256;
mcu_send_5[8]=checksum;
Usart_SendArrang(mcu_send_5,9);
break;
case 0x0f:
mcu_send_6[5]=sn;
for(i=2;i<8;i++)
{
checksum=checksum+mcu_send_6[i];
}
checksum=checksum%256;
mcu_send_6[8]=checksum;
Usart_SendArrang(mcu_send_6,9);
break;
case 0x11:
mcu_send_7[5]=sn;
send_7_error=usartbuf[8];
mcu_send_7[8]=send_7_error;
for(i=2;i<9;i++)
{
checksum=checksum+mcu_send_7[i];
}
checksum=checksum%256;
mcu_send_7[9]=checksum;
Usart_SendArrang(mcu_send_7,10);
break;
case 0x03:
if(usartbuf[3]=0x06&&usartbuf[8]==0x02)
{
mcu_send_8[5]=sn;
send_8_dev=~P1;
mcu_send_8[9]=send_8_dev;
for(i=2;i<10;i++)
{
checksum=checksum+mcu_send_8[i];
}
checksum=checksum%256;
mcu_send_8[10]=checksum;
Usart_SendArrang(mcu_send_8,11);
break;
}
if(usartbuf[3]=0x08&&usartbuf[8]==0x01)
{
Control_Mcu(); //收到數(shù)據(jù)后,mcu控制設(shè)備函數(shù)
mcu_send_10[5]=sn;
for(i=2;i<8;i++)
{
checksum=checksum+mcu_send_10[i];
}
checksum=checksum%256;
mcu_send_10[8]=checksum;
Usart_SendArrang(mcu_send_10,9); //mcu回復(fù)
mcu_send_9[5]=sn;
send_9_dev=~P1;
mcu_send_9[9]=send_9_dev;
for(i=2;i<10;i++)
{
checksum=checksum+mcu_send_9[i];
}
checksum=checksum%256;
mcu_send_9[10]=checksum;
Usart_SendArrang(mcu_send_9,11); //mcu主動(dòng)上報(bào)設(shè)備狀態(tài)
break;
}
case 0x06:
break;
case 0x16:
break;
}
usrtlen=0;
usarrtflag=0;
REN=1;
}
}
/*按鍵配置設(shè)備入網(wǎng)*/
void Key_Usart_Config()
{
uchar i;
checksum=0;
if(key_config_Ap==0) //SoftAp配置模式
{
Delay_ms(10);
if(key_config_Ap==0)
{
REN=0;
sn=0x00;
mcu_send_3[5]=sn;
for(i=2;i<9;i++)
{
checksum=checksum+mcu_send_3[i];
}
checksum=checksum%256;
mcu_send_3[9]=checksum;
send_3_config=1;
mcu_send_3[8]=send_3_config;
Usart_SendArrang(mcu_send_3,10);
while(key_config_Ap==0);
REN=1;
}
}
if(key_config_Air==0) //AirLink配置模式
{
Delay_ms(10);
if(key_config_Air==0)
{
REN=0;
sn=0x00;
mcu_send_3[5]=sn;
for(i=2;i<9;i++)
{
checksum=checksum+mcu_send_3[i];
}
checksum=checksum%256;
mcu_send_3[9]=checksum;
send_3_config=2;
mcu_send_3[8]=send_3_config;
Usart_SendArrang(mcu_send_3,10);
while(key_config_Air==0);
REN=1;
}
}
}
/*主函數(shù)*/
void main()
{
Usart_Init();
while(1)
{
Key_Usart_Config();
Usart_Communication();
}
}
復(fù)制代碼
所有資料51hei提供下載:
main.rar
(1.85 KB, 下載次數(shù): 34)
2018-3-11 10:55 上傳
點(diǎn)擊文件名下載附件
8266的單片機(jī)程序
下載積分: 黑幣 -5
作者:
yi1liang
時(shí)間:
2018-3-11 21:36
謝謝分享。
作者:
雨刻心中
時(shí)間:
2019-10-28 09:04
yi1liang 發(fā)表于 2018-3-11 21:36
謝謝分享。
請(qǐng)問(wèn)有stm32一頁(yè)的嗎
作者:
wardwang
時(shí)間:
2019-10-29 08:59
好東西啊
作者:
依戀曉
時(shí)間:
2019-10-29 11:27
多謝分亨
作者:
zl11054
時(shí)間:
2019-11-7 13:26
謝謝分享 正需要
作者:
zctwss321
時(shí)間:
2019-11-10 11:13
具體51的啥單片機(jī)啊,1T還是12T的? 還有哪些16進(jìn)制的數(shù)組怎么來(lái)的啊,比如mcu_send_1[75],mcu_send_2[],mcu_send_3[],mcu_send_4[],mcu_send_5[],mcu_send_6[];還有你的原理圖呢?實(shí)物連接圖呢?好哥哥 ,能發(fā)一份嗎
作者:
zctwss321
時(shí)間:
2019-11-10 11:18
哥,原理圖和實(shí)物圖呢?
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1