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

三菱FX系列PLC編程口通信源代碼

感謝網(wǎng)友visualboy提供資料。 Sinan整理
為便于網(wǎng)上瀏覽,以下文檔增加了全角字符,>>此處下載源文件fx_comm.h,可直接用于編譯

fx_comm.h

#define DELAY_TIMES 30000L
#define TRUE 1
#define FALSE 0
#define TRUE 1
#define FALSE 0
#define FORCE_ON 0x37
#define FORCE_OFF 0x38
void init_plc(void);
int check_plc(void);
int _read_data_register(unsigned int uAddress,unsigned int number);
int _read_mdata_register(unsigned int uAddress,unsigned int number);
int _write_data_register(unsigned int uAddress,unsigned int number);
int _force_m_contact(unsigned int uAddress,unsigned char ucOn_off);
int read_data_register(unsigned int uAddress,unsigned int number);
int read_mdata_register(unsigned int uAddress,unsigned int number);
int write_data_register(unsigned int uAddress,unsigned int number);
int force_m_contact(unsigned int uAddress,unsigned char ucOn_off);
int _read_m_register(unsigned int uAddress,unsigned int number);
int read_m_register(unsigned int uAddress,unsigned int number);
int TESTING=0;
unsigned int uRead_value[25];
unsigned int uWrite_value[25];
unsigned int COMM_PORT=1;
unsigned int STATS_PORT=0x2fd;
unsigned int DATA_PORT=0x2f8;


void init_plc(void)
{ _AX=0xfa;
   _DX=COMM_PORT;
   geninterrupt(0x14);
   while((inportb(STATS_PORT)&1)!=0) inportb(DATA_PORT);
 
}
//返回頂部


int check_plc(void)
{ long lTmp;
   if(TESTING==1)return TRUE;
   init_plc();
   for(lTmp=0L;lTmp<DELAY_TIMES;lTmp++)
   { if((inportb(STATS_PORT)&0x20)!=0)
         break;
   }
   if(lTmp>=DELAY_TIMES)
      return(FALSE);
   outportb(DATA_PORT,5);
   disable();
   for(lTmp=0L;lTmp<DELAY_TIMES;lTmp++)
   { if((inportb(STATS_PORT)&1)!=0)
         break;
   }
   if(lTmp>=DELAY_TIMES)
   {   enable();
      return(FALSE);
   }
   if((lTmp=inportb(DATA_PORT))==6)
   {    enable();
      return(TRUE);
   }
   else
   {    enable();
      return(FALSE);
   }
}
//返回頂部


int read_data_register(unsigned int uAddress,unsigned int number)
{   int i;
   for(i=0;i<3;i++)
      if(_read_data_register(uAddress,number)==TRUE)
         return TRUE;
   return FALSE;
}
//返回頂部


