亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

??

?? 一個MODBUS例子
??
字號:
#i nclude "main.h"

//字地址 0 - 255 (只取低8位)
//位地址 0 - 255 (只取低8位)

/* CRC 高位字節值表 */ 
const uint8 code auchCRCHi[] = { 
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 
0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 
0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 
0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 
0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 
0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 
0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40 
} ; 
/* CRC低位字節值表*/ 
const uint8 code auchCRCLo[] = { 
0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 
0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 
0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 
0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 
0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 
0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 
0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 
0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 
0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 
0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 
0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 
0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 
0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 
0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 
0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 
0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 
0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 
0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 
0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 
0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 
0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 
0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 
0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 
0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 
0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 
0x43, 0x83, 0x41, 0x81, 0x80, 0x40 
} ;

uint8   testCoil;  //用于測試 位地址1
uint16  testRegister; //用于測試 字址址16

uint8 localAddr = 1; //單片機控制板的地址
uint8 sendCount;  //發送字節個數
uint8 receCount;     //接收到的字節個數
uint8 sendPosi;     //發送位置

uint16 crc16(uint8 *puchMsg, uint16 usDataLen) 
{ 
 uint8 uchCRCHi = 0xFF ; /* 高CRC字節初始化 */ 
 uint8 uchCRCLo = 0xFF ; /* 低CRC 字節初始化 */ 
 uint32 uIndex ; /* CRC循環中的索引 */ 
 while (usDataLen--) /* 傳輸消息緩沖區 */ 
 { 
  uIndex = uchCRCHi ^ *puchMsg++ ; /* 計算CRC */ 
  uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] ; 
  uchCRCLo = auchCRCLo[uIndex] ; 
 } 
 return (uchCRCHi << 8 | uchCRCLo) ; 
}//uint16 crc16(uint8 *puchMsg, uint16 usDataLen)

//開始發送
void beginSend(void)
{ 
 b485Send = 1; //設為發送
 
 sendPosi = 0;
 if(sendCount > 1)
  sendCount--;
 ACC = sendBuf[0];
 TB8 = P;
 SBUF = sendBuf[0];

}//void beginSend(void)


//讀線圈狀態
void readCoil(void)
{
 uint8 addr;
 uint8 tempAddr;
 uint8 byteCount;
 uint8 bitCount;
 uint16 crcData;
 uint8 position;
 uint8 i,k;
 uint8  result;
 uint16 tempData;
 uint8  exit = 0;
 
 //addr = (receBuf[2]<<8) + receBuf[3]; 
 //tempAddr = addr & 0xfff;
 addr = receBuf[3];
 tempAddr = addr;

 //bitCount = (receBuf[4]<<8) + receBuf[5]; //讀取的位個數
 bitCount = receBuf[5];

 byteCount = bitCount / 8;     //字節個數
 if(bitCount%8 != 0)
  byteCount++;
         
 for(k=0;k<byteCount;k++)
 {//字節位置
  position = k + 3;
  sendBuf[position] = 0;
  for(i=0;i<8;i++)
  {
   getCoilVal(tempAddr,&tempData);
   
   sendBuf[position] |= tempData << i;
   tempAddr++;
   if(tempAddr >= addr+bitCount)
   { //讀完
    exit = 1;
    break;
   } 
  }
  if(exit == 1)
   break;
 }
 
 sendBuf[0] = localAddr;
 sendBuf[1] = 0x01; 
 sendBuf[2] = byteCount;
 byteCount += 3;
 crcData = crc16(sendBuf,byteCount); 
 sendBuf[byteCount] = crcData >> 8;
 byteCount++;
 sendBuf[byteCount] = crcData & 0xff;
 sendCount = byteCount + 1;
 
 beginSend(); 
}//void readCoil(void) 

