无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频

中國自動化學會專家咨詢工作委員會指定宣傳媒體
文摘詳情
gkongbbs

單片機與mpc006運動控制模塊組成的三軸運動控制系統

http://www.moduwu.com 2014-11-26 21:57 y6yy44y

單片機與mpc006運動控制模塊組成的三軸運動控制系統

摘要:采用單片機stc89C2051和mpc006微型運動控制模塊作為控制系統的核心,控制三路步進電機做運動實驗。單片機發送指令給mpc006微型運動控制模塊,模塊信號輸出給步進驅動器作高速度運動。可以定點運動,直線插補和圓弧插補。

1.引言

運動控制的應用在國內已有十幾年的歷史,技術也相當成熟。通常運動控制都需要用到運動控制卡,運動控制器等產品,但這些產品價格高昂,使用復雜,也不適合由單片機構成的控制系統。而如果直接采用單片機來做運動控制,由于運動控制對系統性能要求非常高,單片機速度資源有限,難以設計出性能優良的運動控制模型。因此,本文采用單片機和專業的mpc006微型運動控制模塊構成運動控制系統。

MPC006微型運動控制模塊采用新型FPGA設計,集成實用運動控制功能,可與普通單片機通過串口通訊對步進電機和伺服電機控制。具有如下特點:

◆   串口通訊,僅需使用幾條指令,簡單可靠。

◆   單模塊最高六軸輸出,多個模塊組網工作可達120軸。

◆   最大脈沖輸出頻率為2MHz,脈沖輸出使用脈沖+方向方式。

◆   最高六軸獨立運動控制,任意兩軸直線插補,任意兩軸圓弧插補。

◆   每軸一路硬件回原點。

◆   模塊帶1000級指令緩存深度,指令先進先出。

◆  模塊體積小巧,僅3.5*2.5*1.5cm,雙排直插30腳。

2,系統硬件設計

硬件系統由四部分構成:

  1. 單片機部分

單片機與模塊只需三根線連接,用作串口通訊的RXD和TXD,用作模塊緩存滿輸出的BUSY信號。P3.7引出一按鍵作為測試使用。

  1. mpc006微型運動控制模塊部分

mpc006微型運動控制模塊采用5V電源供電,RXD,TXD,BUSY與單片機連接。X0,X1,X2可作為三路電機的原點信號,P1,D1為1軸的脈沖和方向信號。P2,D2為2軸的脈沖和方向信號。P3,D3為3軸的脈沖和方向信號。

(3)原點信號輸入部分

原點采用光藕隔離輸入,輸入端可接NPN型光電開關來作為原點信號。

  1. 信號輸出部分

輸出采用NPN晶體管極電極開路輸出,分別接到電機驅動器脈沖和方向信號輸入端。

3,系統軟件設計

MPC006微型運動控制模塊與單片機串口通訊速率為115200bps,數據位為8位,停止位0位,無校驗。使用函數前先設置好單片機的串口功能,并將需要用到的函數的原型拷貝到當前程序內。

試驗程序如下:

#include <reg52.h>

//-----STC89C2051-------

sfr IPH           =0XB7;        

sfr   CCON     =0XD8;

sfr   CMOD    =0XD9;

sfr   CL          =0XE9;

sfr   CH          =0XF9;

sfr   CCAP0L  =0XEA;

sfr   CCAP0H =0XFA;

sfr   CCAPM0 =0XDA;

sfr   CCAPM1 =0XDB;

sfr P3M1= 0XB1;

sfr P3M0= 0XB2;

sfr P1M1= 0X91;

sfr P1M0= 0X92;

sfr WAKE_CLKO= 0X8f;

sfr BRT     =0x9c;

sfr AUXR     =0x8E;

sfr AUXR1   = 0xA2;  

sfr WDT_CONTR = 0xc1;        

sfr T2MOD  = 0xC9;          

//////////////////

sbit busy = P3^2;

