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

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 14016|回復(fù): 15
打印 上一主題 下一主題
收起左側(cè)

語(yǔ)音控制的智能小車(chē)設(shè)計(jì)資料

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
凌陽(yáng)語(yǔ)音智能控制小車(chē)設(shè)計(jì)方案以及代碼實(shí)現(xiàn),包含源碼 資料 與設(shè)計(jì)文檔







以上壓縮包的所有資料下載: 語(yǔ)音遙控小車(chē)禮包.rar (570.1 KB, 下載次數(shù): 173)

源碼預(yù)覽:
  1. //======================================================
  2. //  The information contained herein is the exclusive property of
  3. //  Sunnnorth Technology Co. And shall not be distributed, reproduced,
  4. //  or disclosed in whole in part without prior written permission.
  5. //  (C) COPYRIGHT 2003  SUNNORTH TECHNOLOGY CO.
  6. //  ALL RIGHTS RESERVED
  7. //  The entire notice above must be reproduced on all authorized copies.
  8. //========================================================

  9. //========================================================
  10. //  工程名稱(chēng):        Car_Demo
  11. //  功能描述:        實(shí)現(xiàn)小車(chē)的語(yǔ)音控制
  12. //  涉及的庫(kù):        CMacro1016.lib
  13. //                    bsrv222SDL.lib
  14. //                                sacmv26e.lib
  15. //  組成文件:        main.c
  16. //                                Flash.asm, hardware.asm,ISR.asm
  17. //                             hardware.h,s480.h, hardware.inc
  18. //        硬件連接:        IOA0-----KEY1
  19. //                                IOA1-----KEY2
  20. //                                IOA2-----KEY3
  21. //                                IOB8-----前進(jìn)
  22. //                                IOB9-----倒車(chē)
  23. //                                IOB10----左拐
  24. //                                IOB11----右拐
  25. //        維護(hù)記錄:        2005-12-12 v1.0
  26. //========================================================

  27. #include "s480.h"
  28. #include "bsrsd.h"

  29. #define        P_IOA_Data                         (volatile unsigned int *)0x7000   
  30. #define P_IOA_Dir                         (volatile unsigned int *)0x7002
  31. #define P_IOA_Attrib                 (volatile unsigned int *)0x7003
  32. #define P_IOB_Data                        (volatile unsigned int *)0x7005  
  33. #define P_IOB_Dir                        (volatile unsigned int *)0x7007   
  34. #define P_IOB_Attrib                (volatile unsigned int *)0x7008   
  35. #define P_TimerA_Data                (volatile unsigned int *)0x700A   
  36. #define P_TimerA_Ctrl                (volatile unsigned int *)0x700B   
  37. #define P_TimerB_Data                (volatile unsigned int *)0x700C   
  38. #define P_TimerB_Ctrl                (volatile unsigned int *)0x700D   
  39. #define P_Watchdog_Clear        (volatile unsigned int *)0x7012   
  40. #define P_INT_Mask                        (volatile unsigned int *)0x702D   
  41. #define P_INT_Clear                        (volatile unsigned int *)0x7011   

  42. #define NAME_ID                         0x100
  43. #define COMMAND_GO_ID                 0x101
  44. #define COMMAND_BACK_ID         0x102
  45. #define COMMAND_LEFT_ID         0x103
  46. #define COMMAND_RIGHT_ID         0x104

  47. #define S_NAME                                0                                                        //給我取個(gè)名字吧
  48. #define S_ACT1                                1                                                        //前進(jìn)
  49. #define S_ACT2                                2                                                        //倒車(chē),請(qǐng)注意
  50. #define S_ACT3                                3                                                        //左拐
  51. #define S_ACT4                                4                                                        //右拐       
  52. #define S_RDY                                5                                                        //Yeah
  53. #define S_AGAIN                                6                                                        //請(qǐng)?jiān)僬f(shuō)一遍
  54. #define S_NOVOICE                        7                                                        //沒(méi)有聽(tīng)到任何聲音
  55. #define S_CMDDIFF                        8                                                        //說(shuō)什么暗語(yǔ)呀
  56. #define S_NOISY                                8                                                        //說(shuō)什么暗語(yǔ)呀
  57. #define S_START                                9                                                        //準(zhǔn)備就緒,開(kāi)始辨識(shí)       
  58. #define S_GJG                                10                                                        //拐就拐
  59. #define S_DCZY                                11                                                        //倒車(chē),請(qǐng)注意

  60. extern  unsigned int BSR_SDModel[100];                                        //外部變量BSR_SDModel[100],辨識(shí)器自帶
  61. extern void F_FlashWrite1Word(unsigned int addr,unsigned int Value);
  62. extern void F_FlashErase(unsigned int sector);
  63. unsigned int uiTimeset = 3;                                                                //運(yùn)行時(shí)間定時(shí),調(diào)整該參數(shù)控制運(yùn)行時(shí)間
  64. unsigned int uiTimecont;                                                                 //運(yùn)行時(shí)間計(jì)時(shí)

  65. //=============================================================
  66. // 語(yǔ)法格式:        void Delay();
  67. // 實(shí)現(xiàn)功能:        延時(shí)
  68. // 參數(shù):                無(wú)
  69. // 返回值:                無(wú)
  70. //=============================================================
  71. void Delay()                                                       
  72. {
  73.         unsigned int i;
  74.         for(i=0;i<0x3Fff;i++)
  75.         {
  76.                 *P_Watchdog_Clear=0x0001;
  77.         }
  78. }

  79. //=============================================================
  80. // 語(yǔ)法格式:        void PlaySnd(unsigned SndIndex,unsigned DAC_Channel);
  81. // 實(shí)現(xiàn)功能:        語(yǔ)音播放函數(shù)
  82. // 參數(shù):                SndIndex-播放語(yǔ)音資源索引號(hào)
  83. //                                DAC_Channel-播放聲道選擇
  84. // 返回值:                無(wú)
  85. //=============================================================
  86. void PlaySnd(unsigned SndIndex,unsigned DAC_Channel)
  87. {
  88.         BSR_StopRecognizer();                                                                //停止識(shí)別器
  89.         SACM_S480_Initial(1);                                                                //初始化為自動(dòng)播放
  90.         SACM_S480_Play(SndIndex, DAC_Channel, 3);                        //開(kāi)始播放一段語(yǔ)音
  91.         while((SACM_S480_Status()&0x0001)!= 0)                                //是否播放完畢?
  92.         {
  93.                 SACM_S480_ServiceLoop();                                                //解碼并填充隊(duì)列
  94.                 *P_Watchdog_Clear=0x0001;                                                //清看門(mén)狗
  95.         }
  96.         SACM_S480_Stop();                                                                        //停止播放
  97.         BSR_InitRecognizer(BSR_MIC);                                                //初始化識(shí)別器
  98. }

  99. //=============================================================
  100. // 語(yǔ)法格式:        int TrainWord(int WordID,int SndID);
  101. // 實(shí)現(xiàn)功能:        訓(xùn)練一條指令
  102. // 參數(shù):                WordID-指令編碼
  103. //                                SndID-指令提示音索引號(hào)
  104. // 返回值:                無(wú)
  105. //=============================================================
  106. int TrainWord(unsigned int WordID,unsigned int SndID)
  107. {
  108.         int Result;
  109.         PlaySnd(SndID,3);                                                                        //引導(dǎo)訓(xùn)練,播放指令對(duì)應(yīng)動(dòng)作
  110.         while(1)
  111.         {
  112.                 Result = BSR_Train(WordID,BSR_TRAIN_TWICE);                //訓(xùn)練兩次,獲得訓(xùn)練結(jié)果
  113.                                                                                
  114.                 if(Result==0)break;
  115.                 switch(Result)
  116.                 {
  117.                 case -1:                                                                                //沒(méi)有檢測(cè)出聲音
  118.                         PlaySnd(S_NOVOICE,3);
  119.                         return -1;
  120.                 case -2:                                                                                 //需要訓(xùn)練第二次
  121.                         PlaySnd(S_AGAIN,3);
  122.                         break;
  123.                 case -3:                                                                                //環(huán)境太吵
  124.                         PlaySnd(S_NOISY,3);
  125.                         return -3;       
  126.                 case -4:                                                                                //數(shù)據(jù)庫(kù)滿
  127.                          return -4;       
  128.                 case -5:                                                                     //檢測(cè)出聲音不同
  129.                         PlaySnd(S_CMDDIFF,3);
  130.                         return -5;
  131.                 case -6:                                                                     //序號(hào)錯(cuò)誤
  132.                         return -6;
  133.                 default:
  134.                         break;
  135.                 }
  136.         }
  137.         return 0;
  138. }

  139. //=============================================================
  140. // 語(yǔ)法格式:        void TrainSD();
  141. // 實(shí)現(xiàn)功能:        訓(xùn)練函數(shù)
  142. // 參數(shù):                無(wú)
  143. // 返回值:                無(wú)
  144. //=============================================================
  145. void TrainSD()
  146. {
  147.         while(TrainWord(NAME_ID,S_NAME) != 0) ;                          //訓(xùn)練名稱(chēng)
  148.         while(TrainWord(COMMAND_GO_ID,S_ACT1) != 0) ;                  //訓(xùn)練第1個(gè)動(dòng)作
  149.         while(TrainWord(COMMAND_BACK_ID,S_ACT2) != 0) ;          //訓(xùn)練第2個(gè)動(dòng)作
  150.         while(TrainWord(COMMAND_LEFT_ID,S_ACT3) != 0) ;          //訓(xùn)練第3個(gè)動(dòng)作
  151.         while(TrainWord(COMMAND_RIGHT_ID,S_ACT4) != 0) ;        //訓(xùn)練第4個(gè)動(dòng)作
  152. }

  153. //=============================================================
  154. // 語(yǔ)法格式:        void StoreSD();
  155. // 實(shí)現(xiàn)功能:        存儲(chǔ)語(yǔ)音模型函數(shù)
  156. // 參數(shù):                無(wú)
  157. // 返回值:                無(wú)
  158. //=============================================================
  159. void StoreSD()                                                  
  160. {        unsigned int ulAddr,i,commandID,g_Ret;
  161.         F_FlashWrite1Word(0xef00,0xaaaa);
  162.         F_FlashErase(0xe000);
  163.            F_FlashErase(0xe100);
  164.            F_FlashErase(0xe200);
  165.            ulAddr=0xe000;//********
  166.         for(commandID=0x100;commandID<0x105;commandID++)
  167.         {
  168.                 g_Ret=BSR_ExportSDWord(commandID);                       
  169.                 while(g_Ret!=0)                                                                        //模型導(dǎo)出成功?
  170.                 g_Ret=BSR_ExportSDWord(commandID);               
  171.                 for(i=0;i<100;i++)                                                                //保存語(yǔ)音模型SD1(0xe000---0xe063)
  172.                 {
  173.                     F_FlashWrite1Word(ulAddr,BSR_SDModel[i]);
  174.                         ulAddr+=1;                                                                                               
  175.                 }
  176.         }
  177. }

  178. //=============================================================
  179. // 語(yǔ)法格式:        void StoreSD();
  180. // 實(shí)現(xiàn)功能:        裝載語(yǔ)音模型函數(shù)
  181. // 參數(shù):                無(wú)
  182. // 返回值:                無(wú)
  183. //=============================================================
  184. void LoadSD()                                                  
  185. {        unsigned int *p,k,jk,Ret,g_Ret;
  186.         p=(int *)0xe000;                                                                                                                                                                       
  187.         for(jk=0;jk<5;jk++)
  188.         {
  189.                 for(k=0;k<100;k++)
  190.                 {
  191.                         Ret=*p;                                                       
  192.                         BSR_SDModel[k]=Ret;                                        //裝載語(yǔ)音模型                       
  193.                         p+=1;                                                                                                       
  194.                 }                                       
  195.                 g_Ret=BSR_ImportSDWord();                               
  196.                 while(g_Ret!=0)                                                        //模型裝載成功?
  197.                 g_Ret=BSR_ImportSDWord();                                                               
  198.         }
  199. }

  200. //=============================================================
  201. // 語(yǔ)法格式:        void GoAhead();
  202. // 實(shí)現(xiàn)功能:        前進(jìn)子函數(shù)
  203. // 參數(shù):                無(wú)
  204. // 返回值:                無(wú)
  205. //=============================================================
  206. void GoAhead()                                                     //前進(jìn)
  207. {  
  208.         PlaySnd(S_ACT1,3);                                                        //提示
  209.         *P_IOB_Data=0x0100;                                                        //前進(jìn)
  210.         *P_INT_Mask |= 0x0004;                                                //以下為中斷定時(shí)操作
  211.         __asm("int fiq,irq");
  212.         uiTimecont = 0;
  213. }
  214. //=============================================================
  215. // 語(yǔ)法格式:        void BackUp();
  216. // 實(shí)現(xiàn)功能:        后退子函數(shù)
  217. // 參數(shù):                無(wú)
  218. // 返回值:                無(wú)
  219. //=============================================================
  220. void BackUp()                                                //倒退
  221. {       
  222.         PlaySnd(S_DCZY,3);                                                        //提示
  223.         *P_IOB_Data=0x0200;                                                        //倒退
  224.         *P_INT_Mask |= 0x0004;                                                //以下為中斷定時(shí)操作
  225.         __asm("int fiq,irq");
  226.         uiTimecont = 0;
  227. }

  228. //=============================================================
  229. // 語(yǔ)法格式:        void TurnLeft();
  230. // 實(shí)現(xiàn)功能:        左轉(zhuǎn)子函數(shù)
  231. // 參數(shù):                無(wú)
  232. // 返回值:                無(wú)
  233. //=============================================================
  234. void TurnLeft()                                               //左轉(zhuǎn)
  235. {
  236.         PlaySnd(S_GJG,3);       
  237.         *P_IOB_Data=0x0900;                                                        //右轉(zhuǎn)
  238.         Delay();                                                                        //延時(shí)
  239.         *P_IOB_Data=0x0500;                                                        //左轉(zhuǎn)
  240.         *P_INT_Mask |= 0x0004;                                                //以下為中斷定時(shí)操作
  241.         __asm("int fiq,irq");
  242.         uiTimecont = 0;
  243. }
  244. //=============================================================
  245. // 語(yǔ)法格式:        void TurnRight();
  246. // 實(shí)現(xiàn)功能:        右轉(zhuǎn)子函數(shù)
  247. // 參數(shù):                無(wú)
  248. // 返回值:                無(wú)
  249. //=============================================================
  250. void TurnRight()                                           //右轉(zhuǎn)
  251. {
  252.         PlaySnd(S_GJG,3);                                                        //語(yǔ)音提示
  253.         *P_IOB_Data=0x0500;                                                        //左轉(zhuǎn)
  254.         Delay();                                                                        //延時(shí)
  255.         *P_IOB_Data=0x0900;                                                        //右轉(zhuǎn)
  256.         *P_INT_Mask |= 0x0004;                                                //以下為中斷定時(shí)操作
  257.         __asm("int fiq,irq");
  258.         uiTimecont = 0;
  259. }

  260. //=============================================================
  261. // 語(yǔ)法格式:        void Stop();
  262. // 實(shí)現(xiàn)功能:        停車(chē)子函數(shù)
  263. // 參數(shù):                無(wú)
  264. // 返回值:                無(wú)
  265. //=============================================================
  266. void Stop()                                                   //停車(chē)
  267. {
  268.         *P_IOB_Data=0x0000;                                                        //停車(chē)
  269.         PlaySnd(S_RDY,3);                                                        //語(yǔ)音提示
  270. }

  271. //=============================================================
  272. // 語(yǔ)法格式:        void BSR(void);
  273. // 實(shí)現(xiàn)功能:        辨識(shí)子函數(shù)
  274. // 參數(shù):                無(wú)
  275. // 返回值:                無(wú)
  276. //=============================================================
  277. void BSR(void)
  278. {       
  279.         int Result;                                                                        //辨識(shí)結(jié)果寄存
  280.         Result = BSR_GetResult();                                        //獲得識(shí)別結(jié)果

  281.         if(Result>0)                                                                //有語(yǔ)音觸發(fā)?
  282.         {       
  283.                 *P_IOB_Data=0x0000;                                                //臨時(shí)停車(chē)
  284.                 switch(Result)
  285.                 {
  286.                 case NAME_ID:                                                        //識(shí)別出名稱(chēng)命令
  287.                         Stop();                                                                //停車(chē)待命
  288.                         break;
  289.                 case COMMAND_GO_ID:                                                //識(shí)別出第一條命令
  290.                         GoAhead();                                                        //執(zhí)行動(dòng)作一:直走
  291.                         break;
  292.                 case COMMAND_BACK_ID:                                        //識(shí)別出第二條命令
  293.                         BackUp();                                                        //執(zhí)行動(dòng)作二:倒車(chē)
  294.                         break;
  295.                 case COMMAND_LEFT_ID:                                        //識(shí)別出第三條命令
  296.                         TurnLeft();                                                        //執(zhí)行動(dòng)作三:左轉(zhuǎn)
  297.                         break;
  298.                 case COMMAND_RIGHT_ID:                                        //識(shí)別出第四條命令
  299.                         TurnRight();                                                //執(zhí)行動(dòng)作四:右轉(zhuǎn)
  300.                         break;
  301.                 default:
  302.                         break;
  303.                 }
  304.         }
  305. }
  306. //=============================================================
  307. // 語(yǔ)法格式:        void IRQ5(void);
  308. // 實(shí)現(xiàn)功能:        中斷服務(wù)子函數(shù)
  309. // 參數(shù):                無(wú)
  310. // 返回值:                無(wú)
  311. //=============================================================
  312. void IRQ5(void)__attribute__((ISR));                        //運(yùn)動(dòng)定時(shí)控制
  313. void IRQ5(void)
  314. {
  315.         if(uiTimecont++ == uiTimeset)
  316.         {
  317.                 *P_IOB_Data = 0x0000;
  318.         }
  319.         *P_INT_Clear = 0x0004;
  320. }

  321. //=============================================================
  322. // 語(yǔ)法格式:        int main(void);
  323. // 實(shí)現(xiàn)功能:        主函數(shù)
  324. // 參數(shù):                無(wú)
  325. // 返回值:                無(wú)
  326. //=============================================================
  327. int main(void)
  328. {        unsigned int BS_Flag;                                                //Train標(biāo)志位
  329.         *P_IOA_Dir=0xff00;                                                        //初始化IOA,IOA0~7下拉輸入
  330.         *P_IOA_Attrib=0xff00;
  331.         *P_IOA_Data=0x0000;
  332.        
  333.         *P_IOB_Dir=0x0f00;                                                        //初始化IOB,IOB8~11同向輸出
  334.         *P_IOB_Attrib=0x0f00;
  335.         *P_IOB_Data=0x0000;
  336.        
  337.         BSR_DeleteSDGroup(0);                                                //初始化存儲(chǔ)器RAM
  338.         BS_Flag=*(unsigned int *)0xe000;                        //讀存儲(chǔ)單元0xe000
  339.         if(BS_Flag==0xffff)                                                        //沒(méi)有經(jīng)過(guò)訓(xùn)練(0xe000內(nèi)容為0xffff)
  340.         {
  341.                 TrainSD();                                                                //訓(xùn)練
  342.                 StoreSD();                                                                //存儲(chǔ)訓(xùn)練結(jié)果(語(yǔ)音模型)
  343.         }
  344.         else                                                                                 //經(jīng)過(guò)訓(xùn)練(0xe000內(nèi)容為0x0055)
  345.         {
  346.                 LoadSD();                                                                //語(yǔ)音模型載入識(shí)別器
  347.         }
  348.        
  349.         PlaySnd(S_START,3);                                                        //開(kāi)始識(shí)別提示
  350.         BSR_InitRecognizer(BSR_MIC);                                //初始化識(shí)別器
  351.        
  352.         while(1)
  353.         {       
  354.                 BSR();
  355.                 if((*P_IOA_Data)&0x0004)                                //是否重新訓(xùn)練
  356.                 {       
  357.                         F_FlashErase(0xe000);
  358.                         while(1);
  359.                 }
  360.         }
  361. }