//讀寄存器
void readRegisters(void)
{
 uint8 addr;
 uint8 tempAddr;
 uint16 result;
 uint16 crcData;
 uint8 readCount;
 uint8 byteCount;
 uint8  finsh; //1完成  0出錯
 uint16 i;
 uint16 tempData = 0; 
 
 //addr = (receBuf[2]<<8) + receBuf[3];
 //tempAddr = addr & 0xfff; 
 addr = receBuf[3];
 tempAddr = addr;

 //readCount = (receBuf[4]<<8) + receBuf[5]; //要讀的個數
 readCount = receBuf[5];

 byteCount = readCount * 2;
 
 for(i=0;i<byteCount;i+=2,tempAddr++)
 {
  getRegisterVal(tempAddr,&tempData);    
  sendBuf[i+3] = tempData >> 8;         
  sendBuf[i+4] = tempData & 0xff;   
 }
 
 sendBuf[0] = localAddr;
 sendBuf[1] = 3;
 sendBuf[2] = byteCount;
 byteCount += 3;
 crcData = crc16(sendBuf,byteCount);
 sendBuf[byteCount] = crcData >> 8;
 byteCount++;
 sendBuf[byteCount] = crcData & 0xff;
 
 sendCount = byteCount + 1;
 beginSend();
}//void readRegisters(void)


//強制單個線圈
void forceSingleCoil(void)
{
 uint8 addr;
 uint8 tempAddr;
 uint16 tempData;
 uint8  onOff;
 uint8 i;
 
 //addr = (receBuf[2]<<8) + receBuf[3]; 
 //tempAddr = addr & 0xfff;
 addr = receBuf[3];
 tempAddr = addr;

 //onOff = (receBuf[4]<<8) + receBuf[5]; 
 onOff = receBuf[4];
 
 //if(onOff == 0xff00)
 if(onOff == 0xff)
 { //設為ON
  tempData = 1;
 } 
 //else if(onOff == 0x0000)
 else if(onOff == 0x00)
 { //設為OFF
  tempData = 0;
 }

 setCoilVal(tempAddr,tempData); 
 
 for(i=0;i<receCount;i++)
 {
  sendBuf[i] = receBuf[i];
 }
 sendCount = receCount;
 beginSend(); 
}//void forceSingleCoil(void)


//設置多個寄存器
void presetMultipleRegisters(void)
{
 uint8 addr;
 uint8 tempAddr;
 uint8 byteCount;
 uint8 setCount;
 uint16 crcData;
 uint16 tempData;
 uint8  finsh; //為1時完成 為0時出錯
 uint8 i;
 
 //addr = (receBuf[2]<<8) + receBuf[3];
 //tempAddr = addr & 0xfff;
 addr = receBuf[3];
 tempAddr = addr & 0xff;

 //setCount = (receBuf[4]<<8) + receBuf[5];
 setCount = receBuf[5];
 byteCount = receBuf[6]; 
 
 for(i=0;i<setCount;i++,tempAddr++)
 {
  tempData = (receBuf[i*2+7]<<8) + receBuf[i*2+8];
 
  setRegisterVal(tempAddr,tempData);   
 }
 
 sendBuf[0] = localAddr;
 sendBuf[1] = 16;
 sendBuf[2] = addr >> 8;
 sendBuf[3] = addr & 0xff;
 sendBuf[4] = setCount >> 8;
 sendBuf[5] = setCount & 0xff;
 crcData = crc16(sendBuf,6);
 sendBuf[6] = crcData >> 8;
 sendBuf[7] = crcData & 0xff;
 sendCount = 8;
 beginSend(); 
}//void presetMultipleRegisters(void)


