亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
ld3320語音識別芯片程序資料(口令模式+單片機IO口控制)
[打印本頁]
作者:
jia11558
時間:
2019-4-14 00:16
標題:
ld3320語音識別芯片程序資料(口令模式+單片機IO口控制)
1、本工程采用 KEIL4 版本建立
2、本工程為口令模式+IO口控制方式,每次識別都需要喊“小杰”然后才可以喊其他二級的口令,另外IO口的輸出可以查看程序PAx的端口利用情況
0.png
(7.04 KB, 下載次數: 56)
下載附件
2019-4-14 20:46 上傳
單片機源程序如下:
/***************************
** 工程名稱:YS-V0.7語音識別模塊驅動程序
** CPU: STC11L08XE
** 晶振:22.1184MHZ
** 波特率:9600 bit/S
** 說明:口令模式+IO控制: 即每次識別時都需要說“小杰”這個口令 ,才能夠進行下一級的識別
/***************************
#include "config.h"
/************************************************************************************/
// nAsrStatus 用來在main主程序中表示程序運行的狀態,不是LD3320芯片內部的狀態寄存器
// LD_ASR_NONE: 表示沒有在作ASR識別
// LD_ASR_RUNING: 表示LD3320正在作ASR識別中
// LD_ASR_FOUNDOK: 表示一次識別流程結束后,有一個識別結果
// LD_ASR_FOUNDZERO: 表示一次識別流程結束后,沒有識別結果
// LD_ASR_ERROR: 表示一次識別流程中LD3320芯片內部出現不正確的狀態
/***********************************************************************************/
uint8 idata nAsrStatus=0;
void MCU_init();
void ProcessInt0(); //識別處理函數
void delay(unsigned long uldata);
void User_handle(uint8 dat);//用戶執行操作函數
void Led_test(void);//單片機工作指示
void Delay200ms();
uint8_t G0_flag=DISABLE;//運行標志,ENABLE:運行。DISABLE:禁止運行
sbit LED=P4^2;//信號指示燈
//應用IO口定義 (模塊標注 P2)
sbit PA1=P1^0; //對應板上標號 P1.0
sbit PA2=P1^1; //對應板上標號 P1.1
sbit PA3=P1^2; //.....
sbit PA4=P1^3; //.....
sbit PA5=P1^4; //.....
sbit PA6=P1^5; //.....
sbit PA7=P1^6; //對應板上標號 P1.6
sbit PA8=P1^7; //對應板上標號 P1.7
/***********************************************************
* 名 稱: void main(void)
* 功 能: 主函數 程序入口
* 入口參數:
* 出口參數:
* 說 明:
* 調用方法:
**********************************************************/
void main(void)
{
uint8 idata nAsrRes;
uint8 i=0;
Led_test();
MCU_init();
LD_Reset();
UartIni(); /*串口初始化*/
nAsrStatus = LD_ASR_NONE; // 初始狀態:沒有在作ASR
#ifdef TEST
PrintCom("一級口令:小杰\r\n"); /*text.....*/
PrintCom("二級口令:1、代碼測試\r\n"); /*text.....*/
PrintCom(" 2、開發板驗證\r\n"); /*text.....*/
PrintCom(" 3、開燈\r\n"); /*text.....*/
PrintCom(" 4、關燈\r\n"); /*text.....*/
PrintCom(" 5、北京\r\n"); /*text.....*/
PrintCom(" 6、上海\r\n"); /*text.....*/
PrintCom(" 7、廣州\r\n"); /*text.....*/
#endif
while(1)
{
switch(nAsrStatus)
{
case LD_ASR_RUNING:
case LD_ASR_ERROR:
break;
case LD_ASR_NONE:
{
nAsrStatus=LD_ASR_RUNING;
if (RunASR()==0) /* 啟動一次ASR識別流程:ASR初始化,ASR添加關鍵詞語,啟動ASR運算*/
{
nAsrStatus = LD_ASR_ERROR;
}
break;
}
case LD_ASR_FOUNDOK: /* 一次ASR識別流程結束,去取ASR識別結果*/
{
nAsrRes = LD_GetResult(); /*獲取結果*/
User_handle(nAsrRes);//用戶執行函數
nAsrStatus = LD_ASR_NONE;
break;
}
case LD_ASR_FOUNDZERO:
default:
{
nAsrStatus = LD_ASR_NONE;
break;
}
}// switch
}// while
}
/***********************************************************
* 名 稱: LED燈測試
* 功 能: 單片機是否工作指示
* 入口參數: 無
* 出口參數:無
* 說 明:
**********************************************************/
void Led_test(void)
{
LED=~ LED;
Delay200ms();
LED=~ LED;
Delay200ms();
LED=~ LED;
Delay200ms();
LED=~ LED;
Delay200ms();
LED=~ LED;
Delay200ms();
LED=~ LED;
}
/***********************************************************
* 名 稱: void MCU_init()
* 功 能: 單片機初始化
* 入口參數:
* 出口參數:
* 說 明:
* 調用方法:
**********************************************************/
void MCU_init()
{
P0 = 0xff;
P1 = 0x00;
P2 = 0xff;
P3 = 0xff;
P4 = 0xff;
P1M0=0XFF; //P1端口設置為推挽輸出功能,即提高IO口驅動能力,從驅動繼電器模塊工作
P1M1=0X00;
LD_MODE = 0; // 設置MD管腳為低,并行模式讀寫
IE0=1;
EX0=1;
EA=1;
}
/***********************************************************
* 名 稱: 延時函數
* 功 能:
* 入口參數:
* 出口參數:
* 說 明:
* 調用方法:
**********************************************************/
void Delay200us() //@22.1184MHz
{
unsigned char i, j;
_nop_();
_nop_();
i = 5;
j = 73;
do
{
while (--j);
} while (--i);
}
void delay(unsigned long uldata)
{
unsigned int j = 0;
unsigned int g = 0;
while(uldata--)
Delay200us();
}
void Delay200ms() //@22.1184MHz
{
unsigned char i, j, k;
i = 17;
j = 208;
k = 27;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
/***********************************************************
* 名 稱: 中斷處理函數
* 功 能:
* 入口參數:
* 出口參數:
* 說 明:
* 調用方法:
**********************************************************/
void ExtInt0Handler(void) interrupt 0
{
ProcessInt0(); /* LD3320 送出中斷信號,包括ASR和播放MP3的中斷,需要在中斷處理函數中分別處理*/
}
/***********************************************************
* 名 稱:用戶執行函數
* 功 能:識別成功后,執行動作可在此進行修改
* 入口參數: 無
* 出口參數:無
* 說 明: 通過控制PAx端口的高低電平,從而控制外部繼電器的通斷
**********************************************************/
void User_handle(uint8 dat)
{
//UARTSendByte(dat);//串口識別碼(十六進制)
if(0==dat)
{
G0_flag=ENABLE;
LED=0;
}
else if(ENABLE==G0_flag)
{
G0_flag=DISABLE;
LED=1;
switch(dat) /*對結果執行相關操作,客戶修改*/
{
case CODE_DMCS: /*命令“測試”*/
PrintCom("“代碼測試”命令識別成功\r\n"); //串口輸出提示信息(可刪除)
PA1=1;//讓PA1端口為高電平
break;
case CODE_KFBYZ: /*命令“全開”*/
PrintCom("“開發板驗證”命令識別成功\r\n");//串口輸出提示信息(可刪除)
PA2=1;//讓PA2端口為高電平
break;
case CODE_KD: /*命令“復位”*/
PrintCom("“開燈”命令識別成功\r\n"); //串口輸出提示信息(可刪除)
PA3=1;//讓PA3端口為高電平
break;
case CODE_GD: /*命令“復位”*/
PrintCom("“關燈”命令識別成功\r\n"); //串口輸出提示信息(可刪除)
PA3=0;//讓PA3端口為低電平
break;
case CODE_BJ: /*命令“復位”*/
PrintCom("“北京”命令識別成功\r\n"); //串口輸出提示信息(可刪除)
PA4=1;//讓PA4端口為高電平
break;
case CODE_SH: /*命令“復位”*/
PrintCom("“上!泵钭R別成功\r\n"); //串口輸出提示信息(可刪除)
PA5=1;//讓PA5端口為高電平
break;
case CODE_GZ: /*命令“復位”*/
PrintCom("“廣州”命令識別成功\r\n"); //串口輸出提示信息(可刪除)
PA6=1;//讓PA6端口為高電平
break;
default:PrintCom("請重新識別發口令\r\n"); //串口輸出提示信息(可刪除)
break;
}
}
else
{
PrintCom("請說出一級口令\r\n"); //串口輸出提示信息(可刪除)
}
}
復制代碼
所有資料51hei提供下載:
LDV7語音模塊驅動程序.zip
(627.33 KB, 下載次數: 70)
2019-4-14 00:15 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
liaoxiaomai5
時間:
2019-4-22 16:37
這個控制步進電機哪里加入程序啊
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1