找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2220|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机与esp8266的智能语音的遥控

[复制链接]
跳转到指定楼层
楼主
ID:321577 发表于 2018-5-10 17:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我需要做一个智能语音的遥控,目前入手了一块ld3320(有代码,可修改)和两块esp8266,还有自己的单片机开发板(普中的)。我想要让语音识别助手识别后传送信息给一块8266,再发送给另一块8266,然后这块8266驱动单片机控制单片机上的led开关,蜂鸣器开关等。程序写在语音模块的单片机和单片机开发板上的单片机上用AT指令(比较看的懂),可以做到吗?
可以帮忙看看程序的吗?
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. sbit LED=P0^0;
  4. void delay(int i) //延迟
  5. {
  6. int j,k;
  7. for(j=0;j<i;j++)
  8. for(k=0;k<j;k++);
  9. }
  10. void init_serial()
  11. {
  12. SCON=0X50;//设置为工作方式1
  13. TMOD=0X20;//设置计数器工作方式2
  14. PCON=0X80;//波特率加倍
  15. TH1=0XF3;//计数器初始值设置,波特率是4800
  16. TL1=0XF3;
  17. ES=1;//打开接收中断
  18. EA=1;//打开总中断
  19. TR1=1; //打开计数器
  20. TI=0;
  21. }
  22. void Send_Uart(uchar value) //单片机数据发送
  23. {
  24. ES=0; //串口中断关闭
  25. TI=0;
  26. SBUF=value; //把数据放入串口寄存器
  27. while(TI==0);
  28. TI=0;
  29. ES=1;
  30. }
  31. void ESP8266_Set(uchar *s) // WIFI模块接收到单片机的AT指令
  32. {
  33. while(*s!='\0')
  34. {
  35. Send_Uart(*s);
  36. //ms_delay(50);
  37. s++;
  38. //delay(50);
  39. }
  40. delay(500);
  41. }
  42. void ComBreak() interrupt 4 //中断函数,单片机判断串口接收到的数据
  43. {
  44. unsigned char kong;
  45. if(RI==1)
  46. {
  47. kong=SBUF; //从串口寄存器读取数据
  48. if(kong=='K')
  49. { while(1)
  50. {
  51. LED=0;
  52. delay(50000);
  53. LED=1;
  54. delay(50000);
  55. }
  56. }
  57. RI=0; } //清除接收中断标志位
  58. if(TI==1) //清除 发送完成标志位
  59. {
  60. TI=0;
  61. }
  62. }
  63. void main()
  64. {
  65. init_serial(); //串口初始化
  66. ES=1; //串口中断打开
  67. REN=1; //单片机接收允许位
  68. EA=1; //总中断打开
  69. delay(1000);
  70. ESP8266_Set("AT+CIPMUX=1\r\n");//发送AT指令
  71. delay(100);
  72. ESP8266_Set("AT+CIPSERVER=1,8080\r\n");
  73. while(1)
  74. {
  75. }
  76. }
复制代码


用网络调试助手调试每次看到有AT指令输入,但是esp8266就偶然连接上了一次,为什么啊?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表