復(fù)制代碼




評(píng)分

參與人數(shù) 4黑幣 +20 收起 理由
lieyan + 5 贊一個(gè)!
sax_yang + 5 共享資料的黑幣獎(jiǎng)勵(lì)!
ttt123 + 5 很給力!
lion7452 + 5 贊一個(gè)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏7 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:86621 發(fā)表于 2016-4-13 16:07 | 只看該作者
樓主 我用51的話能做嗎
回復(fù)

使用道具 舉報(bào)

板凳
ID:128795 發(fā)表于 2016-7-1 16:47 | 只看該作者
我可以看看嗎
回復(fù)

使用道具 舉報(bào)

地板
ID:91113 發(fā)表于 2017-1-7 15:37 | 只看該作者
如果加wifi控制是不是很麻煩
回復(fù)

使用道具 舉報(bào)

5#
ID:166756 發(fā)表于 2017-2-26 19:18 | 只看該作者
謝謝樓主!
回復(fù)

使用道具 舉報(bào)

6#
ID:308152 發(fā)表于 2018-4-16 14:59 | 只看該作者
為什么我下載失敗了呀?樓主能發(fā)一份資料么?郵箱563688038@qq.com,感激不盡!
回復(fù)

使用道具 舉報(bào)

7#
ID:65956 發(fā)表于 2018-4-17 11:36 | 只看該作者
用語(yǔ)音控制是一個(gè)好的點(diǎn)子,但是要考慮環(huán)境干擾及人口語(yǔ)音標(biāo)準(zhǔn)的問(wèn)題
回復(fù)

