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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3899|回復: 2
收起左側(cè)

I2C通信ID自動查找,讀寫器制作 附單片機程序+仿真電路圖

[復制鏈接]
ID:282074 發(fā)表于 2020-2-23 20:43 | 顯示全部樓層 |閱讀模式
本帖最后由 ksljxxq 于 2020-2-24 14:13 編輯

    I2C通信ID自動查找,在維修時碰到I2C通信要找ID地址也很麻煩,我們常用的比如24Cxx系列,顯示屏通信,一般都是信號SDA與SCL,本主板用的主控芯片是stc15f2k60s2,編碼開關(guān),1602顯示屏,二個按鈕,編碼開關(guān)按鈕是移動光標,見下圖24C測試ID 0XA0,TW8816測試ID 0X8A讀寫都正常,在i2c壓縮包是程序和仿真

制作出來的實物圖如下:
IMG_20200223_183218.jpg IMG_20200223_183521.jpg IMG_20200223_183505.jpg IMG_20200223_183206.jpg IMG_20200223_164345.jpg

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei截圖.png

單片機源程序如下:
  1. #include<reg51.h>      
  2. #include<intrins.h>  
  3. #define uchar unsigned char
  4. #define uint unsigned int //函數(shù)聲明
  5. #define yh 0x80    //第1行+3位數(shù)顯示
  6. uint yi,ra,si,ra1,si1;
  7. void Init_Timer0(void);
  8. sbit  rs=P1^0;
  9. sbit  rw=P1^1;
  10. sbit  en=P1^2;

  11. sbit k3=P3^4;          //光標  
  12. sbit k1=P3^2;        //讀開關(guān)
  13. sbit k2=P3^3;        //檢測地址
  14. sbit CodingsWitch_B=P3^5; //A腳定義(即1腳) 這兩腳必須接10K上拉電阻
  15. sbit CodingsWitch_A=P3^6; //B腳定義(即3腳?

  16. sbit SCL=P2^7;    //24c02  6
  17. sbit SDA=P2^6;          //       5
  18. void delay()
  19. {;;}
  20. void delay1(uint z)//延時為 1ms
  21. {
  22.   uchar x,x1;
  23.   for(;z>0;z--)
  24.   {
  25.    for(x=0;x<114;x++)
  26.     {
  27.     for(x1=0;x1<1;x1++);
  28.     }
  29.    }
  30. }

  31. write_1602com(uchar com)//****液晶寫入指令函數(shù)****
  32. {
  33.         rs=0;//數(shù)據(jù)/指令選擇置為指令
  34.         rw=0;
  35.         P0=com;//送入數(shù)據(jù)
  36.         delay1(1);
  37.         en=1;//拉高使能端,為制造有效的下降沿做準備
  38.         delay1(1);
  39.         en=0;//en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令
  40. }

  41. write_1602dat(uchar dat)//***液晶寫入數(shù)據(jù)函數(shù)****
  42. {
  43.         rs=1;//數(shù)據(jù)/指令選擇置為數(shù)據(jù)
  44.         rw=0;
  45.         P0=dat;//送入數(shù)據(jù)
  46.         delay1(1);
  47.         en=1; //en置高電平,為制造下降沿做準備
  48.         delay1(1);
  49.         en=0; //en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令
  50. }


  51. lcd_init()//***液晶初始化函數(shù)****
  52. {
  53.         write_1602com(0x38);//設(shè)置液晶工作模式,意思:16*2行顯示,5*7點陣,8位數(shù)據(jù)
  54.         write_1602com(0x0c);//開顯示不顯示光標
  55.         write_1602com(0x06);//整屏不移動,光標自動右移
  56.         write_1602com(0x01);//清顯示
  57. }


  58. void dsplay()
  59. {
  60.            if(xianshi==0)
  61.                         {               
  62.                                 unsigned int c, d;
  63.         //          a = (WriteDeviceAddress/256)/16; //    16進制千位
  64.         //    b = (WriteDeviceAddress/256)%16; //          百位
  65.                                 c = (WriteDeviceAddress%256)/16; //           十位
  66.                                 d = (WriteDeviceAddress%256)%16; //           個位
  67.                
  68.                                 write_1602com(yh);//指定顯示
  69.                                 write_1602dat('I'); //
  70.                                 write_1602dat('D'); //
  71.                                 write_1602dat(':'); //
  72.                                 write_1602dat('0'); //
  73.                                 write_1602dat('x'); //
  74.                                 write_1602dat(hex_table[c]);    //
  75.                                 write_1602dat(hex_table[d]);    //
  76.                         }
  77.                         if(xianshi==1)
  78.                         {
  79.                           uchar a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1;
  80.                                 a = (yi%256)/16; //           十位
  81.                                 b = (yi%256)%16; //           個位
  82.                                 c = (ra%256)/16; //           十位
  83.                                 d = (ra%256)%16; //           個位
  84.                                 e = (yi+1%256)/16; //          十位
  85.                                 f = (yi+1%256)%16; //          個位
  86.                                 g = (si%256)/16; //           十位
  87.                                 h = (si%256)%16; //           個位
  88.                                 a1 = (yi+2%256)/16; //           十位
  89.                                 b1 = (yi+2%256)%16; //           個位
  90.                                 c1 = (ra1%256)/16; //           十位
  91.                                 d1 = (ra1%256)%16; //           個位
  92.                                 e1 = (yi+3%256)/16; //          十位
  93.                                 f1 = (yi+3%256)%16; //          個位
  94.                                 g1 = (si1%256)/16; //           十位
  95.                                 h1 = (si1%256)%16; //           個位
  96.                                 write_1602com(yh);//指定顯示
  97.                                 write_1602dat('0');
  98.                                 write_1602dat('x');
  99.                                 write_1602dat(hex_table[a]);    //
  100.                                 write_1602dat(hex_table[b]);    //
  101.                                 write_1602dat(',');
  102.                                 write_1602dat(hex_table[c]);    //
  103.                                 write_1602dat(hex_table[d]);    //
  104.                                 write_1602dat(' ');
  105.                                 write_1602dat('0');
  106.                                 write_1602dat('x');
  107.                                 write_1602dat(hex_table[e]);    //
  108.                                 write_1602dat(hex_table[f]);    //
  109.                                 write_1602dat(',');
  110.                                 write_1602dat(hex_table[g]);    //
  111.                                 write_1602dat(hex_table[h]);    //
  112.                         
  113.                                 write_1602com(er);//指定顯
  114.         write_1602dat('0');
  115.                                 write_1602dat('x');                                
  116.                                 write_1602dat(hex_table[a1]);    //
  117.                                 write_1602dat(hex_table[b1]);    //
  118.                                 write_1602dat(',');
  119.                                 write_1602dat(hex_table[c1]);    //
  120.                                 write_1602dat(hex_table[d1]);    //
  121.                                 write_1602dat(' ');
  122.                                 write_1602dat('0');
  123.                                 write_1602dat('x');
  124.                                 write_1602dat(hex_table[e1]);    //
  125.                                 write_1602dat(hex_table[f1]);    //
  126.                                 write_1602dat(',');
  127.                                 write_1602dat(hex_table[g1]);    //
  128.                                 write_1602dat(hex_table[h1]);    //
  129.                                        
  130.                         }        
  131.       if(xianshi==2)
  132.                         {
  133.                           uchar a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1;
  134.                                 a = (yi%256)/16; //           十位
  135.                                 b = (yi%256)%16; //           個位
  136.                                 c = (ra%256)/16; //           十位
  137.                                 d = (ra%256)%16; //           個位
  138.                                 e = (yi+1%256)/16; //          十位
  139.                                 f = (yi+1%256)%16; //          個位
  140.                                 g = (si%256)/16; //           十位
  141.                                 h = (si%256)%16; //           個位
  142.                                 a1 = (yi+2%256)/16; //           十位
  143.                                 b1 = (yi+2%256)%16; //           個位
  144.                                 c1 = (ra1%256)/16; //           十位
  145.                                 d1 = (ra1%256)%16; //           個位
  146.                                 e1 = (yi+3%256)/16; //          十位
  147.                                 f1 = (yi+3%256)%16; //          個位
  148.                                 g1 = (si1%256)/16; //           十位
  149.                                 h1 = (si1%256)%16; //           個位
  150.                                 write_1602com(yh);//指定顯示
  151.                                 write_1602dat('0');
  152.                                 write_1602dat('x');
  153.                                 write_1602dat(hex_table[a]);    //
  154.                                 write_1602dat(hex_table[b]);    //
  155.                                 write_1602dat(',');
  156.                                 write_1602dat(hex_table[c]);    //
  157.                                 write_1602dat(hex_table[d]);    //
  158.                                 write_1602dat(' ');
  159.                                 write_1602dat('0');
  160.                                 write_1602dat('x');
  161.                                 write_1602dat(hex_table[e]);    //
  162.                                 write_1602dat(hex_table[f]);    //
  163.                                 write_1602dat(',');
  164.                                 write_1602dat(hex_table[g]);    //
  165.                                 write_1602dat(hex_table[h]);    //
  166.                         
  167.                                 write_1602com(er);//指定顯
  168.         write_1602dat('0');
  169.                                 write_1602dat('x');                                
  170.                                 write_1602dat(hex_table[a1]);    //
  171.                                 write_1602dat(hex_table[b1]);    //
  172.                                 write_1602dat(',');
  173.                                 write_1602dat(hex_table[c1]);    //
  174.                                 write_1602dat(hex_table[d1]);    //
  175.                                 write_1602dat(' ');
  176.                                 write_1602dat('0');
  177.                                 write_1602dat('x');
  178.                                 write_1602dat(hex_table[e1]);    //
  179.                                 write_1602dat(hex_table[f1]);    //
  180.                                 write_1602dat(',');
  181.                                 write_1602dat(hex_table[g1]);    //
  182.                                 write_1602dat(hex_table[h1]);    //
  183.                                 
  184.                                 
  185.                         }        

  186. }

  187. void Start()  //開始總線
  188. {
  189.    SDA=1;
  190.    delay();
  191.    SCL=1;
  192.    delay();
  193.    SDA=0;
  194.    delay();
  195.    SCL=0;
  196.    delay();
  197. }


  198. void Stop()  //結(jié)束總線
  199. {
  200.    SCL=0;
  201.    delay();
  202.    SDA=0;
  203.    delay();
  204.    SCL=1;
  205.    delay();
  206.    SDA=1;
  207.    delay();
  208. }

  209. void NoAck()  //發(fā) ACK0
  210. {
  211.     SDA=1;
  212.     delay();
  213.     SCL=1;
  214.     delay();
  215.     SCL=0;
  216.     delay();
  217.             
  218. }

  219. bit TestAck()  //測試 ACK
  220. {
  221.     bit ErrorBit;
  222.     SDA=1;
  223.     delay();
  224.     SCL=1;
  225.     delay();
  226.     ErrorBit=SDA;
  227.    
  228.     delay();
  229.     SCL=0;
  230.     delay();
  231.     return(ErrorBit);           
  232. }

  233. Write8Bit(unsigned char input)//寫入 8 個 bit 到 24c02  
  234. {
  235.   unsigned char temp;
  236.    for(temp=8;temp!=0;temp--)  
  237.    {
  238.      SDA=(bit)(input&0x80);
  239.      delay();
  240.      SCL=1;
  241.      delay();
  242.      SCL=0;
  243.      delay();
  244.      input=input<<1;
  245.    }
  246. }

  247. void Write24c02(uchar ch,uchar address)//寫入一個字節(jié)到 24c02 中  
  248. {
  249.     Start();
  250.     Write8Bit(WriteDeviceAddress);
  251.     TestAck();
  252.     Write8Bit(address);
  253.     TestAck();
  254.     Write8Bit(ch);
  255.     TestAck();
  256.     Stop();
  257.     delay1(10);
  258. }

  259. //從 24c02 中讀出 8 個 bit
  260. uchar Read8Bit()  
  261. {
  262.    unsigned char temp,rbyte=0;
  263.     for(temp=8;temp!=0;temp--)  
  264.     {
  265.      SCL=1;
  266.      rbyte=rbyte<<1;
  267.      rbyte=rbyte|((unsigned char)(SDA));
  268.      SCL=0;
  269.     }
  270.     return(rbyte);
  271. }

  272. uchar Read24c02(uchar address) //從 24c02 中讀出 1 個字節(jié)
  273. {
  274.      uchar ch;
  275.      Start();
  276.      Write8Bit(WriteDeviceAddress);
  277.      TestAck();
  278.      Write8Bit(address);
  279.      TestAck();
  280.      Start();
  281.      Write8Bit(ReadDviceAddress);
  282.      TestAck();
  283.      ch=Read8Bit();
  284.      NoAck();
  285.      Stop();
  286.      return(ch);
  287. }

  288. void xie()
  289. {
  290.            Write24c02(ra,yi);
  291.        delay1(10);
  292.            Write24c02(si,yi+1);
  293.        delay1(10);
  294.            Write24c02(ra1,yi+2);
  295.        delay1(10);
  296.            Write24c02(si1,yi+3);
  297.        delay1(10);
  298.        Stop();
  299. }
  300. void du()
  301. {
  302.            ra=Read24c02(yi);
  303.            delay1(20);
  304.            si=Read24c02(yi+1);
  305.            delay1(20);
  306.            ra1=Read24c02(yi+2);
  307.            delay1(20);
  308.            si1=Read24c02(yi+3);
  309.            delay1(20);
  310.            Stop();  
  311. }

  312. void set()
  313. {
  314.      Start();
  315.      Write8Bit(WriteDeviceAddress);
  316.      TestAck();
  317.            delay1(5);
  318.            Stop();
  319. }
  320. void keyscan()
  321. {
  322.       
  323.                    if(k2==0)
  324.                         {
  325.                           delay1(10);
  326.                           if(!k2)
  327.                           {
  328.                             delay1(10);
  329.                             while(!k2);
  330.                                         key1n+=1;
  331.                                         if(key1n>2)
  332.                                         {
  333.                                           key1n=1;
  334.                                         }
  335.                                         switch(key1n)
  336.                {
  337.                  case 1:open=1;        key3n=0;dsplaysw=0; write_1602com(0x0c);ra=0;si=0;ra1=0;si1=0;//關(guān)閉光標     
  338.                                           break;
  339.                        case 2:open=0;num=0;jishu=0; dsplaysw=0;xianshi=0;lcd_init(); key2n=0; key3n=0;   
  340.                                           break;
  341.                            }
  342.                          }
  343.                    }
  344.                 if(k1==0)
  345.                  {
  346.                         delay1(10);
  347.                         if(!k1)
  348.                         {
  349.                          delay1(10);
  350.                          while(!k1);
  351.                                 key2n+=1;
  352.                                         if(key2n>2)
  353.                                         {
  354.                                           key2n=1;
  355.                                         }
  356.                                         switch(key2n)
  357.                {
  358.                  case 1:        du();xianshi=1;key3n=0; dsplaysw=0; write_1602com(0x0c);//關(guān)閉光標     
  359.                                           break;
  360.                        case 2:  dsplaysw=1;xianshi=2; write_1602com(yh+5);write_1602com(0x0f);key3n=1;
  361.                                           break;
  362.                             }
  363.                            }
  364.                     }
  365.                  
  366.                 if(key2n==2)
  367.                 {
  368.      if(k3==0)
  369.                  {
  370.                         delay1(50);
  371.                         if(!k3)
  372.                         {
  373.                          delay1(50);
  374.                          while(!k3);
  375.                                 key3n+=1;
  376.                                         if(key3n>5)
  377.                                         {
  378.                                           key3n=1;
  379.                                         }
  380.                                         switch(key3n)
  381.                {
  382.                  case 1:  write_1602com(yh+5);  //設(shè)置按鍵按動一次秒位置顯示光標
  383.                                             write_1602com(0x0f);  //設(shè)置光標為閃爍                                          
  384.                                           break;
  385.                        case 2:  write_1602com(yh+13);
  386.                     write_1602com(0x0f);  //設(shè)置光標為閃爍                                         
  387.                                           break;
  388.                                          case 3:  write_1602com(er+5);
  389.                     write_1602com(0x0f);  //設(shè)置光標為閃爍                                         
  390.                                           break;
  391.                                          case 4:  write_1602com(er+13);
  392.                                                   write_1602com(0x0f);  //設(shè)置光標為閃爍
  393.                                           break;
  394.                                          case 5:  write_1602com(0x0c);//關(guān)閉光標
  395.                                                   xie();
  396.                                                   xianshi=1;key2n=1;key3n=0; dsplaysw=0;
  397.                                           break;
  398.                             }
  399.                            }
  400.                     }
  401.                    }
  402. }

  403. uint CodingsWitchPolling()  
  404. {
  405.     static uchar Aold,Bold; //兩個變量用來儲存上一次調(diào)用時編碼開關(guān)兩引腳的電平   
  406.         static uchar st=0;       //用來儲存以前是否出現(xiàn)了兩個引腳都為高電平的狀態(tài)
  407.         static uint tmp=0;    // ***這3個均為靜態(tài)變量,以便保持上次結(jié)果***     
  408.         
  409.         if(CodingsWitch_A&&CodingsWitch_B)     
  410.          st = 1;            
  411.          if(st)                 //如果st為1執(zhí)行下面的步驟      
  412.          {
  413.           if(CodingsWitch_A==0&&CodingsWitch_B==0) //如果兩引腳都為低執(zhí)行下面         
  414.           {           
  415.             if(Bold)         //為高說明編碼開關(guān)在向加大的方向轉(zhuǎn)            
  416.                  {               
  417.                   st = 0;               
  418.                    if(yi==9999)yi=9999;
  419.        if(ra>255)ra=0;        
  420.                    if(si>255)si=0;
  421.        if(ra1>255)ra1=0;        
  422.                    if(si1>255)si1=0;                          
  423.                           else
  424.         if(key2n==1){yi+=4;du();}                                       
  425.                           if(key3n==1){ra+=1;write_1602com(0x0c);dsplay();write_1602com(yh+5);write_1602com(0x0f);}
  426.         if(key3n==2){si+=1;write_1602com(0x0c);dsplay();write_1602com(yh+13);write_1602com(0x0f);}
  427.         if(key3n==3){ra1+=1;write_1602com(0x0c);dsplay();write_1602com(er+5);write_1602com(0x0f);}
  428.         if(key3n==4){si1+=1;write_1602com(0x0c);dsplay();write_1602com(er+13);write_1602com(0x0f);}                                
  429.                           }            
  430.                          if(Aold)   //為高說明編碼開關(guān)在向減小的方向轉(zhuǎn)            
  431.                           {               
  432.                            st = 0;                                       
  433.                            if(yi==0)yi=0;
  434.          if(ra<0)ra=0;        
  435.                      if(si<0)si=0;
  436.          if(ra1<0)ra1=0;        
  437.                      if(si1<0)si1=0;                                       
  438.                                 else                 
  439.                                  if(key2n==1){yi-=4;du();}     //設(shè)返回值
  440.          if(key3n==1){ra-=1;write_1602com(0x0c);dsplay();write_1602com(yh+5);write_1602com(0x0f);}
  441.          if(key3n==2){si-=1;write_1602com(0x0c);dsplay();write_1602com(yh+13);write_1602com(0x0f);}
  442.          if(key3n==3){ra1-=1;write_1602com(0x0c);dsplay();write_1602com(er+5);write_1602com(0x0f);}
  443.          if(key3n==4){si1-=1;write_1602com(0x0c);dsplay();write_1602com(er+13);write_1602com(0x0f);}                                         
  444.                                 }               
  445.                          }
  446.                   
  447.                  }
  448.                        
  449.             Aold = CodingsWitch_A;  //保持這次檢測的電平,以備下次調(diào)用比較用      
  450.            Bold = CodingsWitch_B;      //     
  451.           return tmp;               //返回計數(shù)值  
  452.         }

  453.         
  454. void main()
  455. {                                 
  456.           lcd_init();
  457.     Init_Timer0();
  458.   while(1)
  459. {
  460.          keyscan();
  461.    if(dsplaysw==0){dsplay();}         
  462.    }        
  463. }

  464. void Init_Timer0(void)
  465. {
  466.          TMOD=0x01;
  467.          ET0=1;           //定時器中斷打開
  468.          TR0=1;           //定時器開關(guān)打開
  469.          ET1=1;           //定時器中斷打開
  470.          TR1=1;           //定時器開關(guān)打?
  471.          EA=1;            //總中斷打開
  472. }
  473. void Timer0_isr(void) interrupt 1
  474. {

  475.          TH0=(65536-50000)/256;                  //重新賦值 2ms  62500
  476.          TL0=(65536-50000)%256;
  477.         
  478.           if(open==1)
  479.           {
  480.              num++;
  481.                  if(num==3)
  482.                  {
  483.                     num=0;
  484.                     jishu++;
  485.                           set();
  486.                          if(jishu>255)
  487.                   {
  488.                      jishu=255;        
  489.                     }
  490.                   }
  491.                   
  492.           }
  493.                
  494.         
  495.    }  
  496.          
  497.         void Timer1_isr(void) interrupt 3   
  498.         {
  499.           TH1=0xec;
  500.     TL1=0xec;
  501.     CodingsWitchPolling(); //調(diào)用編碼開關(guān)函數(shù)
  502.                
  503.         }
