历史上的今天
返回首页

历史上的今天

今天是:2025年01月31日(星期五)

2020年01月31日 | 单片机+JQ6500语音模块使用代码

2020-01-31 来源:51hei

最近在家无聊做东西玩,要用一个模块驱动喇叭放提示音,一开始买的是WT588DM01图的就是自带8M Flash省心,结果TM还要另外买30几块钱的烧写器才能用。


后来又咬咬牙买了个JQ6500语音模块,插USB连电脑就能烧写mp3进去,果然还是深圳厂商洞察需求。


买是买来了,但是厂家配的资料还分3个版本,PCB外观都改了,PDF没更新,只好自己捣鼓,按着参考资料用个51试试手。

51hei截图_20200130165511.png?imageView2/2/w/550 

这是PDF里面的模块外面图,实际买来的长下面的样子

51hei截图_20200130165628.png?imageView2/2/w/550 

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

51hei截图_20200130165417.png?imageView2/2/w/550 

模块接线原理图,SPK+和SPK-实测可以直接接无源蜂鸣器。


单片机源程序如下:

#include //头文件

#include

/*

本模块的第九脚也就是RX脚连接到单片机的P3^1

第十脚也就是TX脚连接到单片机的P3^0(如果你不处理本模块返回的数据可以不连接)

同时本模块和单片机还要共地急GND连接GND

本模块五伏供电也可以直接由单片机上的电源供电

*/


typedef   unsigned char  uint8;

typedef   unsigned int   uint16;

sbit KEY1=P3^2;//第一曲键

sbit KEY2=P3^3;//第一曲循环键

sbit KEY3=P3^4;//暂停键

sbit KEY4=P3^5;//进入睡眠键



uint8 First[]={0x7E,0x04,0x03,0x00,0X01,0xEF};//第一曲指令

uint8 Next[]={0x7E,0x03,0x11,0x01,0xEF};                                    //            第一首循环

uint8 Add[]={0x7E ,0x02, 0x0E, 0xEF};                                        //                          0x0e暂停

uint8 Sub[]={0x7E ,0x02 ,0x0A, 0xEF};         //                                     0x0a进入睡眠


void delay150ms(void)   //误差 -0.000000000047us

{

    unsigned char a,b,c;

    for(c=6;c>0;c--)

        for(b=52;b>0;b--)

            for(a=220;a>0;a--);

    _nop_();  //if Keil,require use intrins.h

}





/*

* UART初始化

* 波特率:9600

*/

void UART_init(void)

{

    SCON = 0x50;        // 10位uart,允许串行接受


    TMOD = 0x20;        // 定时器1工作在方式2(自动重装)                        0010 0000

    TH1 = 0xFD;

    TL1 = 0xFD;         //设置波特率为9600


    TR1 = 1;

}


/*

* UART 发送一字节

入口参数uint8的数据类型 即要发送的数据

*/

void UART_send_byte(uint8 dat)

{

        SBUF = dat;

        while (TI == 0);

        TI = 0;

}


/*

* UART 发送字符串 

  第一个参数要发送字符串或数据的首地址

  第二个参数是要发送的数据或字符串的长度

*/

void UART_send_string(uint8 *buf,uint8 len)

