欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
ESP8266+STC89C52單片機(jī)通訊 并向串口發(fā)送數(shù)據(jù)
[打印本頁]
作者:
dianzi541
時間:
2019-2-17 20:21
標(biāo)題:
ESP8266+STC89C52單片機(jī)通訊 并向串口發(fā)送數(shù)據(jù)
想實(shí)現(xiàn) 用手機(jī)連接WIFI模塊來控制紅外模塊(向串口發(fā)送數(shù)據(jù)就可以),通過捕捉WiFi收到的數(shù)據(jù),來調(diào)用寫好的16進(jìn)制數(shù)組。可下面的程序,只要上電就不斷運(yùn)行DYMS();還會影響向ESP8266發(fā)送初始化的命令。不知道問題出在哪了,代碼都是我東拼西湊來的,希望大神給指正
單片機(jī)源碼:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit been=P2^5; // 蜂鳴器
uchar code diannaoKG[] = {0x86,0x00,0x00,0x00,0x86};
void delay(int i) //延時函數(shù)
{
int j,k;
for(j=0;j<i;j++)
for(k=0;k<j;k++);
}
void Delay10ms(uint c)
{
unsigned char a, b;
for (;c>0;c--)
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}
// 蜂鳴器發(fā)聲函數(shù)
void di()
{
been=0;
Delay10ms(40);
been=1;
}
void Out_Data (uchar Data[])
{
uchar i,j;
for (i=0;i<j;i++)
{
SBUF = Data[i];
while (!TI);
TI = 0;
}
}
void DYMS()
{
uchar j;
j=sizeof(diannaoKG);
Out_Data(diannaoKG);
di();
}
void init_serial() //串口初始化,設(shè)置波特率115200
{
TMOD=0x20;
TH1=0xFF;
TL1=0xFD;
SCON=0x50;
RCAP2H=0xFF;
RCAP2L=0xFD;
TCLK=1;
RCLK=1;
C_T2=0;
EXEN2=0;
TR2=1 ;
TI=0;
}
void Send_Uart(uchar value) //單片機(jī)數(shù)據(jù)發(fā)送
{
ES=0; //串口中斷關(guān)閉
TI=0;
SBUF=value; //將數(shù)據(jù)放入串口寄存器中
while(TI==0);
TI=0;
ES=1;
}
void ESP8266_Set(uchar *puf) // WIFI模塊接收到單片機(jī)的AT指令
{
while(*puf!='\0')
{
Send_Uart(*puf);
Delay10ms(50);
puf++;
delay(50);
}
delay(500);
}
void ControlCar(unsigned char ConType) //選擇小車運(yùn)行的模式
{
switch(ConType)
{
case 1:
{
DYMS();
break;
}
case 2:
{
break;
}
}
}
void main()
{
init_serial(); //串口初始化
ES=1; //串口中斷打開
REN=1; //單片機(jī)接收允許位
EA=1; //總中斷打開
delay(1000);
ESP8266_Set("AT+CWMODE=1\r\n");//SAT模式 就是路由器模式
ESP8266_Set("AT+CWJAP=\"banana\",\"123456789\"\r\n");//連接路由器
delay(1000);
ESP8266_Set("AT+CIPMUX=1\r\n");//開啟多連接
ESP8266_Set("AT+CIPSERVER=1,5000\r\n"); //連接端口號5000
delay(1000);
P1=0xfe;
while(1)
{
}
}
void ComBreak() interrupt 4 //中斷函數(shù),單片機(jī)判斷串口接收到的數(shù)據(jù)
{
unsigned char RecvData;
if(RI==1)
{
RecvData=SBUF; //從串口寄存器中讀取數(shù)據(jù)
if(RecvData=='S')
{
ControlCar(1);
}
if(RecvData=='X')
{
ControlCar(2);
}
//SBUF=RecvData;
RI=0; //把RI至0
}
if(TI==1) //把TI至0
{
TI=0;
}
}
復(fù)制代碼
作者:
小貓貓愛吃魚
時間:
2019-2-18 08:55
你好!
1、你的代碼拼湊的有點(diǎn)亂
2、是要控制一個成品的紅外模塊嗎?
3、這個紅外模塊應(yīng)該是有控制協(xié)議的吧
4、要向 ESP8266 發(fā)控制信息,是手機(jī)還是電腦?
5、手機(jī),需要寫APP軟件;電腦,需要寫上位機(jī)軟件
6、給你 2 個紅外遙控的實(shí)物看看,做參考
7、具體設(shè)計(jì),可以按照你的要求做,加 QQ 好友
一體化紅外學(xué)習(xí)型遙控器,NEC解碼、發(fā)射測試成功 - 51單片機(jī) 單片機(jī)論壇
http://www.raoushi.com/bbs/dpj-119972-1.html
ESP8266-WIFI無線紅外遙控器(固件版) - 51單片機(jī) 單片機(jī)論壇
http://www.raoushi.com/bbs/dpj-119058-1.html
作者:
dianzi541
時間:
2019-2-18 17:35
小貓貓愛吃魚 發(fā)表于 2019-2-18 08:55
你好!
1、你的代碼拼湊的有點(diǎn)亂
2、是要控制一個成品的紅外模塊嗎?
我是用手機(jī) 給ESP8266發(fā)送數(shù)據(jù),ESP8266連接在STC89C52上。只要能達(dá)到接受數(shù)據(jù)后 能調(diào)用相應(yīng)的數(shù)組到串口就可以了
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1