久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 10977|回復(fù): 12
收起左側(cè)

基于51單片機(jī)的LD3320語音控制智能小車程序

  [復(fù)制鏈接]
ID:560735 發(fā)表于 2019-6-24 15:00 | 顯示全部樓層 |閱讀模式
基于51單片機(jī)的語音控制智能小車,主控采用STC89C52,語音模塊采用LD3320語音識(shí)別單元,KEIL4編程。

單片機(jī)源程序如下:
  1. **        CPU: STC11L08XE
  2. **        晶振:22.1184MHZ
  3. **        波特率:9600 bit/S

  4. **               
  5. **  說明:普通模式:直接發(fā)語音識(shí)別
  6. #include "config.h"
  7. /************************************************************************************/
  8. //        nAsrStatus 用來在main主程序中表示程序運(yùn)行的狀態(tài),不是LD3320芯片內(nèi)部的狀態(tài)寄存器
  9. //        LD_ASR_NONE:                表示沒有在作ASR識(shí)別
  10. //        LD_ASR_RUNING:                表示LD3320正在作ASR識(shí)別中
  11. //        LD_ASR_FOUNDOK:                表示一次識(shí)別流程結(jié)束后,有一個(gè)識(shí)別結(jié)果
  12. //        LD_ASR_FOUNDZERO:        表示一次識(shí)別流程結(jié)束后,沒有識(shí)別結(jié)果
  13. //        LD_ASR_ERROR:                表示一次識(shí)別流程中LD3320芯片內(nèi)部出現(xiàn)不正確的狀態(tài)
  14. /***********************************************************************************/
  15. uint8 idata nAsrStatus=0;        
  16. void MCU_init();
  17. void ProcessInt0(); //識(shí)別處理函數(shù)
  18. void  delay(unsigned long uldata);
  19. void         User_handle(uint8 dat);//用戶執(zhí)行操作函數(shù)
  20. void Delay200ms();
  21. void Led_test(void);//單片機(jī)工作指示
  22. uint8_t G0_flag=DISABLE;//運(yùn)行標(biāo)志,ENABLE:運(yùn)行。DISABLE:禁止運(yùn)行
  23. sbit LED=P4^2;//信號(hào)指示燈
  24. sbit qj=P1^0;//          前進(jìn)端口控制
  25. sbit ht=P1^1;//           后退端口控制
  26. sbit zz=P1^2;//           左轉(zhuǎn)端口控制
  27. sbit yz=P1^3;//           右轉(zhuǎn)端口控制
  28. sbit tz=P1^4;//                停止端口控制

  29. /***********************************************************
  30. * 名    稱: void  main(void)
  31. * 功    能: 主函數(shù)        程序入口
  32. * 入口參數(shù):  
  33. * 出口參數(shù):
  34. * 說    明:                                          
  35. * 調(diào)用方法:
  36. **********************************************************/
  37. void  main(void)
  38. {
  39.         uint8 idata nAsrRes;
  40.         uint8 i=0;
  41.         Led_test();
  42.         MCU_init();
  43.         LD_Reset();
  44.         UartIni(); /*串口初始化*/
  45.         nAsrStatus = LD_ASR_NONE;                //        初始狀態(tài):沒有在作ASR
  46.         


  47.         while(1)
  48.         {
  49.                 switch(nAsrStatus)
  50.                 {
  51.                         case LD_ASR_RUNING:
  52.                         case LD_ASR_ERROR:               
  53.                                 break;
  54.                         case LD_ASR_NONE:
  55.                         {
  56.                                 nAsrStatus=LD_ASR_RUNING;
  57.                                 if (RunASR()==0)        /*        啟動(dòng)一次ASR識(shí)別流程:ASR初始化,ASR添加關(guān)鍵詞語,啟動(dòng)ASR運(yùn)算*/
  58.                                 {
  59.                                         nAsrStatus = LD_ASR_ERROR;
  60.                                 }
  61.                                 break;
  62.                         }
  63.                         case LD_ASR_FOUNDOK: /*        一次ASR識(shí)別流程結(jié)束,去取ASR識(shí)別結(jié)果*/
  64.                         {                                
  65.                                 nAsrRes = LD_GetResult();                /*獲取結(jié)果*/
  66.                                 User_handle(nAsrRes);//用戶執(zhí)行函數(shù)
  67.                                 nAsrStatus = LD_ASR_NONE;
  68.                                 break;
  69.                         }
  70.                         case LD_ASR_FOUNDZERO:
  71.                         default:
  72.                         {
  73.                                 nAsrStatus = LD_ASR_NONE;
  74.                                 break;
  75.                         }
  76.                 }// switch                                 
  77.         }// while

  78. }
  79. /***********************************************************
  80. * 名    稱:          LED燈測(cè)試
  81. * 功    能: 單片機(jī)是否工作指示
  82. * 入口參數(shù): 無
  83. * 出口參數(shù):無
  84. * 說    明:                                          
  85. **********************************************************/
  86. void Led_test(void)
  87. {
  88.         LED=~ LED;
  89.         Delay200ms();
  90.         LED=~ LED;
  91.         Delay200ms();
  92.         LED=~ LED;
  93.         Delay200ms();
  94.         LED=~ LED;
  95.         Delay200ms();
  96.         LED=~ LED;
  97.         Delay200ms();
  98.         LED=~ LED;
  99. }
  100. /***********************************************************
  101. * 名    稱: void MCU_init()
  102. * 功    能: 單片機(jī)初始化
  103. * 入口參數(shù):  
  104. * 出口參數(shù):
  105. * 說    明:                                          
  106. * 調(diào)用方法:
  107. **********************************************************/
  108. void MCU_init()
  109. {
  110.         P0 = 0xff;
  111.         P1 = 0xff;
  112.         P2 = 0xff;
  113.         P3 = 0xff;
  114.         P4 = 0xff;
  115.         LD_MODE = 0;                //        設(shè)置MD管腳為低,并行模式讀寫
  116.         IE0=1;
  117.         EX0=1;
  118.         EA=1;
  119. }
  120. /***********************************************************
  121. * 名    稱:        延時(shí)函數(shù)
  122. * 功    能:
  123. * 入口參數(shù):  
  124. * 出口參數(shù):
  125. * 說    明:                                          
  126. * 調(diào)用方法:
  127. **********************************************************/
  128. void Delay200us()                //@22.1184MHz
  129. {
  130.         unsigned char i, j;
  131.         _nop_();
  132.         _nop_();
  133.         i = 5;
  134.         j = 73;
  135.         do
  136.         {
  137.                 while (--j);
  138.         } while (--i);
  139. }

  140. void  delay(unsigned long uldata)
  141. {
  142.         unsigned int j  =  0;
  143.         unsigned int g  =  0;
  144.         while(uldata--)
  145.         Delay200us();
  146. }

  147. void Delay200ms()                //@22.1184MHz
  148. {
  149.         unsigned char i, j, k;

  150.         i = 17;
  151.         j = 208;
  152.         k = 27;
  153.         do
  154.         {
  155.                 do
  156.                 {
  157.                         while (--k);
  158.                 } while (--j);
  159.         } while (--i);
  160. }
  161. /***********************************************************
  162. * 名    稱: 中斷處理函數(shù)
  163. * 功    能:
  164. * 入口參數(shù):  
  165. * 出口參數(shù):
  166. * 說    明:                                          
  167. * 調(diào)用方法:
  168. **********************************************************/
  169. void ExtInt0Handler(void) interrupt 0  
  170. {         
  171.         ProcessInt0();                                /*        LD3320 送出中斷信號(hào),包括ASR和播放MP3的中斷,需要在中斷處理函數(shù)中分別處理*/
  172. }
  173. /***********************************************************
  174. * 名    稱:用戶執(zhí)行函數(shù)
  175. * 功    能:識(shí)別成功后,執(zhí)行動(dòng)作可在此進(jìn)行修改
  176. * 入口參數(shù): 無
  177. * 出口參數(shù):無
  178. * 說    明:                                          
  179. **********************************************************/
  180. void         User_handle(uint8 dat)
  181. {
  182.      //UARTSendByte(dat);//串口識(shí)別碼(十六進(jìn)制)

  183.                          switch(dat)                   /*對(duì)結(jié)果執(zhí)行相關(guān)操作,客戶修改*/
  184.                           {
  185.                                   case CODE_QJ:                        /*命令“測(cè)試”*/
  186.                                   qj=0;         ht=1;zz=1; yz=1; tz=1;
  187.                                                 PrintCom("“前進(jìn)”命令識(shí)別成功\r\n"); /*text.....*/
  188.                                                                                                          break;
  189.                                         case CODE_HT:         /*命令“全開”*/
  190.                                         ht=0;         qj=1;         zz=1; yz=1; tz=1;;
  191.                                                 PrintCom("“后退”命令識(shí)別成功\r\n"); /*text.....*/
  192.                                                                                                          break;
  193.                                         case CODE_ZZ:                /*命令“復(fù)位”*/                        
  194.                                         zz=0;        ht=1; yz=1; tz=1;         qj=1;
  195.                                                 PrintCom("“左轉(zhuǎn)”命令識(shí)別成功\r\n"); /*text.....*/
  196.                                                                                                         break;
  197.                                         case CODE_YZ:                /*命令“復(fù)位”*/               
  198.                                         yz=0;        qj=1;         ht=1;zz=1;  tz=1;        
  199.                                                 PrintCom("“右轉(zhuǎn)”命令識(shí)別成功\r\n"); /*text.....*/
  200.                                                                                                         break;
  201.                                         case CODE_TZ:                /*命令“復(fù)位”*/        
  202.                                         tz=0;        qj=1;         ht=1;zz=1; yz=1;               
  203.                                                 PrintCom("“停止”命令識(shí)別成功\r\n"); /*text.....*/
  204.                                                                                                         break;
  205.                         //        case CODE_SH:                /*命令“復(fù)位”*/                                
  206.                         //                        PrintCom("“上海”命令識(shí)別成功\r\n"); /*text.....*/
  207.                         //                                                                                break;
  208.                         //                case CODE_GZ:                /*命令“復(fù)位”*/                                
  209.                         //                        PrintCom("“廣州”命令識(shí)別成功\r\n"); /*text.....*/
  210.                         //                                                                                break;                                                                                                                                                                                                                        
  211.                     //                                default:PrintCom("請(qǐng)重新識(shí)別發(fā)口令\r\n"); /*text.....*/break;
  212.                                 }        
  213. }         