sbit s1     =     P3^7;

void initial()

{

      P3M1 = 0x00;

      P3M0 = 0x80;

      P1M1 = 0x00;

      P1M0 = 0xf9;                                  

}

void init_uart()

{

  PCON &= 0x7f;  //波特率不倍速

  SCON = 0x50;  //8位數據,可變波特率

  BRT = 0xFD;      //設定獨立波特率發生器重裝值 波特率115200bps

  AUXR |= 0x04;  //獨立波特率發生器時鐘為Fosc,即1T

  AUXR |= 0x01;  //串口1選擇獨立波特率發生器為波特率發生器

  AUXR |= 0x10;  //啟動獨立波特率發生器

}

/*

串口發送一個字節,需根據所使用的單片機作適當更改。

*/

void USART_Txbyte(unsigned char i)

{

   SBUF   =   i;

   while(TI ==0); //等待發送完成

   TI     =   0;  //清零串口發送完成中斷請求標志

}

/*

串口接收模塊返回的10個字節數據,需根據所使用的單片機作適當更改。

*/

void receive(unsigned char *buf)

{

unsigned char i;

for(i=0;i<10;i++)

  {

  while(RI==0);

    RI=0;

  buf[i]=SBUF;

  }

}

/*

串口發送一串數據。

*/

void USRAT_transmit(unsigned char *fdata,unsigned char len)

{

  unsigned char i;                                                                          

            

  for(i=0;i<len;i++)

  {

     USART_Txbyte(fdata[i]);      

  }

}  

/*

函數名:   inp_move

功能:二軸直線插補

參數:

cardno    卡號

no1   X軸軸號

no2   Y軸軸號

pulse1,pulse2                       X-Y軸移動的距離,范圍(-8388608~+8388607)

mode  0:相對坐標  1:絕對坐標

返回值:

0 失敗           1  成功

*/

unsigned char inp_move(unsigned char cardno,unsigned char no1 ,unsigned char no2 , long pulse1  ,long pulse2 ,unsigned char mode )

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68;

OutByte[1] = 0x0F;

OutByte[2] = cardno;

OutByte[3] = 0x7;

OutByte[4] = no1;

OutByte[5] = no2;

OutByte[6] = pulse1>>24;

OutByte[7] = pulse1 >>16;

OutByte[8] = pulse1>> 8;

OutByte[9] = pulse1;

OutByte[10] = pulse2 >>24;

OutByte[11] = pulse2 >>16;

OutByte[12] = pulse2 >>8;

OutByte[13] = pulse2 ;

OutByte[14] = mode;

OutByte[15] =OutByte[1] +OutByte[2] +OutByte[3] +OutByte[4]+OutByte[5] +OutByte[6] +OutByte[7] +OutByte[8] +OutByte[9] +OutByte[10] +OutByte[11] + \

OutByte[12] +OutByte[13] +OutByte[14];

USRAT_transmit(OutByte,16);

receive(inbuf);

return 1;

}

/*

函數名: inp_arc

功能:二軸圓弧插補

參數:

cardno    卡號

no1         參與插補X軸的軸號

no2         參與插補Y軸的軸號

x,y          圓弧插補的終點位置(相對于起點),范圍(-8388608~+8388607)                    

i,j            圓弧插補的圓心點位置(相對于起點),范圍(-8388608~+8388607)

mode      0:順時針插補   1:逆時針插補

返回值:

0 失敗           1  成功

*/

unsigned char inp_arc(unsigned char cardno ,unsigned char no1,unsigned char no2, long X , long y, long i, long j,unsigned char mode )

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68;

OutByte[1] = 0x17;

OutByte[2] = cardno;

OutByte[3] = 0x7;

OutByte[4] = no1;

OutByte[5] = no2;

OutByte[6] = X >>24;

OutByte[7] = X >>16;

OutByte[8] = X >>8;

OutByte[9] = X ;

OutByte[10] = y >>24;

