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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 39239|回復: 59
收起左側

基于51單片機的4軸飛控 原理圖及程序

  [復制鏈接]
ID:122843 發表于 2016-5-24 13:48 | 顯示全部樓層 |閱讀模式
51單片機4軸飛控
0.png 0.png

四軸-四元數-互補濾波-串級PID -STCunio的電機和槳程序:

  1. //                                                 STCunio
  2. //四川 綿陽  西南科技大學 信息工程學院 電氣13級 劉其民  技術支持   
  3. //本人只提供有限技術支持,截止時間:2015年3月1號,過時不候,請勿打擾。
  4. //本人今年大二上期,由于技術有限提問時請不要超過本程序及本硬件的范圍,什么捷聯慣導技術,擴展卡爾曼,梯度下降濾波
  5. //就不要問了,我也不懂,最近在自學自動控制原理,還是個小渣渣,連STM32都不會,做個四軸都還是只能苦逼地用51單片機
  6. //本程序屬于完全開源程序,允許用于進行二次開發,但是不能做細小改動后就聲明自己擁有版權,
  7. //對于抄襲后又聲明自己有版權是自己開發的我只想說我QNMLGB。

  8. //修改本程序應注意!
  9. //如果將此程序優化,修改,增加功能,須開源至阿莫論壇 STC 1T單片機 版塊
  10. //使用本程序應遵循GNUGPL協議!

  11. //本程序屬于本硬件的最終版本,不會繼續升級,但是會不定期的發布修復Bug后的程序。

  12. //特別鳴謝在研發過程中給予支持的朋友及團體:
  13. //                                         西南科技大學 電氣09級 劉暢
  14. //                                         西南科技大學 嵌入式技術實驗室 何科君
  15. //                                         西南科技大學 航空航天學社暨空氣動力學實驗室
  16. //*************************************2015年2月14日 著**************************************************************
  17. //硬件參數:
  18. //電池:1S/3.7V電池 推薦300-650mAh左右   500mah以上的電池推薦安裝在背面
  19. //電機/槳:720空心杯/59MM槳         
  20. //   特別聲明:本程序測試的空心杯為淘寶店鋪 深圳杰盛電機 的720空心杯 其他廠家的電機不適用于本程序,除非自行調整PID
  21. //             本程序測試的螺旋槳為淘寶店鋪 虎虎平價店 的59MM直徑 1mm孔徑螺旋槳 其他廠家的螺旋槳不適用于本程序,除非自行調整PID
  22. //MCU IAP15W4K61S4@28.000MHZ  (B版!A版單片機絕對不適合!)
  23. //特別說明,本程序目前只適合IAP系列的單片機,非IAP單片機使用須修改EEPROM讀寫地址
  24. //陀螺儀加速度計:MPU-6050
  25. //無線芯片:NRF24L01
  26. //電機驅動MOS管:AO3400
  27. //升壓方案:BL8530
  28. //3.3V穩壓方案:ME6219C-33-M5G
  29. //下載口保護:1K電阻
  30. //機架尺寸:94mm*94mm

  31. //設計失誤的地方:
  32. //MOS管保護用的肖特基放錯了位置,不過完全不影響使用,這種小四軸不加肖特基保護都行。

  33. //軟件參數:
  34. //姿態解算:四元數
  35. //濾波:互補濾波(From 德國開源四軸)
  36. //PID:串級PID 外環PI,內環PID

  37. //數據定義說明:
  38. //data 51單片機片內RAM最前面128字節RAM 用ACC讀寫,速度最快
  39. //idata 片內RAM最前面256字節的RAM 包括data 用類似指針模式訪問 適合用于指針操作
  40. //pdata 外部擴展RAM的前256字節的RAM 不要用 會大姨媽!
  41. //xdata 外部擴展RAM 用DPTR訪問
  42. #include <STC15W4K60S4.H>
  43. #include <intrins.h>
  44. #include <NRF24L01.H>
  45. #include <MPU6050.H>
  46. #include <math.h>
  47. #include <STC15W4KPWM.H>
  48. #include <Timer.h>
  49. #include <EEPROM.h>
  50. #include <USART.h>
  51. #include <IMU.H>
  52. //******************************************************************************************************
  53. float XE=0,YE=0;                 //角度人為修正,但是四軸漂移一般是硬件造成的,故不將此值寫入EEPROM,這個只是應急使用,發現漂移應
  54.                                  //連至上位機檢查電機軸是否發生彎曲,發現問題電機及時更換
  55. float YM=0;              //油門變化速度控制,不這樣做的話快速變化油門時四軸會失速翻轉并GG
  56. int ich1=0,ich2=0,ich3=0,ich4=0,ich5=0,ich6=0;                                 //無線串口/串口相關
  57. int speed0=0,speed1=0,speed2=0,speed3=0,V=0;           //電機速度參數
  58. int PWM0=0,PWM1=0,PWM2=0,PWM3=0;  //加載至PWM模塊的參數
  59. int g_x=0,g_y=0,g_z=0;            //陀螺儀矯正參數
  60. char a_x=0,a_y=0;                 //角度矯正參數
  61. unsigned char TxBuf[20]={0};
  62. unsigned char RxBuf[20]={0};  
  63. double PID_x=0,PID_y=0,PID_z=0;  //PID最終輸出量
  64. float FR1=0,FR2=0,FR3=0;         //將char數據轉存為float型
  65. //*****************角度參數*************************************************
  66. double Gyro_y=0,Gyro_x=0,Gyro_z=0;        //Y軸陀螺儀數據暫存
  67. double Accel_x=0,Accel_y=0,Accel_z=0;            //X軸加速度值暫存
  68. double Angle_ax=0,Angle_ay=0,Angle_az=0;  //由加速度計算的加速度(弧度制)
  69. double Angle_gy=0,Angle_gx=0,Angle_gz=0;  //由角速度計算的角速率(角度制)
  70. double AngleAx=0,AngleAy=0;               //三角函數解算出的歐拉角
  71. double Angle=0,Angley=0;                  //四元數解算出的歐拉角
  72. double Anglezlate=0;                      //Z軸相關
  73. double Ax=0,Ay=0;                         //加入遙控器控制量后的角度
  74. //****************姿態處理和PID*********************************************
  75. float Out_PID_X=0,Last_Angle_gx=0;//外環PI輸出量  上一次陀螺儀數據
  76. float Out_XP=35,Out_XI=0.01,ERRORX_Out=0;//外環P  外環I  外環誤差積分
  77. float In_XP=0.4,In_XI=0.01,In_XD=9,ERRORX_In=0;//內環P  內環I   內環D  內環誤差積分

  78. float Out_PID_Y=0,Last_Angle_gy=0;
  79. float Out_YP=35,Out_YI=0.01,ERRORY_Out=0;
  80. float In_YP=0.4,In_YI=0.01,In_YD=9,ERRORY_In=0;

  81. float ZP=5.0,ZD=4.0;//自旋控制的P D

  82. int lastR0=0,ZT=0; //上一次RxBuf[0]數據(RxBuf[0]數據在不斷變動的)   狀態標識
  83. int i=0;
  84. void Angle_Calculate() interrupt 1
  85. {        
  86.         //if(YM<RxBuf[4]&&(RxBuf[4]-YM)<=2){YM++;YM++;}
  87.         //else if(YM>RxBuf[4]&&(YM-RxBuf[4])<=2){YM--;YM--;}  //防止油門變化過快而失速
  88.         //else {YM=RxBuf[4];}
  89.         if(RxBuf[1]>FR1){FR1+=0.2;}else if(RxBuf[1]<FR1){FR1-=0.2;}
  90.         if(RxBuf[2]>FR2){FR2+=0.2;}else if(RxBuf[2]<FR2){FR2-=0.2;}
  91.         
  92.         YM=(float)RxBuf[4]*3/4;
  93.         
  94.         if(YM>100)//如果油門大于100 即開始起飛
  95.         {
  96.                 if(RxBuf[0]==lastR0)//如果RxBuf[0]的數據沒有收到 即矢聯
  97.                 {
  98.                         ZT++;  //狀態標識+1
  99.                         if(ZT>128){ZT=128;}  //狀態標識大于128即1秒沒有收到數據,失控保護
  100.                 }
  101.                 else{ZT=0;}
  102.         }
  103.         else{ZT=0;} //收到信號退出失控保護
  104.         if(ZT==128){YM=101;RxBuf[1]=128;RxBuf[2]=128;} //觸發失控保護 油門為1半少一點,緩慢下降,俯仰橫滾方向舵歸中
  105.         lastR0=RxBuf[0];
  106.         
  107.         i++;
  108.         if(i==130){i=129;}
  109.         Accel_y= GetData(ACCEL_YOUT_H);        //讀取6050數據
  110.         Accel_x= GetData(ACCEL_XOUT_H);                  
  111.         Accel_z= GetData(ACCEL_ZOUT_H);            
  112.         Gyro_x = GetData(GYRO_XOUT_H)-g_x;
  113.         Gyro_y = GetData(GYRO_YOUT_H)-g_y;
  114.         Gyro_z = GetData(GYRO_ZOUT_H)-g_z;        
  115.         Last_Angle_gx=Angle_gx;   //儲存上一次角速度數據
  116.         Last_Angle_gy=Angle_gy;        
  117.         Angle_ax=(Accel_x)/8192;  //加速度處理
  118.         Angle_az=(Accel_z)/8192;  //加速度量程 +-4g/S
  119.         Angle_ay=(Accel_y)/8192;        //轉換關系8192LSB/g
  120.         Angle_gx=(Gyro_x)/65.5;   //陀螺儀處理
  121.         Angle_gy=(Gyro_y)/65.5;   //陀螺儀量程 +-500度/S
  122.         Angle_gz=(Gyro_z)/65.5;   //轉換關系65.5LSB/度
  123. //***********************************四元數解算***********************************
  124.         IMUupdate(Angle_gx*0.0174533,Angle_gy*0.0174533,Angle_gz*0.0174533,Angle_ax,Angle_ay,Angle_az);
  125.         //0.174533為PI/180 目的是將角度轉弧度
  126. //********************三角函數直接解算以供比較四元數解算精準度********************
  127.         AngleAx=atan(Angle_ax/sqrt(Angle_ay*Angle_ay+Angle_az*Angle_az))*57.2957795f; //后面的數字是180/PI 目的是弧度轉角度
  128.   AngleAy=atan(Angle_ay/sqrt(Angle_ax*Angle_ax+Angle_az*Angle_az))*57.2957795f;
  129. //**************X軸指向***********************************************************
  130.         FR1=((float)RxBuf[1]-128)/7; //char類型轉存為float以便除法運算
  131.         
  132.         Ax=Angle-FR1-a_x;      //角度控制量加載至角度
  133.         
  134.         if(YM>20)
  135.         {
  136.   ERRORX_Out+=Ax;//外環積分(油門小于某個值時不積分)
  137.         }
  138.         else
  139.         {
  140.                 ERRORX_Out=0; //油門小于定值時清除積分值
  141.         }
  142.         if(ERRORX_Out>500){ERRORX_Out=500;}
  143.         else if(ERRORX_Out<-500){ERRORX_Out=-500;}//積分限幅
  144.         
  145.         Out_PID_X=Ax*Out_XP+ERRORX_Out*Out_XI;//外環PI
  146.         
  147.         if(YM>20)
  148.         {
  149.   ERRORX_In+=(Angle_gy-Out_PID_X);  //內環積分(油門小于某個值時不積分)
  150.         }        
  151.   else
  152.         {
  153.                 ERRORX_In=0; //油門小于定值時清除積分值
  154.         }        
  155.         if(ERRORX_In>500){ERRORX_In=500;}
  156.   else if(ERRORX_In<-500){ERRORX_In=-500;}//積分限幅
  157.         
  158.         PID_x=(Angle_gy+Out_PID_X)*In_XP+ERRORX_In*In_XI+(Angle_gy-Last_Angle_gy)*In_XD;//內環PID
  159.         
  160.   if(PID_x>1000){PID_x=1000;}  //輸出量限幅
  161.         if(PID_x<-1000){PID_x=-1000;}
  162.         
  163.         speed0=0-PID_x,speed2=0+PID_x;
  164. //**************Y軸指向**************************************************
  165.         if(RxBuf[2]>=143||RxBuf[2]<=113);else{RxBuf[2]=128;}
  166.         FR2=((float)RxBuf[2]-128)/7; //char類型轉存為float以便除法運算
  167.         Ay=Angley+FR2-a_y;      //角度控制量加載至角度
  168.         
  169.         if(YM>20)
  170.         {
  171.   ERRORY_Out+=Ay;//外環積分(油門小于某個值時不積分)
  172.         }
  173.         else
  174.         {
  175.                 ERRORY_Out=0; //油門小于定值時清除積分值
  176.         }        
  177.         if(ERRORY_Out>500){ERRORY_Out=500;}
  178.         else if(ERRORY_Out<-500){ERRORY_Out=-500;}//積分限幅
  179.         
  180.         Out_PID_Y=Ay*Out_YP+ERRORY_Out*Out_YI;//外環PI
  181.         
  182.         if(YM>20)
  183.         {
  184.   ERRORY_In+=(Angle_gx-Out_PID_Y);  //內環積分(油門小于某個值時不積分)
  185.         }               
  186.         else
  187.         {
  188.                 ERRORY_In=0; //油門小于定值時清除積分值
  189.         }        
  190.         if(ERRORY_In>500){ERRORY_In=500;}
  191.   else if(ERRORY_In<-500){ERRORY_In=-500;}//積分限幅
  192.         
  193.         PID_y=(Angle_gx+Out_PID_Y)*In_YP+ERRORY_In*In_YI+(Angle_gx-Last_Angle_gx)*In_YD;//內環PID
  194.         
  195.   if(PID_y>1000){PID_y=1000;}  //輸出量限幅
  196.         if(PID_y<-1000){PID_y=-1000;}
  197.         
  198.         speed3=0+PID_y,speed1=0-PID_y;//加載到速度參數
  199. //**************Z軸指向(Z軸隨便啦,自旋控制沒必要上串級PID)*****************************        
  200.         FR3=((float)RxBuf[3]-128)*1.5;
  201.         Angle_gz-=FR3;
  202.         PID_z=(Angle_gz)*ZP+(Angle_gz-Anglezlate)*ZD;
  203.         Anglezlate=Angle_gz;
  204.         speed0=speed0+PID_z,speed2=speed2+PID_z;
  205.         speed1=speed1-PID_z,speed3=speed3-PID_z;
  206. //*****************串口及無線串口相關***************************************************
  207.         ich1=Ax;
  208.         ich2=Ay;
  209.         ich3=AngleAx;                 //此處可發送6個數據至上位機,需要發送什么數據在此處修改即可
  210.         ich4=AngleAy;
  211.         ich5=0;
  212.         ich6=0;
  213. //**************將速度參數加載至PWM模塊*************************************************        
  214.         PWM0=(1000-YM*4+speed0);
  215.         if(PWM0>1000){PWM0=1000;}    //速度參數控制,防止超過PWM參數范圍0-1000
  216.         else if(PWM0<0){PWM0=0;}

  217.         PWM1=(1000-YM*4+speed1);
  218.         if(PWM1>1000){PWM1=1000;}
  219.         else if(PWM1<0){PWM1=0;}

  220.         PWM2=(1000-YM*4+speed2);
  221.         if(PWM2>1000){PWM2=1000;}
  222.         else if(PWM2<0){PWM2=0;}
  223.         
  224.         PWM3=(1000-YM*4+speed3);
  225.         if(PWM3>1000){PWM3=1000;}
  226.         else if(PWM3<0){PWM3=0;}
  227.   if(YM>=10)
  228.         {PWM(PWM1,PWM2,PWM0,PWM3);}//1203
  229.         else
  230.         {PWM(1000,1000,1000,1000);}

  231. }
  232. void main()
  233. {
  234. PWMGO();//初始化PWM
  235. IAPRead();//讀取陀螺儀靜差
  236. InitMPU6050();//初始化MPU-6050
  237. Usart_Init();//初始化串口
  238. Time0_Init();//初始化定時器
  239. RxBuf[1]=128;
  240. RxBuf[2]=128;
  241. RxBuf[3]=128;
  242. RxBuf[4]=0;
  243. while(1)
  244. {           
  245.                                 Delay(500);
  246.                                 nRF24L01_RxPacket(RxBuf);
  247.                                 if(RxBuf[5]==1&&i>128)        
  248.         {
  249.                                 IAP_Gyro();
  250.                                 RxBuf[5]=0;
  251.                                 EA=0;
  252.                                 PWMCKS=0x10;         
  253.                                 T2L = 0xEB;        
  254.               T2H = 0xFF;
  255.                                 PWM(960,960,960,960);
  256.               Delay(60000); //校準完畢滴一聲
  257.         PWM(1000,1000,1000,1000);        
  258.         PWMCKS=0x00;
  259.         EA=1;
  260.         i=0;                                       
  261.                                 }
  262.                                 if(RxBuf[6]==1&&i>128)        
  263.         {
  264.                                 IAP_Angle();
  265.                                 RxBuf[6]=0;
  266.                                 EA=0;
  267.                                 PWMCKS=0x10;         
  268.                                 T2L = 0xEB;        
  269.               T2H = 0xFF;
  270.                                 PWM(960,960,960,960);
  271.               Delay(60000);  //校準完畢滴一聲
  272.         PWM(1000,1000,1000,1000);        
  273.         PWMCKS=0x00;
  274.                                 EA=1;        
  275.                                 i=0;
  276.                                 }
  277.               //Send(ich1,ich2,ich3,ich4,ich5,ich6);  //串口發送數據  如需連接上位機,須取消注釋本句!!!注釋本句是為了減小遙控延時
  278. }
  279. }