復(fù)制代碼

所有資料51hei提供下載:
語音控制功能.zip (176.86 KB, 下載次數(shù): 193)
語音控制小車源程序x2.rar (164.76 KB, 下載次數(shù): 154)


相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2019-6-25 02:48 | 顯示全部樓層
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

ID:401857 發(fā)表于 2019-12-31 16:30 | 顯示全部樓層
對(duì)我很有用啊,哇擦
回復(fù)

使用道具 舉報(bào)

ID:323589 發(fā)表于 2020-2-12 21:32 | 顯示全部樓層
那么識(shí)別語言模塊放到小車上 ,小車跑了  那還怎么識(shí)別呀
回復(fù)

使用道具 舉報(bào)

ID:656153 發(fā)表于 2020-2-21 14:07 | 顯示全部樓層
這是STC89C52?也可以一起用嗎?
回復(fù)

使用道具 舉報(bào)

ID:714909 發(fā)表于 2020-4-17 18:03 | 顯示全部樓層
你好,我買的LD3320語音識(shí)別芯片是搭載STC11L08XE一起使用的,現(xiàn)在不知道怎么連接到小車上,小車上裝的是STC89C52
回復(fù)

使用道具 舉報(bào)

ID:731033 發(fā)表于 2020-4-28 15:44 | 顯示全部樓層
沒有總程序,有個(gè)鳥用
回復(fù)

