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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2175|回復: 2
打印 上一主題 下一主題
收起左側(cè)

兩路4輪舵機避障小車的單片機程序,已優(yōu)化,自行改造

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1091382 發(fā)表于 2023-8-28 16:21 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
兩路小車改的四輪小車,原先的兩輪轉(zhuǎn)向極不穩(wěn)定,行走也跑偏,不好玩,后來改的四輪,升級7.4v鋰電動力,程序里面調(diào)速前進(20,20),行走、轉(zhuǎn)向很穩(wěn)定。原理都一樣,無非多兩個tt電機,左右輪電機線分別接一起。程序優(yōu)化了一下能完美避障,距離太近還能自動后退。
程序需要完整下載,里面有個H文件一起加c語言才能用。單獨復制沒有定義引腳燒錄不了的。
制作出來的實物圖如下:


單片機源程序如下:
  1. /*********************************************************************************
  2. * 【外部晶振】: 11.0592mhz        
  3. * 【主控芯片】: STC89C52
  4. * 【編譯環(huán)境】: Keil μVisio4
  5. *        Copyright(C) QXMBOT
  6. *        All rights reserved
  7. ***********************************************************************************
  8. * 【接線說明】:請參考資料內(nèi)圖文說明書                                                                                   
  9. * 【注意事項】:避免小車撞向障礙物或小車輪子堵轉(zhuǎn)
  10. **********************************************************************************/
  11. #include <reg52.h>//51頭文件
  12. #include <QX_A11.h>//QX_A11智能小車配置文件
  13. #include <intrins.h>
  14. bit Timer1Overflow;        //計數(shù)器1溢出標志位
  15. unsigned char disbuff[4]={0,0,0,0};//用于分別存放距離的值米,厘米,毫米
  16. unsigned int LeftDistance = 0, RightDistance = 0, FrontDistance = 0; //云臺測距距離緩存
  17. unsigned int DistBuf[5] = {0};//distance data buffer
  18. unsigned char        pwm_val_left,pwm_val_right;        //中間變量,只是此處用戶請勿修改。
  19. unsigned char         pwm_left,pwm_right;                        //定義PWM輸出高電平的時間的變量。用戶操作PWM的變量。左右()里面的值
  20. #define                PWM_DUTY                200                        //(用于舵機時不可修改)定義PWM的周期,數(shù)值為定時器0溢出周期,假如定時器溢出時間為100us,則PWM周期為20ms。
  21. #define                PWM_HIGH_MIN        70                        //限制PWM輸出的最小占空比。用戶請勿修改。
  22. #define                PWM_HIGH_MAX        PWM_DUTY        //限制PWM輸出的最大占空比。用戶請勿修改。

  23. void Timer0_Init(void); //定時器0初始化
  24. void Timer1_Init(void);//定時器1初始化
  25. void LoadPWM(void);//裝入PWM輸出值
  26. void Delay_Ms(unsigned int ms);//毫秒級延時函數(shù)
  27. void forward(unsigned char LeftSpeed,unsigned char RightSpeed);//QX_A11智能小車前進
  28. void left_run(unsigned char LeftSpeed,unsigned char RightSpeed);//QX_A11智能小車左轉(zhuǎn)  
  29. void right_run(unsigned char LeftSpeed,unsigned char RightSpeed);//QX_A11智能小車右轉(zhuǎn)
  30. void back_run(unsigned char LeftSpeed,unsigned char RightSpeed);//QX_A11智能小車后退
  31. void stop(void);//QX_A11智能小車停車
  32. void Delay18450us(void);        //@11.0592MHz
  33. void Delay1550us(void);                //@11.0592MHz
  34. void Delay19400us(void);        //@11.0592MHz
  35. void Delay600us(void);                //@11.0592MHz
  36. void Delay17500us(void);        //@11.0592MHz
  37. void Delay2500us(void);                //@11.0592MHz
  38. void QXMBOT_bubble(unsigned int *a,unsigned char n);//冒泡排序
  39. void QXMBOT_ServoFront(void);//舵機向前
  40. void QXMBOT_ServoLeft(void);//舵機左轉(zhuǎn)
  41. void QXMBOT_ServoRight(void);//舵機右轉(zhuǎn)
  42. void  QXMBOT_PTZ_Avoid(unsigned int val);//舵機云臺避障
  43. unsigned int QXMBOT_GetDistance(void);//獲取超聲波距離
  44. void QXMBOT_TrigUltrasonic(void);// 觸發(fā)超聲波
  45. unsigned int QXMBOT_RefreshDistance(void);//超聲波測距

  46. /*主函數(shù)*/     
  47. void main(void)
  48. {
  49.         Timer0_Init();//定時0初始化
  50.         Timer1_Init();//定時0初始化
  51.         EA_on;        //開中斷
  52.         QXMBOT_ServoFront();//舵機向前
  53.         Delay_Ms(1000);
  54.         forward(20,50);//前進,forward全部調(diào)成(20,20)可調(diào)速。7.4v情況下
  55.         while(1)
  56.         {
  57.                 QXMBOT_PTZ_Avoid(300);//舵機云臺避障,LCD1602顯示距離,設置觸發(fā)距離300毫米
  58.         }        
  59. }


  60. /*********************************************
  61. QX_A11智能小車前進
  62. 入口參數(shù):LeftSpeed,RightSpeed
  63. 出口參數(shù): 無
  64. 說明:LeftSpeed,RightSpeed分別設置左右車輪轉(zhuǎn)速
  65. **********************************************/
  66. void forward(unsigned char LeftSpeed,unsigned char RightSpeed)
  67. {
  68.         pwm_left = LeftSpeed,pwm_right =  RightSpeed;//設置速度
  69.         left_motor_go; //左電機前進
  70.         right_motor_go; //右電機前進
  71. }
  72. /*小車左轉(zhuǎn)*/
  73. /*********************************************
  74. QX_A11智能小車左轉(zhuǎn)
  75. 入口參數(shù):LeftSpeed,RightSpeed
  76. 出口參數(shù): 無
  77. 說明:LeftSpeed,RightSpeed分別設置左右車輪轉(zhuǎn)速
  78. **********************************************/
  79. void left_run(unsigned char LeftSpeed,unsigned char RightSpeed)
  80. {
  81.         pwm_left = LeftSpeed,pwm_right =  RightSpeed;//設置速度
  82.         left_motor_back; //左電機后退
  83.         right_motor_go; //右電機前進        
  84. }

  85. /*********************************************
  86. QX_A11智能小車右轉(zhuǎn)
  87. 入口參數(shù):LeftSpeed,RightSpeed
  88. 出口參數(shù): 無
  89. 說明:LeftSpeed,RightSpeed分別設置左右車輪轉(zhuǎn)速
  90. **********************************************/
  91. void right_run(unsigned char LeftSpeed,unsigned char RightSpeed)
  92. {
  93.         pwm_left = LeftSpeed,pwm_right =  RightSpeed;//設置速度
  94.         right_motor_back;//右電機后退
  95.         left_motor_go;    //左電機前進
  96. }
  97. /*********************************************
  98. QX_A11智能小車后退
  99. 入口參數(shù):LeftSpeed,RightSpeed
  100. 出口參數(shù): 無
  101. 說明:LeftSpeed,RightSpeed分別設置左右車輪轉(zhuǎn)速
  102. **********************************************/
  103. void back_run(unsigned char LeftSpeed,unsigned char RightSpeed)
  104. {
  105.         pwm_left = LeftSpeed,pwm_right =  RightSpeed;//設置速度
  106.         right_motor_back;//右電機后退
  107.         left_motor_back; //左電機后退
  108. }
  109. /*********************************************
  110. QX_A11智能小車停車
  111. 入口參數(shù):無
  112. 出口參數(shù): 無
  113. **********************************************/
  114. void stop(void)
  115. {
  116.         left_motor_stops;
  117.         right_motor_stops;
  118. }

  119. /*====================================
  120. 函數(shù):void Delay_Ms(INT16U ms)
  121. 參數(shù):ms,毫秒延時形參
  122. 描述:12T 51單片機自適應主時鐘毫秒級延時函數(shù)
  123. ====================================*/
  124. void Delay_Ms(unsigned int ms)
  125. {
  126.      unsigned int i;
  127.          do{
  128.               i = MAIN_Fosc / 96000;
  129.                   while(--i);   //96T per loop
  130.      }while(--ms);
  131. }

  132. /*舵機方波延時朝向小車正前方*/
  133. void Delay1550us()                //@11.0592MHz
  134. {
  135.         unsigned char i, j;

  136.         i = 3;
  137.         j = 196;
  138.         do
  139.         {
  140.                 while (--j);
  141.         } while (--i);
  142. }

  143. void Delay18450us()                //@11.0592MHz
  144. {
  145.         unsigned char i, j;

  146.         _nop_();
  147.         i = 34;
  148.         j = 16;
  149.         do
  150.         {
  151.                 while (--j);
  152.         } while (--i);
  153. }
  154. /*舵機方波延時向小車右方*/
  155. void Delay600us()                //@11.0592MHz
  156. {
  157.         unsigned char i, j;

  158.         _nop_();
  159.         i = 2;
  160.         j = 15;
  161.         do
  162.         {
  163.                 while (--j);
  164.         } while (--i);
  165. }
  166. void Delay19400us()                //@11.0592MHz
  167. {
  168.         unsigned char i, j;

  169.         _nop_();
  170.         i = 35;
  171.         j = 197;
  172.         do
  173.         {
  174.                 while (--j);
  175.         } while (--i);
  176. }
  177. /*舵機方波延時朝向小車左方*/
  178. void Delay17500us()                //@11.0592MHz
  179. {
  180.         unsigned char i, j;

  181.         i = 32;
  182.         j = 93;
  183.         do
  184.         {
  185.                 while (--j);
  186.         } while (--i);
  187. }
  188. void Delay2500us()                //@11.0592MHz
  189. {
  190.         unsigned char i, j;

  191.         i = 5;
  192.         j = 120;
  193.         do
  194.         {
  195.                 while (--j);
  196.         } while (--i);
  197. }
  198. /*********************************************
  199. QX_A11智能小車PWM輸出
  200. 入口參數(shù):無
  201. 出口參數(shù): 無
  202. 說明:裝載PWM輸出,pwm_left,pwm_right分別配置左右輸出高電平時間,請設置全局對應行走方向(x,y)數(shù)據(jù)一致調(diào)速
  203. **********************************************/
  204. void LoadPWM(void)
  205. {
  206.         if(pwm_left > PWM_HIGH_MAX)                pwm_left = PWM_HIGH_MAX;        //如果左輸出寫入大于最大占空比數(shù)據(jù),則強制為最大占空比。
  207.         if(pwm_left < PWM_HIGH_MIN)                pwm_left = PWM_HIGH_MIN;        //如果左輸出寫入小于最小占空比數(shù)據(jù),則強制為最小占空比。
  208.         if(pwm_right > PWM_HIGH_MAX)        pwm_right = PWM_HIGH_MAX;        //如果右輸出寫入大于最大占空比數(shù)據(jù),則強制為最大占空比。
  209.         if(pwm_right < PWM_HIGH_MIN)        pwm_right = PWM_HIGH_MIN;        //如果右輸出寫入小于最小占空比數(shù)據(jù),則強制為最小占空比。
  210.         if(pwm_val_left<=pwm_left)                Left_moto_pwm = 1;  //裝載左PWM輸出高電平時間
  211.         else Left_moto_pwm = 0;                                                     //裝載左PWM輸出低電平時間
  212.         if(pwm_val_left>=PWM_DUTY)                pwm_val_left = 0;        //如果左對比值大于等于最大占空比數(shù)據(jù),則為零

  213.         if(pwm_val_right<=pwm_right)        Right_moto_pwm = 1; //裝載右PWM輸出高電平時間
  214.         else Right_moto_pwm = 0;                                                         //裝載右PWM輸出低電平時間
  215.         if(pwm_val_right>=PWM_DUTY)                pwm_val_right = 0;        //如果右對比值大于等于最大占空比數(shù)據(jù),則為零
  216. }
  217. //冒泡排序
  218. void QXMBOT_bubble(unsigned int *a,unsigned char n) /*定義兩個參數(shù):數(shù)組首地址與數(shù)組大小*/
  219. {
  220.         unsigned int i,j,temp;        
  221.         for(i = 0;i < n-1; i++)        
  222.         {        
  223.                 for(j = i + 1; j < n; j++) /*注意循環(huán)的上下限*/
  224.                 {
  225.                         if(a[i] > a[j])
  226.                         {
  227.                                 temp = a[i];               
  228.                                 a[i] = a[j];               
  229.                                 a[j] = temp;                        
  230.                         }
  231.                 }
  232.         }

  233. }
  234. /*====================================
  235. 函數(shù)名        :QXMBOT_RefreshDistance
  236. 參數(shù)        :無
  237. 返回值        :經(jīng)過冒泡排序后的距離
  238. 描述        :經(jīng)過5次測距,去除最大值和最小值,取中間3次平均值
  239. 距離單位:毫米
  240. ====================================*/
  241. unsigned int QXMBOT_RefreshDistance()
  242. {
  243.         unsigned char num;
  244.         unsigned int Dist;
  245.         for(num=0; num<5; num++)
  246.         {
  247.                 DistBuf[num] = QXMBOT_GetDistance();
  248.                 Delay_Ms(60);//測距周期不低于60毫秒        
  249.         }
  250.         QXMBOT_bubble(DistBuf, 5);//
  251.         Dist = (DistBuf[1]+DistBuf[2]+DistBuf[3])/3; //去掉最大和最小取中間平均值
  252.         return(Dist);
  253. }
  254. /*超聲波觸發(fā)*/
  255. void QXMBOT_TrigUltrasonic()
  256. {
  257.         TrigPin = 0; //超聲波模塊Trig        控制端
  258.         _nop_();
  259.         _nop_();
  260.         _nop_();
  261.         _nop_();
  262.         _nop_();
  263.         TrigPin = 1; //超聲波模塊Trig        控制端
  264.         _nop_();_nop_();_nop_();_nop_();_nop_();
  265.         _nop_();_nop_();_nop_();_nop_();_nop_();
  266.         _nop_();_nop_();_nop_();_nop_();_nop_();
  267.         TrigPin = 0; //超聲波模塊Trig        控制端
  268. }
  269. /*====================================
  270. 函數(shù)名        :QXMBOT_GetDistance
  271. 參數(shù)        :無
  272. 返回值        :獲取距離單位毫米
  273. 描述        :超聲波測距
  274. 通過發(fā)射信號到收到回響信號的時間測試距離
  275. 單片機晶振11.0592Mhz
  276. 注意測距周期為60ms以上
  277. ====================================*/
  278. unsigned int QXMBOT_GetDistance()
  279. {
  280.         unsigned int Distance = 0;        //超聲波距離
  281.         unsigned int  Time=0;                //用于存放定時器時間值
  282.         QXMBOT_TrigUltrasonic();        //超聲波觸發(fā)
  283.         while(!EchoPin);          //判斷回響信號是否為低電平
  284.         Timer1On;                        //啟動定時器1
  285.         while(EchoPin);                //等待收到回響信號
  286.         Timer1Off;                        //關閉定時器1
  287.         Time=TH1*256+TL1;        //讀取時間
  288.         TH1=0;
  289.         TL1=0;                                //清空定時器
  290.     Distance = (float)(Time*1.085)*0.17;//算出來是MM(一般超聲測距公式、12mHZ的芯片是=Time*0.17)如果用0.017/算出來是cM,那么后面數(shù)據(jù)對應要改
  291.         return(Distance);//返回距離                                
  292. }
  293. /*====================================
  294. 函數(shù)名        :QXMBOT_PTZ_Avoid
  295. 參數(shù)        :val設置避障觸發(fā)距離
  296. 返回值        :無
  297. 描述        :智能小車舵機云臺避障
  298. 距離單位:毫米
  299. ====================================*/
  300. void  QXMBOT_PTZ_Avoid(unsigned int val)
  301. {
  302.         unsigned int Dis;//距離暫存變量
  303.         Dis = QXMBOT_GetDistance();//獲取超聲波測距距離,單位:毫米
  304.         if((Dis > 30) && (Dis < val))// 設置避障觸發(fā)距離
  305.         {
  306.                 LED1=0,LED2=0,beep=1;//LED1,2點亮,鳴笛        
  307.                 stop();        //停車
  308.                 Delay_Ms(60);
  309.                 LED1=1,LED2=1,beep=1;//LED1,2熄滅,靜音

  310.                 /*舵機左轉(zhuǎn)測距*/
  311.                 QXMBOT_ServoLeft();
  312.                 LeftDistance = QXMBOT_RefreshDistance();

  313.                 /*舵機右轉(zhuǎn)測距*/
  314.                 QXMBOT_ServoRight();
  315.                 RightDistance = QXMBOT_RefreshDistance();

  316.                 /*舵機正前方測距*/
  317.                 QXMBOT_ServoFront();
  318.                 FrontDistance = QXMBOT_RefreshDistance();
  319.         if((FrontDistance<100) && (LeftDistance<100) && (RightDistance<100))
  320.                 {
  321.                         do{
  322.                                 left_run(180, 180);//原地左轉(zhuǎn),電機動力值
  323.                                 Delay_Ms(100);//電機轉(zhuǎn)動時間
  324.                                 /*舵機正前方測距*/
  325.                                 QXMBOT_ServoFront();
  326.                                 Dis = QXMBOT_RefreshDistance();               
  327.                         }while(Dis < 100);//循環(huán)、距離
  328.                 }else if(FrontDistance<60)
  329.                 {
  330.                         LED1=0,LED2=0;//LED1亮,2點亮
  331.                         back_run(50, 50);//后退
  332.                         Delay_Ms(100);
  333.                     LED1=1,LED2=1;//LED1滅,2滅
  334.                 }else if((FrontDistance>LeftDistance) && (FrontDistance>RightDistance))
  335.                 {
  336.                         stop();        //停車
  337.                         Delay_Ms(60);
  338.                         forward(20, 50);//前進
  339.                 }else if(LeftDistance > RightDistance)
  340.                 {
  341.                         LED1=1,LED2=0;//LED1滅,2點亮
  342.                         stop();        //停車
  343.                         Delay_Ms(60);
  344.                         left_run(180, 180);//原地左轉(zhuǎn),調(diào)速動力值。
  345.                         Delay_Ms(100);         //轉(zhuǎn)動時間,翻倍更改才比較明顯。
  346.                         LED1=1,LED2=1;//LED1滅,2點滅               
  347.                 }else if(RightDistance > LeftDistance)
  348.                 {
  349.                         LED1=0,LED2=1;//LED1亮,2點滅
  350.                         stop();        //停車
  351.                         Delay_Ms(60);
  352.                         right_run(190, 190);//原地右轉(zhuǎn),調(diào)速動力值。
  353.                         Delay_Ms(100);//轉(zhuǎn)動時間,翻倍更改才比較明顯。
  354.                         LED1=1,LED2=1;//LED1滅,2滅        
  355.                 }               
  356.         }
  357.         else
  358.         {
  359.                 forward(20, 50);//前進
  360.                 Delay_Ms(60);        
  361.         }                        
  362. }
  363. /*=================================================
  364. *函數(shù)名稱:QXMBOT_ServoFront
  365. *函數(shù)功能:云臺向前轉(zhuǎn)動
  366. *調(diào)用:
  367. *輸入:
  368. =================================================*/
  369. void QXMBOT_ServoFront()
  370. {
  371.         char i;
  372.         EA_off;        //關閉中斷否則會影響舵機轉(zhuǎn)向
  373.         for(i=0;i<10;i++)
  374.         {        
  375.                 ServoPin = 1;
  376.                 Delay1550us();
  377.                 ServoPin = 0;
  378.                 Delay18450us();
  379.         }
  380.         EA_on;        //開中斷
  381.         Delay_Ms(100);
  382. }
  383. /*=================================================
  384. *函數(shù)名稱:QXMBOT_ServoLeft
  385. *函數(shù)功能:云臺向左轉(zhuǎn)動
  386. *調(diào)用:
  387. *輸入:
  388. =================================================*/
  389. void QXMBOT_ServoLeft()
  390. {
  391.         char i;
  392.         EA_off;        //關閉中斷否則會影響舵機轉(zhuǎn)向
  393.         for(i=0;i<10;i++)
  394.         {        
  395.                 ServoPin = 1;
  396.                 Delay2500us();
  397.                 ServoPin = 0;
  398.                 Delay17500us();
  399.         }
  400.         EA_on;        //開中斷
  401.         Delay_Ms(100);
  402. }
  403. /*=================================================
  404. *函數(shù)名稱:QXMBOT_ServoFront
  405. *函數(shù)功能:云臺向右轉(zhuǎn)動
  406. *調(diào)用:
  407. *輸入:
  408. =================================================*/
  409. void QXMBOT_ServoRight()
  410. {
  411.         char i;
  412.         EA_off;        //關閉中斷否則會影響舵機轉(zhuǎn)向
  413.         for(i=0;i<10;i++)
  414.         {        
  415.                 ServoPin = 1;
  416.                 Delay600us();
  417.                 ServoPin = 0;
  418.                 Delay19400us();
  419.         }
  420.         EA_on;        //開中斷
  421.         Delay_Ms(100);
  422. }
  423. /********************* Timer0初始化************************/
  424. void Timer0_Init(void)
  425. {
  426.         TMOD |= 0x02;//定時器0,8位自動重裝模塊
  427.         TH0 = 164;
  428.         TL0 = 164;//11.0592M晶振,12T溢出時間約等于100微秒
  429.         TR0 = 1;//啟動定時器0
  430.         ET0 = 1;//允許定時器0中斷        
  431. }
  432. /*定時器1初始化*/
  433. void Timer1_Init(void)               
  434. {
  435.         TMOD |= 0x10;        //定時器1工作模式1,16位定時模式。T1用測ECH0脈沖長度
  436.         TH1 = 0;                  
  437.     TL1 = 0;
  438.         ET1 = 1;             //允許T1中斷
  439. }

  440. /********************* Timer0中斷函數(shù)************************/
  441. void timer0_int (void) interrupt 1
  442. {
  443.          pwm_val_left++;
  444.          pwm_val_right++;
  445.          LoadPWM();//裝載PWM輸出
  446. }
  447. /* Timer0 interrupt routine */
  448. void tm1_isr() interrupt 3 using 1
  449. {
  450.         Timer1Overflow = 1;        //計數(shù)器1溢出標志位
  451.         EchoPin = 0;                //超聲波接收端        
  452. }   