int _read_data_register(unsigned int uAddress,unsigned int number)
{ unsigned char uSend[]={2,0x30,0x30,0x30,0x30,0x30,0x30,0x32,3,0x30,0x30};
   unsigned char uReceive[104];
   unsigned int uTmp;
   unsigned int uSum;
   unsigned int num;
   long lTmp;
   int i,j;
   if(TESTING==1)
   { for(i=0;i<number;i++)uRead_value[i]=0;
      return TRUE;
   }
   init_plc();
   num=number*2;
   if((num/16)>=10)
      uSend[6]=(unsigned char)(num/16+0x41-10);
   else
      uSend[6]=(unsigned char)(num/16+0x30);
   if((num%16)>=10)
      uSend[7]=(unsigned char)((num%16)+0x41-10);
   else
      uSend[7]=(unsigned char)((num%16)+0x30);
   uAddress=uAddress*2+0x1000;
   uTmp=uAddress & 0x000f;
   uSend[5]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uAddress>>4) & 0x000f;
   uSend[4]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uAddress>>8) & 0x000f;
   uSend[3]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uAddress>>12)&0x000f;
   uSend[2]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uSum=0;
   for(i=1;i<9;i++)
      uSum=uSum+(unsigned char)uSend[i];
   uTmp=uSum&0x000f;
   uSend[10]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uSum>>4)&0x000f;
   uSend[9]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);

   for(i=0;i<11;i++)
   { for(lTmp=0L;lTmp<DELAY_TIMES;lTmp++)
      { if((inportb(STATS_PORT)&0x20)!=0)
            break;
      }
      if(lTmp>=DELAY_TIMES)
      {
         
         return(FALSE);
      }
      outportb(DATA_PORT,uSend[i]);
   }
   disable();
 
   for(lTmp=0;lTmp<DELAY_TIMES;lTmp++)
   { if((inportb(STATS_PORT)&1)!=0)
         break;
   }
   if(lTmp>=DELAY_TIMES)
   {
      enable();
      return(FALSE);
   }
   uReceive[0]=inportb(DATA_PORT);
   if(uReceive[0]!=2)
   {
      enable();
      return(FALSE);
   }
   for(i=1;i<number*4+4;i++)
   { for(lTmp=0L;lTmp<DELAY_TIMES;lTmp++)
      { if((inportb(STATS_PORT)&1)!=0)
            break;
      }
      if(lTmp>=DELAY_TIMES)
      {
         enable();
         return(FALSE);
      }
      uReceive[i]=inportb(DATA_PORT);
   }
   enable();
   uSum=0;
   for(i=1;i<number*4+2;i++)
      uSum=uSum+(unsigned int)uReceive[i];
   uTmp=uSum&0xf;
   uTmp=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
 
   if((unsigned char)uTmp!=uReceive[number*4+3]) return(FALSE);
   uTmp=(uSum>>4)&0xf;
   uTmp=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
 
   if((unsigned char)uTmp!=uReceive[number*4+2]) return(FALSE);
   for(j=0;j<number;j++)
   {   for(i=j*4+1;i<j*4+5;i++)
         uReceive[i]=(uReceive[i]>0x39)?uReceive[i]-0x41+0xa:uReceive[i]-0x30;
      uRead_value[j]=(((((uReceive[j*4+3]<<4)+uReceive[j*4+4])<<4)+uReceive[j*4+1])<<4)+uReceive[j*4+2];
   }
   return TRUE;
}
//返回頂部

 

int read_mdata_register(unsigned int uAddress,unsigned int number)
{   int i;
   for(i=0;i<3;i++)
      if(_read_mdata_register(uAddress,number)==TRUE)
         return TRUE;
   return FALSE;
}
//返回頂部


