标题: 给大家分享一个可用于制作语音播报的电子资料JQ8900-16P [打印本页]

作者: qq735656706    时间: 2019-4-10 10:23
标题: 给大家分享一个可用于制作语音播报的电子资料JQ8900-16P
模块价格也不贵  功能挺好用的


全部资料51hei下载地址:
JQ8900-16P语音模块-资料包.rar (6.82 MB, 下载次数: 152)

语音合成软件使用说明

  1. #include "main.h"

  2. bit bSysHalfSec;
  3. u8 TimeWaitCnt = 0;

  4. u8 code PrevFile[] = {0xAA, 0x05, 0x00, 0xAF};/*此数组指令可以直接由上位机生成,复制过来即可  */
  5. u8 code NextFile[] = {0xAA, 0x06, 0x00, 0xB0};
  6. u8 code Path[] = {0xAA, 0x08, 0x10, 0x02, 0x2F, 0xB9, 0xE3, 0xB8, 0xE6, 0x2A, 0x2F, 0xD0, 0xA1, 0xC3, 0xD7, 0x2A, 0x4D, 0x50, 0x33, 0x8B, }; // flash   /广告*/小米*MP3



  7. /***************************************************************************************

  8. 本程序为MP3串口模块测试程序C51版本,测试芯片采用 STC12C5A32S2,外部晶振,11.0592MHZ
  9. 串口设置:9600



  10. **************************************************************************************/

  11. u8 UartData = 0xff;
  12. /*****************************************************************************
  13. 函 数 名  : Timer0Init
  14. 功能描述  : 定时器初使化 定时2毫秒@11.0592MHz
  15. 输入参数  : void
  16. 输出参数  : 无
  17. 返 回 值  :
  18. 调用函数  :
  19. 被调函数  :

  20. 修改历史      :
  21.   1.日    期   : 2013年3月26日
  22.     作    者   : Blueice
  23.     修改内容   : 新生成函数

  24. *****************************************************************************/
  25. void Timer0Init ( void )
  26. {
  27.     AUXR |= 0x80;                /*定时器时钟1T模式  */
  28.     TMOD &= 0xF0;                /*设置定时器模式  */
  29.     TMOD |= 0x01;                /*设置定时器模式  */
  30.     TL0 = 0x9A;                    /*设置定时初值  */
  31.     TH0 = 0xA9;                    /*设置定时初值  */
  32.     TF0 = 0;                    /*清除TF0标志  */
  33.     TR0 = 1;                    /*定时器0开始计时  */
  34.     ET0 = 1;
  35. }
  36. /*****************************************************************************
  37. 函 数 名  : SysInit
  38. 功能描述  : 系统初使化
  39. 输入参数  : void
  40. 输出参数  : 无
  41. 返 回 值  :
  42. 调用函数  :
  43. 被调函数  :

  44. 修改历史      :
  45.   1.日    期   : 2013年3月24日
  46.     作    者   : Blueice
  47.     修改内容   : 新生成函数

  48. *****************************************************************************/
  49. void SysInit ( void )
  50. {
  51.     Timer0Init();
  52.     UartInit();
  53.     EA = 1;/*开总中断  */
  54. }
  55. /*****************************************************************************
  56. 函 数 名  : Delay1us
  57. 功能描述  : 1微秒延时函数
  58. 输入参数  : int T
  59. 输出参数  : 无
  60. 返 回 值  :
  61. 调用函数  :
  62. 被调函数  :

  63. 修改历史      :
  64.   1.日    期   : 2016年2月19日
  65.     作    者   : wskblueice
  66.     修改内容   : 新生成函数

  67. *****************************************************************************/
  68. void Delay1us ( int T )
  69. {
  70.     T = T - 70;
  71.     do
  72.     {
  73.         ;
  74.     }
  75.     while ( T-- );
  76. }
  77. #define  sda   P01 /*一线串口发送引脚  */
  78. /*****************************************************************************
  79. 函 数 名  : SendData
  80. 功能描述  : 一线串口发送函数
  81. 输入参数  : u16 N
  82. 输出参数  : 无
  83. 返 回 值  :
  84. 调用函数  :
  85. 被调函数  :

  86. 修改历史      :
  87.   1.日    期   : 2014年8月17日
  88.     作    者   : wskblueice
  89.     修改内容   : 新生成函数

  90. *****************************************************************************/
  91. void SendData ( u8 addr )
  92. {
  93.     u8 i;

  94.     EA = 0;/*发送时关掉中断,防止中断影响时序  */

  95.     sda = 1;/*开始拉搞  */
  96.     Delay1us ( 1000 );
  97.     sda = 0;/*开始引导码*/
  98.     Delay1us ( 2200 );/*此处延时最少要大于2ms,此参数延时为310ms  */

  99.     for ( i = 0; i < 8; i++ ) /*总共8位数据  */
  100.     {
  101.         sda = 1;
  102.         if ( addr & 0x01 ) /*3:1表示数据位1,每个位用两个脉冲表示  */
  103.         {
  104.             Delay1us ( 500 );
  105.             sda = 0;
  106.             Delay1us ( 210 );
  107.         }
  108.         else              /*1:3表示数据位0 ,每个位用两个脉冲表示  */
  109.         {
  110.             Delay1us ( 210 );
  111.             sda = 0;
  112.             Delay1us ( 500 );
  113.         }
  114.         addr >>= 1;
  115.     }
  116.     sda = 1;
  117.     EA = 1;
  118. }
  119. /*****************************************************************************
  120. 函 数 名  : UartSendData
  121. 功能描述  : 两线串口发送指令
  122. 输入参数  : u8 *Buff
  123. 输出参数  : 无
  124. 返 回 值  :
  125. 调用函数  :
  126. 被调函数  :

  127. 修改历史      :
  128.   1.日    期   : 2016年5月1日
  129.     作    者   : wskblueice
  130.     修改内容   : 新生成函数

  131. *****************************************************************************/
  132. void UartSendData ( u8 *Buff, u8 Len )
  133. {
  134.     u8 i;
  135.     for ( i = 0 ; i < Len ; i++ )
  136.     {
  137.         UartPutByte ( Buff[i] );
  138.     }
  139. }
  140. /*****************************************************************************
  141. 函 数 名  : main
  142. 功能描述  : 系统主循环
  143. 输入参数  : void
  144. 输出参数  : 无
  145. 返 回 值  :
  146. 调用函数  :
  147. 被调函数  :

  148. 修改历史      :
  149.   1.日    期   : 2013年2月21日
  150.     作    者   : Blueice
  151.     修改内容   : 新生成函数

  152. *****************************************************************************/
  153. void main ( void )
  154. {

  155.     SysInit();



  156.     P0M0 |= BIT ( 0 ) | BIT ( 1 );
  157.     UartSendData ( Path, 20 );
  158.     while ( 1 )
  159.     {
  160.         if ( TimeWaitCnt == 4 ) /*每隔两秒会自动发下一曲指令  */
  161.         {
  162.             TimeWaitCnt = 0;
  163.             SendData ( 0x15 );//next file
  164.             //UartSendData ( NextFile,4 );
  165.         }
  166.     }
  167. }
  168. /*****************************************************************************
  169. 函 数 名  : tm0_isr
  170. 功能描述  : 定时中断
  171. 输入参数  : 无
  172. 输出参数  : 无
  173. 返 回 值  :
  174. 调用函数  :
  175. 被调函数  :

  176. 修改历史      :
  177.   1.日    期   : 2013年3月26日
  178.     作    者   : Blueice
  179.     修改内容   : 新生成函数

  180. *****************************************************************************/
  181. void Timer0_isr() interrupt 1
  182. {
  183.     static u8 TimeCnt;

  184.     TL0 = 0x9A;                /*设置定时初值  */
  185.     TH0 = 0xA9;                /*设置定时初值  */

  186.     TimeCnt++;
  187.     if ( ( TimeCnt % 5 ) == 0 )
  188.     {


  189.     }
  190.     if ( ( TimeCnt % 250 ) == 0 )
  191.     {
  192.         TimeCnt = 0;
  193.         bSysHalfSec = !bSysHalfSec;
  194.         P00 = !P00;
  195.         TimeWaitCnt++;
  196.     }

  197. }
复制代码



作者: tt98    时间: 2019-4-10 17:10
看看能不能用上,谢谢楼主!
作者: w358435135    时间: 2019-5-8 12:04
main.h文件咋没有

作者: 何佳劲    时间: 2019-5-9 18:12
感谢楼主分享
作者: youwanlian    时间: 2020-1-10 19:03
问一问  STC12C5A60S2能通过串口控制JQ6500吗

作者: aa2962985    时间: 2020-1-30 17:08
youwanlian 发表于 2020-1-10 19:03
问一问  STC12C5A60S2能通过串口控制JQ6500吗

可以..
作者: feihu1201    时间: 2020-4-22 13:43
为啥解压不了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1