资料描述:
1.本设计完成一个语音识别控制灯系统的设计,基于LD3320芯片的语音识别系统。最基本的要求做到语音说出一些简单的命令,系统会识别并且做出相应地动作或运作,以此来控制灯的亮和灭。
2.里面有LD3320的全部资料,里面有很多例程
资料包含:原理图+程序,相关资料等等
单片机源程序如下:
/************************************************************************************
** CPU: AT89S52
** 晶振:22.1184MHZ
** 波特率:9600 bit/S
** 语音识别模块:LD3320
** 版本:C106_yysb_V1.0
/************************************************************************************/
#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;
extern void _nop_ (void);
void MCU_init();
uint8 RunASR();
void ProcessInt0(); //识别处理函数
void delay(unsigned long uldata);
/************************************************************************
功能描述: 主函数程序入口
入口参数: none
返 回 值: none
其他说明: none
**************************************************************************/
void main()
{
uint8 idata nAsrRes;
uint8 i=0;
MCU_init();
LD_Reset();
UartIni(); /*串口初始化*/
nAsrStatus = LD_ASR_NONE; // 初始状态:没有在作ASR
PrintCom("串口运行中....n"); /*text.....*/
PrintCom("口令:1、开机n"); /*text.....*/
PrintCom(" 2、开灯n"); /*text.....*/
PrintCom(" 3、关灯n"); /*text.....*/
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(); /*获取结果*/
PrintCom("n识别码:"); /*text.....*/
UARTSendByte(nAsrRes+0x30); /*text.....*/
switch(nAsrRes) /*对结果执行相关操作,客户修改*/
{
case CODE_DMCS: /*命令“测试”*/
PrintCom("“开机”命令识别成功n"); /*text.....*/
break;
case CODE_KFBYZ: /*命令“全开”*/
PrintCom("“开灯”命令识别成功n"); /*text.....*/
break;
case CODE_JCWB: /*命令“复位”*/
PrintCom("“开灯”命令识别成功n"); /*text.....*/
break;
default:break;
}
nAsrStatus = LD_ASR_NONE;
break;
}
case LD_ASR_FOUNDZERO:
default:
{
nAsrStatus = LD_ASR_NONE;
break;
}
}// switch
}// while
}
/************************************************************************
功能描述: 单片机初始化
上一篇:单片机驱动带编码器直流电机 源程序
下一篇:单片机电梯控制器代码
推荐阅读最新更新时间:2024-10-10 20:03
设计资源 培训 开发板 精华推荐
- 降暑消消乐 和Silicon Labs一起消灭这包“以太网供电难题”
- 学习赢京东卡 | 从12V电池及供电网络优化的角度分析电动汽车E/E架构的趋势
- 智能云锁哪家强?TI市场和技术大咖邀你1月16日10:00直播间畅聊
- ADI & WT ·世健 MCU 痛点问题探索季 ——第二站:直播 | MCU应用难题全力击破!
- 是德科技白皮书下载:攻克当前面临的毫米波测试难关
- LPC4370重磅来袭 有奖问答赢好礼!
- nanoPower技术:延长电池寿命,提升传感器性能 2021年1月20日 上午10:00在线研讨会
- WEBENCH设计狂欢盛宴,轻松设计赢好礼!
- 分享赢开发板:告诉小伙伴,2018年ST全国巡回研讨会开始啦