復制代碼

所有資料51hei提供下載:
i2c測地址.rar (87.22 KB, 下載次數(shù): 36)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:275111 發(fā)表于 2020-4-1 10:03 | 顯示全部樓層
好帖子。雖然剛剛開始看還沒懂。正在學習I2C。還請高人多寫。謝謝。
回復

使用道具 舉報

ID:295423 發(fā)表于 2024-2-7 14:24 | 顯示全部樓層
好帖子。雖然剛剛開始看還沒懂。正在學習I2C。還請高人多寫。謝謝
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
国产精品变态另类虐交| 日本欧美亚洲| 999精品视频在线观看播放| 大胆欧美熟妇xx| 成人h视频在线| 日韩成人中文字幕| 国产suv精品一区| 尤物视频网站在线观看| 国产精品自拍亚洲| 国产又粗又黄视频| 香蕉久久久久久久| 欧美国产日韩在线视频| 久久国产精品免费观看| 精品捆绑美女sm三区| 国产尤物一区二区| 视频在线不卡免费观看| 91麻豆精品| 蜜臀av在线| 亚洲图片123| 黑人性受xxxx黑人xyx性爽| 亚洲 欧美 激情 另类| 免费在线观看黄网站| 国产极品尤物在线| 欧美日韩一区二区三区免费| 日本一区二区在线免费播放| 色欧美片视频在线观看在线视频| 99re热这里只有精品免费视频| 国产视频亚洲| 韩日精品一区| 麻豆网站在线观看| 中文在线有码| 先锋影音av资源在线| 九九精品九九| 免费看黄色一级视频| 久久精品久久久久久久| www欧美com| 97伦伦午夜电影理伦片| 精品人妻一区二区三区免费| 日本一区二区黄色| 国产91porn| 日韩欧美精品在线不卡| 欧美激情国产高清| 亚洲精品一区二区三区婷婷月 | 欧美激情综合色综合啪啪| 视频免费一区二区| 精品久久在线| 国产亚洲人成a在线v网站| 免费看男女www网站入口在线| 国产一二区在线| av在线电影院| 国产精品视频二区三区| 欧美啪啪精品| 国产黄色片免费看| 欧美高清视频一区二区三区| 蜜桃av免费观看| 中文字幕网站在线观看| 这里只有精品在线观看视频 | 香蕉视频国产精品| 成人av资源电影网站| 色戒汤唯在线| 55av亚洲| a欧美人片人妖| 男人的天堂av高清在线| 亚洲aⅴ优女av综合久久久| 波多野结衣av在线播放| 91短视频在线观看| 黄页网站在线播放| 最新版sss视频在线| 在线免费福利| avtt亚洲| 欧美xxxx黑人又粗又长| 日本不卡网站| 日本综合视频| 中文字幕一区二区三区日韩精品| 国产欧美自拍一区| av在线不卡顿| 激情欧美一区二区三区| 美女久久一区| 国产精品白丝av| 99re视频精品| 亚洲三级免费观看| 亚洲国产另类av| 色一区在线观看| 欧美久久久久久久久中文字幕| 91精品国产一区二区三区| 精品久久人人做人人爽| 亚洲社区在线观看| 久久99精品久久久久久青青91 | 欧美男男激情videos| 欧美国产日韩电影| 红杏一区二区三区| 91精品观看| 喷白浆一区二区| 91丨porny丨在线| 亚洲精品视频一区二区| 国产一区啦啦啦在线观看| 国产一区二区三区四区在线观看| 丁香一区二区三区| 国产精品免费看片| 国产人成亚洲第一网站在线播放| 秋霞av亚洲一区二区三| 国产一区三区三区| 国产精品私人自拍| 日韩欧美国产激情| 亚洲激情在线视频| 色中色综合影院手机版在线观看 | 日韩免费视频一区| 综合国产在线视频| 国产精品va在线播放我和闺蜜| av成人午夜| 国产传媒久久久| 亚洲高清av一区二区三区| 干b视频在线观看| 手机在线看片1024| 亚洲av成人精品毛片| 国内自拍视频在线观看| 黄页网址在线观看| 偷拍自拍在线看| 丝袜美腿综合| 精品国产鲁一鲁****| 神马香蕉久久| 国产人成精品一区二区三| 9色porny自拍视频一区二区| 国产91精品一区二区麻豆网站 | 国产精品亚洲片在线播放| 欧美在线免费一级片| 激情五月激情综合网| 亚洲少妇30p| 日韩一区二区三区电影 | 黄av在线免费观看| 日韩另类视频| 免费一区二区三区视频导航| 国产综合亚洲精品一区二| 日韩电影在线免费看| 中文av一区二区| 91精品婷婷国产综合久久性色| 久久亚洲欧美日韩精品专区| 欧美黑人xxx| 国产伦精品一区二区三区高清版 | 老司机午夜精品视频在线观看| 不卡一区中文字幕| 91精品福利视频| 久久久精品在线观看| 国产欧美日韩伦理| 日韩影片在线播放| 中文 日韩 欧美| 黄色片视频网站| 欧美一区二区三区久久综合| bdsm精品捆绑chinese女| xx欧美视频| 91综合网人人| 久久日韩粉嫩一区二区三区| 成人免费一区二区三区在线观看| 666欧美在线视频| 91精品国产高清自在线| 亚洲一区综合| 免费的av网站| 亚洲va久久久噜噜噜无码久久| 伊人伊人av电影| 僵尸再翻生在线观看| 88国产精品视频一区二区三区| 久久久久久久综合日本| 欧美大胆人体bbbb| 国产主播在线一区| 成人3d动漫一区二区三区| 国产福利久久久| 欧美69xx性欧美| 天堂中文а√在线| 国产一区二区欧美| 久久久亚洲高清| 国产丝袜精品第一页| 成人av影视在线| 精品人妻无码中文字幕18禁| 一级二级三级视频| www.xxx黄| 成人午夜888| 国产一区二区久久| 日韩免费成人网| 国产日本一区二区三区| 人妻激情偷乱频一区二区三区| 国产免费不卡av| 日韩三级电影网| 最新亚洲精品| 欧美经典一区二区三区| 日韩在线www| 国产在线播放观看| aaa人片在线| 毛片视频免费观看| 超碰97久久国产精品牛牛| 亚洲无毛电影| 亚洲mv大片欧洲mv大片精品| 国语自产偷拍精品视频偷| 国产精品久久中文字幕| 国产精品久久久久久人| 佐山爱痴汉视频一区二区三区| 一区二区美女| 综合激情成人伊人| 韩国福利视频一区| 免费午夜视频在线观看| 中文字幕一区二区在线视频 | 成人a在线视频| 色悠悠在线视频| 久热免费在线视频| 宅男午夜在线| 网友自拍一区| 综合久久久久久| 日本精品中文字幕| 下面一进一出好爽视频| 亚洲一二三四2021不卡| 黄色网页在线播放| 久久精品国语| 欧美不卡视频一区| 日本不卡久久| wwwwwxxxx日本| 在线视频1区2区| 午夜精品久久久久久久久久久久久蜜桃 | 97av在线视频| 麻豆传传媒久久久爱| 国产绿帽一区二区三区| 日本亚洲精品| 日韩黄色一级片| 精品国产91久久久| 精品亚洲一区二区三区在线观看| 日韩免费av电影| 亚洲日本成人在线观看| 综合国产在线| 日韩欧美成人免费视频| 亚洲伊人久久综合| 中文字幕伦理片| 福利小视频网站| 九九热播视频在线精品6| 亚洲欧美自拍偷拍色图| 欧美综合第一页| 欧美 变态 另类 人妖| 亚洲熟妇无码久久精品| 国产日本在线观看| 香蕉亚洲视频| 日韩精品福利在线| 99999精品视频| 狠狠综合久久久综合| 蜜桃无码一区二区三区| 国产xxxx振车| 一级黄色片免费| 粗大黑人巨茎大战欧美成人| 日韩不卡一区二区| 亚洲一区二区国产| 国产精品欧美激情在线观看| 美女扒开内裤让男人桶| 久久婷婷五月综合色丁香| 国产欧美一区二区精品仙草咪| 欧美一区二区大胆人体摄影专业网站| 亚洲制服在线观看| 免费黄色小视频| 成人区精品一区二区婷婷| 欧美日韩另类一区| 欧美一二三不卡| 欧美日韩色视频| 夜色视频网站| 国产成人精品一区二区免费看京 | 丰满人妻一区二区三区免费| 欧美特黄aaaaaaaa大片| 1000精品久久久久久久久| 91九色在线观看| 免费看日批视频| 啊啊啊久久久| 亚洲特级片在线| 久久99精品国产一区二区三区| 久草免费资源站| 美女88av| 日韩视频三区| 久久亚洲电影天堂| 黄瓜视频污在线观看| 亚洲啪啪aⅴ一区二区三区9色| 免费成人在线网站| 欧美一区二三区| 亚洲一区 视频| av在线视屏| 一区二区高清视频在线观看| 日韩影视精品| 男人的天堂va免费视频| 欧美理伦片在线播放| 制服.丝袜.亚洲.另类.中文| 国产视频一区二区三区在线播放| 日本羞羞视频| 99精品视频免费| 97在线看福利| 日韩乱码在线观看| 在线男人天堂| 欧美香蕉大胸在线视频观看| 欧美日韩成人免费视频| www.激情| 蜜臀av亚洲一区中文字幕| 国产91精品久久久久久久| 国产第100页| 欧美gay囗交囗交| 视频一区二区三区在线看免费看| 国产精品成人自拍| 欧美日韩国产大片| 国产二区视频在线播放| 一级黄色免费| 在线观看视频日韩| 久久久久久91| 国产精品自拍视频一区| 456成人影院在线观看| 色婷婷综合中文久久一本| 男人插女人下面免费视频| 第四色亚洲色图| 精品无人区卡一卡二卡三乱码免费卡| 国产精品福利久久久| 中文资源在线播放| 国语一区二区三区| 亚洲色图国产精品| 国产精品理论在线| 欧美国产成人精品一区二区三区| 中文资源在线网| 成人91在线观看| 久久久久资源| 先锋影音av中文资源| 欧美激情电影| 91精品国产91久久久久久不卡| 国产精品男女视频| 中文字幕av一区二区三区四区| 日韩高清a**址| 亚洲aa中文字幕| 国产乱子伦精品无码码专区| 亚洲免费观看高清完整版在线观| 亚洲性日韩精品一区二区| 日韩在线中文字幕视频| 欧美日韩视频免费观看| 欧美变态凌虐bdsm| 蜜桃久久精品成人无码av| 性国裸体高清亚洲| 欧美丰满一区二区免费视频| 四虎永久免费在线观看| 三上悠亚激情av一区二区三区| 日韩午夜激情av| 91社区视频在线观看| 成人交换视频| 亚洲性线免费观看视频成熟| 国产成人自拍视频在线| 欧美日韩破处| 欧美日韩成人免费| 中文字幕一区二区三区四区视频| 波多野结衣一区| 欧美综合在线第二页| 污视频网站免费观看| 国产精品美女| 九色91视频| 天天草夜夜骑| 精品美女久久久| 高清亚洲成在人网站天堂| 一女二男一黄一片| 亚洲午夜av| 国产一区二区三区奇米久涩| 日日夜夜人人| 久久久久久久久岛国免费| 国产乱子夫妻xx黑人xyx真爽| 国产在线中文字幕| 欧美xxxxxbbbbb| 毛片免费在线播放| 精品久久久中文| 粉嫩av蜜桃av蜜臀av| 久久国内精品| 久久人体大胆视频| 国产精品羞羞答答在线| 在线欧美亚洲| 久久爱av电影| 最新中文字幕在线| 日韩欧美在线视频| 日本乱子伦xxxx| swag国产精品一区二区| 91精品国产色综合| 性欧美free| 久久精品综合网| 亚洲视频在线不卡| 黄色在线免费观看网站| 国产一区av在线| 国产av一区二区三区精品| 日韩一区精品字幕| 日韩一级性生活片| 91中文在线| 亚洲欧洲偷拍精品| 国产成人精品一区二区无码呦 | 国产吃瓜黑料一区二区| 国产精品美女午夜爽爽| 欧美俄罗斯乱妇| 性xxxx奶大欧美高清| 99精品一区二区三区| 亚洲小视频网站| 成人在线免费| 69视频在线免费观看| 淫行教师动漫| 一区av在线播放| 日本黄区免费视频观看| 久久麻豆精品| 欧美黑人xxxxx| aaa日本高清在线播放免费观看| 精品88久久久久88久久久| 在线免费看91| 久久99国产精品久久99果冻传媒|