wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

51通訊協議—CRC16校驗

作者:佚名   來源:本站原創   點擊數:  更新時間:2014年09月01日   【字體:
 
#include "at89x52.h"
/***************************************************
 *          類型定義,方便代碼移植
 ***************************************************/
typedef unsigned char   UINT8;
typedef unsigned int    UINT16;
typedef unsigned long   UINT32; 
    
typedef char            INT8;
typedef int             INT16;
typedef long            INT32;
typedef bit             BOOL;
/***************************************************
 *          大量宏定義,便于代碼移植和閱讀
 ***************************************************/
//-------------------------------- //----頭部----
#define DCMD_CTRL_HEAD1      0x10  //PC下傳控制包頭部1
#define DCMD_CTRL_HEAD2      0x01  //PC下傳控制包頭部2
                                   //----命令碼----
#define DCMD_NULL            0x00  //命令碼:空操作
#define DCMD_CTRL_BELL       0x01  //命令碼:控制蜂鳴器
#define DCMD_CTRL_LED        0x02  //命令碼:控制LED
#define DCMD_REQ_DATA        0x03  //命令碼:請求數據
                                   //----數據----
#define DCTRL_BELL_ON        0x01  //蜂鳴器響
#define DCTRL_BELL_OFF       0x02  //蜂鳴器禁鳴
#define DCTRL_LED_ON         0x03  //LED亮
#define DCTRL_LED_OFF        0x04  //LED滅
//--------------------------------
                                   //----頭部----
#define UCMD_CTRL_HEAD1      0x20  //MCU上傳控制包頭部1
#define UCMD_CTRL_HEAD2      0x01  //MCU上傳控制包頭部2
                                   //----命令碼----