OutByte[11] = y >>16;

OutByte[12] = y >>8;

OutByte[13] = y ;

OutByte[14] = i >>24;

OutByte[15] = i >>16;

OutByte[16] = i >>8;

OutByte[17] = i ;

OutByte[18] = j >>24;

OutByte[19] = j >>16;

OutByte[20] = j >>8;

OutByte[21] = j ;

OutByte[22] = mode;

OutByte[23] =OutByte[1] +OutByte[2] +OutByte[3] +OutByte[4] +OutByte[5] +OutByte[6] +OutByte[7] +OutByte[8] +OutByte[9] +OutByte[10] +OutByte[11] + \

OutByte[12] +OutByte[13] +OutByte[14] +OutByte[15] +OutByte[16] +OutByte[17] +OutByte[18] +OutByte[19] +OutByte[20] +OutByte[21] +OutByte[22] ;

USRAT_transmit(OutByte,24);  

receive(inbuf);

return 1;

}

/*

函數名:  set_speed

功能:設置軸速度

參數:

cardno    卡號

axis  軸號(1-6)

acc     加速時間(ms)

dec     減速時間(ms)

startv     啟動頻率(*100Hz)

speed      運行頻率(*100Hz)

返回值:

0 失敗           1  成功

*/

unsigned char set_speed(unsigned char cardno ,unsigned char axis ,unsigned int acc  ,unsigned int dec  ,unsigned int startv ,unsigned int speed )

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68;

OutByte[1] = 0xD;

OutByte[2] = cardno;

OutByte[3] = 1;

OutByte[4] = axis;

OutByte[5] = acc >>8;

OutByte[6] = acc ;

OutByte[7] = dec >>8;

OutByte[8] = dec ;

OutByte[9] = startv >>8;

OutByte[10] = startv ;

OutByte[11] = speed >>8;

OutByte[12] = speed ;

OutByte[13] =OutByte[1] +OutByte[2] +OutByte[3] +OutByte[4] +OutByte[5] +OutByte[6] +OutByte[7] +OutByte[8] +OutByte[9] +OutByte[10] +OutByte[11] +

OutByte[12] ;

USRAT_transmit(OutByte,14);

receive(inbuf);

return 1;

}

/*

函數名: set_soft_limit

功能:設置軸軟件限位

參數:

cardno    卡號

axis         軸號(1-6)

pulse1            負方向限位脈沖值,范圍(-8388608~0)                          

pulse2            正方向限位脈沖值,范圍(0~+8388607)

返回值:

0 失敗           1  成功

*/

unsigned char set_soft_limit(unsigned char cardno ,unsigned char axis ,unsigned char mode, long pulse1 , long pulse2 )

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68;

OutByte[1] = 0xE;

OutByte[2] = cardno ;

OutByte[3] = 0x13;

OutByte[4] = axis;

OutByte[5] = mode;

OutByte[6] = pulse1 >>24;

OutByte[7] = pulse1 >>16;

OutByte[8] = pulse1 >>8;

OutByte[9] = pulse1 ;

OutByte[10] = pulse2 >>24;

OutByte[11] = pulse2 >>16;

OutByte[12] = pulse2 >>8;

OutByte[13] = pulse2 ;

OutByte[14] =OutByte[1] +OutByte[2] +OutByte[3] +OutByte[4] +OutByte[5] +OutByte[6] +OutByte[7] +OutByte[8] +OutByte[9] +OutByte[10] +OutByte[11] +

OutByte[12] +OutByte[13] ;

USRAT_transmit(OutByte,15);

receive(inbuf);

return 1;

}

/*

函數名: pmove

功能:單軸運行

參數:

cardno    卡號

axis         軸號(1-6)

pulse      輸出的脈沖數 >0:正方向移動       <0:負方向移動   范圍(-268435455~+268435455)

mode      0:相對位置   1:絕對位置

返回值:

0 失敗           1  成功

*/

