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

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

QQ登錄

只需一步,快速開始

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

STM32步進(jìn)伺服電機(jī)梯形加速源程序 單軸簡(jiǎn)易運(yùn)動(dòng)控制器

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:82014 發(fā)表于 2018-4-26 12:32 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
步進(jìn)電機(jī)梯形加速程序

單片機(jī)源程序如下:
  1. /*基于STM32的單軸簡(jiǎn)易運(yùn)動(dòng)控制器/脈沖發(fā)生器*/
  2. /*脈沖+方向控制步進(jìn)伺服電機(jī)*/
  3. /*
  4. 優(yōu)化記錄:
  5. 增加急停GPIOC.0、正向極限GPIOC.1、負(fù)向極限GPIOC.2等輸入IO接點(diǎn)

  6. 中斷修改TIMx_PSC一個(gè)寄存器的值,而不是修改TIMx_ARR預(yù)加載寄存器+TIMx_CCRx比較值寄存器兩個(gè)值,縮短中斷處理時(shí)間

  7. 定位指令DRVI/DRVA中,目標(biāo)頻率設(shè)定過高、而實(shí)際輸出脈沖數(shù)過少時(shí),則不必加速到目標(biāo)頻率即進(jìn)入減速區(qū)
  8. */

  9. /*
  10. DRVI(A);相對(duì)定位,輸出A(A取絕對(duì)值)個(gè)脈沖
  11. A不能為0
  12. 若A為正數(shù),則方向?yàn)檎PIOB.0為高電平
  13. 若A為負(fù)數(shù),則方向?yàn)樨?fù)、GPIOB.0為低電平

  14. DRVA(A)  絕對(duì)定位,輸出脈沖,運(yùn)行至A個(gè)脈沖的位置
  15. 若目標(biāo)位置A等于當(dāng)前位置D,則不執(zhí)行脈沖輸出
  16. 若A大于D 則方向?yàn)檎GGPIOB.5為高電平
  17. 若A小于D 則方向?yàn)樨?fù)GPIOB.5為低電平

  18. GPIOB.1為脈沖輸出
  19. GPIOB.0為方向輸出
  20. 占空比為50%
  21. GPIOC.0急停
  22. GPIOC.1正向極限
  23. GPIOC.2反向極限
  24. GPIOC.3
  25. GPIOC.4
  26. GPIOC.5
  27. GPIOC.6
  28. GPIOC.7啟動(dòng)
  29. 階梯曲線形式加減速
  30. 加減速時(shí)間以10毫秒為基本單位
  31. 加減速以每10毫秒為一級(jí)
  32. 例如
  33. 加減速時(shí)間為50毫秒,則加減速級(jí)數(shù)為50/10=5
  34. 加減速時(shí)間為100毫秒,則加減速級(jí)數(shù)為100/10=10
  35. 加減速時(shí)間為150毫秒,則加減速級(jí)數(shù)為150/10=15
  36. */

  37. #include "sys.h"  
  38. #include "delay.h"

  39. #define  MasterFrequency  0x100000//最高頻率限制100K

  40. long Current;                        //當(dāng)前位置脈沖數(shù)
  41. long Target;                        //目標(biāo)位置脈沖數(shù)
  42. long StartSave;                        //定位指令剛開始啟動(dòng)時(shí)的當(dāng)前值
  43. long DownStartSave;                //開始進(jìn)入減速時(shí)的當(dāng)前值


  44. typedef enum
  45. {
  46.         OFF = 0,
  47.         ON = 1,
  48. }STATUS_Type;


  49. typedef enum
  50. {
  51.         us=1,
  52.         ms=1000,
  53.         sce=1000000,
  54. }DELAY_Type;


  55. STATUS_Type RunFlag;        //定位指令脈沖輸出執(zhí)行標(biāo)志
  56. STATUS_Type StopCommand;//定位指令脈沖輸出停止命令標(biāo)志
  57. STATUS_Type PlusMinus;        //正負(fù)方向標(biāo)志


  58. u32 StartFreq;                        //啟動(dòng)頻率
  59. u32 TargetFreq;                        //目標(biāo)頻率
  60. u32 UDTimer=1000;                        //加減速時(shí)間

  61. u32 LadderFreq[102];
  62. u16 LadderPSC[202];                //加減速0至9級(jí)速度/頻率預(yù)分頻值
  63. u16 LadderNum;                        //加減速速度級(jí)數(shù)
  64. u16 LadderOrderNum;                //加減速速度編號(hào)
  65. long LadderTarget[202];        //各速度等級(jí)目標(biāo)值
  66. int m;

  67. void MyTimer3_Init()//定時(shí)器3初始化
  68. {
  69.                 RCC->APB2ENR|=(1<<3)|(1<<0);   //使能AFIO、GPIOB時(shí)鐘
  70.                 GPIOB->CRL&=0xffffff00;  //PB5
  71.                 GPIOB->CRL|=0x000000a2;        //配置PORTB.1為復(fù)用推挽輸出、配置PORTB.0為推挽輸出,輸出最大頻率2MHz   00B000a2
  72.                 GPIOB->BRR=1<<0;
  73.                
  74.                 RCC->APB1ENR|=1<<1;           //使能定時(shí)器TIMER3時(shí)鐘
  75.                 TIM3->CR1|=1<<2;                                   //設(shè)置只有計(jì)數(shù)溢出作為T3更新中斷
  76.                 TIM3->DIER|=1<<0;                           //允許定時(shí)器3計(jì)數(shù)溢出中斷

  77.                 MY_NVIC_Init(1,3,TIM3_IRQn,2);
  78.                 TIM3->CCMR2&=~(3<<8);               //T3_CH4通道配置為輸出模式
  79.                 TIM3->CCMR2|=7<<12;                 //T3_CH4為PWM模式2
  80.                 TIM3->CCER|=1<<12;                  //T3_CH4通道輸出使能               
  81.                 TIM3->PSC=71;                  
  82. }


  83. void Pluse_start()
  84. {
  85.           
  86.                 RunFlag=ON;                             //脈沖輸出定位指令執(zhí)行標(biāo)志置ON
  87.                 StartSave=Current;
  88.                 LadderOrderNum=0;//加減速級(jí)數(shù)序號(hào)為0       
  89.                 TIM3->ARR=LadderPSC[0];
  90.     TIM3->CCR4=TIM3->ARR>>1;   //匹配值1等于重裝值一半,是以占空比為50%
  91.            //delay_ms(2);                       //脈沖信號(hào)比方向信號(hào)滯后,以提高可靠性
  92.        
  93.                 TIM3->CR1|=1<<0;              //啟動(dòng)定時(shí)器TIMER2計(jì)數(shù)
  94. }

  95. /*********************************************************************************
  96. 函數(shù)名稱:DRVI
  97. 函數(shù)功能:相對(duì)定位
  98. 入口參數(shù):long offset相對(duì)偏移脈沖,u32 frequency最高頻率
  99. 返回值:無
  100. *********************************************************************************/
  101. void DRVI(long offset,u32 frequency)
  102. {
  103.         u16 h;
  104.         u16 i;
  105.         u32 j;
  106.         if((offset!=0)&&(RunFlag==OFF)&&((GPIOC->IDR&0x01)==0))//相對(duì)偏移值為0則不接受命令,脈沖輸出已執(zhí)行,不接受命令
  107.         {       
  108.                 Target=Current+offset;     //目標(biāo)值等于當(dāng)前值加上相對(duì)偏移值
  109.                
  110.                 if(frequency<StartFreq)    //如果設(shè)定目標(biāo)頻率小于啟動(dòng)頻率
  111.                 {
  112.                         frequency=StartFreq;
  113.                 }
  114.                 else if(frequency>MasterFrequency)//否則如果設(shè)定目標(biāo)頻率高于最高限制頻率
  115.                 {
  116.                         frequency=MasterFrequency;
  117.                 }
  118.                
  119.                 LadderNum=UDTimer/10;//加減速級(jí)數(shù)
  120.                 j=(frequency-StartFreq)/LadderNum;//等差
  121.                 for(i=0;i<LadderNum;i++)
  122.                 {
  123.                         LadderFreq[i]=i*j+StartFreq;//加減速各階梯頻率
  124.                         LadderPSC[i]=(6000000/LadderFreq[i])-1;//加減速各階梯頻率對(duì)應(yīng)定時(shí)器預(yù)分頻值
  125.                 }
  126.                 LadderFreq[LadderNum]=frequency;//目標(biāo)頻率,最高頻率
  127.                 LadderPSC[LadderNum]=6000000/frequency-1;//目標(biāo)頻率(最高頻率)對(duì)應(yīng)定時(shí)器預(yù)分頻值
  128.                                
  129.                 if(offset>0)//相對(duì)偏移值為正數(shù)
  130.                 {
  131.                         GPIOB->BSRR=1<<0;//相對(duì)偏移值為正數(shù),方向?yàn)檎较蛐盘?hào)高電平
  132.                         PlusMinus=ON;//正負(fù)方向標(biāo)志置ON
  133.                        
  134.                         LadderTarget[0]=Current+StartFreq/100;//加速第一段目標(biāo)脈沖值
  135.                         for(i=1;i<LadderNum;i++)
  136.                         {
  137.                                 LadderTarget[i]=LadderTarget[i-1]+LadderFreq[i]/100;//加速各段目標(biāo)脈沖值
  138.                         }       
  139.                        
  140.                         while(offset<=((LadderTarget[LadderNum-1]-Current)<<1))//如果偏移量小于二倍加速增量
  141.                         {
  142.                                 LadderNum--;//加速等級(jí)數(shù)減一  頻率設(shè)定過高、實(shí)際輸出脈沖數(shù)過少的情況下不必加速至設(shè)定頻率,避免過沖
  143.                         }
  144.                        
  145.                         for(i=0,h=LadderNum<<1;  i<LadderNum;  i++,h--)
  146.                         {
  147.                                 LadderPSC[h]=LadderPSC[i];//減速各段定時(shí)器重裝值
  148.                         }
  149.                        
  150.                         LadderTarget[LadderNum<<1]=Target;//減速最后一段目標(biāo)脈沖值
  151.                         for(i=(LadderNum<<1)-1,h=0;i>LadderNum;i--,h++)
  152.                         {
  153.                                 LadderTarget[i]=LadderTarget[i+1]-LadderFreq[h]/100;//減速各段目標(biāo)脈沖值
  154.                         }
  155.                 }
  156.                 else//否則相對(duì)偏移值為負(fù)數(shù)                                             
  157.                 {
  158.                         GPIOB->BRR=1<<0;//相對(duì)偏移值為負(fù)數(shù),方向?yàn)樨?fù),方向信號(hào)低電平
  159.                         PlusMinus=OFF;//正負(fù)方向標(biāo)志OFF
  160.                        
  161.                         LadderTarget[0]=Current-StartFreq/100;//加速第一段目標(biāo)脈沖值
  162.                         for(i=1;i<LadderNum;i++)
  163.                         {
  164.                                 LadderTarget[i]=LadderTarget[i-1]-LadderFreq[i]/100;//加速各段目標(biāo)脈沖值
  165.                         }
  166.                        
  167.                         while(offset>=((LadderTarget[LadderNum-1]-Current)<<1))//如果偏移量小于二倍加速增量
  168.                         {
  169.                                 LadderNum--;//加速等級(jí)數(shù)減一  頻率設(shè)定過高、實(shí)際輸出脈沖數(shù)過少的情況下不必加速至設(shè)定頻率,避免過沖
  170.                         }
  171.                        
  172.                         for(i=0,h=LadderNum<<1;  i<LadderNum;  i++,h--)
  173.                         {
  174.                                 LadderPSC[h]=LadderPSC[i];
  175.                         }
  176.                        
  177.                         LadderTarget[LadderNum<<1]=Target;//減速最后一段目標(biāo)脈沖值
  178.                         for(i=(LadderNum<<1)-1,h=0;i>LadderNum;i--,h++)
  179.                         {
  180.                                 LadderTarget[i]=LadderTarget[i+1]+LadderFreq[h]/100;//減速各段目標(biāo)脈沖值
  181.                         }
  182.                 }
  183.                 LadderTarget[LadderNum]=Target + Current - LadderTarget[LadderNum-1];
  184.                 Pluse_start();//脈沖輸出正式啟動(dòng)
  185.         }
  186. }

  187. /*********************************************************************************
  188. 函數(shù)名稱:DRVA
  189. 函數(shù)功能:絕對(duì)定位
  190. 入口參數(shù):long target目標(biāo)位置脈沖,u32 frequency最高頻率
  191. 返回值:無
  192. *********************************************************************************/
  193. void DRVA(long target,u32 frequency)//3200  2khz
  194. {
  195.         u16 h;
  196.         u16 i;
  197.         u32 j;
  198.         long offset=target-Current;//
  199.         if((offset!=0)&&(RunFlag==OFF)&&((GPIOC->IDR&0x01)==0))    //目標(biāo)位置等于當(dāng)前位置,則不接受命令  
  200.         {                       
  201. ///////////////////////////////////////////////////////////////////////////////////////////////////////               
  202.                 Target=target;                 //目標(biāo)位置設(shè)定(等于參數(shù))
  203.                
  204.                 if(frequency<StartFreq)        //如果設(shè)定目標(biāo)頻率小于啟動(dòng)頻率
  205.                 {
  206.                         frequency=StartFreq;
  207.                 }
  208.                 else if(frequency>MasterFrequency)//否則如果設(shè)定目標(biāo)頻率高于最高限制頻率
  209.                 {
  210.                         frequency=MasterFrequency;
  211.                 }
  212.                 LadderNum=UDTimer/10;//加減速級(jí)數(shù) 分成100級(jí)
  213.                 j=(frequency-StartFreq)/LadderNum;//等差 每個(gè)階段所加的頻率數(shù)
  214.        
  215.                 for(i=0;i<LadderNum;i++)         //獲取每個(gè)階段的速度值
  216.                 {
  217.                         LadderFreq[i]=i*j+StartFreq;//加減速各階梯頻率 每個(gè)階段的速度 等級(jí)到J
  218.                         LadderPSC[i]=(1000000/LadderFreq[i])-1;//加減速各階梯頻率對(duì)應(yīng)定時(shí)器初值
  219.                 }
  220.                
  221.                 LadderFreq[LadderNum]=frequency;
  222.                 LadderPSC[LadderNum]=1000000/frequency-1;//  
  223. /////////////////////////////////////////////////////////////////////////////////////////////////////       
  224.            if(offset>0)//目標(biāo)位置值大于當(dāng)前位置值  
  225.                  {
  226.                         GPIOB->BSRR=1<<0;//則方向?yàn)檎较蛐盘?hào)高電平
  227.                         PlusMinus=ON;//正負(fù)方向標(biāo)志置ON
  228.                        
  229.                         LadderTarget[0]=Current+StartFreq/100;
  230.                         for(i=1;i<LadderNum;i++)
  231.                         {
  232.                                 LadderTarget[i]=LadderTarget[i-1]+LadderFreq[i]/100;
  233.                         }       
  234.                        
  235.                         while(offset<=((LadderTarget[LadderNum-1]-Current)<<1))//如果偏移量小于二倍加速增量
  236.                         {
  237.                                 LadderNum--;//加速等級(jí)數(shù)減一  頻率設(shè)定過高、實(shí)際輸出脈沖數(shù)過少的情況下不必加速至設(shè)定頻率,避免過沖
  238.                         }
  239.                        
  240.                         for(i=0,h=LadderNum<<1;  i<LadderNum;  i++,h--)
  241.                         {
  242.                                 LadderPSC[h]=LadderPSC[i];
  243.                         }
  244.                        
  245.                         LadderTarget[LadderNum<<1]=Target;//減速最后一段目標(biāo)脈沖值
  246.                         for(i=(LadderNum<<1)-1,h=0;i>LadderNum;i--,h++)
  247.                         {
  248.                                 LadderTarget[i]=LadderTarget[i+1]-LadderFreq[h]/100;//減速各段目標(biāo)脈沖值
  249.                         }
  250.      }
  251.                 else//否則目標(biāo)位置值小于當(dāng)前位置值,                                                          
  252.                 {
  253.                         GPIOB->BRR=1<<0;//則方向?yàn)樨?fù),方向信號(hào)低電平       
  254.                         PlusMinus=OFF;//正負(fù)方向標(biāo)志OFF
  255.                        
  256.                         LadderTarget[0]=Current-StartFreq/100;
  257.                         for(i=1;i<LadderNum;i++)
  258.                         {
  259.                                 LadderTarget[i]=LadderTarget[i-1]-LadderFreq[i]/100;
  260.                         }
  261.                        
  262.                         while(offset>=((LadderTarget[LadderNum-1]-Current)<<1))//如果偏移量小于二倍加速增量
  263.                         {
  264.                                 LadderNum--;//加速等級(jí)數(shù)減一  頻率設(shè)定過高、實(shí)際輸出脈沖數(shù)過少的情況下不必加速至設(shè)定頻率,避免過沖
  265.                         }               
  266.                         for(i=0,h=LadderNum<<1;  i<LadderNum;  i++,h--)
  267.                         {
  268.                                 LadderPSC[h]=LadderPSC[i];
  269.                         }               
  270.                         LadderTarget[LadderNum<<1]=Target;//減速最后一段目標(biāo)脈沖值
  271.                         for(i=(LadderNum<<1)-1,h=0;          i>LadderNum;   i--,h++)
  272.                         {
  273.                                 LadderTarget[i]=LadderTarget[i+1]+LadderFreq[h]/100;//減速各段目標(biāo)脈沖值
  274.                         }
  275.                 }
  276.                 LadderTarget[LadderNum]=Target + Current - LadderTarget[LadderNum-1];//勻速段目標(biāo)位置/進(jìn)入減速時(shí)位置        數(shù)組元素60
  277.                 Pluse_start();//脈沖輸出正式啟動(dòng)
  278.         }
  279. }

  280. /*********************************************************************************
  281. 函數(shù)名稱:SLOPE
  282. 函數(shù)功能:斜坡設(shè)置(坡度斜率設(shè)置)  限定啟動(dòng)頻率在100---1000之間 限制時(shí)間在50---1000
  283. 入口參數(shù):u32 frequency啟動(dòng)頻率,u32 timer加減速時(shí)間
  284. 返回值:無
  285. *********************************************************************************/
  286. void SLOPE(u32 frequency,u32 timer)//200hz 600
  287. {
  288.         if(frequency<100)               
  289.         {
  290.                 StartFreq=100;
  291.         }
  292.         else if(frequency>1000)
  293.                                 {
  294.                                         StartFreq=1000;
  295.                                 }
  296.                                 else                                       
  297.                                 {
  298.                                         StartFreq=frequency;
  299.                                 }//啟動(dòng)頻率設(shè)置大于等于100小于等于1000
  300.        
  301.         if(timer<50)               
  302.         {
  303.                 UDTimer=50;
  304.         }
  305.         else if(timer>1000)       
  306.                         {
  307.                                 UDTimer=1000;
  308.                         }
  309.                         else                               
  310.                         {               
  311.                                 UDTimer=(timer/10)*10; //取整數(shù)
  312.                         }//加減速時(shí)間設(shè)置 大于等于50小于等于1000,且為整十?dāng)?shù)
  313. }

  314. void TIM3_IRQHandler()      //定時(shí)器3全局中斷函數(shù)
  315. {
  316.         long temp;
  317.         if(TIM3->SR&0x0001)
  318.         {
  319.                 if(PlusMinus==ON)  
  320.                 {
  321.                         temp=Current;
  322.                //如果方向?yàn)檎?dāng)前值加一  
  323.                         temp++;
  324.                         Current=temp;
  325.                 }
  326.                 else   
  327.                 {
  328.                         temp=Current;
  329.                         temp--;       //否則方向?yàn)樨?fù),當(dāng)前值減一
  330.                         Current=temp;
  331.                 }
  332.                

  333.                 if(Current==LadderTarget[LadderOrderNum])
  334.                 {
  335.                         if(LadderOrderNum< (LadderNum<<1))
  336.                         {
  337.                                 LadderOrderNum++;
  338.                                 TIM3->PSC=LadderPSC[LadderOrderNum];
  339.                         }
  340.                         else
  341.                         {
  342.                                 TIM3->CR1&=~(1<<0);          
  343.                                 TIM3->CNT=0x0000;
  344.                                
  345.                                 RunFlag=OFF;         
  346.                         }
  347.                 }                               
  348.                
  349.                 TIM3->SR=0x0000;
  350.         }
  351. }
  352. void Variable_Init()
  353. {
  354.         Target=0;//目標(biāo)位置脈沖值
  355.         Current=0;//當(dāng)前位置脈沖值
  356.         RunFlag=OFF;//脈沖定位指令執(zhí)行標(biāo)志
  357.         StopCommand=OFF;//定位指令脈沖輸出停止命令標(biāo)志
  358. }
  359. void PAUSE()
  360. {
  361.         while(RunFlag==ON);       
  362. }


  363. int main(void)
  364. {
  365. //        Stm32_Clock_Init(9);
  366.         //delay_init(72);
  367.         MyTimer3_Init();        //定時(shí)器2初始化
  368.         Variable_Init();        //變量初始化
  369.         SLOPE(200,600);                //啟動(dòng)頻率200Hz,加減速時(shí)間600毫秒 斜率設(shè)置
  370.         DRVA(1200,4000);       
  371.         while(1)
  372.         {
  373.                             //以2KHz頻率前進(jìn)3200脈沖當(dāng)量距離
  374. //                                //PAUSE();                                //等待脈沖輸出執(zhí)行完畢
  375. //                                delay_ms(500);                                                                       
  376. //                          DRVA(0,20000);                //以2KHz頻率前進(jìn)3200脈沖當(dāng)量距離
  377. //                          PAUSE();                                //等待脈沖輸出執(zhí)行完畢
  378. //                          delay_ms(500);       
  379.   }
  380. }
