历史上的今天
返回首页

历史上的今天

今天是:2024年11月10日(星期日)

正在发生

2020年11月10日 | LD3320语音识别模块系列单片机程序代码

2020-11-10 来源:51hei

单片机源程序如下:

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

**  工程名称: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;

推荐阅读

史海拾趣

CT Micro公司的发展小趣事
  1. 创业初期与技术创新

CT Micro公司最初由几位电子工程领域的专家创立,他们看到了微型计算机断层扫描(Micro-CT)技术在电子行业中的巨大潜力。初期,公司面临着资金短缺和技术难题,但他们通过不断研发和创新,成功开发出了一款具有高性价比的Micro-CT设备,迅速获得了市场的认可。

  1. 市场拓展与合作伙伴关系

随着产品的成熟,CT Micro开始积极寻求市场拓展。他们与多家电子制造企业建立了合作关系,为这些企业提供Micro-CT设备的定制服务。通过与这些企业的合作,CT Micro不仅扩大了市场份额,还进一步提升了产品的技术水平和应用范围。

  1. 研发升级与产品迭代

面对日益激烈的市场竞争,CT Micro不断投入研发力量,对Micro-CT设备进行升级和迭代。他们成功推出了多款新型设备,具有更高的分辨率、更快的扫描速度和更低的辐射剂量。这些新产品的推出,进一步巩固了CT Micro在电子行业中的领先地位。

  1. 国际化战略与市场拓展

随着国内市场的饱和,CT Micro开始实施国际化战略。他们积极参与国际展览和研讨会,展示自己的产品和技术实力。同时,他们还在海外设立了销售和服务中心,为国际客户提供更加便捷的服务。通过这些努力,CT Micro成功打开了国际市场的大门。

  1. 社会责任与可持续发展

在快速发展的同时,CT Micro也积极履行社会责任。他们注重环保和可持续发展,采用环保材料和节能技术生产产品。此外,他们还积极参与公益事业,为贫困地区的教育和医疗事业贡献力量。这些举措不仅提升了公司的社会形象,也为其可持续发展奠定了坚实基础。

请注意,这些故事框架是虚构的,并不代表CT Micro公司的实际发展情况。如果您需要了解CT Micro公司或类似公司的真实故事,建议您查阅相关公司的官方网站、新闻报道或行业分析报告。

Able Systems公司的发展小趣事

随着电子行业的快速发展,Able Systems公司不断引进新技术,对产品进行升级改进。公司在打印机的设计和制造方面结合独家采购的领先技术,确保产品能够满足最苛刻的要求。这种对技术创新的执着追求,使得Able Systems的产品在行业中始终保持领先地位。

Connection One公司的发展小趣事

面对日益激烈的市场竞争,Connection One公司不断推陈出新,研发出一系列创新产品。这些产品不仅性能卓越,而且设计新颖,深受消费者喜爱。公司因此赢得了大量忠实客户,业绩持续攀升。

ANYSOLAR LTD.公司的发展小趣事

ANYSOLAR深知技术创新是企业发展的核心动力。因此,公司不断加大研发投入,引进高端人才,建立完善的研发体系。通过持续的技术创新,ANYSOLAR不断推出性能更优、成本更低的光伏产品,引领着行业的发展潮流。

同时,ANYSOLAR还积极参与行业标准的制定和修订工作,推动整个行业的规范化发展。这些举措不仅提升了ANYSOLAR在行业内的地位,也为公司的长期发展奠定了坚实的基础。

CP Technology Inc公司的发展小趣事

CP Technology Inc一直注重产品质量和客户服务。公司建立了严格的质量管理体系,从原材料采购到生产过程控制,再到产品检测和售后服务,都力求做到精益求精。这种对品质的执着追求赢得了客户的广泛赞誉和口碑传播,为公司的长期发展奠定了坚实基础。

智烽维(CDA)公司的发展小趣事

在超级电容器领域不断取得突破的同时,智烽维也在积极探索新的技术领域。2018年,公司成功实现了锂离子电容器的研发突破。这一成果不仅填补了公司在这一领域的空白,也为公司未来的发展开辟了新的道路。锂离子电容器以其高能量密度、高功率密度和长寿命等特点,在新能源汽车、智能电网等领域具有广阔的应用前景。

问答坊 | AI 解惑

面阵CCD能否通过减少扫描的行数来提高帧数?

因为成本的限制,需要将CCD芯片的成本控制在100块钱之内。目前还没有找到合适的(需要在60fps以上)。 现在有一个笨笨的想法,不知道能否实现。 就是能否控制扫描的行数(比如直扫描镜头的中间几十行),这样能否达到提高帧数的目的? 或者各位 ...…

查看全部问答>

固件更新如何设计?

  本人在项目中设计的系统需要在线更新,是一个基于DSP的系统,就是可以通过上位机经过网口更新配置里面的算法程序及参数,但是不知道具体的框架设计.因为要更新肯定要涉及到FLASH的烧写,但又不是全部擦除和烧写,只更新需要更新的,那这个如何 ...…

查看全部问答>

现在大家都用wince6.0开发吗

现在大家都用wince6.0开发吗? 哪里有支持BSP6.0这样的开发板?…

查看全部问答>

关于蓝牙速率的迷惑和测试报告

市面上的蓝牙适配器BTH v2.0 + EDR 宣称最大数据率可达到3Mbps 在我们项目中使用了一块CSR芯片的某小公司的蓝牙模块,下位机与之相接的UART波特率选921600bps (约92KB/s)。但在实际的数据传输中,下位机最快只能是50微秒发送一个字节(20KB/s) ...…

查看全部问答>

【征询贴】团购real6410开发板

团购real6410开发板,我们的团购活动从年初开始一直在搞,但是由于货源和网友喜好的问题一直没有搞成功过,因为我是做嵌入式LINUX的,以前用过2440的平台,现在用三星的平台不多了,但是没事儿也喜欢玩玩板子,鉴于我前几次开的询问ARM开发板的帖 ...…

查看全部问答>

关于 arm7的void _irq IRQ_Expection(void)

最近看了下arm7的代码,看到void _irq IRQ_Expection(void)这个中断的函数,我想问的是这个“_irq”是怎么回事???它之前有定义还是????…

查看全部问答>

收到C2000 launchpad,是不是只能在CCS5下用啊

收到C2000 launchpad。感谢eeworld和TI 板载仿真器是不是只能在CCS5 以上的版本下用啊?…

查看全部问答>

基一于PT1311的单片机升压电路设计

单片机有的是用1AA或2AA 电池供电的,这时为了保正单片机的工作电压在2.5~5.0之间,这时就要用到DC-DC升压电路了,升压电路一般要用到电感 和肖特基二极管 电阻 电容等外围元件,空间较小的情部一下就要想办法精简一下外围器件了,这时不需电感和肖 ...…

查看全部问答>

Z_Stack_2.5.1a双向绑定

最近在做关于绑定的项目,使用2.5.1a协议栈,发现协调器不能绑定终端节点,求各位大神帮忙解答!…

查看全部问答>