找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 13957|回复: 6
打印 上一主题 下一主题
收起左侧

单片机语音识别源码与资料(ASR M08-B模块arduino与51驱动)

  [复制链接]
跳转到指定楼层
楼主
ASR M08-B语音识别模块的测试方法:
①打开“ASR M08-B设置软件 V3.2.exe”。
②选择“串口号”、“打开串口”、点选“十六进制显示”。
③将USB转串口模块连接到语音识别模块上。接线方法如下:
  语音模块TXD --> USB模块RXD
  语音模块RXD --> USB模块TXD
  语音模块GND --> USB模块GND
  语音模块3V3 --> USB模块3V3(此端为3.3V电源供电端。)
④将模块的开关拨到“A”端,最好再按一次上面的大按钮(按一次即可,为了确保模块工作在正确的模式)。
⑤对着模块说“开灯”、“关灯”模块会返回“0B”、“0A”,表示正常(注意:0B对应返回值010,0B对应返回值010,返回是16进制显示的嘛,设置的时候是10进制设置的)。

使用说明:指令集、模式切换及IO口的控制方法:





ASR M08-B设置软件 V3.2安装说明:

本软件主要作用:通过PC端的USB口来设置语音识别模块的参数。例如,增加或删除要识别的句子、串口的返回信息等等。

=======================================
不要删除本目录下的“Backup.txt”文件。

【特别注意:】

①“ASR M08-B设置软件 V3.2.exe”文件与“Backup.txt”文件必须放在同一个根目录下。其中“Backup.txt”文件为产品恢复初始化设置用的指令文件。

②建议将此文件夹复制到任何一个盘符下,然后通过右键点击“ASR M08-B设置软件 V3.2.exe”---发送到---桌面快捷方式,这样我们就可以直接在桌面打开了。注意,建立了快捷方式之后盘符下的文件夹就不要动了,否者路径改变了就打不开了。

③.如果双击软件打不开,请检查电脑是否安装了Microsoft .NET Framework(2.0、3.0、3.5版本都可以),如果没安装,请百度搜索“.NET Framework”选择2.0、3.0、3.5任何一个版本安装。

---------------------------------------
如果是WIN7系统就要按照下面步骤来做了,因为WIN7是自带了Microsoft .NET Framework的:
控制面板--添加删除程序--打开或关闭windows功能,里面有.net framework 3.5.1 把那个挑勾上,就ok。如果勾上之后还是打不开的话,还是建议重新下载一个安装比较好。


=======================================
【问:为什么软件返回区有时出现乱码?】
=======================================
答:因为计算机软件在接收串口数据的时候有一个“数据缓冲区”,这个缓冲区有个时间的限定,如几十毫秒时间到了软件就需要对缓冲好的数据进行显示。如果刚在软件显示数据的瞬间,串口刚好又传来了数据,此时软件还没准备好接收,这样就形成了数据“丢包”,所以下次再显示的时候因为数据不完整,所有就显示出来了乱码。那为什么显示英文字母和数字的时候不会乱码,只有中文才会有乱码呢?因为每个简体中文汉字都是由两个字节的数据组合完成的,如果接收的过程中少接收了一个字节,后面的汉字都会显示错误。而英文字母和数据都是一个字节组成的,所以不会造成乱码。
    当然,这个用户实在理解不了的话也根本无须去理解他,只要知道如果出现了显示乱码其实是正常的,产品发送出来的数据其实是100%正确的,只是显示的时候异常而已,这个跟产品质量是没有关系的。
=================================================================