使用道具 舉報(bào)

8#
ID:497690 發(fā)表于 2019-3-25 09:59 | 只看該作者
厲害了
回復(fù)

使用道具 舉報(bào)

9#
ID:502154 發(fā)表于 2019-4-1 09:17 | 只看該作者
資料很給力
回復(fù)

使用道具 舉報(bào)

10#
ID:501893 發(fā)表于 2019-4-13 14:30 | 只看該作者
多更新好東西
回復(fù)

使用道具 舉報(bào)

11#
ID:497690 發(fā)表于 2019-4-26 14:23 | 只看該作者
厲害厲害
回復(fù)

使用道具 舉報(bào)

12#
ID:522648 發(fā)表于 2019-4-26 23:00 | 只看該作者
厲害,凌陽(yáng)單片機(jī)難嗎
回復(fù)

使用道具 舉報(bào)

13#
ID:526612 發(fā)表于 2019-5-3 19:41 | 只看該作者
謝謝大佬分享
回復(fù)

使用道具 舉報(bào)

14#
ID:525356 發(fā)表于 2019-5-3 21:06 | 只看該作者
謝謝大佬  有其他不同芯片的控制方法嗎?
回復(fù)

使用道具 舉報(bào)

15#
ID:319031 發(fā)表于 2019-5-3 21:24 | 只看該作者