#define UCMD_NULL            0x00  //命令碼:空操作
#define UCMD_REQ_DATA        0x01  //命令碼:請求數據
#define CTRL_FRAME_LEN       0x04  //幀長度(不包含數據和校驗值)
#define CRC16_LEN            0x02  //檢驗值長度
#define EN_UART()            ES=1 //允許串口中斷
#define NOT_EN_UART()        ES=0 //禁止串口中斷
#define BELL(x)             {if((x))P0_6=1 ;else P0_6=0;} //蜂鳴器控制宏函數
#define LED(x)              {if((x))P2=0x00;else P2=0xFF;}//LED控制宏函數   
#define TRUE                1
#define FALSE               0
#define HIGH                1
#define LOW                 0  
#define ON                  1
#define OFF                 0
#define NULL                (void *)0
//使用結構體對數據包進行封裝方便操作數據
typedef  struct _PKT_CRC
{
   UINT8 m_ucHead1;       //首部1
   UINT8 m_ucHead2;       //首部2
   UINT8 m_ucOptCode;     //操作碼
   UINT8 m_ucDataLength;  //數據長度
   UINT8 m_szDataBuf[16]; //數據
   UINT8 m_szCrc[2];      //CRC16為2個字節
}PKT_CRC;
//使用共用體再一次對數據包進行封裝操作數據更加方便
typedef union _PKT_CRC_EX
{
    PKT_CRC r;
    UINT8 p[32];
} PKT_CRC_EX;
PKT_CRC_EX    PktCrcEx; //定義數據包變量
code UINT16 szCRC16Tbl[256] = {                                
    0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,/*注意本行的0x1021 */
    0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
    0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
    0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
    0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
    0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
    0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
    0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
    0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
    0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
    0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
    0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
    0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
    0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
    0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
    0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
    0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
    0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
    0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
    0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
    0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
    0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
    0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
    0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
    0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
    0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
    0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
    0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
    0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
    0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
    0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
    0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
};
BOOL  bLedOn=FALSE;    //定義是否點亮LED布爾變量
BOOL  bBellOn=FALSE;   //定義是否蜂鳴器響布爾變量
BOOL  bReqData=FALSE;  //定義是否請求數據布爾變量
/****************************************************
** 函數名稱: CRC16Check
** 輸    入: buf 要校驗的數據;
             len 要校驗的數據的長度
** 輸    出: 校驗值
** 功能描述: CRC16循環冗余校驗
*****************************************************/
UINT16 CRC16Check(UINT8 *buf, UINT8 len)
{
    UINT8  i, j;
    UINT16 uncrcReg = 0xffff;
    UINT16 uncur;
    for (i = 0; i < len; i++)
    {
        uncur = buf[i] << 8;
        for (j = 0; j < 8; j++)
        {
            if ((INT16)(uncrcReg ^ uncur) < 0)
            {
                 uncrcReg = (uncrcReg << 1) ^ 0x1021;
            }
            else
            {
                  uncrcReg <<= 1;
            }               
            uncur <<= 1;           
        }
    }
    return uncrcReg;
}
/*************************************************************
* 函數名稱:BufCpy
* 輸    入:dest目標緩沖區;
           Src  源緩沖區
           size 復制數據的大小
* 輸    出:無
* 說    明:復制緩沖區
**************************************************************/
BOOL BufCpy(UINT8 * dest,UINT8 * src,UINT32 size)
{
    if(NULL ==dest || NULL==src ||NULL==size)
    {
     return FALSE;
    }   
 do
 {
  *dest++ = *src++;  
 }while(--size!=0); 
 return TRUE;
}
/****************************************************
** 函數名稱: UartInit
** 輸    入: 無
** 輸    出: 無
** 功能描述: 串口初始化
*****************************************************/                                                                              
void UartInit(void)
{
 SCON=0x40;
 T2CON=0x34;
 RCAP2L=0xD9;
 RCAP2H=0xFF;
 REN=1;
    ES=1;
}
/****************************************************
** 函數名稱: UARTSendByte
** 輸    入: b 單個字節
** 輸    出: 無
** 功能描述: 串口 發送單個字節
*****************************************************/
void UARTSendByte(UINT8 b)
{
   SBUF=b;
  while(TI==0);
  TI=0;
}
/****************************************************
** 函數名稱: UartSendNBytes
** 輸    入: buf 數據緩沖區;
             len 發送數據長度
** 輸    出: 無
** 功能描述: 串口 發送多個字節
*****************************************************/
void UartSendNBytes(UINT8 *buf,UINT8 len)
{
     while(len--)
     {
         UARTSendByte(*buf++);
     }
}
/****************************************************
** 函數名稱: UartIRQ
** 輸    入: 無
** 輸    出: 無
** 功能描述: 串口中斷服務程序
*****************************************************/
void UartIRQ(void)interrupt 4
{
     static UINT8  uccnt=0;
         UINT8  uclen;
   UINT16 uscrc;    
     if(RI) //是否接收到數據
     {
        RI=0;
        PktCrcEx.p[uccnt++]=SBUF;//獲取單個字節
        if(PktCrcEx.r.m_ucHead1 == DCMD_CTRL_HEAD1)//是否有效的數據幀頭部1
        {
           if(uccnt<CTRL_FRAME_LEN+PktCrcEx.r.m_ucDataLength+CRC16_LEN)//是否接收完所有數據
           {
              if(uccnt>=2 && PktCrcEx.r.m_ucHead2!=DCMD_CTRL_HEAD2)//是否有效的數據幀頭部2
              {
                 uccnt=0;
                 return;
              }                   
           }
           else
           {       
        uclen=CTRL_FRAME_LEN+PktCrcEx.r.m_ucDataLength;//獲取數據幀有效長度(不包括校驗值)
     uscrc=CRC16Check(PktCrcEx.p,uclen);//計算校驗值
          //這樣做的原因是因為有時寫數據長度不一樣,導致PktCrcEx.r.m_szCrc會出現為0的情況,所以使用BufCpy將校驗值復制到相應的位置
     BufCpy(PktCrcEx.r.m_szCrc,&PktCrcEx.p[uclen],CRC16_LEN);
     if((UINT8)(uscrc>>8) !=PktCrcEx.r.m_szCrc[1]\
      ||(UINT8) uscrc     !=PktCrcEx.r.m_szCrc[0])//校驗值是否匹配
     {
         uccnt=0;
         return; 
     }
              switch(PktCrcEx.r.m_ucOptCode)//從命令碼中獲取相對應的操作
              {
                case DCMD_CTRL_BELL://控制蜂鳴器命令碼
                {
      if(DCTRL_BELL_ON==PktCrcEx.r.m_szDataBuf[0])//數據部分含控制碼
      {
         bBellOn=TRUE;
      }
      else
      {
         bBellOn=FALSE;
      }
                }
                break;
                case DCMD_CTRL_LED://控制LED命令碼
                {
      if(DCTRL_LED_ON==PktCrcEx.r.m_szDataBuf[0])//數據部分含控制碼
      {
         bLedOn=TRUE;
      }
      else
      {
         bLedOn=FALSE;
      }
                }
                break;
                case DCMD_REQ_DATA://請求數據命令碼
                {
                     bReqData=TRUE;
                }
                break;
              }
              uccnt=0;
              return;
           }
        }
        else
        {
            uccnt=0;
        }
     }
}
/****************************************************
** 函數名稱: main
** 輸    入: 無
** 輸    出: 無
** 功能描述: 函數主題
*****************************************************/
void main(void)
{
     UINT8 i=0;
  UINT16 uscrc=0;
  UartInit();//串口初始化
  EA=1;      //開總中斷 
     while(1)
     {
          if(bLedOn)  //是否點亮Led
    {
       LED(ON); 
    }
    else
    {
       LED(OFF);
    }   
    if(bBellOn)//是否響蜂鳴器
    {
       BELL(ON);
    }
    else
    {
       BELL(OFF);
    }   
    if(bReqData)//是否請求數據
    {
       bReqData=FALSE;
    NOT_EN_UART(); //禁止串口中斷   
    PktCrcEx.r.m_ucHead1=UCMD_CTRL_HEAD1;//MCU上傳數據幀頭部1
    PktCrcEx.r.m_ucHead2=UCMD_CTRL_HEAD2;//MCU上傳數據幀頭部2
    PktCrcEx.r.m_ucOptCode=UCMD_REQ_DATA;//MCU上傳數據幀命令碼   
    uscrc=CRC16Check(PktCrcEx.p,CTRL_FRAME_LEN+PktCrcEx.r.m_ucDataLength);//計算校驗值
             PktCrcEx.r.m_szCrc[0]=(UINT8) uscrc;    //校驗值低字節
             PktCrcEx.r.m_szCrc[1]=(UINT8)(uscrc>>8);//校驗值高字節
          //這樣做的原因是因為有時寫數據長度不一樣,導致PktCrcEx.r.m_szCrc會出現為0的情況,所以使用BufCpy將校驗值復制到相應的位置
    BufCpy(&PktCrcEx.p[CTRL_FRAME_LEN+PktCrcEx.r.m_ucDataLength],PktCrcEx.r.m_szCrc,CRC16_LEN);   
    UartSendNBytes(PktCrcEx.p,CTRL_FRAME_LEN+PktCrcEx.r.m_ucDataLength+CRC16_LEN);//發送數據
    EN_UART();//允許串口中斷      
    }
     }
}
 
