|
用于制作語(yǔ)音模塊,源代碼,參考程序。
單片機(jī)源程序如下:
- #include "main.h"
- bit bSysHalfSec;
- u8 TimeWaitCnt = 0;
- u8 code PrevFile[] = {0xAA, 0x05, 0x00, 0xAF};/*此數(shù)組指令可以直接由上位機(jī)生成,復(fù)制過(guò)來(lái)即可 */
- u8 code NextFile[] = {0xAA, 0x06, 0x00, 0xB0};
- 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
- /***************************************************************************************
- 本程序?yàn)镸P3串口模塊測(cè)試程序C51版本,測(cè)試芯片采用 STC12C5A32S2,外部晶振,11.0592MHZ
- 串口設(shè)置:9600
- **************************************************************************************/
- u8 UartData = 0xff;
- /*****************************************************************************
- 函 數(shù) 名 : Timer0Init
- 功能描述 : 定時(shí)器初使化 定時(shí)2毫秒@11.0592MHz
- 輸入?yún)?shù) : void
- 輸出參數(shù) : 無(wú)
- 返 回 值 :
- 調(diào)用函數(shù) :
- 被調(diào)函數(shù) :
- 修改歷史 :
- 1.日 期 : 2013年3月26日
- 作 者 : Blueice
- 修改內(nèi)容 : 新生成函數(shù)
- *****************************************************************************/
- void Timer0Init ( void )
- {
- AUXR |= 0x80; /*定時(shí)器時(shí)鐘1T模式 */
- TMOD &= 0xF0; /*設(shè)置定時(shí)器模式 */
- TMOD |= 0x01; /*設(shè)置定時(shí)器模式 */
- TL0 = 0x9A; /*設(shè)置定時(shí)初值 */
- TH0 = 0xA9; /*設(shè)置定時(shí)初值 */
- TF0 = 0; /*清除TF0標(biāo)志 */
- TR0 = 1; /*定時(shí)器0開(kāi)始計(jì)時(shí) */
- ET0 = 1;
- }
- /*****************************************************************************
- 函 數(shù) 名 : SysInit
- 功能描述 : 系統(tǒng)初使化
- 輸入?yún)?shù) : void
- 輸出參數(shù) : 無(wú)
- 返 回 值 :
- 調(diào)用函數(shù) :
- 被調(diào)函數(shù) :
- 修改歷史 :
- 1.日 期 : 2013年3月24日
- 作 者 : Blueice
- 修改內(nèi)容 : 新生成函數(shù)
- *****************************************************************************/
- void SysInit ( void )
- {
- Timer0Init();
- UartInit();
- EA = 1;/*開(kāi)總中斷 */
- }
- /*****************************************************************************
- 函 數(shù) 名 : Delay1us
- 功能描述 : 1微秒延時(shí)函數(shù)
- 輸入?yún)?shù) : int T
- 輸出參數(shù) : 無(wú)
- 返 回 值 :
- 調(diào)用函數(shù) :
- 被調(diào)函數(shù) :
- 修改歷史 :
- 1.日 期 : 2016年2月19日
- 作 者 : wskblueice
- 修改內(nèi)容 : 新生成函數(shù)
- *****************************************************************************/
- void Delay1us ( int T )
- {
- T = T - 70;
- do
- {
- ;
- }
- while ( T-- );
- }
- #define sda P01 /*一線串口發(fā)送引腳 */
- /*****************************************************************************
- 函 數(shù) 名 : SendData
- 功能描述 : 一線串口發(fā)送函數(shù)
- 輸入?yún)?shù) : u16 N
- 輸出參數(shù) : 無(wú)
- 返 回 值 :
- 調(diào)用函數(shù) :
- 被調(diào)函數(shù) :
- 修改歷史 :
- 1.日 期 : 2014年8月17日
- 作 者 : wskblueice
- 修改內(nèi)容 : 新生成函數(shù)
- *****************************************************************************/
- void SendData ( u8 addr )
- {
- u8 i;
- EA = 0;/*發(fā)送時(shí)關(guān)掉中斷,防止中斷影響時(shí)序 */
- sda = 1;/*開(kāi)始拉搞 */
- Delay1us ( 1000 );
- sda = 0;/*開(kāi)始引導(dǎo)碼*/
- Delay1us ( 2200 );/*此處延時(shí)最少要大于2ms,此參數(shù)延時(shí)為310ms */
- for ( i = 0; i < 8; i++ ) /*總共8位數(shù)據(jù) */
- {
- sda = 1;
- if ( addr & 0x01 ) /*3:1表示數(shù)據(jù)位1,每個(gè)位用兩個(gè)脈沖表示 */
- {
- Delay1us ( 500 );
- sda = 0;
- Delay1us ( 210 );
- }
- else /*1:3表示數(shù)據(jù)位0 ,每個(gè)位用兩個(gè)脈沖表示 */
- {
- Delay1us ( 210 );
- sda = 0;
- Delay1us ( 500 );
- }
- addr >>= 1;
- }
- sda = 1;
- EA = 1;
- }
- /*****************************************************************************
- 函 數(shù) 名 : UartSendData
- 功能描述 : 兩線串口發(fā)送指令
- 輸入?yún)?shù) : u8 *Buff
- 輸出參數(shù) : 無(wú)
- 返 回 值 :
- 調(diào)用函數(shù) :
- 被調(diào)函數(shù) :
- 修改歷史 :
- 1.日 期 : 2016年5月1日
- 作 者 : wskblueice
- 修改內(nèi)容 : 新生成函數(shù)
- *****************************************************************************/
- void UartSendData ( u8 *Buff, u8 Len )
- {
- u8 i;
- for ( i = 0 ; i < Len ; i++ )
- {
- UartPutByte ( Buff[i] );
- }
- }
- /*****************************************************************************
- 函 數(shù) 名 : main
- 功能描述 : 系統(tǒng)主循環(huán)
- 輸入?yún)?shù) : void
- 輸出參數(shù) : 無(wú)
- 返 回 值 :
- 調(diào)用函數(shù) :
- 被調(diào)函數(shù) :
- 修改歷史 :
- 1.日 期 : 2013年2月21日
- 作 者 : Blueice
- 修改內(nèi)容 : 新生成函數(shù)
- *****************************************************************************/
- void main ( void )
- {
- SysInit();
- P0M0 |= BIT ( 0 ) | BIT ( 1 );
- UartSendData ( Path, 20 );
- while ( 1 )
- {
- if ( TimeWaitCnt == 4 ) /*每隔兩秒會(huì)自動(dòng)發(fā)下一曲指令 */
- {
- TimeWaitCnt = 0;
- SendData ( 0x15 );//next file
- //UartSendData ( NextFile,4 );
- }
- }
- }
- /*****************************************************************************
- 函 數(shù) 名 : tm0_isr
- 功能描述 : 定時(shí)中斷
- 輸入?yún)?shù) : 無(wú)
- 輸出參數(shù) : 無(wú)
- 返 回 值 :
- 調(diào)用函數(shù) :
- 被調(diào)函數(shù) :
- 修改歷史 :
- 1.日 期 : 2013年3月26日
- 作 者 : Blueice
- 修改內(nèi)容 : 新生成函數(shù)
- *****************************************************************************/
- void Timer0_isr() interrupt 1
- {
- static u8 TimeCnt;
- TL0 = 0x9A; /*設(shè)置定時(shí)初值 */
- TH0 = 0xA9; /*設(shè)置定時(shí)初值 */
- TimeCnt++;
- if ( ( TimeCnt % 5 ) == 0 )
- {
- }
- if ( ( TimeCnt % 250 ) == 0 )
- {
- TimeCnt = 0;
- bSysHalfSec = !bSysHalfSec;
- P00 = !P00;
- TimeWaitCnt++;
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
JQ8900-16P語(yǔ)音模塊資料包V1.1.zip
(7.5 MB, 下載次數(shù): 93)
2021-3-11 20:42 上傳
點(diǎn)擊文件名下載附件
|
評(píng)分
-
查看全部評(píng)分
|