復(fù)制代碼

所有資料51hei提供下載:
步進(jìn)電機(jī)寄存器版本.zip (698.35 KB, 下載次數(shù): 187)


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

使用道具 舉報(bào)

沙發(fā)
ID:445569 發(fā)表于 2019-2-2 11:08 | 只看該作者
學(xué)術(shù)型
回復(fù)

使用道具 舉報(bào)

板凳
ID:138247 發(fā)表于 2019-9-9 11:34 | 只看該作者

感謝分享,非常有幫助。。
回復(fù)

使用道具 舉報(bào)

地板
ID:245179 發(fā)表于 2019-10-21 16:56 | 只看該作者
寫的不錯(cuò),已分享使用
回復(fù)

使用道具 舉報(bào)

5#
ID:334838 發(fā)表于 2019-10-24 15:11 | 只看該作者
學(xué)習(xí)下,正好需要做電機(jī)控制
回復(fù)

使用道具 舉報(bào)

6#
ID:626923 發(fā)表于 2019-10-28 22:31 | 只看該作者
學(xué)習(xí)下
回復(fù)

使用道具 舉報(bào)

7#
ID:579837 發(fā)表于 2019-12-18 00:01 | 只看該作者
最近正在學(xué)習(xí)電機(jī)控制,謝謝分享
回復(fù)

