LD3320程序代碼
0.png (5.01 KB, 下載次數: 86)
下載附件
2018-8-15 22:24 上傳
單片機源程序如下:
- #include "main.h"
- #include "delay.h"
- #include "usart.h"
- #include "sd.h"
- #include "ff.h"
- #include "ld3320.h"
- #include "mp3.h"
- #include "led.h"
- #include "asr.h"
- FATFS fs[_VOLUMES]; //邏輯磁盤工作區.文件系統默認支持3個磁盤,我們只用了一個 SD編號0
- int main(void)
- {
- u8 nAsrRes=0; //記錄識別碼
-
- delay_init(); //延時初始化
- Usart1_init(115200); //串口初始化波特率為115200
- LED_Init(); //LED初始化
- while(SD_Init()) //SD卡初始化
- {
- printf("SD卡初始化錯誤\r\n"); //串口提示SD卡初始化錯誤
- delay_ms(2000); //延時2s
- }
- f_mount(&fs[0],"0:",1); //掛載SD卡
- LD3320_Init(); //初始化LD3320
-
- printf(" 口令1:重啟系統\r\n ");
- printf(" 口令2:講個笑話\r\n ");
- printf(" 口令3:打開\r\n ");
- printf(" 口令4:關閉\r\n ");
- nAsrStatus = LD_ASR_NONE; //初始狀態:沒有在作ASR
-
- PlayDemoSound_mp3("系統準備.mp3"); //播放文件
- while(1)
- {
- switch(nAsrStatus)
- {
- case LD_ASR_RUNING:
- break;
-
- case LD_ASR_ERROR:
- break;
-
- case LD_ASR_NONE: nAsrStatus=LD_ASR_RUNING; //啟動一次ASR識別流程:ASR初始化,ASR添加關鍵詞語,啟動ASR運算
- if (RunASR()==0)
- {
- printf("ASR_ERROR\r\n");
- nAsrStatus = LD_ASR_ERROR;
- }
- break;
- case LD_ASR_FOUNDOK: nAsrRes = LD_ReadReg(0xc5); //一次ASR識別成功結束,取ASR識別結果
- switch(nAsrRes)
- {
- case CODE_CQXT: printf("接收到口令:重啟系統\r\n");
- PlayDemoSound_mp3("重啟.mp3"); //播放文件
- NVIC_SystemReset(); //重啟
- break;
- case CODE_JGXH: printf("接收到口令:講個笑話\r\n");
- PlayDemoSound_mp3("笑話.mp3"); //播放文件
- break;
- case CODE_DK: printf("接收到口令:打開\r\n");
- PlayDemoSound_mp3("打開.mp3"); //播放文件
- delay_ms(1000); //語音中提示是1s延時后,打開LED
- LED_D3=0;
- LED_D4=0;
- break;
- case CODE_GB: printf("接收到口令:關閉\r\n");
- PlayDemoSound_mp3("關閉.mp3"); //播放文件
- delay_ms(1000); //語音中提示是1s延時后,關閉LED
- LED_D3=1;
- LED_D4=1;
- break;
- default: printf("不在口令集之內\r\n");
- break;
- }
- nAsrStatus = LD_ASR_NONE;
- break;
-
- case LD_ASR_FOUNDZERO: printf("未知口令\r\n");
- nAsrStatus = LD_ASR_NONE;
- break;
-
- default: nAsrStatus = LD_ASR_NONE;
- break;
- }
- }
- }
復制代碼
所有資料51hei提供下載:
程序源碼.rar
(1.22 MB, 下載次數: 249)
2018-8-15 22:24 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|