unsigned char pmove(unsigned char cardno ,unsigned char axis,long pulse , unsigned char mode)

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68;

OutByte[1] = 0xA ;

OutByte[2] = cardno;

OutByte[3] = 2       ;

OutByte[4] = axis;

OutByte[5] = pulse >>24;

OutByte[6] = pulse >>16;

OutByte[7] = pulse >>8;

OutByte[8] = pulse ;

OutByte[9] = mode ;

OutByte[10] =OutByte[1] +OutByte[2] +OutByte[3] +OutByte[4] +OutByte[5] +OutByte[6] +OutByte[7] +OutByte[8] +OutByte[9] ;

USRAT_transmit(OutByte,11);

receive(inbuf);

return 1;

}

/*

函數名: wait_delay

功能:等待延時數

參數:

cardno    卡號

value     延時量(1-10000)MS

返回值:

0 失敗           1  成功

*/

unsigned char wait_delay(unsigned char cardno ,unsigned int value)

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68 ;

OutByte[1] = 0x6 ;

OutByte[2] = cardno ;

OutByte[3] = 0xE ;

OutByte[4] = value >>8;

OutByte[5] = value ;

OutByte[6] =OutByte[1] +OutByte[2] +OutByte[3] +OutByte[4] +OutByte[5];

USRAT_transmit(OutByte,7);

receive(inbuf);

return 1;

}

/*

函數名:   set_command_pos

功能: 設置軸邏輯位置

參數:

cardno    卡號

axis  軸號(1-6)

pulse      位置脈沖數,范圍(-268435455~+268435455)

返回值:

0 失敗           1  成功

*/

unsigned char set_command_pos(unsigned char cardno ,unsigned char axis, long value )

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68 ;

OutByte[1] = 0x9 ;

OutByte[2] = cardno ;

OutByte[3] = 0x12 ;

OutByte[4] = axis ;

OutByte[5] = value >>24;

OutByte[6] = value >>16;

OutByte[7] = value >>8;

OutByte[8] = value ;

OutByte[9] =OutByte[1] +OutByte[2] +OutByte[3] +OutByte[4] +OutByte[5] +OutByte[6] +OutByte[7] +OutByte[8] ;

USRAT_transmit(OutByte,10);

receive(inbuf);

return 1;

}

/*

函數名: wait_pulse

功能:等待軸脈沖數

參數:

cardno    卡號

axis  軸號(1-6)

pulse      位置脈沖數,范圍(-268435455~+268435455)

返回值:

0 失敗           1  成功

*/

unsigned char wait_pulse(unsigned char cardno ,unsigned char axis, long value )

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68;

OutByte[1] = 0x9 ;

OutByte[2] = cardno ;

OutByte[3] = 0x19;

OutByte[4] = axis ;

OutByte[5] = value >>24;

OutByte[6] = value >>16;

OutByte[7] = value >>8;

OutByte[8] = value ;

OutByte[9] =OutByte[1] +OutByte[2] +OutByte[3] +OutByte[4] +OutByte[5] +OutByte[6] +OutByte[7] +OutByte[8] ;

USRAT_transmit(OutByte,10);

receive(inbuf);

return 1;

}

/*

函數名: write_bit

功能:寫輸出口狀態

參數:

cardno    卡號

number  端口號(0-8)  Y0-Y8

value   狀態(0,1) 0 輸出低電平   1 輸出高電平

返回值:

0 失敗           1  成功

*/

unsigned char write_bit(unsigned char cardno , unsigned char number, unsigned char value)

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68 ;

OutByte[1] = 0x6  ;

OutByte[2] = cardno ;

OutByte[3] = 3       ;

OutByte[4] = number;

OutByte[5] = value;

OutByte[6] =OutByte[1] +OutByte[2] +OutByte[3] +OutByte[4] +OutByte[5] ;

USRAT_transmit(OutByte,7);

receive(inbuf);

return 1;

}