謝謝大佬分享

很好的學(xué)習(xí)資料
回復(fù)

使用道具 舉報(bào)

16#
ID:854312 發(fā)表于 2020-12-4 12:39 | 只看該作者
謝謝大佬分享
相當(dāng)不錯(cuò)的學(xué)習(xí)資料
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕一区二区三区四区五区 | 国产乱码精品一区二区三区中文 | 精品亚洲一区二区 | 国产日韩精品一区二区 | 99热这里都是精品 | 欧美一级艳情片免费观看 | 精品国产乱码久久久久久影片 | 黄色在线免费观看视频网站 | www.788.com色淫免费 | 精品久久久久久久久久久 | pacopacomama在线| 国产精品美女一区二区 | 天堂色| 午夜精品福利视频 | 欧美视频一区 | 最新国产视频 | 中文成人无字幕乱码精品 | 精品在线一区二区 | 黄视频网站在线 | 日韩av.com | 久久国产精品视频 | 久久久久国产精品一区 | 欧美精品久久久久久久久久 | 国产欧美日韩久久久 | 国内av在线 | 日本精品裸体写真集在线观看 | 2021天天干夜夜爽 | 国产乱码精品一区二区三区忘忧草 | 天天干天天操 | 久久丝袜视频 | 国产精品福利视频 | 91av在线免费| 9久9久9久女女女九九九一九 | 亚洲欧美高清 | 亚洲日本成人 | 久草视频在线播放 | 亚洲成人精品影院 | 精品亚洲一区二区三区 | 在线观看国产 | 久久精品一| 天天操操操操操 |