復制代碼



0.png
所有資料下載:
IAP15W4K58S4-小四軸飛行器DIY.rar (524.63 KB, 下載次數: 567)

評分

參與人數 9黑幣 +108 收起 理由
peeta + 6 很給力!
藍色思戀 + 5 很給力!
tieq1952 + 12 很給力!
yjg1 + 5
JACKLI + 12 共享資料的黑幣獎勵!
宇宙奧特曼 + 5 很給力!
想飛的豬1 + 5 贊一個!
赤炎木 + 8 贊一個!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:125512 發表于 2016-6-17 19:29 | 顯示全部樓層
這是全部的程序?包括接收器的?
回復

使用道具 舉報

ID:127462 發表于 2016-6-21 17:55 | 顯示全部樓層
好資料,學習,學習謝謝
回復

使用道具 舉報

ID:64273 發表于 2016-8-3 16:38 | 顯示全部樓層
好久沒上,黑幣不夠啊
回復

使用道具 舉報

ID:137408 發表于 2016-8-23 17:02 來自手機 | 顯示全部樓層
好好,學習學習
回復

使用道具 舉報

ID:147232 發表于 2016-11-10 11:11 | 顯示全部樓層
感覺好棒啊
回復

使用道具 舉報

ID:146818 發表于 2016-11-10 11:22 | 顯示全部樓層
好東西
回復