/*

函數名: sudden_stop

功能: 軸停止

參數:

cardno    卡號

axis  停止的軸號(1-6)

返回值:

0 失敗           1  成功

*/

unsigned char sudden_stop(unsigned char cardno ,unsigned char axis)

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68;

OutByte[1] = 0x5;

OutByte[2] = cardno ;

OutByte[3] = 0x17 ;

OutByte[4] = axis ;

OutByte[5] =OutByte[1] +OutByte[2] +OutByte[3] +OutByte[4] ;

USRAT_transmit(OutByte,6);

receive(inbuf);

return 1;

}

/*

函數名: wait_in

功能: 等待輸入口狀態

參數:

cardno    卡號

number  端口號(0-6)  X0-X6

value   狀態(0,1) 0 輸入低電平   1 輸入高電平

返回值:

0 失敗           1  成功

*/

unsigned char wait_in( unsigned char cardno, unsigned char number, unsigned char value)

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68 ;

OutByte[1] = 0x6  ;

OutByte[2] = cardno;

OutByte[3] = 0xF  ;

OutByte[4] = number ;

OutByte[5] = value ;

OutByte[6] =OutByte[1] +OutByte[2] +OutByte[3] +OutByte[4] +OutByte[5];

USRAT_transmit(OutByte,7);

receive(inbuf);

return 1;

}

/*

函數名: wait_stop

功能:等待軸停止

參數:

cardno    卡號

axis  需要停止的軸號

返回值:

0 失敗           1  成功

*/

unsigned char wait_stop(unsigned char cardno ,unsigned char axis)

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68  ;

OutByte[1] = 0x5 ;

OutByte[2] = cardno ;

OutByte[3] = 9       ;

OutByte[4] = axis ;

OutByte[5] =OutByte[1] +OutByte[2] +OutByte[3] +OutByte[4];

USRAT_transmit(OutByte,6);

receive(inbuf);

return 1;

}

/*

函數名:  get_number

功能:獲取唯一序列號

參數:

cardno    卡號

返回值: 32位序列號

*/

unsigned long get_number(unsigned char cardno )

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68 ;

OutByte[1] = 0x4 ;

OutByte[2] = cardno;

OutByte[3] = 0xC ;

OutByte[4] =OutByte[1] +OutByte[2] +OutByte[3] ;

USRAT_transmit(OutByte,5);

receive(inbuf);

return (unsigned long)inbuf[4]<<24+(unsigned long)inbuf[5]<<16+(unsigned long)inbuf[6]<<8+(unsigned long)inbuf[7];

}

/*

函數名: get_status

功能:獲取各軸工作狀態

參數:

cardno    卡號

返回值: 8位二進制,1-6位分別代表1-6軸狀態,0表示停止中,1表示運行中。

*/

unsigned char get_status( unsigned char cardno)

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68  ;

OutByte[1] = 0x4  ;

OutByte[2] = cardno ;

OutByte[3] = 5 ;

OutByte[4] =OutByte[1] +OutByte[2] +OutByte[3] ;

USRAT_transmit(OutByte,5);

receive(inbuf);

return inbuf[4];

}

/*

函數名: get_command_pos

功能: 獲取軸邏輯位置

參數:

cardno    卡號

axis  軸號

返回值:      位置脈沖數,范圍(-268435455~+268435455)

*/

unsigned long  get_command_pos( unsigned char cardno, unsigned char axis)

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68  ;

OutByte[1] = 0x5  ;

OutByte[2] = cardno  ;

OutByte[3] = 6       ;

OutByte[4] = axis ;

OutByte[5] =OutByte[1] +OutByte[2] +OutByte[3] +OutByte[4] ;

USRAT_transmit(OutByte,6);

receive(inbuf);

return (unsigned long)inbuf[5]<<24+(unsigned long)inbuf[6]<<16+(unsigned long)inbuf[7]<<8+(unsigned long)inbuf[8];

}