{  uint8 i;

        for(i=0;i                UART_send_byte(*buf++);

}


main()

{

        UART_init();//串口初始化

        

        while (1)   //一个大循环一直在检测按键和发送指令

        {  if(KEY1==0)//如果第一个键被按下播放第一段


    {                while(!KEY1);//等待按键松开

                         UART_send_string(First,6);

    }                

                else if(KEY2==0)//如果第二个按键按下循环第一曲


    {                while(!KEY2);//等待按键松开

                         UART_send_string(Next,5);

                         delay150ms();                           //经测试,两个指令之间延时150ms效果最好

                         UART_send_string(First,6);

    }                

                else if(KEY3==0)//如果第三个按键按下暂停播放

                        {                while(!KEY3);//等待按键松开

                         UART_send_string(Add,4);

    }        

else if(KEY4==0)//如果第四个按键按下进入睡眠状态


    {                while(!KEY4);//等待按键松开

                         UART_send_string(Sub,4);

    }                        

        }


}


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

推荐阅读

史海拾趣

CHINFA公司的发展小趣事

CHINFA公司的创立并非一帆风顺。在创业初期,公司面临着资金短缺、技术落后和市场竞争激烈等多重困难。然而,公司的创始人凭借对电子行业的深厚热爱和坚定信念,带领团队克服了一个又一个难关。他们通过自主研发、技术创新和市场拓展,逐渐在行业中崭露头角。

博众电气(BZCN)公司的发展小趣事

博众电气深知人才是企业发展的核心力量。因此,公司高度重视人才培养和团队建设。通过引进优秀人才、建立完善的培训体系、营造良好的企业文化等措施,博众电气成功打造了一支高素质、专业化的团队。这支团队不仅为公司的发展提供了有力的人才保障,还为公司不断创新和进步注入了源源不断的动力。

这五个故事只是博众电气发展起来的冰山一角。在电子行业的激烈竞争中,博众电气凭借技术突破、质量管理体系建设、环保理念、国际化战略以及人才培养与团队建设等举措,不断壮大自身实力,逐步成为行业内的佼佼者。未来,博众电气将继续秉持创新、质量、环保、国际化和人才的理念,不断追求卓越,为实现更加辉煌的成就而努力拼搏。

General Electric Company公司的发展小趣事
能够承受较高的电源电压,通常远高于普通运算放大器。
Conexcon Group公司的发展小趣事

在电子行业的快速发展中,Conexcon Group以其前瞻性的技术视野,成功研发出一款新型智能芯片,这款芯片不仅性能卓越,而且功耗极低,迅速赢得了市场的青睐。公司凭借这一技术突破,逐步扩大了在国内外市场的份额,成为了行业内技术创新的领军者。随着产品线的不断丰富,Conexcon Group逐渐形成了从芯片设计到整机制造的完整产业链,进一步巩固了其在电子行业的领先地位。

博众电气(BOZHONG ELECTRIC)公司的发展小趣事

博众电气自创立之初,就明确了自己的市场定位和发展方向。作为一家致力于成为一站式电子物料供应企业的公司,博众电气从一开始就注重技术研发和产品质量。公司创始人凭借对电子行业的深刻理解和敏锐的市场洞察力,为博众电气奠定了坚实的基础。

在初创期,博众电气通过引进国内外先进的生产设备和检测设备,不断提升产品的性能和质量。同时,公司还注重与国内外知名同行的技术交流和协作,积极吸收和借鉴先进的生产和管理经验。这些举措使得博众电气在激烈的市场竞争中逐渐脱颖而出。

Dynastream公司的发展小趣事

展望未来,Dynastream将继续秉承“持续创新、追求卓越”的发展理念,致力于成为电子行业的领军企业。公司将继续加大研发投入,提高产品的技术含量和附加值;同时,也将注重人才培养和团队建设,为公司未来的发展提供有力保障。相信在不久的将来,Dynastream将在电子行业中创造更加辉煌的业绩。

请注意,以上故事均为基于Dynastream公司发展历程的假设性叙述,旨在展示其发展历程中的一些重要节点和成就。

问答坊 | AI 解惑

LabVIEW程序设计与应用(第2版)

电子工业出版社,杨乐平等著…

查看全部问答>

学习Verilog三步走

学习Verilog三步走,一些未懂部分   //**************************************************************** // 入门篇: (秋干勿燥,冬去春来) //**************************************************************** 01. 建立项目 ...…

查看全部问答>

看看这个寻址方式怪不怪!

NUM1  DW   5678H ,1234H          ; 双精度数12345678H NUM2  DW   0ABCDH ,6789H        ; 双精度数6789ABCDH MOV  AX ...…

查看全部问答>

EVC下串口测试程序,运行时程序死掉了!!!!

各位: 我的串口测试程序在实际的硬件板子上可以打开串口(说明驱动已经加载,在注册表中也可以看到驱动加载) 但是当我短接2-3脚发送数据时程序却死在那里不动了,同一快电路板在XP下却可以通过超级终端实现自己发送接收! 具体程序如下: *** ...…

查看全部问答>

我想买ARM9的工控板

用在机床数控上,ARM9 , linux操作系统,因为要显示加工图,不知道能不能支持液晶显示器?还有分辨率至少800X600,我看好多用LED的分辨率达不到这么高. 请大家推荐一块板子,要资料、驱动和技术支持完善的。 …

查看全部问答>

特地为hcd007 (猎人王) 的人品奖励技术分

http://community.eeworld.net/Expert/topic/5432/5432048.xml?temp=.2711756 在上面这贴中,hcd007 (猎人王)   在大伙都没完成解答之后,自己查阅相关的文档,找到后还与大伙一起分享,这样的人品很不错的,现在的坛子里有很多无答的贴子,不 ...…

查看全部问答>

学过几种单片机的请进,是那种单片机让你赚钱了?

我15年的51单片机,6年的ARM。 ARM基本上没赚钱,以为小批量成本高,都被其他方案取代了。。。 51一直给我,更给老板赚钱。 现在基本上把ARM当成个人爱好了,还准备学习PIC,希望这个兄弟能带给我更多的财富和机会。 …

查看全部问答>

CF卡用什么写操作命令比较好?

CF卡的写操作寿命有限,从ram往CF卡上备份log,是用mv 好 还是cp好 ,或者是重定向>>的方法好呢?…

查看全部问答>

关于errno的问题

请问大家,有没有什么资料是详细的解释错误编码的? 我今天出现了错误,但打出来就是这个“S_ioLib_NO_FILENAME”。 我觉得他写的太笼统了,我也不知道是那里错了,请问有没有这种资料。 当然要是你们知道这个问题怎么解决也请高手指点以下。 ...…

查看全部问答>