标题:
51单片机与esp8266的智能语音的遥控
[打印本页]
作者:
iuuuuu
时间:
2018-5-10 17:30
标题:
51单片机与esp8266的智能语音的遥控
我需要做一个智能语音的遥控,目前入手了一块ld3320(有代码,可修改)和两块esp8266,还有自己的单片机开发板(普中的)。我想要让语音识别助手识别后传送信息给一块8266,再发送给另一块8266,然后这块8266驱动单片机控制单片机上的led开关,蜂鸣器开关等。程序写在语音模块的单片机和单片机开发板上的单片机上用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;//设置为工作方式1
TMOD=0X20;//设置计数器工作方式2
PCON=0X80;//波特率加倍
TH1=0XF3;//计数器初始值设置,波特率是4800
TL1=0XF3;
ES=1;//打开接收中断
EA=1;//打开总中断
TR1=1; //打开计数器
TI=0;
}
void Send_Uart(uchar value) //单片机数据发送
{
ES=0; //串口中断关闭
TI=0;
SBUF=value; //把数据放入串口寄存器
while(TI==0);
TI=0;
ES=1;
}
void ESP8266_Set(uchar *s) // WIFI模块接收到单片机的AT指令
{
while(*s!='\0')
{
Send_Uart(*s);
//ms_delay(50);
s++;
//delay(50);
}
delay(500);
}
void ComBreak() interrupt 4 //中断函数,单片机判断串口接收到的数据
{
unsigned char kong;
if(RI==1)
{
kong=SBUF; //从串口寄存器读取数据
if(kong=='K')
{ while(1)
{
LED=0;
delay(50000);
LED=1;
delay(50000);
}
}
RI=0; } //清除接收中断标志位
if(TI==1) //清除 发送完成标志位
{
TI=0;
}
}
void main()
{
init_serial(); //串口初始化
ES=1; //串口中断打开
REN=1; //单片机接收允许位
EA=1; //总中断打开
delay(1000);
ESP8266_Set("AT+CIPMUX=1\r\n");//发送AT指令
delay(100);
ESP8266_Set("AT+CIPSERVER=1,8080\r\n");
while(1)
{
}
}
复制代码
用网络调试助手调试每次看到有AT指令输入,但是esp8266就偶然连接上了一次,为什么啊?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1