int _read_mdata_register(unsigned int uAddress,unsigned int number)
{ unsigned char uSend[]={2,0x30,0x30,0x30,0x30,0x30,0x30,0x32,3,0x30,0x30};
   unsigned char uReceive[104];
   unsigned int uTmp;
   unsigned int uSum;
   unsigned int num;
   long lTmp;
   int i,j;
   if(TESTING==1)
   { for(i=0;i<number;i++)uRead_value[i]=0;
      return TRUE;
   }
   init_plc();
   num=number*2;
   if((num/16)>=10)
      uSend[6]=(unsigned char)(num/16+0x41-10);
   else
      uSend[6]=(unsigned char)(num/16+0x30);
   if((num%16)>=10)
      uSend[7]=(unsigned char)((num%16)+0x41-10);
   else
      uSend[7]=(unsigned char)((num%16)+0x30);
   /*uAddress=uAddress*2+0x1000;*/
   uTmp=uAddress & 0x000f;
   uSend[5]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uAddress>>4) & 0x000f;
   uSend[4]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uAddress>>8) & 0x000f;
   uSend[3]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uAddress>>12)&0x000f;
   uSend[2]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uSum=0;
   for(i=1;i<9;i++)
      uSum=uSum+(unsigned char)uSend[i];
   uTmp=uSum&0x000f;
   uSend[10]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uSum>>4)&0x000f;
   uSend[9]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   for(i=0;i<11;i++)
   { for(lTmp=0L;lTmp<DELAY_TIMES;lTmp++)
      { if((inportb(STATS_PORT)&0x20)!=0)
            break;
      }
      if(lTmp>=DELAY_TIMES)
      {
         
         return(FALSE);
      }
      outportb(DATA_PORT,uSend[i]);
   }
   disable();
 
   for(lTmp=0;lTmp<DELAY_TIMES;lTmp++)
   { if((inportb(STATS_PORT)&1)!=0)
         break;
   }
   if(lTmp>=DELAY_TIMES)
   {
      enable();
      return(FALSE);
   }
   uReceive[0]=inportb(DATA_PORT);
   if(uReceive[0]!=2)
   {
      enable();
      return(FALSE);
   }
   for(i=1;i<number*4+4;i++)
   { for(lTmp=0L;lTmp<DELAY_TIMES;lTmp++)
      { if((inportb(STATS_PORT)&1)!=0)
            break;
      }
      if(lTmp>=DELAY_TIMES)
      {
         enable();
         return(FALSE);
      }
      uReceive[i]=inportb(DATA_PORT);
   }
   enable();
   uSum=0;
   for(i=1;i<number*4+2;i++)
      uSum=uSum+(unsigned int)uReceive[i];
   uTmp=uSum&0xf;
   uTmp=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
 
   if((unsigned char)uTmp!=uReceive[number*4+3])return(FALSE);
   uTmp=(uSum>>4)&0xf;
   uTmp=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
 
   if((unsigned char)uTmp!=uReceive[number*4+2])return(FALSE);
   for(j=0;j<number;j++)
   {   for(i=j*4+1;i<j*4+5;i++)
         uReceive[i]=(uReceive[i]>0x39)?uReceive[i]-0x41+0xa:uReceive[i]-0x30;
      uRead_value[j]=(((((uReceive[j*4+3]<<4)+uReceive[j*4+4])<<4)+uReceive[j*4+1])<<4)+uReceive[j*4+2];
   }
   return TRUE;
}
//返回頂部

 

int write_data_register(unsigned int uAddress,unsigned int number)
{   int i;
   for(i=0;i<3;i++)
      if(_write_data_register(uAddress,number)==TRUE)
         return TRUE;
   return FALSE;
}
//返回頂部


int _write_data_register(unsigned int uAddress,unsigned int number)
{ unsigned char uSend[111];
   unsigned int uTmp,uSum,num;
   long lTmp;
   int i;
   if(TESTING==1)return TRUE;
 
   init_plc();
   uSend[0]=2;
   uSend[1]=0x31;
   uSend[number*4+8]=3;
   num=(number*2)/16;
   if(num>=10)uSend[6]=num+0x41-10;
   else    uSend[6]=num+0x30;
   num=(number*2)%16;
   if(num>=10)uSend[7]=num+0x41-10;
   else uSend[7]=num+0x30;
   uAddress=0x1000+2*uAddress;
   uTmp=uAddress&0x000f;
   uSend[5]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uAddress>>4)&0x000f;
   uSend[4]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uAddress>>8)&0x000f;
   uSend[3]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uAddress>>12)&0x000f;
   uSend[2]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   for(i=0;i<number;i++)
   {
      uTmp=uWrite_value[i]&0x000f;
      uSend[i*4+9]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
      uTmp=(uWrite_value[i]>>4)&0x000f;
      uSend[i*4+8]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
      uTmp=(uWrite_value[i]>>8)&0x000f;
      uSend[i*4+11]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
      uTmp=(uWrite_value[i]>>12)&0x000f;
      uSend[i*4+10]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   }
   uSum=0;
   for(i=1;i<9+number*4;i++)
      uSum+=uSend[i];
   uTmp=uSum&0x000f;
   uSend[number*4+10]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uSum>>4)&0x000f;
   uSend[number*4+9]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   for(i=0;i<11+number*4;i++)
   { for(lTmp=0L;lTmp<DELAY_TIMES;lTmp++)
      { if((inportb(STATS_PORT)&0x20)!=0)
            break;
      }
      if(lTmp>=DELAY_TIMES)
      {
         /*enable();*/
         return(FALSE);
      }
      outportb(DATA_PORT,uSend[i]);
   }
   disable();
   for(lTmp=0L;lTmp<DELAY_TIMES;lTmp++)
   { if((inportb(STATS_PORT)&1)!=0)
         break;
   }
   if(lTmp>=DELAY_TIMES)
   {
       enable();
      return(FALSE);
   }
   if(inportb(DATA_PORT)!=6)
   {
      enable();
      return(FALSE);
   }
   else
   {
      enable();
      return(TRUE);
   }
}

 