復制代碼
   


請下載壓縮包解壓。
兩路4輪舵機避障小車程序.7z (818.55 KB, 下載次數(shù): 26)

兩路改4wd前小車舵機避障組裝指南.zip (17.75 MB, 下載次數(shù): 20)




評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:435636 發(fā)表于 2023-8-29 07:46 | 只看該作者
謝謝分享,可有材料清單?
回復

使用道具 舉報

板凳
ID:1091382 發(fā)表于 2023-9-4 17:07 | 只看該作者
有的材料清單
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级全黄 | 这里只有精品999 | 久草视频观看 | 日韩高清国产一区在线 | 久草在线| 91小视频在线 | 欧美另类视频在线 | 久久免费看 | 欧美亚洲视频在线观看 | 欧美一区二区三区精品 | 成人国产精品久久久 | av片网| 日韩欧美中文字幕在线观看 | 久久99精品久久久久久国产越南 | 99资源 | 91精品麻豆日日躁夜夜躁 | 国产视频一区二区 | 国产一区二区精 | 成人av免费在线观看 | 亚洲综合在线播放 | 91久久精| 殴美黄色录像 | 亚洲综合在| 九九九久久国产免费 | 天天色天天色 | 国产精品高潮呻吟久久久久 | 日韩欧美电影在线 | 日韩高清国产一区在线 | 国产精品免费观看视频 | 亚洲精品久久久久中文字幕欢迎你 | 国产亚洲一区二区三区 | 精品欧美久久 | 久久一区二区视频 | 一区二区三区视频在线观看 | 亚洲视频在线一区 | 久久99深爱久久99精品 | 欧美video | h视频免费在线观看 | 久久久国产精品 | 亚洲高清久久 | 国产精品区二区三区日本 |