//檢查uart0數據
void checkComm0Modbus(void)
{
 uint16 crcData;
 uint16 tempData;
 
 if(receCount > 4)
 {
  switch(receBuf[1])
  {
   case 1://讀取線圈狀態(讀取點 16位以內)
   case 3://讀取保持寄存器(一個或多個)
   case 5://強制單個線圈
   case 6://設置單個寄存器
     if(receCount >= 8)
     {//接收完成一組數據
      //應該關閉接收中斷
      
      if(receBuf[0]==localAddr && checkoutError==0)
      {
       crcData = crc16(receBuf,6);
       if(crcData == receBuf[7]+(receBuf[6]<<8))
       {//校驗正確
        if(receBuf[1] == 1)
        {//讀取線圈狀態(讀取點 16位以內)
         readCoil();        
        }
        else if(receBuf[1] == 3)
        {//讀取保持寄存器(一個或多個)
         readRegisters();
        }
        else if(receBuf[1] == 5)
        {//強制單個線圈
         forceSingleCoil();        
        }
        else if(receBuf[1] == 6)
        {
         //presetSingleRegister();        
        }

       }
      }      
      receCount = 0; 
      checkoutError = 0;
     }
     break;
   
   case 15://設置多個線圈
     tempData = receBuf[6]; 
     tempData += 9; //數據個數
     if(receCount >= tempData)
     {
      if(receBuf[0]==localAddr && checkoutError==0)
      {
       crcData = crc16(receBuf,tempData-2);
       if(crcData == (receBuf[tempData-2]<<8)+ receBuf[tempData-1])
       {
        //forceMultipleCoils();   
       }
      } 
      receCount = 0;
      checkoutError = 0;
     }
     break;
   
   case 16://設置多個寄存器
     tempData = (receBuf[4]<<8) + receBuf[5];
     tempData = tempData * 2; //數據個數
     tempData += 9;
     if(receCount >= tempData)
     {
      if(receBuf[0]==localAddr && checkoutError==0)
      {
       crcData = crc16(receBuf,tempData-2);
       if(crcData == (receBuf[tempData-2]<<8)+ receBuf[tempData-1])
       {
        presetMultipleRegisters();   
       }
      } 
      receCount = 0;
      checkoutError = 0;
     }
     break;
        
   default:
     break;   
  }
 }
}//void checkComm0(void)

//取線圈狀態 返回0表示成功
uint16 getCoilVal(uint16 addr,uint16 *tempData)
{
 uint16 result = 0;
 uint16 tempAddr;
 
 tempAddr = addr & 0xfff;
 //只取低8位地址
 switch(tempAddr & 0xff)
 {
  case 0:
    break;
  case 1: 
    *tempData = testCoil;
    break;
  case 2:  
    break;  
  case 3:
    break;  
  case 4:
    break;  
  case 5:
    break;
  case 6:
    break;   
  case 7:
    break;  
  case 8:
    break;  
  case 9:
    break;  
  case 10:
    break;
  case 11:
    break;
  case 12:
    break;
  case 13:
    break;
  case 14:
    break;
  case 15:
    break;
  case 16:
    break;              
  default:
    break;  
 } 
 
 return result;
}//uint16 getCoilVal(uint16 addr,uint16 *data)


//設定線圈狀態 返回0表示成功
uint16 setCoilVal(uint16 addr,uint16 tempData)
{
 uint16 result = 0;
 uint16 tempAddr;
 
 tempAddr = addr & 0xfff;
 
  
 switch(tempAddr & 0xff)
 {
  case 0:
    break;
  case 1: 
    testCoil = tempData;
    break;
  case 2:  
    break;  
  case 3:
    break;  
  case 4:
    break;  
  case 5:
    break;
  case 6:
    break;   
  case 7:
    break;  
  case 8:
    break;  
  case 9:
    break;  
  case 10:
    break;
  case 11:
    break;
  case 12:
    break;
  case 13:
    break;
  case 14:
    break;
  case 15:
    break;
  case 16:
    break;              
  default:
    break;  
 } 


 return result;
}//uint16 setCoilVal(uint16 addr,uint16 data)

//取寄存器值 返回0表示成功
uint16 getRegisterVal(uint16 addr,uint16 *tempData)
{
 uint16 result = 0;
 uint16 tempAddr;
 
 tempAddr = addr & 0xfff;
 
 switch(tempAddr & 0xff)
 {
  case 0:
    break;
  case 1: 
    break;
  case 2:  
    break;  
  case 3:
    break;  
  case 4:
    break;  
  case 5:
    break;
  case 6:
    break;   
  case 7:
    break;  
  case 8:
    break;  
  case 9:
    break;  
  case 10:
    break;
  case 11:
    break;
  case 12:
    break;
  case 13:
    break;
  case 14:
    break;
  case 15:
    break;
  case 16:
    *tempData = testRegister;
    break;              
  default:
    break;  
 }
 
 return result;
}//uint16 getRegisterVal(uint16 addr,uint16 &data)