int force_m_contact(unsigned uAddress,unsigned char ucOn_off)
{   int i;
   for(i=0;i<3;i++)
      if(_force_m_contact(uAddress,ucOn_off)==TRUE)
         return TRUE;
   return FALSE;
}
//返回頂部

int _force_m_contact(unsigned uAddress,unsigned char ucOn_off)
{ unsigned uSend[]={2,0x37,0x30,0x30,0x30,0x30,3,0x30,0x30};
   unsigned uTmp,uSum,i;
   long lTmp;
   if(TESTING==1)return TRUE;
   init_plc();
   uAddress=uAddress+0x800;
   uSend[1]=ucOn_off;
   uTmp=uAddress&0x000f;
   uSend[3]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uAddress>>4)&0x000f;
   uSend[2]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uAddress>>8)&0x000f;
   uSend[5]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uAddress>>12)&0x000f;
   uSend[4]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uSum=0;
   for(i=1;i<7;i++)
      uSum+=uSend[i];
   uTmp=uSum&0x000f;
   uSend[8]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uSum>>4)&0x000f;
   uSend[7]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   for(i=0;i<9;i++)
   { for(lTmp=0L;lTmp<DELAY_TIMES;lTmp++)
      { if((inportb(STATS_PORT)&0x20)!=0)
            break;
      }
      if(lTmp>=DELAY_TIMES)
      {
         enable();
         return(FALSE);
      }
      outportb(DATA_PORT,uSend[i]);
   }
   disable();
   for(lTmp=0L;lTmp<DELAY_TIMES;lTmp++)
   { if((inportb(STATS_PORT)&1)!=0)
         break;
   }
   if(lTmp>=DELAY_TIMES)
   {
      enable();
      return(FALSE);
   }
   if(inportb(DATA_PORT)!=6)
   {
      enable();
      return(FALSE);
   }
   else
   { enable();
      return(TRUE);
   }
}
//返回頂部

 

int read_m_register(unsigned int uAddress,unsigned int number)
{   int i;
   for(i=0;i<3;i++)
      if(_read_m_register(uAddress,number)==TRUE)
         return TRUE;
   return FALSE;
}
//返回頂部

