標(biāo)題:
51單片機(jī)與esp8266的智能語音的遙控
[打印本頁]
作者:
iuuuuu
時(shí)間:
2018-5-10 17:30
標(biāo)題:
51單片機(jī)與esp8266的智能語音的遙控
我需要做一個(gè)智能語音的遙控,目前入手了一塊ld3320(有代碼,可修改)和兩塊esp8266,還有自己的單片機(jī)開發(fā)板(普中的)。我想要讓語音識別助手識別后傳送信息給一塊8266,再發(fā)送給另一塊8266,然后這塊8266驅(qū)動(dòng)單片機(jī)控制單片機(jī)上的led開關(guān),蜂鳴器開關(guān)等。程序?qū)懺谡Z音模塊的單片機(jī)和單片機(jī)開發(fā)板上的單片機(jī)上用AT指令(比較看的懂),可以做到嗎?
可以幫忙看看程序的嗎?
#include <reg52.h>
#define uchar unsigned char
sbit LED=P0^0;
void delay(int i) //延遲
{
int j,k;
for(j=0;j<i;j++)
for(k=0;k<j;k++);
}
void init_serial()
{
SCON=0X50;//設(shè)置為工作方式1
TMOD=0X20;//設(shè)置計(jì)數(shù)器工作方式2
PCON=0X80;//波特率加倍
TH1=0XF3;//計(jì)數(shù)器初始值設(shè)置,波特率是4800
TL1=0XF3;
ES=1;//打開接收中斷
EA=1;//打開總中斷
TR1=1; //打開計(jì)數(shù)器
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 *s) // WIFI模塊接收到單片機(jī)的AT指令
{
while(*s!='\0')
{
Send_Uart(*s);
//ms_delay(50);
s++;
//delay(50);
}
delay(500);
}
void ComBreak() interrupt 4 //中斷函數(shù),單片機(jī)判斷串口接收到的數(shù)據(jù)
{
unsigned char kong;
if(RI==1)
{
kong=SBUF; //從串口寄存器讀取數(shù)據(jù)
if(kong=='K')
{ while(1)
{
LED=0;
delay(50000);
LED=1;
delay(50000);
}
}
RI=0; } //清除接收中斷標(biāo)志位
if(TI==1) //清除 發(fā)送完成標(biāo)志位
{
TI=0;
}
}
void main()
{
init_serial(); //串口初始化
ES=1; //串口中斷打開
REN=1; //單片機(jī)接收允許位
EA=1; //總中斷打開
delay(1000);
ESP8266_Set("AT+CIPMUX=1\r\n");//發(fā)送AT指令
delay(100);
ESP8266_Set("AT+CIPSERVER=1,8080\r\n");
while(1)
{
}
}
復(fù)制代碼
用網(wǎng)絡(luò)調(diào)試助手調(diào)試每次看到有AT指令輸入,但是esp8266就偶然連接上了一次,為什么。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1