LD3320语音识别模块系列单片机程序代码

发布者:京玩儿最新更新时间:2020-11-10 来源: 51hei关键字:LD3320  语音识别模块系列  单片机 手机看文章 扫描二维码
随时随地手机看文章

单片机源程序如下:

/***************************飞音云电子****************************

**  工程名称:YS-V0.7语音识别模块驱动程序

**        CPU: STC11L08XE

**        晶振:22.1184MHZ

**        波特率:9600 bit/S

**        配套产品信息:YS-V0.7语音识别开发板

**  说明:普通+按键触发模式: 即每次识别时都需要说“小杰”这个口令 ,才能够进行下一级的识别

/***************************飞音云电子******************************/

#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);//单片机工作指示

uint8_t G0_flag=DISABLE;//运行标志,ENABLE:运行。DISABLE:禁止运行

sbit LED=P4^2;//信号指示灯

void Delay200ms();

sbit CMD_KE=P4^1;//触发按键


/***********************************************************

* 名    称: 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("串口运行中....rn"); /*text.....*/

        PrintCom("口令:1、代码测试rn"); /*text.....*/

        PrintCom("        2、开发板验证rn"); /*text.....*/

        PrintCom("        3、开灯rn"); /*text.....*/

        PrintCom("        4、关灯rn"); /*text.....*/

        PrintCom("    5、北京rn"); /*text.....*/

        PrintCom("        6、上海rn"); /*text.....*/

        PrintCom("        7、广州rn"); /*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 = 0xff;

        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;

[1] [2]
关键字:LD3320  语音识别模块系列  单片机 引用地址:LD3320语音识别模块系列单片机程序代码

上一篇:51单片机控制步进电机和直流减速电机
下一篇:单片机单总线挂2片ds18b20传感器,8位数码同时管显示

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved