資源簡介
該程序由ld3320控制 開發板所用芯片為STC10L08XE
功能描述:說“你好”8位數碼管的7,8位顯示01,一次累加
說“再見”8位數碼管的5,6位顯示01,一次累加
說“謝謝”8位數碼管的3,4位顯示01,一次累加
說“歡迎”8位數碼管的1,2位顯示01,一次累加
8位數碼管是有8個74HC595控制 采用級聯發。用3個口即可控制8個數碼管。

代碼片段和文件信息
#include?“STC10F08XE.H“
#include?“LDChip.h“
#include?“Reg_RW.h“
#include?“IO_DEF.H“
#include?“AsrItem.h“
#include?“SubFuncs.h“
sbit?RSTB=P3^3;
sbit?CSB=P2^6;
uint8??idata?nLD_Mode?=?LD_MODE_IDLE; // 用來記錄當前是在進行ASR識別還是在播放MP3
uint8??idata?ucRegVal;
extern?uint8?idata?nAsrStatus;
void?ProcessInt0();
/************************************************************************************/
// 這個C文件里面包含的函數,相當于LD3320的驅動,以C語言源代碼的形式提供
// 開發者在沒有調試通過之前,一定不要修改這里面的函數
//
// LD_ReloadMp3Data()函數由于牽涉到主控MCU向外部存儲芯片讀取MP3數據的操作
// 所以開發者應該根據自己的實際使用的存儲芯片,去修改這個函數
// 但是要保證對于LD3320芯片的操作不改變
//
// LD_GetResult()函數目前只簡單取了第一候選結果作為識別結果
// 開發者應該根據自己產品設計,決定是否要讀取其他的識別候選結果
/************************************************************************************/
void?LD_reset()
{
RSTB=1;
delay(1);
RSTB=0;
delay(1);
RSTB=1;
delay(1);
CSB=0;
delay(1);
CSB=1;
delay(1);
}
void?LD_Init_Common()
{
bMp3Play?=?0;
LD_ReadReg(0x06);??
LD_WriteReg(0x17?0x35);?
delay(10);
LD_ReadReg(0x06);??
LD_WriteReg(0x89?0x03);??
delay(5);
LD_WriteReg(0xCF?0x43);???
delay(5);
LD_WriteReg(0xCB?0x02);
/*PLL?setting*/
LD_WriteReg(0x11?LD_PLL_11);???????
LD_WriteReg(0x1E0x00);
LD_WriteReg(0x19?LD_PLL_ASR_19);?
LD_WriteReg(0x1B?LD_PLL_ASR_1B);
LD_WriteReg(0x1D?LD_PLL_ASR_1D);
delay(10);
LD_WriteReg(0xCD?0x04);
LD_WriteReg(0x17?0x4C);?
delay(5);
LD_WriteReg(0xB9?0x00);
LD_WriteReg(0xCF?0x4F);?
LD_WriteReg(0x6F?0xFF);?
}
void?LD_Init_ASR()
{
nLD_Mode=LD_MODE_ASR_RUN;
LD_Init_Common();
LD_WriteReg(0xBD?0x00);
LD_WriteReg(0x17?0x48);
delay(?10?);
LD_WriteReg(0x3C?0x80);????
LD_WriteReg(0x3E?0x07);
LD_WriteReg(0x38?0xff);????
LD_WriteReg(0x3A?0x07);
LD_WriteReg(0x40?0);??????????
LD_WriteReg(0x42?8);
LD_WriteReg(0x44?0);????
LD_WriteReg(0x46?8);?
delay(?1?);
}
void?ProcessInt0() ??//收到語音識別結果,進入外部中斷處理函數
{
uint8?nAsrResCount=0;
EX0=0; ?//關閉外部中斷,處理完數據后重新開啟
ucRegVal?=?LD_ReadReg(0x2B);
if(nLD_Mode?==?LD_MODE_ASR_RUN)
{
//?語音識別產生的中斷
//?(有聲音輸入,不論識別成功或失敗都有中斷)
LD_WriteReg(0x290)?;
LD_WriteReg(0x020)?;
if((ucRegVal?&?0x10)?&& LD_ReadReg(0xb2)==0x21?&&?LD_ReadReg(0xbf)==0x35)
{
nAsrResCount?=?LD_ReadReg(0xba);
if(nAsrResCount>0?&&?nAsrResCount<=4)?
{
nAsrStatus=LD_ASR_FOUNDOK;
}
else
????{
nAsrStatus=LD_ASR_FOUNDZERO;
}
}
else
{
nAsrStatus=LD_ASR_FOUNDZERO;
}
LD_WriteReg(0x2b?0);
???? LD_WriteReg(0x1C0);
return;
}
delay_2(10);
EX0=1;?//處理完外部數據,重新允許外部中斷 ??
}
uint8?LD_Check_ASRBusyFlag_b2()
{
uint8?j;
uint8?flag?=?0;
for?(j=0;?j<10;?j++)
{
if?(LD_ReadReg(0xb2)?==?0x21)
{
flag?=?1;
break;
}
delay(10);
}
return?flag;
}
void?LD_AsrStart()
{
LD_Init_ASR();
}
//?Return?1:?success.
uint8?LD_AsrRun()
{
SendString(“LD_AsrRun().“);
SendLineEnd();
LD_WriteReg(0x35?MIC_VOL);
????LD_Wri
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1817??2013-03-13?12:43??語音識別程序\AsrItem.h
?????文件????????694??2012-05-02?14:23??語音識別程序\FlashDef.h
?????文件????????848??2013-03-12?16:55??語音識別程序\IO_DEF.H
?????文件???????8018??2013-03-13?12:43??語音識別程序\LDChip.c
?????文件???????2287??2013-03-13?12:05??語音識別程序\LDChip.h
?????文件??????16216??2013-03-13?13:09??語音識別程序\LDChip.LST
?????文件??????26025??2013-03-13?13:09??語音識別程序\LDChip.OBJ
?????文件??????62762??2013-03-11?15:52??語音識別程序\LQ_JDQ
?????文件??????54240??2013-03-11?15:52??語音識別程序\LQ_JDQ.M51
?????文件????????199??2013-03-12?14:04??語音識別程序\LQ_JDQ.plg
?????文件??????61346??2012-05-08?22:28??語音識別程序\LQ_LD3320demo
?????文件?????????79??2012-05-08?22:28??語音識別程序\LQ_LD3320demo.lnp
?????文件??????52748??2012-05-08?22:28??語音識別程序\LQ_LD3320demo.M51
?????文件???????1662??2013-03-12?14:04??語音識別程序\LQ_LD3320demo.Opt
?????文件????????428??2012-05-08?22:28??語音識別程序\LQ_LD3320demo.plg
?????文件???????1665??2013-03-11?15:53??語音識別程序\LQ_LD3320demo_Opt.Bak
?????文件???????2065??2013-03-11?15:44??語音識別程序\LQ_LD3320demo_Uv2.Bak
?????文件??????49859??2013-03-13?13:09??語音識別程序\LQ_LD3320onlyASR
?????文件???????8028??2013-03-13?13:09??語音識別程序\LQ_LD3320onlyASR.hex
?????文件??????41828??2013-03-13?13:09??語音識別程序\LQ_LD3320onlyASR.M51
?????文件???????2171??2013-03-13?13:15??語音識別程序\LQ_LD3320onlyASR.Opt
?????文件????????774??2013-03-13?13:15??語音識別程序\LQ_LD3320onlyASR.plg
?????文件???????2090??2013-03-11?15:43??語音識別程序\LQ_LD3320onlyASR.Uv2
????.......??????2171??2013-03-13?13:02??語音識別程序\LQ_LD3320onlyASR_Opt.Bak
?????文件???????2209??2012-04-28?18:12??語音識別程序\LQ_LD3320onlyASR_Uv2.Bak
?????文件??????10554??2013-03-13?13:00??語音識別程序\main.c
?????文件??????22470??2013-03-13?13:09??語音識別程序\main.LST
?????文件??????25054??2013-03-13?13:09??語音識別程序\main.OBJ
?????文件???????5831??2012-09-19?22:56??語音識別程序\Reg_RW.c
?????文件???????1310??2012-09-19?22:59??語音識別程序\Reg_RW.h
............此處省略11個文件信息
- 上一篇:S7-200PLC控制步進電機兩軸運動
- 下一篇:500強企業的kpi指標
評論
共有 條評論