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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3862|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
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)按鈕是移動光標(biāo),見下圖24C測試ID 0XA0,TW8816測試ID 0X8A讀寫都正常,在i2c壓縮包是程序和仿真

制作出來的實物圖如下:


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


單片機(jī)源程序如下:
  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;          //光標(biāo)  
  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;//拉高使能端,為制造有效的下降沿做準(zhǔn)備
  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置高電平,為制造下降沿做準(zhǔn)備
  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);//開顯示不顯示光標(biāo)
  55.         write_1602com(0x06);//整屏不移動,光標(biāo)自動右移
  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進(jìn)制千位
  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)閉光標(biāo)     
  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)閉光標(biāo)     
  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è)置按鍵按動一次秒位置顯示光標(biāo)
  383.                                             write_1602com(0x0f);  //設(shè)置光標(biāo)為閃爍                                          
  384.                                           break;
  385.                        case 2:  write_1602com(yh+13);
  386.                     write_1602com(0x0f);  //設(shè)置光標(biāo)為閃爍                                         
  387.                                           break;
  388.                                          case 3:  write_1602com(er+5);
  389.                     write_1602com(0x0f);  //設(shè)置光標(biāo)為閃爍                                         
  390.                                           break;
  391.                                          case 4:  write_1602com(er+13);
  392.                                                   write_1602com(0x0f);  //設(shè)置光標(biāo)為閃爍
  393.                                           break;
  394.                                          case 5:  write_1602com(0x0c);//關(guān)閉光標(biāo)
  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.         }
復(fù)制代碼

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


評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:275111 發(fā)表于 2020-4-1 10:03 | 只看該作者
好帖子。雖然剛剛開始看還沒懂。正在學(xué)習(xí)I2C。還請高人多寫。謝謝。
回復(fù)

使用道具 舉報