使用道具 舉報

ID:8940 發表于 2016-11-24 18:21 | 顯示全部樓層
51單片機的4元素 算法 找了好久啊
回復

使用道具 舉報

ID:8940 發表于 2016-11-24 18:54 | 顯示全部樓層
樓主 問一下
你的4元素 是自己算的嗎
4元素不是都要利用DMP讀取的嗎
回復

使用道具 舉報

ID:85702 發表于 2016-12-4 02:37 | 顯示全部樓層
好資料,學習
回復

使用道具 舉報

ID:189743 發表于 2017-4-15 09:55 | 顯示全部樓層
好資料學習學習!!!!
回復

使用道具 舉報

ID:171069 發表于 2017-4-19 14:44 來自手機 | 顯示全部樓層
對我幫助很大
回復

使用道具 舉報

ID:184999 發表于 2017-5-19 14:47 | 顯示全部樓層
Mark,等金幣夠了再下載
回復

使用道具 舉報

ID:204748 發表于 2017-5-27 12:57 來自手機 | 顯示全部樓層
謝謝分享。謝謝奉獻。謝謝樓主。
回復

使用道具 舉報

ID:198493 發表于 2017-6-8 05:18 | 顯示全部樓層
非常感謝,幫了不少忙
回復

使用道具 舉報

