找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1699|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

CHV030語(yǔ)音芯片驅(qū)動(dòng)代碼,自己寫(xiě),測(cè)試好用

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
         

8腳芯片,CHV030語(yǔ)音芯片驅(qū)動(dòng)代碼,自己寫(xiě),測(cè)試好用。單線(xiàn)串口,STC單片機(jī)都可以驅(qū)發(fā)聲音。

CHV30_drv.c
  1. #include "CHV30_drv.h"


  2. ///////////////////////////////////////////////////////////////////////////////////////////
  3. //函數(shù)名稱(chēng):   CHV30_W_byte();   
  4. //函數(shù)功能:  將數(shù)據(jù)dat送出,可以是地址,也可以是數(shù)據(jù),發(fā)完后等待應(yīng)答
  5. //輸入?yún)?shù):  uchar dat  要寫(xiě)入的字節(jié)型數(shù)據(jù)或地址                                                            
  6. //////////////////////////////////////////////////////////////////////////////////////////
  7. void  CHV30_W_byte(uchar dat)
  8. {
  9.         uchar i;
  10.         CHV30_SDA=0;
  11.         DELAY_ms(6);
  12.         EA=0;
  13.         for (i=0;i<8;i++)
  14.         {               
  15.                 if (dat&0x01)
  16.                 {
  17.                         CHV30_SDA=1 ;
  18.                         DELAY_us(600);
  19.                         CHV30_SDA=0;
  20.                         DELAY_us(200);                       
  21.                 }
  22.                 else
  23.                 {
  24.                         CHV30_SDA=1 ;
  25.                         DELAY_us(200);
  26.                         CHV30_SDA=0;
  27.                         DELAY_us(600);       
  28.                 }       
  29.                 dat = dat >> 1 ;
  30.         }
  31.         CHV30_SDA=1;
  32.         while(CHV30_BUSY!=1);
  33. }       




  34. /////////////////////////////////////////////////////////////////////////////////////////////////
  35. //函數(shù)描述: 播放                          
  36. ///////////////////////////////////////////////////////////////////////////////////////////////
  37. void CHV30_S_PLAY(uchar ADD)
  38. {
  39.         CHV30_W_byte(ADD) ;
  40.         DELAY_ms(20);
  41. }

  42. /////////////////////////////////////////////////////////////////////////////////////////////////
  43. //函數(shù)描述: 組合播放命令                     
  44. ///////////////////////////////////////////////////////////////////////////////////////////////
  45. void CHV30_S_ZH(void)
  46. {
  47.         CHV30_W_byte(0xF3) ;
  48.         DELAY_ms(25);       
  49. }


  50. /////////////////////////////////////////////////////////////////////////////////////////////////
  51. //函數(shù)描述: 重復(fù)播放某一段                           
  52. ///////////////////////////////////////////////////////////////////////////////////////////////
  53. void CHV30_S_PLAY_R(uchar ADD)
  54. {
  55.         CHV30_W_byte(ADD) ;
  56.         DELAY_ms(25);
  57.         CHV30_W_byte(0xF2) ;
  58.         DELAY_ms(25);
  59. }

  60. //////////////////////////////////////////////////////////////////////////////////////////
  61. //函數(shù)描述: 5 級(jí)音量,0xE0H 為最小音量 0,0xEFH 最大音量 (上電默認(rèn))                                                      
  62. //////////////////////////////////////////////////////////////////////////////////////////
  63. void CHV30_S_VOL (uchar VOL)                       
  64. {
  65.         if(VOL>=15)
  66.         {
  67.                 VOL=15;
  68.         }
  69.         CHV30_W_byte(0xE0|VOL);    //0xE0-0xEF   
  70.         DELAY_ms(20);                  
  71. }

  72. //////////////////////////////////////////////////////////////////////////////////////////
  73. //函數(shù)描述: 關(guān)閉語(yǔ)音           進(jìn)入超低功耗狀態(tài)=1.7uA                                       
  74. //////////////////////////////////////////////////////////////////////////////////////////
  75. void CHV30_S_OFF (void)                       
  76. {
  77.         CHV30_W_byte(0xF0);                 
  78. }

  79. //////////////////////////////////////////////////////////////////////////////////////////
  80. //函數(shù)描述: 開(kāi)啟                                               
  81. //////////////////////////////////////////////////////////////////////////////////////////
  82. void CHV30_S_ON (void)                       
  83. {
  84.         CHV30_SDA=0;
  85.         DELAY_ms(40);               
  86. }


  87. //////////////////////////////////////////////////////////////////////////////////////////
  88. //函數(shù)描述: 停下播放                                    
  89. //////////////////////////////////////////////////////////////////////////////////////////
  90. void CHV30_S_STOP (void)                       
  91. {
  92.         CHV30_W_byte(0xFE);                 
  93. }


復(fù)制代碼

CHV30_drv.h
  1. #ifndef _CHV30_DRV_
  2. #define _CHV30_DRV_

  3. #include "main.h"


  4. sbit CHV30_SDA  = P1^6;              //PIN3 PA1 SDA   
  5. sbit CHV30_BUSY = P1^7;        //PIN1 PBO BUSY

  6. ///////////////////////////////////////////////////////////////////////////////////////////
  7. ////////////CHV30發(fā)送////////////////////////////////////////////////////////////////////////
  8. ///////////////////////////////////////////////////////////////////////////////////////////

  9. extern void CHV30_W_byte(uchar dat);

  10. void CHV30_S_PLAY(uchar ADD);         //地址播放
  11. void CHV30_S_ZH(void);                 //組合命令
  12. void CHV30_S_PLAY_R(uchar ADD);      //重復(fù)播放
  13. void CHV30_S_VOL (uchar VOL);         //音量調(diào)節(jié)

  14. void CHV30_S_OFF(void);               //關(guān)閉
  15. void CHV30_S_ON(void);                //打開(kāi)
  16. void CHV30_S_STOP(void);             //停止

  17. #endif

復(fù)制代碼


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1064915 發(fā)表于 2023-6-8 08:26 | 只看該作者
給個(gè)電路原理圖
回復(fù)

使用道具 舉報(bào)

板凳
ID:272158 發(fā)表于 2023-6-9 10:04 | 只看該作者
有完整的圖紙和程序文件嗎????那個(gè)廠家的芯片????
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表