//設置寄存器值 返回0表示成功
uint16 setRegisterVal(uint16 addr,uint16 tempData)
{
 uint16 result = 0;
 uint16 tempAddr;
 
 tempAddr = addr & 0xfff;
 
 switch(tempAddr & 0xff)
 {
  case 0:
    break;
  case 1: 
    break;
  case 2:  
    break;  
  case 3:
    break;  
  case 4:
    break;  
  case 5:
    break;
  case 6:
    break;   
  case 7:
    break;  
  case 8:
    break;  
  case 9:
    break;  
  case 10:
    break;
  case 11:
    break;
  case 12:
    break;
  case 13:
    break;
  case 14:
    break;
  case 15:
    break;
  case 16:
    testRegister = tempData;
    break;              
  default:
    break;  
 }
 
 return result;
}//uint8 setRegisterVal(uint16 addr,uint16 data)
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区三区四区四| 国产精品欧美一区二区三区| 精品国产sm最大网站免费看| 综合久久久久久久| 日韩精品欧美精品| 99国内精品久久| 欧美大胆一级视频| 亚洲国产精品精华液网站| 国产综合色产在线精品| 欧美剧在线免费观看网站| 国产精品乱码人人做人人爱| 狠狠色丁香久久婷婷综合丁香| 在线免费观看日韩欧美| 欧美激情中文不卡| 精品亚洲欧美一区| 91精品国产综合久久久蜜臀粉嫩| 午夜精品aaa| www.久久久久久久久| 久久久综合九色合综国产精品| 婷婷开心激情综合| 99免费精品在线观看| 国产清纯白嫩初高生在线观看91 | 亚洲午夜免费电影| 粉嫩嫩av羞羞动漫久久久| 4hu四虎永久在线影院成人| 亚洲免费观看高清完整| 成人激情电影免费在线观看| 久久日一线二线三线suv| 日本欧美久久久久免费播放网| 91精品1区2区| 亚洲天堂2016| 91农村精品一区二区在线| 国产精品伦理一区二区| 成人自拍视频在线| 中文字幕不卡的av| 成人午夜精品一区二区三区| 国产精品色呦呦| 成人av午夜电影| 中文字幕精品一区二区三区精品| 国产精品 欧美精品| 国产精品少妇自拍| 97久久超碰国产精品电影| 日韩毛片精品高清免费| 在线一区二区观看| 亚洲图片欧美一区| 欧美一区二区视频网站| 免费一级片91| 久久久久国色av免费看影院| 成人激情黄色小说| 亚洲影院久久精品| 欧美一区二区在线播放| 精品亚洲成a人| 国产精品女同互慰在线看| av综合在线播放| 亚洲一级不卡视频| 欧美大片在线观看| av电影在线不卡| 亚洲午夜影视影院在线观看| 欧美电影一区二区| 国内精品嫩模私拍在线| 国产精品乱人伦一区二区| 欧美三级日本三级少妇99| 日韩精品福利网| 国产女主播在线一区二区| 91免费观看国产| 免费观看成人鲁鲁鲁鲁鲁视频| 久久久www成人免费毛片麻豆| 91麻豆6部合集magnet| 麻豆精品精品国产自在97香蕉 | 中文字幕在线观看一区| 91国产丝袜在线播放| 捆绑变态av一区二区三区| 国产精品色哟哟| 在线播放日韩导航| 成人国产精品免费网站| 天天av天天翘天天综合网| 国产亚洲综合在线| 欧美群妇大交群中文字幕| 国v精品久久久网| 日本欧美一区二区在线观看| 日韩一区在线播放| 精品黑人一区二区三区久久 | 久久99精品久久久久婷婷| 成人欧美一区二区三区白人| 精品伦理精品一区| 欧美性猛交一区二区三区精品| 国产成人丝袜美腿| 美女视频免费一区| 亚洲综合色区另类av| 国产偷v国产偷v亚洲高清| 欧美三级欧美一级| 色综合一个色综合| 成人一区二区三区中文字幕| 日本va欧美va精品| 亚洲午夜久久久久中文字幕久| 国产精品人妖ts系列视频| 精品区一区二区| 日韩一区二区三区免费看| 欧洲一区二区av| 99精品欧美一区| 成人黄动漫网站免费app| 国产大陆亚洲精品国产| 久久精品99国产国产精| 天堂久久久久va久久久久| 亚洲国产综合色| 亚洲精品国产a| 亚洲免费观看在线观看| 中文字幕一区二区三区在线播放| 国产偷国产偷精品高清尤物| 精品久久久久久久久久久久久久久 | 久久精品国产77777蜜臀| 亚洲成人tv网| 亚洲图片欧美综合| 亚洲成av人片在www色猫咪| 亚洲美女视频一区| 亚洲乱码国产乱码精品精可以看 | 91麻豆精品国产91久久久更新时间| 日本精品裸体写真集在线观看| 97精品视频在线观看自产线路二| 成人h精品动漫一区二区三区| 国产乱码一区二区三区| 国产精品亚洲一区二区三区在线| 国产美女在线精品| 高清不卡在线观看| 99久久综合狠狠综合久久| 91香蕉视频污在线| 欧美三级视频在线| 91精品国产美女浴室洗澡无遮挡| 欧美一区二区黄色| 久久尤物电影视频在线观看| 久久免费的精品国产v∧| 国产日韩欧美a| 亚洲男人电影天堂| 亚洲h在线观看| 精品中文字幕一区二区小辣椒| 国产一区亚洲一区| 成人国产在线观看| 欧美在线不卡一区| 日韩视频国产视频| 久久精品亚洲国产奇米99| 日韩一区日韩二区| 日本视频在线一区| 国产福利一区二区三区在线视频| 丁香六月久久综合狠狠色| 日本乱人伦一区| 欧美精品一区二区三区在线播放| 欧美国产禁国产网站cc| 亚洲一区二区三区四区不卡| 欧美bbbbb| av电影天堂一区二区在线观看| 欧美色成人综合| 久久综合九色综合97_久久久| 最新成人av在线| 日韩成人av影视| 成人黄色电影在线| 欧美一区二区三区婷婷月色| 中文字幕不卡三区| 日韩高清不卡一区二区| 成人性生交大合| 91麻豆精品国产91| 亚洲色图制服诱惑 | 国产精品一区二区男女羞羞无遮挡| av一本久道久久综合久久鬼色| 欧美日产在线观看| 国产精品久久久久久久久免费樱桃| 亚洲成a人片综合在线| 成人美女视频在线看| 91精品国产高清一区二区三区| 国产精品久久久久久久久快鸭| 日本午夜一本久久久综合| 99久久精品国产麻豆演员表| 欧美一区二区在线免费观看| 中文字幕一区二区三区不卡在线| 蜜臀91精品一区二区三区| 91美女福利视频| 欧美激情一区三区| 久久国内精品视频| 欧美巨大另类极品videosbest | 国产精品家庭影院| 国内精品嫩模私拍在线| 91麻豆精品国产91久久久资源速度 | 精品国产凹凸成av人网站| 天堂影院一区二区| 91成人在线免费观看| 国产精品免费网站在线观看| 精品一区二区三区蜜桃| 91精品国模一区二区三区| 亚洲图片有声小说| 欧洲一区二区三区免费视频| 日韩理论片一区二区| 高清成人免费视频| 国产日韩欧美高清在线| 国内精品国产三级国产a久久| 91精品国产欧美一区二区18 | 国产人久久人人人人爽| 久久精品国产成人一区二区三区| 91精品国产综合久久婷婷香蕉| 亚洲一区视频在线| 在线观看视频91| 亚洲黄色片在线观看|