ID:212139 發表于 2017-6-17 21:56 | 顯示全部樓層
看看,學習學習!!!!!!!!!!
回復

使用道具 舉報

ID:221065 發表于 2017-7-20 13:06 | 顯示全部樓層

看看,學習學習!!!!!!!!!!
回復

使用道具 舉報

ID:218461 發表于 2017-7-24 10:41 | 顯示全部樓層
很棒,好好學習
回復

使用道具 舉報

ID:183134 發表于 2017-8-2 11:14 | 顯示全部樓層
黑金扣了,卻不能下載
回復

使用道具 舉報

ID:224563 發表于 2017-8-4 00:05 | 顯示全部樓層
很尷尬。。。一開始弄得跟樓主有點出入啊。。PID不太會怎么辦
回復

使用道具 舉報

ID:224687 發表于 2017-8-4 14:30 | 顯示全部樓層
感謝樓主
回復

使用道具 舉報

ID:229018 發表于 2017-8-23 19:23 | 顯示全部樓層
很不錯,大贊
回復

使用道具 舉報

ID:230531 發表于 2017-9-2 11:07 | 顯示全部樓層
感謝樓主哈哈哈哈哈哈哈
回復

使用道具 舉報

ID:138001 發表于 2017-9-4 19:23 來自手機 | 顯示全部樓層
厲害了
回復

