找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8118|回复: 7
收起左侧

单片机+JQ6500语音模块使用代码

  [复制链接]
ID:192205 发表于 2020-1-30 17:05 | 显示全部楼层 |阅读模式
最近在家无聊做东西玩,要用一个模块驱动喇叭放提示音,一开始买的是WT588DM01图的就是自带8M Flash省心,结果TM还要另外买30几块钱的烧写器才能用。
后来又咬咬牙买了个JQ6500语音模块,插USB连电脑就能烧写mp3进去,果然还是深圳厂商洞察需求。
买是买来了,但是厂家配的资料还分3个版本,PCB外观都改了,PDF没更新,只好自己捣鼓,按着参考资料用个51试试手。
51hei截图_20200130165511.png
这是PDF里面的模块外面图,实际买来的长下面的样子
51hei截图_20200130165628.png

芯片是24脚,模块16脚。引出来的16个脚没变,就是模块PCB板上面有略微变化,但是不影响对模块引出来的16个脚直接使用。

51hei截图_20200130165417.png
模块接线原理图,SPK+和SPK-实测可以直接接无源蜂鸣器。

单片机源程序如下:
  1. #include <reg51.h>//头文件
  2. #include <intrins.h>
  3. /*
  4. 本模块的第九脚也就是RX脚连接到单片机的P3^1
  5.         第十脚也就是TX脚连接到单片机的P3^0(如果你不处理本模块返回的数据可以不连接)
  6.                                 同时本模块和单片机还要共地急GND连接GND
  7.                                 本模块五伏供电也可以直接由单片机上的电源供电
  8. */

  9. typedef   unsigned char  uint8;
  10. typedef   unsigned int   uint16;
  11. sbit KEY1=P3^2;//第一曲键
  12. sbit KEY2=P3^3;//第一曲循环键
  13. sbit KEY3=P3^4;//暂停键
  14. sbit KEY4=P3^5;//进入睡眠键


  15. uint8 First[]={0x7E,0x04,0x03,0x00,0X01,0xEF};//第一曲指令
  16. uint8 Next[]={0x7E,0x03,0x11,0x01,0xEF};                                    //            第一首循环
  17. uint8 Add[]={0x7E ,0x02, 0x0E, 0xEF};                                        //                          0x0e暂停
  18. uint8 Sub[]={0x7E ,0x02 ,0x0A, 0xEF};         //                                     0x0a进入睡眠

  19. void delay150ms(void)   //误差 -0.000000000047us
  20. {
  21.     unsigned char a,b,c;
  22.     for(c=6;c>0;c--)
  23.         for(b=52;b>0;b--)
  24.             for(a=220;a>0;a--);
  25.     _nop_();  //if Keil,require use intrins.h
  26. }




  27. /*
  28. * UART初始化
  29. * 波特率:9600
  30. */
  31. void UART_init(void)
  32. {
  33.     SCON = 0x50;        // 10位uart,允许串行接受

  34.     TMOD = 0x20;        // 定时器1工作在方式2(自动重装)                        0010 0000
  35.     TH1 = 0xFD;
  36.     TL1 = 0xFD;         //设置波特率为9600

  37.     TR1 = 1;
  38. }

  39. /*
  40. * UART 发送一字节
  41. 入口参数uint8的数据类型 即要发送的数据
  42. */
  43. void UART_send_byte(uint8 dat)
  44. {
  45.         SBUF = dat;
  46.         while (TI == 0);
  47.         TI = 0;
  48. }

  49. /*
  50. * UART 发送字符串
  51.   第一个参数要发送字符串或数据的首地址
  52.   第二个参数是要发送的数据或字符串的长度
  53. */
  54. void UART_send_string(uint8 *buf,uint8 len)
  55. {  uint8 i;
  56.         for(i=0;i<len;i++)
  57.                 UART_send_byte(*buf++);
  58. }

  59. main()
  60. {
  61.         UART_init();//串口初始化
  62.         
  63.         while (1)   //一个大循环一直在检测按键和发送指令
  64.         {  if(KEY1==0)//如果第一个键被按下播放第一段

  65.     {                while(!KEY1);//等待按键松开
  66.                          UART_send_string(First,6);
  67.     }               
  68.                 else if(KEY2==0)//如果第二个按键按下循环第一曲

  69.     {                while(!KEY2);//等待按键松开
  70.                          UART_send_string(Next,5);
  71.                          delay150ms();                           //经测试,两个指令之间延时150ms效果最好
  72.                          UART_send_string(First,6);
  73.     }               
  74.                 else if(KEY3==0)//如果第三个按键按下暂停播放
  75.                         {                while(!KEY3);//等待按键松开
  76.                          UART_send_string(Add,4);
  77.     }        
  78. else if(KEY4==0)//如果第四个按键按下进入睡眠状态

  79.     {                while(!KEY4);//等待按键松开
  80.                          UART_send_string(Sub,4);
  81.     }                        
  82.         }

  83. }
复制代码
用到了四个按键,还有一个串口,每检测到一个按键的按下就利用单片机给模块JQ6500发串口指令,两个指令之间不少于150ms(实测),不然会没反应。

顺手画了AD 的原理图库和PCB库
JQ6500原理图库和PCB库.zip (544.78 KB, 下载次数: 65)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:574058 发表于 2020-3-12 19:22 | 显示全部楼层
只有按键控制的程序吗?有没有串口控制的自动播放制定曲目的
回复

使用道具 举报

ID:648072 发表于 2020-3-13 17:47 | 显示全部楼层
写得很棒,赞一个
回复

使用道具 举报

ID:584814 发表于 2020-3-14 21:22 | 显示全部楼层
JQ6500语音模块貌似九块九包邮至于咬咬牙买
回复

使用道具 举报

ID:722967 发表于 2020-4-10 17:54 | 显示全部楼层
如果一线串口要怎么写程序呢
回复

使用道具 举报

ID:673678 发表于 2020-4-11 13:38 | 显示全部楼层
JQ6500能实现语音报警吗?
回复

使用道具 举报

ID:746901 发表于 2020-5-8 14:36 | 显示全部楼层
为什么我用单片机开发板,5V电源供电,jQ8400模块只闪烁一下就熄灭再也不工作,这是怎么回事,怎么解决求
回复

使用道具 举报

ID:1095223 发表于 2024-4-23 16:36 | 显示全部楼层
写的很好,已学习,谢谢大佬
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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