板凳
ID:295423 發(fā)表于 2024-2-7 14:24 | 只看該作者
好帖子。雖然剛剛開始看還沒懂。正在學(xué)習(xí)I2C。還請高人多寫。謝謝
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
天天综合在线视频| 国产精品无码在线| 日韩中文娱乐网| 国产91精品精华液一区二区三区| 图片一区二区| 最近最新mv在线观看免费高清| 国产一区二区波多野结衣| 五月天六月丁香| 久久99精品久久久久久青青日本 | 久草视频在线免费| 中文字幕人妻一区| 免费观看中文字幕| 国产成人欧美在线观看| 亚洲国产精品久久久久久| 中文字幕亚洲一区二区av在线 | 欧美日韩高清在线播放| av一二三不卡影片| 外国成人激情视频| 亚洲精品粉嫩美女一区| 在线免费观看高清视频色| 在线看污网站| 国产丝袜视频在线观看| 欧美成人国产精品高潮| 日本亚洲一区二区三区| 欧美 亚洲 视频| 国产伦精品一区二区三毛| 国模私拍一区二区三区| 亚洲色图美腿丝袜| 欧美一区二区三区四区高清| 亚洲精品久久久蜜桃| 成人18精品视频| 青娱乐精品在线视频| 欧美一区二区三区久久精品| 精品三级在线观看视频| 欧美天堂一区二区| 三级在线观看网站| 国产成人亚洲欧洲在线| 正在播放国产对白害羞| 久久久久久久久久久综合| 不卡一区二区三区四区五区| 8050国产精品久久久久久| 综合av色偷偷网| 亚洲精品美女久久| 欧美一区二区免费视频| 欧美午夜电影网| 欧美日韩中文在线观看| 亚洲一二三四区不卡| 国产欧美精品在线观看| 91丨porny丨首页| 国产精品一区在线| 麻豆国产91在线播放| 亚洲永久视频| 亚洲精品一二| 亚洲黄色视屏| 影音先锋一区| 今天的高清视频免费播放成人| re久久精品视频| 色综合久久中文| 欧美色图婷婷| 奇米影视777在线欧美电影观看| 天堂va在线高清一区| 亚洲精品无播放器在线播放| 欧美va在线| 欧美日韩国产网站| 激情久久99| 激情五月综合婷婷| 蜜桃精品一区二区三区| 国产精品一区免费在线| 日韩激情欧美| 7m精品国产导航在线| 国产成人福利av| 精品国产午夜肉伦伦影院| 91综合精品国产丝袜长腿久久| 国产精品日韩精品在线播放| 999精品视频在这里| 久久久久高潮毛片免费全部播放| 台湾色综合娱乐中文网| 欧美肉体xxxx裸体137大胆| 国产乱码精品一区二区三区四区| 成人教育av| 日本不卡免费高清视频在线| 78精品国产综合久久香蕉| 欧美不卡高清一区二区三区| www.精品国产| 久久久精品国产**网站| 久久香蕉国产| 久久成人一区| 国产一区二区在线电影| 91视频在线观看免费| 国产精品每日更新在线播放网址| 一二三四社区欧美黄| 色婷婷久久久综合中文字幕| 91精品国产综合久久香蕉麻豆| 亚洲第一区在线| 久久精品91久久香蕉加勒比 | 午夜激情一区二区三区| 色婷婷av一区二区| 日韩视频免费观看高清完整版 | 色婷婷一区二区| 91精品国产免费| 亚洲人成五月天| 九九视频这里只有精品| 国产精品视频网站| 欧美成人免费在线| 国产精品网站免费| 亚洲精品在线网址| 99久久久无码国产精品不卡| 男人天堂2024| 亚州男人的天堂| 免费毛片a线观看| 午夜刺激在线| av在线看片| 99精品国产九九国产精品| 神马影视一区二区| 久久中文欧美| 久久麻豆一区二区| 精品欧美激情精品一区| 亚洲国内精品在线| 欧美夜福利tv在线| 久热国产精品视频一区二区三区| 三上悠亚久久精品| 性欧美丰满熟妇xxxx性久久久| 久久久久人妻一区精品色欧美| 国产乱子伦精品无码码专区| 国产成人香蕉在线视频网站| 欧美风狂大伦交xxxx| 国内小视频在线看| 欧美日韩一区二区三区四区不卡 | 永久av免费网站| 在线视频播放大全| 国产原创在线播放| 日韩三级电影网| 亚洲成人一区在线观看| 日韩欧美在线中字| 国产成人综合视频| 色婷婷av一区二区三区大白胸| 国产亚洲欧美另类中文| 亚洲一区二区三区视频播放| 日韩国产一级片| 中文字幕免费在线看线人动作大片 | 亚洲成人一区二区三区| 免费看的黄色大片| 黄色一级视频播放| 色哟哟视频在线| 无码人妻久久一区二区三区 | 久久久久久欧美| 清纯唯美一区二区三区| 激情 小说 亚洲 图片: 伦| 欧美第一页在线观看| 污污的视频网站在线观看| 午夜影院免费播放| 成人一区视频| 日韩午夜精品| 亚洲日本中文字幕区| 日韩成人免费视频| 国产欧美一区二区| 漂亮人妻被中出中文字幕| 日本伦理一区二区三区| 日本高清视频免费观看| 真不卡电影网| 一本一道久久a久久| 日本伊人午夜精品| 色噜噜久久综合| 97精品国产91久久久久久| 亚洲一区尤物| jizz日本在线播放| 亚洲精品人成网在线播放影院| 黄色免费在线播放| 国产成人一区| 久久精品一区蜜桃臀影院| 欧美精品一区二区三区视频| 91网站在线免费观看| 免费一级特黄录像| 特级做a爱片免费69| 天天操天天操天天色天天要| 韩国主播福利视频一区二区三区| 亚洲伦理精品| 色综合久久88色综合天天6| 日韩av免费看| 性猛交ⅹ×××乱大交| 亚洲视频中文字幕在线观看| 日本视频一二三区中文字幕| 日日夜夜精品视频| 成人久久视频在线观看| 亚洲精品动漫100p| 婷婷亚洲婷婷综合色香五月| 国产黄色录像视频| 99久免费精品视频在线观78| 亚洲人体影院| 精品一区二区在线播放| 欧美一卡在线观看| 久久精品日韩| 2014亚洲天堂| www视频网站| 玖玖玖电影综合影院| 99久久er热在这里只有精品66| 日韩精品在线免费| 一区二区在线观| 青青草免费av| 91福利免费在线| 色吊丝一区二区| 亚洲日本欧美天堂| 97热在线精品视频在线观看| 91蝌蚪视频在线观看| 国产黄频在线观看| www视频在线免费观看| 亚洲欧美卡通另类91av| 欧美一区三区四区| 视频一区亚洲| 亚洲 欧美 日韩 综合| 激情视频免费观看在线| 日韩不卡一区| 色呦呦网站一区| 成人av播放| youjizz亚洲女人| 日日摸夜夜爽人人添av| 国产一区二区三区亚洲| 亚洲免费观看高清完整版在线观看熊 | av超碰在线观看| 麻豆传媒视频在线观看免费| 国产尤物精品| 欧美卡1卡2卡| 日韩videos| 六月丁香激情综合| av免费观看一区二区| 免费视频一区| 亚洲欧美国产va在线影院| 成年人午夜免费视频| 欧美一级性视频| 91精品产国品一二三产区| 成人一级片网址| 久久久精品在线| 57pao国产成永久免费视频| 无国产精品白浆免费视| 精品一区二区三区视频在线播放| 国产精品剧情在线亚洲| 国产精品自产拍在线观看中文| 亚洲精品成人无码| 美女胸又www又黄的网站| 亚洲欧洲美洲一区二区三区| 欧美久久久久久久久中文字幕| 一区二区三区免费看| 国产精品久久777777换脸| 成人三级小说| 久久影音资源网| 国产美女久久精品| 欧美久久久久久久久久久久| 免费a在线观看| 麻豆国产欧美一区二区三区| 中文字幕久久久av一区| 超碰人人cao| 激情综合色综合啪啪开心| 婷婷丁香综合| 日韩国产高清视频在线| 中文字幕 91| 天海翼在线观看视频| 日韩av大片| 亚洲第一黄色网| 日韩肉感妇bbwbbwbbw| 污污美女网站| 综合亚洲视频| 一区二区三区www| 一级黄色电影片| 快色在线观看| 奇米影视一区二区三区小说| 欧美黑人xxxx| 在线日韩国产网站| 第一视频专区在线| 成人av资源站| 99porn视频在线| 最近中文字幕在线视频| www.国产精品| 色婷婷精品久久二区二区蜜臂av| 天堂av免费看| 久久久久亚洲精品一区二区三区| 全球成人免费直播| 亚洲欧美中文日韩v在线观看| 日本网站在线看| 亚洲伦理电影| 国产成人在线视频网站| 91精品久久久久久久久久入口| 亚洲国产成人无码av在线| 久久91导航| 色婷婷久久久久swag精品| 无码人妻精品一区二区三区在线| 情趣视频在线观看| 视频一区欧美精品| 国产成人精品日本亚洲专区61| 亚洲一区欧美在线| 天然素人一区二区视频| 欧美午夜电影在线| 日本中文字幕片| 九七影院97影院理论片免费| 久久国产精品99久久久久久老狼 | 不卡一区二区在线观看| 麻豆导航在线观看| 久久久精品tv| 日日噜噜噜噜夜夜爽亚洲精品| 最近中文字幕mv免费高清电影| 99久久这里只有精品| 日韩午夜在线视频| 日韩在线中文字幕视频| 中文字幕在线免费观看视频| 色噜噜狠狠一区二区三区果冻| www黄色在线| 精品国产一区二区三区四区阿崩| 波多野结衣中文字幕一区| 九色综合婷婷综合| 久久国产精品久久久久久小说| 亚洲激情午夜| 国产精品久久久久久久久久久不卡 | 精品1区2区3区4区| 538国产精品一区二区免费视频| 男人的天堂一区二区| 日韩av黄色| 亚洲大尺度美女在线| 99久久久无码国产精品衣服| 91jq激情在线观看| 日本韩国精品一区二区在线观看| 日本中文字幕精品—区二区| 午夜在线观看91| 国产精品高潮久久久久无| 日韩精品一区二区三区四| bdsm在线观看播放视频| 91麻豆精品视频| 免费cad大片在线观看| 369你懂的电影天堂| 久久一二三国产| 欧美亚洲黄色片| 最新eeuss影院在线观看| 日韩高清不卡一区二区| 久久久久女教师免费一区| 国产又大又黄又粗| 日韩高清三区| 欧美日韩国产成人| 亚洲一区二区色| 婷婷精品进入| 国产精品直播网红| 亚洲精品人成电影网| 美女视频网站久久| 日产精品久久久一区二区| 2020天天操| 国产欧美日本一区二区三区| 日本不卡在线观看视频| 久久精品a一级国产免视看成人 | 国产在线2020| 国产高清在线观看免费不卡| 一区二区三区|亚洲午夜| 国产美女视频黄a视频免费| 中文字幕一区二区三区乱码在线| 国产精品区在线| www.九色在线| 亚洲精品v天堂中文字幕| 日韩精品成人在线| 成人在线电影在线观看视频| 国产精品久久99久久| 无码日韩精品一区二区| 一本岛在免费一二三区| 中文字幕第69页| 四虎国产成人永久精品免费| 精品写真视频在线观看| 精品蜜桃一区二区三区| 在线满18网站观看视频| 成人激情午夜影院| 色婷婷777777仙踪林| 97视频在线观看视频免费视频 | 人人人妻人人澡人人爽欧美一区| 欧美三级网站| 亚洲大胆人体视频| 日本一区二区免费在线观看| 精品一区二区三区在线| 国产日韩av在线播放| 纪美影视在线观看电视版使用方法| 黄色一级视频免费看| 精品视频亚洲| 国产精品久久久久久久一区探花| 四虎国产精品永久地址998| 极品少妇一区二区| 欧美中日韩在线| 国产一二区在线| 亚洲成人免费网站| 久久久久久无码午夜精品直播| 在线欧美三区| 亚洲草草视频| 国产三级视频在线看| 欧美电影免费提供在线观看| 中文字幕av影院| 宅男噜噜噜66国产日韩在线观看| 亚洲精品一区二| 国产天堂素人系列在线视频| 日韩欧美色综合网站| 亚洲自拍一区在线观看| 99国产成+人+综合+亚洲欧美| 神马影院我不卡| av在线收看| 国产视频在线观看一区二区| www日本视频| 成人h精品动漫一区二区三区| 无码内射中文字幕岛国片| 欧美一区久久久|