使用道具 舉報

ID:235962 發表于 2017-9-28 09:30 | 顯示全部樓層
好資料,學習學習
回復

使用道具 舉報

ID:238653 發表于 2017-10-11 17:42 | 顯示全部樓層
好東西
回復

使用道具 舉報

ID:233325 發表于 2017-10-25 15:58 來自手機 | 顯示全部樓層
看起來好復雜啊
回復

使用道具 舉報

ID:244912 發表于 2017-11-1 13:39 來自手機 | 顯示全部樓層
新人,能不能發到我郵箱
回復

使用道具 舉報

ID:79544 發表于 2017-11-7 09:29 | 顯示全部樓層
感謝分享,好資料!
回復

使用道具 舉報

ID:258198 發表于 2017-12-6 15:42 | 顯示全部樓層
正需求,下載來看看,謝謝了。
回復

使用道具 舉報

ID:268888 發表于 2018-2-2 10:07 | 顯示全部樓層
原來還是挺復雜的 ,我也想用51單片機做一個,直升機的飛控,不知道怎么樣
回復

使用道具 舉報

ID:270953 發表于 2018-2-2 14:25 | 顯示全部樓層
新手
下來學習看看
回復

使用道具 舉報

ID:295069 發表于 2018-3-21 16:14 | 顯示全部樓層
好好學習 天天向上
回復