int _read_m_register(unsigned int uAddress,unsigned int number)
{ unsigned char uSend[]={2,0x30,0x30,0x30,0x30,0x30,0x30,0x32,3,0x30,0x30};
   unsigned char uReceive[54];
   unsigned int uTmp;
   unsigned int uSum;
   unsigned int num;
   long lTmp;
   int i,j;
   if(TESTING==1)
   { for(i=0;i<number;i++)uRead_value[i]=0;
      return TRUE;
   }
   init_plc();
   num=number;
   if((num/16)>=10)
      uSend[6]=(unsigned char)(num/16+0x41-10);
   else
      uSend[6]=(unsigned char)(num/16+0x30);
   if((num%16)>=10)
      uSend[7]=(unsigned char)((num%16)+0x41-10);
   else
      uSend[7]=(unsigned char)((num%16)+0x30);
   uAddress=uAddress/8+0x100;
   uTmp=uAddress & 0x000f;
   uSend[5]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uAddress>>4) & 0x000f;
   uSend[4]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uAddress>>8) & 0x000f;
   uSend[3]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uAddress>>12)&0x000f;
   uSend[2]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uSum=0;
   for(i=1;i<9;i++)
      uSum=uSum+(unsigned char)uSend[i];
   uTmp=uSum&0x000f;
   uSend[10]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
   uTmp=(uSum>>4)&0x000f;
   uSend[9]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);

   for(i=0;i<11;i++)
   { for(lTmp=0L;lTmp<DELAY_TIMES;lTmp++)
      { if((inportb(STATS_PORT)&0x20)!=0)
            break;
      }
      if(lTmp>=DELAY_TIMES)
      {
         /*enable();*/
         return(FALSE);
      }
      outportb(DATA_PORT,uSend[i]);
   }
   disable();
 
 
   for(lTmp=0;lTmp<DELAY_TIMES;lTmp++)
   { if((inportb(STATS_PORT)&1)!=0)
         break;
   }
   if(lTmp>=DELAY_TIMES)
   {
      enable();
      return(FALSE);
   }
   uReceive[0]=inportb(DATA_PORT);
   if(uReceive[0]!=2)
   {
      enable();
      return(FALSE);
   }
   for(i=1;i<number*2+4;i++)
   { for(lTmp=0L;lTmp<DELAY_TIMES;lTmp++)
      { if((inportb(STATS_PORT)&1)!=0)
            break;
      }
      if(lTmp>=DELAY_TIMES)
      {
         enable();
         return(FALSE);
      }
      uReceive[i]=inportb(DATA_PORT);
   }
   enable();
   uSum=0;
   for(i=1;i<number*2+2;i++)
      uSum=uSum+(unsigned int)uReceive[i];
   uTmp=uSum&0xf;
   uTmp=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
 
   if((unsigned char)uTmp!=uReceive[number*2+3]) return(FALSE);
   uTmp=(uSum>>4)&0xf;
   uTmp=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xa);
 
   if((unsigned char)uTmp!=uReceive[number*2+2]) return(FALSE);
   for(j=0;j<number;j++)
   {   for(i=j*2+1;i<j*2+3;i++)
         uReceive[i]=(uReceive[i]>0x39)?uReceive[i]-0x41+0xa:uReceive[i]-0x30;
      uRead_value[j]=((uReceive[j*2+1])<<4)+uReceive[j*2+2];
   }
   return TRUE;
}
//返回頂部

 

 