使用道具 舉報(bào)

8#
ID:236035 發(fā)表于 2019-12-20 10:51 | 只看該作者
謝謝樓主分享,這是個(gè)弱項(xiàng),還沒搞過項(xiàng)目。
回復(fù)

使用道具 舉報(bào)

9#
ID:353855 發(fā)表于 2020-2-9 18:19 | 只看該作者
感謝分享,非常有幫助。。
回復(fù)

使用道具 舉報(bào)

10#
ID:353855 發(fā)表于 2020-2-18 16:21 | 只看該作者
寫的不錯(cuò),已分享使用
回復(fù)

使用道具 舉報(bào)

11#
ID:25103 發(fā)表于 2020-7-16 12:12 | 只看該作者
仿真好像不能用,請(qǐng)教樓主,謝謝!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: www国产成人免费观看视频,深夜成人网 | 国偷自产av一区二区三区 | 国产精品日日做人人爱 | 男女免费视频网站 | 午夜影院黄| 本道综合精品 | 国产精品久久久久久久久久久久冷 | 九色网址 | 九色视频网站 | 欧美日韩一区二区视频在线观看 | 狠狠亚洲 | 国产高清视频在线观看 | 中文字幕第一页在线 | 亚洲视频一区 | 亚洲国产精品激情在线观看 | 成人午夜在线 | 国产欧美日韩综合精品一区二区 | 日韩在线视频观看 | 亚欧精品一区 | 久久偷人| 波多野结衣中文字幕一区二区三区 | 日本一区二区高清视频 | 国产精品久久一区 | 99免费在线| aaaa网站| 亚洲一区 中文字幕 | 国产精品一区二区三区四区 | 欧美日韩一区二区在线播放 | 国产一区二区三区欧美 | 91成人影院 | 99久久精品免费看国产免费软件 | 国产精品免费看 | 97精品一区二区 | 亚洲国产一区二区三区四区 | 精品亚洲一区二区三区四区五区高 | 亚洲一区二区三区免费在线观看 | 一级做a爰片性色毛片视频停止 | 国产精品免费一区二区三区 | 欧美一区二区二区 | 中文字幕av一区 | 正在播放国产精品 |