使用道具 舉報

ID:223788 發表于 2018-3-24 22:59 | 顯示全部樓層
樓主有沒有用51做過平衡車,能不能分享一下經驗
回復

使用道具 舉報

ID:330909 發表于 2018-5-15 23:44 來自手機 | 顯示全部樓層
膜拜大佬
回復

使用道具 舉報

ID:253767 發表于 2018-5-29 08:02 | 顯示全部樓層
好好學習 天天向上
回復

使用道具 舉報

ID:378374 發表于 2018-7-24 10:57 | 顯示全部樓層
好好學習 天天向上

評分

參與人數 1黑幣 +4 收起 理由
江畔舊時月 + 4 很給力!

查看全部評分

回復

使用道具 舉報

ID:378773 發表于 2018-9-14 13:58 | 顯示全部樓層
很給力,希望我也能做成
回復

使用道具 舉報

ID:435813 發表于 2018-11-30 09:52 | 顯示全部樓層
給力給力給力
回復

使用道具 舉報

ID:425360 發表于 2018-12-21 04:29 | 顯示全部樓層
好東西,謝謝樓主分享,加油學習才是真的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩中文字幕 | 国产高清视频在线播放 | 天天拍天天操 | 国产精品欧美精品日韩精品 | 99在线视频观看 | 国产欧美精品一区二区三区 | 亚洲国产精品久久久久久 | 国产免费观看一区 | 国际精品鲁一鲁一区二区小说 | 亚洲第一av网站 | 久久亚洲国产 | 午夜电影在线播放 | 久久久精品日本 | 国产精品久久久久久久免费大片 | 亚洲天堂av网 | 亚洲九九精品 | 亚洲国产伊人 | 久久一区二区av | 99精品久久| 日韩一区精品 | 欧美日韩高清在线一区 | 日韩成人国产 | 亚洲欧美视频一区 | 亚洲一区二区三区观看 | 成人小视频在线观看 | 中文字幕在线视频免费观看 | 欧美天堂在线观看 | 成人国产免费视频 | 亚洲激情在线 | 性在线 | 九九热精品在线视频 | 国产91黄色| 国产91久久久久蜜臀青青天草二 | 亚洲一区免费 | 亚洲午夜精品一区二区三区他趣 | 天天干天天爱天天操 | 久久网日本 | 日韩精品色网 | 99精品视频一区二区三区 | 日本在线视频一区二区 | 伦理二区 |