使用道具 舉報(bào)

ID:736550 發(fā)表于 2020-4-30 13:34 | 顯示全部樓層
13525814699 發(fā)表于 2020-4-17 18:03
你好,我買的LD3320語音識(shí)別芯片是搭載STC11L08XE一起使用的,現(xiàn)在不知道怎么連接到小車上,小車上裝的是ST ...

別人說是可以進(jìn)行通信,就好像52驅(qū)動(dòng)L298N。但是沒試過,我也在做語音識(shí)別的設(shè)計(jì) ,還在找更簡(jiǎn)單的識(shí)別模塊,因?yàn)椴幌胗靡呀?jīng)封裝好的(就是你買的那種),但是LD3320接口有點(diǎn)復(fù)雜。不知道怎么辦
回復(fù)

使用道具 舉報(bào)

ID:829985 發(fā)表于 2020-11-9 21:03 | 顯示全部樓層
哥只是傳說857 發(fā)表于 2020-4-28 15:44
沒有總程序,有個(gè)鳥用

語音程序和小車程序是分開的好吧
回復(fù)

使用道具 舉報(bào)

ID:910202 發(fā)表于 2021-5-12 16:02 | 顯示全部樓層
你好,請(qǐng)問LD3320和C52是用串口相連的嗎
回復(fù)

使用道具 舉報(bào)

ID:93341 發(fā)表于 2021-7-1 19:06 | 顯示全部樓層
有用,語音智能控制。
回復(fù)

使用道具 舉報(bào)

ID:1032083 發(fā)表于 2022-6-5 09:49 | 顯示全部樓層
我的單片機(jī)是STC89C52RC,語音控制芯片為SU-03T,電機(jī)驅(qū)動(dòng)為L293D,不知能用不?
回復(fù)

使用道具 舉報(bào)

ID:1032083 發(fā)表于 2022-6-6 11:18 | 顯示全部樓層
1直到世界盡頭 發(fā)表于 2020-2-12 21:32
那么識(shí)別語言模塊放到小車上 ,小車跑了  那還怎么識(shí)別呀

距離不能遠(yuǎn),不然只能換種方式,通過APP語音來控制藍(lán)牙小車
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕第一页在线 | 国产精品一区二区三区四区 | 欧美日韩久久久 | 夜夜骑首页 | 国产ts一区 | 日本福利片 | 亚洲精品久久久久久一区二区 | 国产免费黄网 | 天天操夜夜看 | 国产激情片在线观看 | 久久国产高清 | 午夜久久av | www.中文字幕.com | 国产一区二区三区色淫影院 | 国产高清免费视频 | 毛片入口 | 欧美8一10sex性hd | 欧美视频一级 | 国产精品国产 | 国产小视频在线观看 | 亚洲午夜网 | h视频免费观看 | 91国内精品久久 | 国产一区二区小视频 | 91视视频在线观看入口直接观看 | 久久综合一区二区 | 韩国精品一区 | 国产成人亚洲精品 | 国产精品美女一区二区三区 | 99pao成人国产永久免费视频 | 亚洲人成网站777色婷婷 | 成人二区 | 日韩精品久久一区 | 国产成人小视频 | 国产成人精品一区二区三区在线 | www.成人.com| 国产1区2区3区 | 日韩影院一区 | 国产成人亚洲精品 | 亚洲精品永久免费 | 综合五月婷 |