/*

函數名: set_cardno

功能:設置卡號

參數:

cardno    卡號(1-255)

返回值:

0 失敗           1  成功

*/

unsigned char set_cardno(unsigned char cardno)

{

unsigned char OutByte[25];

unsigned char inbuf[12];

OutByte[0] = 0x68  ;

OutByte[1] = 5       ;

OutByte[2] = 0         ;

OutByte[3] = 0xFA ;

OutByte[4] = cardno ;

OutByte[5] =OutByte[1] +OutByte[2] +OutByte[3] +OutByte[4] ;

USRAT_transmit(OutByte,6);

receive(inbuf);

return 1;

}

void main(void)

{

  initial();

  init_uart();

  set_cardno(1);                //設卡號為1

  while(1)

       {

           

       if(!s1)//按鍵按下

         {

          set_speed(1 ,1,1000,1000,10,200);         // 設1軸速度

       set_speed(1 ,2,1000,1000,10,200);         // 設2軸速度

       set_speed(1 ,3,1000,1000,10,200);         // 設3軸速度

        /*1軸回原點*/

        pmove(1,1,-1000000,0);               //  1軸運動

        wait_in(1,0,1);                            //   等待X0為高

        sudden_stop(1,1);                      //      1軸停止

       set_command_pos(1,1,0);            //        設1軸此時坐標為0

             pmove(1,2,3200,0);                //  2軸運動

             pmove(1,3,-3200,0);               //  3軸運動   

           while(!s1);

         }

     

     

       }

   

}

4結束語

單片機和mpc006運動控制模塊構成的系統,使單片機徹底地從復雜的運動控制算法中解放出來,單片機只需簡單地使用幾條指令來控制模塊便可完成運動控制,從而能將更多的資源用來參與其它方面的控制,對構建一個穩定的控制系統具有重大意義。    

本文來自泰安迪科技:www.mpc000.com   轉載請注明出處。