請(qǐng)尊重站長(zhǎng)的勞動(dòng),轉(zhuǎn)載時(shí)請(qǐng)附上Sinan的郵箱或主頁(yè)鏈接
sinan@sina.com  http://www.moduwu.com
无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频
国产精品一区2区3区| 日韩视频网站在线观看| 日韩午夜黄色| 国产精品一页| 亚洲精品va| 国产资源在线观看入口av| 亚洲一区有码| 亚洲成人免费| 天堂√8在线中文| 国产精品chinese| 亚洲一区av| 国产一区日韩一区| 国产 日韩 欧美 综合 一区| 亚洲乱亚洲高清| 久久高清免费观看| 久久婷婷丁香| 日韩综合精品| 成年男女免费视频网站不卡| 欧美日一区二区三区在线观看国产免| 亚洲高清不卡| 久久国产日本精品| 蜜臀久久精品| 日韩一级欧洲| 国产精品xx| 美女精品久久| 久久精品999| 日韩综合小视频| 免费精品视频最新在线| 国产美女高潮在线| 97视频热人人精品免费| 成人台湾亚洲精品一区二区| 国产私拍福利精品视频二区| 日韩av中文在线观看| 日韩视频1区| 丝袜美腿亚洲色图| 中文字幕一区二区三区日韩精品 | 日韩黄色大片| 九九精品调教| 视频福利一区| 欧美91视频| 免费日韩av片| 97成人在线| 电影91久久久| 日本精品在线中文字幕| 欧美日韩在线网站| 视频一区二区国产| 91精品日本| 国产成人精品亚洲线观看 | 2023国产精品久久久精品双| 在线亚洲精品| 日韩高清欧美激情| 欧美国产精品| 亚洲欧洲高清| 午夜一级在线看亚洲| 日韩av黄色在线| 久久成人福利| 99久久夜色精品国产亚洲1000部| 亚洲欧美日韩在线观看a三区| 久久xxxx| 日本一区二区高清不卡| 成人精品中文字幕| 亚洲制服一区| 久久av电影| 99国产精品免费视频观看| 视频一区二区欧美| 午夜亚洲一区| 日韩欧美一区二区三区在线视频| 精品免费av一区二区三区| 国产精品1区在线| 日韩精品视频网| 欧美国产偷国产精品三区| 亚洲少妇一区| 四虎精品永久免费| 国产一区日韩欧美| 日韩欧美不卡| 成人影视亚洲图片在线| 91精品国产成人观看| 日本亚洲不卡| 亚洲乱码视频| 日韩国产欧美视频| 欧美激情五月| 伊人精品视频| 国产亚洲欧洲| 一本一道久久a久久| 国产精品17p| 国产精品普通话对白| 在线精品亚洲欧美日韩国产| 激情黄产视频在线免费观看| 欧美日韩一二| 日韩在线网址| 国产精品欧美三级在线观看| www在线观看黄色| 五月激激激综合网色播| 免费亚洲一区| 国产免费播放一区二区| 首页国产欧美久久| 亚洲调教视频在线观看| 色在线视频观看| 国产精品伊人| 日本视频一区二区| 91精品亚洲| 麻豆精品一区二区综合av| 亚洲欧美日韩视频二区| 在线亚洲免费| 久久99免费视频| 久久久久久久欧美精品| 欧美日韩在线网站| 日本不卡一区二区三区| 日韩av专区| 国产欧美日韩影院| 伊人国产精品| 快she精品国产999| 午夜欧美精品| 国产一区二区高清| 亚洲一区国产一区| 亚洲欧美高清| 亚洲久久在线| 四虎成人精品一区二区免费网站| 一本色道精品久久一区二区三区| 国产99久久久国产精品成人免费| 成人久久久久| 黑丝一区二区三区| 午夜在线观看免费一区| 亚洲综合欧美| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品美女| 日韩在线播放一区二区| 亚洲我射av| 国产亚洲一区二区三区不卡| 视频在线观看一区| 日韩av一区二区三区四区| 欧美国产先锋| 麻豆理论在线观看| 久久精品91| 久久福利毛片| 欧美日韩 国产精品| 久久av影院| 久久91导航| 亚洲天堂久久| 丝瓜av网站精品一区二区| 影音先锋久久精品| 国产精品亚洲综合色区韩国| 国产a亚洲精品| 婷婷综合网站| 日本成人在线不卡视频| 蜜桃精品视频| 99热国内精品| 亚洲乱亚洲高清| 久久久久久自在自线| 女人天堂亚洲aⅴ在线观看| 国产精品日韩久久久| 日本不卡视频在线观看| 国内精品伊人| 五月天久久久| 国产精品欧美三级在线观看| 国产精品精品| 亚洲神马久久| 国产毛片精品| 婷婷综合网站| 精品一区二区三区在线观看视频| 久久久国产亚洲精品| 日韩精品1区2区3区| 99久久亚洲精品| 国产欧美自拍| 女人天堂亚洲aⅴ在线观看| 欧美另类中文字幕| 91久久久精品国产| 精品国产一区二区三区噜噜噜| 国产99精品一区| 久久精品福利| 日韩中文av| 日韩午夜av在线| 98精品视频| 青青青国产精品| 欧美日韩国产在线一区| 久久精品女人| 综合激情婷婷| 五月天综合网站| 高清不卡亚洲| 欧美激情五月| 日韩和欧美一区二区三区| 日韩在线中文| 国产精品一国产精品k频道56| 国产99精品一区| 91亚洲一区| 欧美国产先锋| 国产亚洲精品精品国产亚洲综合| 99精品综合| 精品国产免费人成网站| 欧美一区自拍| 免费观看在线综合| 99国产精品久久久久久久成人热| 精品资源在线| 国产精品99久久免费观看| 日韩激情啪啪| 日本中文字幕视频一区| 亚洲五月综合| 中文字幕日韩欧美精品高清在线| 激情欧美亚洲| 欧美丝袜一区|