51单片机语音识别10路台灯控制源程序如下(附件中还有arduino 2560与arduino uno的源码):
  1. //注意,这里以控制台灯举例,实际上不一定是用来控制台灯的,
  2. //增加多路请对比1路的程序和两路的程序,按照同样的方法修改程序。

  3. //使用此程序前,模块要设置好关键词。

  4. #include <at89x51.h>
  5. #define kai 0; //定义字符串kai代表低电平0
  6. #define guan 1;//定义字符串guan代表高电平1
  7. unsigned char a;//a用来存放串口接收到的数据(即模块的返回值)
  8. sbit JDQ=P2^7; //继电器接P2.7,P2.7脚出来接一个10K电阻再接到S8550三极管的基极
  9.                //集电极接地,发射极接继电器的线圈到5V电源上,
  10.                            //线圈两脚之间接一个IN4007二极管,注意二极管的负极要接5V电压处
  11.                            //正极接三极管的发射极。
  12.                           
  13. sbit JDQ2=P2^6; //第二路继电器接P2.6,P2.6脚出来接一个10K电阻再接到S8550三极管的基极
  14.                //集电极接地,发射极接继电器的线圈到5V电源上,
  15.                            //线圈两脚之间接一个IN4007二极管,注意二极管的负极要接5V电压处
  16.                            //正极接三极管的发射极。  下同... 请参照控制1路的源码根目录下的原理图。
  17. sbit JDQ3=P2^5;
  18. sbit JDQ4=P2^4;
  19. sbit JDQ5=P2^3;
  20. sbit JDQ6=P2^2;
  21. sbit JDQ7=P2^1;
  22. sbit JDQ8=P2^0;
  23. sbit JDQ9=P1^7;
  24. sbit JDQ10=P1^6;
  25. main()
  26. {
  27.         TMOD=0x20;//定时器1使用初值自动重装方式,方式2
  28.         TH1=0xfd;
  29.         TL1=0xfd;//9600波特率初值
  30.         TR1=1;//允许定时器计数
  31.         SM0=0;//方式1设置
  32.         SM1=1;
  33.         REN=1; //允许串口接收
  34.         EA=1;  //开总中断
  35.         ES=1;  //开串口中断
  36.         while(1)
  37.         {
  38.                 //======================================================//
  39.            if(a==1)//如果a=1,P1.7=0,继电器吸合,台灯打开
  40.            {
  41.                     JDQ=kai; //P1.7=0,
  42.            }
  43.            else if(a==2)//如果a=2,P1.7=1,继电器松开,台灯关闭
  44.            {
  45.                            JDQ=guan;//P1.7=1,
  46.            }
  47.            //=====================================================//
  48.            else if(a==3)
  49.            {
  50.                            JDQ2=kai;//如果a=3,第二路开
  51.            }
  52.            else if(a==4)
  53.            {
  54.                            JDQ2=guan;//如果a=4,第二路关
  55.            }
  56.            //====================================================//
  57.            else if(a==5)
  58.            {
  59.                            JDQ3=kai;//如果a=3,第三路开
  60.            }
  61.            else if(a==6)
  62.            {
  63.                            JDQ3=guan;//如果a=4,第三路关
  64.            }
  65.            //====================================================//
  66.            else if(a==7)
  67.            {
  68.                            JDQ4=kai;//如果a=3,第四路开
  69.            }
  70.            else if(a==8)
  71.            {
  72.                            JDQ4=guan;//如果a=4,第四路关
  73.            }
  74.            //====================================================//
  75.            else if(a==9)
  76.            {
  77.                            JDQ5=kai;//如果a=3,第五路开
  78.            }
  79.            else if(a==10)
  80.            {
  81.                            JDQ5=guan;//如果a=4,第五路关
  82.            }
  83.            //====================================================//
  84.            else if(a==11)
  85.            {
  86.                            JDQ6=kai;//如果a=3,第六路开
  87.            }
  88.            else if(a==12)
  89.            {
  90.                            JDQ6=guan;//如果a=4,第六路关
  91.            }
  92.            //====================================================//
  93.            else if(a==13)
  94.            {
  95.                            JDQ7=kai;//如果a=3,第七路开
  96.            }
  97.            else if(a==14)
  98.            {
  99.                            JDQ7=guan;//如果a=4,第七路关
  100.            }
  101.            //====================================================//
  102.            else if(a==15)
  103.            {
  104.                            JDQ8=kai;//如果a=3,第八路开
  105.            }
  106.            else if(a==16)
  107.            {
  108.                            JDQ8=guan;//如果a=4,第八路关
  109.            }
  110.            //====================================================//
  111.            else if(a==17)
  112.            {
  113.                            JDQ9=kai;//如果a=3,第九路开
  114.            }
  115.            else if(a==18)
  116.            {
  117.                            JDQ9=guan;//如果a=4,第九路关
  118.            }
  119.            //====================================================//
  120.            else if(a==19)
  121.            {
  122.                            JDQ10=kai;//如果a=3,第十路开
  123.            }
  124.            else if(a==20)
  125.            {
  126.                            JDQ10=guan;//如果a=4,第十路关
  127.            }
  128.           
  129.            else ;
  130.                   
  131.                    //也可以用switch语句写,各人喜好吧...
  132.        
  133.         }

  134. }

  135. void serial() interrupt 4 //中断法
  136. {
  137.         if(RI==1)//如果是接收中断,进行下面工作
  138. ……………………

  139. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码


所有资料51hei提供下载:
ASR M08-B资料(2016-07-13).rar (1.4 MB, 下载次数: 117)



评分

参与人数 2黑币 +10 收起 理由
oanovsznovn + 5 赞一个!
Leaf08 + 5 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:404307 发表于 2018-11-20 09:50 | 只看该作者
谢谢分享,正在找资料
回复

使用道具 举报

板凳
ID:13891 发表于 2019-1-25 20:41 | 只看该作者
正在学习中,谢谢了!
回复

使用道具 举报

地板
ID:13891 发表于 2019-1-25 20:42 | 只看该作者
正在学习中,多谢了!
回复

使用道具 举报

5#
ID:472975 发表于 2019-1-25 22:04 来自手机 | 只看该作者
谢谢,学习了。
回复

使用道具 举报

6#
ID:487818 发表于 2019-3-10 12:34 | 只看该作者
可以可以可以
回复

使用道具 举报

7#
ID:839092 发表于 2020-11-5 08:59 | 只看该作者
学习使用STC单片机中,谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表