版權所有 工控網 Copyright?2026 Gkong.com, All Rights Reserved
无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频
日本麻豆一区二区三区视频| 日韩精品一区二区三区av | 日日夜夜免费精品| 久久影视三级福利片| 激情综合激情| 国产+成+人+亚洲欧洲在线| 国产精品社区| 欧美三级网址| 精品久久亚洲| 国产精品115| 日产欧产美韩系列久久99| 欧美日韩在线网站| 国产在线观看91一区二区三区| 亚洲精选91| 亚洲激情av| 伊伊综合在线| 精品深夜福利视频| 日韩不卡一区二区三区| 丝袜亚洲另类欧美| 在线视频免费在线观看一区二区| 欧美成人基地| 欧美一级鲁丝片| 给我免费播放日韩视频| 欧美激情福利| 久久影视三级福利片| 麻豆国产91在线播放| 欧美综合精品| 日韩国产欧美一区二区三区| 久久国产福利| 视频一区二区三区中文字幕| 欧美午夜不卡| 免费看日韩精品| 亚洲我射av| 日韩福利视频一区| 日本国产欧美| 精品中文在线| 欧美成人a交片免费看| 日韩高清不卡| 婷婷成人基地| 亚洲v天堂v手机在线| 日韩激情av在线| 国产精品久久久久久久久久白浆 | 国产白浆在线免费观看| 精品国产欧美| 日韩精品诱惑一区?区三区| 成人午夜国产| 久久国产精品99国产| 日韩中文一区二区| 久久99精品久久久久久园产越南| 精品视频91| 久久久精品网| 亚洲视频电影在线| 国产精品2区| 在线观看精品| 免费人成网站在线观看欧美高清| 欧美日韩一区二区三区不卡视频| 电影91久久久| 模特精品在线| 麻豆国产欧美日韩综合精品二区| 在线手机中文字幕| 欧美精品黄色| 国产乱人伦精品一区| 国产亚洲一区二区手机在线观看| 国产精品嫩草99av在线| 久久激情五月激情| 亚洲深夜视频| 中文字幕一区日韩精品| 97精品国产| 中文字幕亚洲在线观看| 精品精品国产三级a∨在线| 亚洲婷婷在线| 国产精品毛片aⅴ一区二区三区| 日韩久久视频| 日韩高清一区二区| 午夜精品久久久久久久久久蜜桃| 日韩中文字幕区一区有砖一区| 久久精品国内一区二区三区| 精品欧美久久| 精品美女在线视频| 亚洲婷婷丁香| 日韩在线不卡| 国产精品一二| 免费视频最近日韩| 秋霞国产精品| 日韩av成人高清| 美女久久久久| 97精品视频在线看| 国产美女久久| 亚洲深夜福利在线观看| 久久精品欧美一区| 精品久久免费| 青青国产精品| 视频一区视频二区在线观看| 99视频精品全国免费| 美女国产精品久久久| 在线观看视频免费一区二区三区| 久久高清免费| 国产不卡人人| 国产精品tv| 国产日韩一区二区三区在线播放| 欧美综合国产| 伊人影院久久| 美女少妇全过程你懂的久久| 青青青免费在线视频| 精品免费视频| 久久在线91| 国产精品草草| 国产欧美精品久久| 日韩高清不卡在线| 午夜视频一区二区在线观看| 在线一区视频观看| 久久久久久黄| 日韩网站中文字幕| 成人久久一区| 欧美一区二区三区激情视频| 久久久久久久久丰满| 日韩欧美一区二区三区免费看| 91亚洲国产| 久久夜夜操妹子| 久久精品中文| 在线看片不卡| 久久福利毛片| 日韩毛片网站| **爰片久久毛片| 国产精品一区2区3区| 国产精品一区高清| 国产欧美日韩在线一区二区| 麻豆成人av在线| 精品欧美日韩精品| 久久久国产精品一区二区中文| 999国产精品视频| 日本 国产 欧美色综合| 日韩精品一区二区三区中文在线| 欧美一区不卡| 久久精品国产99国产| 日韩欧美看国产| 欧美日韩亚洲在线观看| 天堂成人国产精品一区| 日韩美女国产精品| 国产精品任我爽爆在线播放| 免费日韩一区二区三区| 理论片午夜视频在线观看| 日韩大片在线| 爽好久久久欧美精品| 国产图片一区| 99久久亚洲精品| 免费观看在线综合| 超碰在线99| 美女国产精品| 久久伊人亚洲| 亚洲精品91| 国产亚洲高清在线观看| 中文字幕在线免费观看视频| 亚洲国产不卡| 国产精品3区| 亚洲黄色在线| 国产精品亚洲片在线播放| 激情国产在线| 亚洲精品精选| 亚洲www免费| 国产午夜久久av| 在线看片不卡| 国产成人精品一区二区三区免费| 不卡在线一区二区| 麻豆成人91精品二区三区| 香蕉精品视频在线观看| 日韩不卡在线观看日韩不卡视频| 亚洲综合在线电影| 国产午夜久久av| 黄色av一区| 日韩88av| 国产欧美成人| 亚洲午夜免费| 欧美色图一区| 激情综合五月| 日韩av中文字幕一区二区三区| 久久国产亚洲精品| 国产在线观看91一区二区三区| 视频国产精品| 伊人久久成人| 久久精品影视| 在线亚洲人成| 国产精品久久亚洲不卡| 视频一区二区中文字幕| 欧美亚洲在线日韩| 国产福利一区二区精品秒拍| 亚洲欧美日韩专区| 亚洲女同av| 久久精品国产久精国产爱| 日韩中文字幕亚洲一区二区va在线| 欧美日韩免费看片| 里番精品3d一二三区| 日韩av一级片| 免费人成在线不卡| 精品欧美久久| 久久久久91| 日韩在线视频精品| 久久69成人| 久久精品系列| 欧美激情综合|