關閉窗口
精品国产乱码久久久久酒店| 亚洲专区在线视频| 国产精品麻豆99久久久久久| 午夜精品999| 成人影院午夜久久影院| 加勒比一区二区| 国产性生活免费视频| 国产a∨精品一区二区三区不卡| 8x8x8国产精品| 欧美国产亚洲另类动漫| 亚洲视频成人| 日韩理论电影中文字幕| 日本xxxxxx| 黑人精品一区二区三区| 免费在线观看一级片| 岛国av免费在线| 国产精品久久久久久久午夜| 欧美精品一区二| 亚洲综合av网| 成av人片一区二区| 一本久道久久综合婷婷鲸鱼| 啪啪国产精品| av高清一区| 嫩草香蕉在线91一二三区| 天天曰天天操| 国产又粗又长| 精品人妻伦一二三区久久 | 欧美激情视频在线免费观看 欧美视频免费一 | 国产视频久久久久久久| 五月婷婷综合网| 久久久久99精品一区| 日韩激情视频在线观看| 亚洲精品午夜av福利久久蜜桃| 久久久久九九精品影院| 超碰高清在线| 免费网站黄在线观看| 一二三区高清| eeuss影院网站免费观看| 77777_亚洲午夜久久多人| 国产精品一区二区黑人巨大| 日韩av一区二区在线播放| 日韩av片在线免费观看| 国内精品久久久久伊人av| 亚洲乱码国产乱码精品精| 欧美日韩精品欧美日韩精品一| 亚洲欧美经典视频| 久久久久99精品国产片| 丁香婷婷综合色啪| 久久国产乱子精品免费女| 亚洲欧洲一区二区天堂久久| 91日韩在线| 国产精品嫩草影院在线看| 国产精品x8x8一区二区| 精品国产亚洲一区二区三区大结局| 自由日本语热亚洲人| av电影免费看| 国产美女黄色| 亚洲欧美精选| √天堂资源中文www| 亚洲精品久久久蜜桃动漫| 国产精品美女一区| 国产精品一区二区人人爽| 一级特黄色大片| 国产一区二区在线不卡| 一二三区在线播放| 在线视频 中文字幕| 在线观看免费高清视频| 888奇米影视| 国产夫妻性生活视频| 午夜精品久久久久久久91蜜桃| 一级黄色片在线播放| 国产视频www| 亚洲精品久久久久久无码色欲四季 | 成人免费视频视频| 丁香另类激情小说| 91丨porny丨首页| 久久久不卡网国产精品一区| 久久精品视频一区二区| 久久久久国产精品厨房| 17c精品麻豆一区二区免费| 国产精品久久久久久久久免费相片| 国产欧美一区二区精品性色超碰| 国产人成一区二区三区影院| 国产日韩欧美精品综合| 中文字幕精品综合| 亚洲精品高清在线| 天天影视涩香欲综合网| 色婷婷亚洲综合| 欧美精品久久99久久在免费线| 欧美日韩美少妇| 精品国产91乱码一区二区三区| 亚洲精品国产福利| 久久伊人免费视频| 国产精品96久久久久久又黄又硬| 亚洲一区国产精品| 久久精品久久精品国产大片| 亚洲精品国产一区| 精品少妇人欧美激情在线观看| 中文字幕亚洲在线| 国产一区二区三区三区在线观看| 久久亚洲精品小早川怜子66| 欧美一区二区三区艳史| 91亚洲精品久久久| 日本午夜精品一区二区三区| 国产精品视频一二三四区| 午夜dv内射一区二区| 天天躁日日躁狠狠躁av麻豆男男| 91激情视频在线观看| 久久午夜鲁丝片午夜精品| 国产精品高潮呻吟久久久| 久热中文字幕| 毛片毛片毛片毛片| 超碰在线观看免费| 日韩综合久久| 成人在线亚洲| 日韩综合在线视频| 久久亚洲一级片| 欧美日韩裸体免费视频| 亚洲国产欧美自拍| 97精品国产97久久久久久| 国产一区国产精品| 男人日女人下面视频| 荫蒂被男人添免费视频| 国产精品suv一区二区| 高清乱码毛片入口| 777丰满影院| 黄色免费在线看| 精品国产亚洲日本| 午夜久久福利| 99久久久精品| 色老汉av一区二区三区| 中文在线不卡视频| 91探花福利精品国产自产在线| 一区二区三区四区免费视频| 又色又爽又黄视频| 日本系列第一页| 欧美性xxxx交| 欧美日韩伦理片| 日韩av黄色| 亚洲第一网站| 中文av一区特黄| 日韩精品一区二区三区在线| 欧美一级高清免费| 亚洲精品一区二区三| 麻豆传媒在线看| 狠狠人妻久久久久久| 国产一二三区精品视频| 亚洲视频在线观看免费视频| 蜜桃色永久入口| 欧美777四色影视在线| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 亚洲色图100p| 香蕉人妻av久久久久天天| 嫩草嫩草嫩草嫩草| 日韩影片中文字幕| 久久久久久久久久久久久久久久久久| 国产成a人无v码亚洲福利| 色婷婷av一区二区三区大白胸| 精品国模在线视频| 欧洲精品国产| 2一3sex性hd| 国产丝袜在线视频| 免费看的国产视频网站| 日韩精品一页| 久久99精品久久久久久国产越南 | 精品国产一区二区三区日日嗨| 男人的天堂日韩| 在线观看中文字幕视频| 91野花视频| 激情av在线播放| 一区二区三区四区在线观看国产日韩 | 色噜噜在线观看| 国产免费不卡av| 午夜免费啪视频观看视频| 电影亚洲一区| 久久一综合视频| 婷婷综合五月天| 欧美性受xxxx黑人猛交| 欧美一级免费播放| 国产精品第108页| xxxxxwwww免费视频| 波多视频一区| 日韩电影在线看| 欧美日韩在线精品一区二区三区激情| 欧美与黑人午夜性猛交久久久| 福利在线一区二区| 国产在线观看免费视频今夜| 免费免费啪视频在线观播放| 国模私拍一区二区国模曼安| 99精品视频免费观看视频| 精品久久久一区二区| 日本韩国欧美精品大片卡二| 国产情侣av自拍| 成 年 人 黄 色 大 片大 全| 女同久久另类69精品国产| 国产精品臀控福利在线观看| 国产伦理精品| 久久国产精品无码网站| 欧美一区二区视频在线观看2020 | 精品视频在线观看网站| 国产成人av电影在线| 日韩av一区在线| 亚洲欧美成人一区| 久久一二三四区| 国产aa视频| 久操精品在线| 亚洲在线视频网站| 国产精品视频精品| 成人做爰www看视频软件| 中文字幕国产欧美| 暖暖成人免费视频| 国产福利一区二区三区| 亚洲欧美中文在线视频| 2025韩国大尺度电影| 日本三级小视频| 九九热视频在线观看| 亚洲一本视频| 91精品久久久久久久99蜜桃| 蜜桃av噜噜一区二区三| 国产1区2区3区4区| 人成在线视频| 亚洲区综合中文字幕日日| 欧美日韩国产麻豆| 国产精品一区在线播放| 特级片在线观看| 激情视频网址| 91精品国产91久久久久久密臀| 欧美香蕉大胸在线视频观看| 国产精品免费一区二区| 国产性xxxx| 黄网站app在线观看下载视频大全官网| 日本一区二区在线看| 福利一区视频在线观看| 国产女主播一区二区| 日本精品人妻无码77777| 探花国产精品| 亚洲东热激情| 亚洲国产美女久久久久| 大j8黑人w巨大888a片| 天堂在线视频免费| 欧美性www| 一区二区高清视频在线观看| 91在线在线观看| 日韩人妻无码一区二区三区99| 国产精品久久久久一区二区国产| 久久激情综合| 精品国偷自产在线视频| 日韩精品在线播放视频| 黄色免费视频在线观看| 欧美电影《轻佻寡妇》| 日韩精品在线看片z| 免费在线观看亚洲视频| 国产a级黄色片| 日日夜夜天堂| 欧美手机在线| 日韩一本二本av| 男女激情无遮挡| 四虎影视最新网址| 啪啪国产精品| 欧美一区二区三区四区高清| 男人日女人视频网站| 日本色图欧美色图| 久久av超碰| 日韩三级.com| 亚洲爆乳无码专区| 樱花草www在线观看| 久久国产电影| 亚洲女人天堂av| 先锋资源在线视频| 成视人a免费观看视频| 国产一区二区你懂的| 按摩亚洲人久久| 中文字字幕码一二三区| 在线国产网址| 国产精品1区二区.| 国产欧美亚洲精品| 好吊色在线视频| 免费观看亚洲| 欧美日韩美女在线| 亚洲精品蜜桃久久久久久| 欧美爆操老女人| 国产精品久久久久一区二区三区厕所| 精品久久久久久久久久久院品网| 无码少妇一区二区三区芒果| 先锋影音av321| 天堂av在线一区| 欧美最猛黑人xxxx黑人猛叫黄| 免费人成视频在线| 色戒汤唯在线观看| 亚洲一区二三区| www.激情网| 夜夜夜操操操| 日韩天天综合| 91av在线免费观看视频| 麻豆视频在线观看| 电影一区二区三区| 91成人免费在线视频| 国产a级一级片| 老司机aⅴ毛片免费观看| 国内成人免费视频| 99电影在线观看| 涩涩视频免费看| 日本一本不卡| 欧美二区在线播放| 久久久久久久中文字幕| 日韩和的一区二在线| 欧美日韩久久不卡| 香蕉视频色在线观看| 青青久草在线| 中文成人av在线| 可以看毛片的网址| 国产乱xxⅹxx国语对白| 国产精品66部| 免费看成人片| 最新天堂网www| 麻豆视频一区二区| 91久久精品国产91久久性色tv | 精品影片一区二区入口| 大胆av不用播放器在线播放| 国产精品国产自产拍在线| 亚洲国产又黄又爽女人高潮的| 亚洲精品乱码久久久久久9色| 韩国三级av在线免费观看| 中文字幕一区三区| 成年人黄色片视频| 理论在线观看| 亚洲综合免费观看高清完整版 | 国产精品亚洲色图| 奇米在线7777在线精品| 97超碰在线播放| 久草国产视频| 看片网站欧美日韩| 美乳视频一区二区| 美女在线不卡| 成人黄色综合网站| 成年人免费观看的视频| 制服影音先锋| 日本一区二区三区久久久久久久久不| www国产免费| 亚洲国产中文字幕在线| 国产欧美日韩影院| 国模精品系列视频| 国产v片在线观看| 尤物网精品视频| 91亚洲永久免费精品| 性欧美xxx极品另类| 麻豆精品蜜桃视频网站| 免费毛片一区二区三区久久久| 夜夜摸夜夜操| 91丨九色porny丨蝌蚪| 人人妻人人添人人爽欧美一区| 日韩美女一级视频| 色婷婷久久久综合中文字幕| 精品人妻少妇嫩草av无码| 日韩一级二级| 在线不卡国产精品| 在线免费观看高清视频| 亚洲婷婷在线| 好吊色欧美一区二区三区视频| 人人干人人干| 国产日韩精品一区二区三区在线| 国产精品动漫网站| 成人免费看片| 亚洲国产精久久久久久久| 国产大片中文字幕| 成人免费看片39| 国产日韩中文在线| 91网站观看| 国产午夜一区二区三区| 美女网站免费观看视频| 日本成人不卡| 亚洲人在线观看| 91久久精品国产91性色69| 亚洲国产一区二区精品专区| 蜜桃传媒视频麻豆第一区免费观看| 天天艹天天操| 依依成人综合视频| 亚洲成人网在线播放| 91欧美极品| 国产精品视频一区国模私拍| 在线观看wwww| 亚洲人吸女人奶水| 老鸭窝一区二区| 啪啪激情综合网| 91视频免费在线观看| 男男视频在线观看网站| 精品女厕一区二区三区| 黄色国产在线播放| 宅男视频免费在线观看视频| 亚洲综合免费观看高清完整版在线| 日本一区二区三区网站| 加勒比中文字幕精品| 成人夜晚看av| 国产在线黄色片| 欧美主播一区二区三区| 国产精品99精品| 午夜亚洲激情| 国产精品333| 国模冰冰炮一区二区| 欧美激情免费视频|