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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9767|回復: 15
收起左側

pcf8574擴展出來的i2c驅動1602液晶定時開關單片機源程序與實物制作

  [復制鏈接]
ID:261837 發表于 2018-2-17 10:19 | 顯示全部樓層 |閱讀模式
主要元件
89c52單片機
ds1302實時時鐘程序
24c02
18b20
pcf8574
lcd1602
不知道為什么使用i2c光標不清晰

下面制作出來的實物圖:
8197729095740.2667422769260367.jpg

單片機源程序如下:
  1. #include"mcu.h"
  2. #include"ds1302.c"
  3. #include"pcf8574lcd.h"
  4. #include"24c02.h"
  5. sbit a0 = ACC^0;
  6. sbit a1 = ACC^1;
  7. sbit a2 = ACC^2;
  8. sbit a3 = ACC^3;
  9. sbit a4 = ACC^4;
  10. sbit a5 = ACC^5;
  11. sbit a6 = ACC^6;
  12. sbit a7 = ACC^7;

  13. sbit SCLK = P1^2;              //時鐘        
  14. sbit IO = P1^3;                      //數據
  15. sbit RST = P1^4;                //復位

  16. sbit DQ = P0^0 ; //18B20接口
  17. sbit sp = P3^4 ; //蜂鳴器

  18. sbit sb = P0^6 ;   //繼電器電源
  19. //輸出
  20. sbit sb0 = P2^0 ;        
  21. sbit sb1 = P2^1 ;
  22. sbit sb2 = P2^2 ;        
  23. sbit sb3 = P2^3 ;
  24. //按鍵
  25. sbit MODE = P2^7 ;        //模式鍵
  26. sbit INC = P2^6 ;        //增加鍵
  27. sbit DEC = P2^5 ;        //減少鍵
  28. sbit OK = P2^4 ;        //OK鍵        定時開關鍵
  29.          
  30. volatile uint8 data timedata[7] ;        //時間值
  31. volatile uint8 data display_buffer1[16];        //顯示緩沖區1
  32. volatile uint8 data display_buffer2[16];        //顯示緩沖區2
  33. volatile uint8 data temdata[5] ;        //存放溫度值
  34. volatile uint16 data tdat ;        //溫度值變量
  35. volatile uint8 data tflag ;        //溫度正負值標志
  36. volatile int self_pos = 0 ;//菜單箭頭標志變量
  37. volatile int OK_VALUE = 0 ; //OK鍵鍵值變量
  38. volatile bit bdata DIS_ON = 1 ; //顯示開關 1 == on 0 == off
  39. volatile bit bdata SCAN_ON = 0 ; //按鍵掃描開關位,由定時器每20MS刷新
  40. volatile data MODE_ON = 0 ; //模式鍵按下后顯示菜單
  41. volatile data INC_VALUE = 0 ;
  42. volatile data DEC_VALUE = 0 ;
  43. volatile bit bdata ALARM_VALUE = 0 ;//鬧鐘標志位
  44. volatile bit bdata ALARM_ON = 1 ; //鬧鐘響時關閉標志位
  45. volatile int data read_1 = 1,read_2 = 1,read_3 = 1,read_4 = 1;
  46.                                                          

  47. /****************************************************************
  48. 延時函數
  49. *****************************************************************/
  50. void delay_ms(uint16 count)        // 延時時間count*1ms
  51. {        uint16 i;
  52.         for(;count>0;count--)
  53.         {
  54.                 for(i=0;i<110;i++)
  55.                 {
  56.                         nop;
  57.                 }
  58.         }
  59. }
  60. /**********************************************************
  61. 蜂鳴器
  62. ************************************************************/
  63. void speakers(uint8 speak_count)
  64. {
  65.         for(;speak_count>0;speak_count--)
  66.                 {
  67.                         sp = 0 ;
  68.                         delay_ms(15) ;
  69.                         sp = 1 ;
  70.                         
  71.                 }
  72. }


  73. //底層驅動函數(輸入)
  74. void DS1302_input(uint8 inputdata)
  75. {
  76.         ACC = inputdata ;
  77.         IO = a0 ; SCLK = 1 ; SCLK = 0 ;
  78.         IO = a1 ; SCLK = 1 ; SCLK = 0 ;
  79.         IO = a2 ; SCLK = 1 ; SCLK = 0 ;
  80.         IO = a3 ; SCLK = 1 ; SCLK = 0 ;
  81.         IO = a4 ; SCLK = 1 ; SCLK = 0 ;
  82.         IO = a5 ; SCLK = 1 ; SCLK = 0 ;
  83.         IO = a6 ; SCLK = 1 ; SCLK = 0 ;
  84.         IO = a7 ; SCLK = 1 ; SCLK = 0 ;
  85. }

  86. //底層驅動函數(輸出)控制位的第七位必須為1
  87. uint8 DS1302_output(void)
  88. {
  89.         IO = 1 ;
  90.         a0 = IO ;
  91.         SCLK = 1 ; SCLK =0 ; a1 = IO ;
  92.         SCLK = 1 ; SCLK =0 ; a2 = IO ;
  93.          SCLK = 1 ; SCLK =0 ; a3 = IO ;
  94.     SCLK = 1 ; SCLK =0 ; a4 = IO ;
  95.     SCLK = 1 ; SCLK =0 ; a5 = IO ;
  96.     SCLK = 1 ; SCLK =0 ; a6 = IO ;
  97.     SCLK = 1 ; SCLK =0 ; a7 = IO ;
  98.         return(ACC);
  99. }
  100. //底層驅動函數(指定地址寫一個字節的數據)
  101. void DS1302_write_byte(uint8 cmd , uint8 dat)
  102. {
  103.         SCLK = 0 ;
  104.         RST = 0 ;
  105.         RST = 1 ;
  106.         DS1302_input(cmd) ;
  107.         DS1302_input(dat) ;
  108.         RST = 0 ;
  109.         SCLK = 1 ;
  110. }
  111. //底層驅動函數(指定地址讀取一字節的數據)
  112. uint8 DS1302_read_byte(int cmd)
  113. {
  114.         uint8 receivedata = 0 ;
  115.     SCLK = 0 ;
  116.         RST = 0 ;
  117.         RST = 1 ;
  118.         DS1302_input(cmd) ;
  119.         receivedata = DS1302_output() ;
  120.         RST = 0 ;
  121.         SCLK = 1 ;
  122.         return(receivedata) ;
  123. }

  124. //1302的初始數據
  125. void DS1302_init()
  126. {        
  127.                 if(DS1302_read_byte(0xef) != 0xf0) //檢測初始化標志數據不為f0則初始化1302
  128.                 {                                                                                                                 
  129.                         DS1302_write_byte(0x8e,0x00) ;//允許寫操作
  130.                         DS1302_write_byte(0xee,0xf0) ; //初始化標志
  131.                         DS1302_write_byte(0x8c,0x18) ;//年
  132.                         DS1302_write_byte(0x8a,0x01) ;//星期
  133.                         DS1302_write_byte(0x88,0x01) ;//月
  134.                         DS1302_write_byte(0x86,0x01) ;//日
  135.                         DS1302_write_byte(0x84,0x12) ;//時
  136.                         DS1302_write_byte(0x82,0x00) ;//分
  137.                         DS1302_write_byte(0x80,0x00) ;//秒
  138.                         DS1302_write_byte(0x90,0xa5) ;//充電

  139.                         DS1302_write_byte(0x8e,0x80) ;//禁止寫操作         
  140.                 }
  141. }
  142. /********************************************************
  143. 讀取時間數據并放在timedata[]中
  144. *********************************************************/
  145. void DS1302_read_time()
  146. {
  147.         timedata[0] = DS1302_read_byte(0x8d) ;        //年
  148.         timedata[1] = DS1302_read_byte(0x89) ;        //月
  149.         timedata[2] = DS1302_read_byte(0x87) ;        //日

  150.         timedata[3] = DS1302_read_byte(0x85) ;        //時
  151.         timedata[4] = DS1302_read_byte(0x83) ;        //分
  152.         timedata[5] = DS1302_read_byte(0x81) ;        //秒

  153.         timedata[6] = DS1302_read_byte(0x8b) ;        //星期
  154. }


  155. /***********************************************************
  156. DS18B20函數
  157. *************************************************************/
  158. void delay_18b20(int16 sum) //短暫延時
  159. {
  160.         while(sum--);
  161. }

  162. void rst_18b20()                 //18B20復位
  163. {        //uchar flag;
  164.         DQ=1;
  165.         delay_18b20(8);
  166.         DQ=0;
  167.         delay_18b20(80);
  168.         DQ=1;
  169.         delay_18b20(13);
  170.         //flag=DQ;
  171.         //return(flag);
  172. //        delay_18b20(20);
  173. }        


  174. void wr_18b20(int dat)        //寫一個字節的數據
  175. {
  176.         uint8 i=8;
  177.         for(;i>0;i--)
  178.         {
  179.                 DQ=0;
  180.                 DQ=dat&0x01;
  181.                 delay_18b20(5);
  182.                 DQ=1;
  183.                 dat>>=1;
  184.         }        
  185. }

  186. uint8 rd_18b20()                //讀一個字節的內容
  187. {
  188.         uint8 dat=0,i=8;
  189.         for(;i>0;i--)
  190.         {
  191.                 DQ=0;
  192.                 dat>>=1;
  193.                 DQ=1;
  194.                 if(DQ)
  195.                 dat|=0x80;
  196.                 delay_18b20(4);
  197.         }
  198.         return(dat);
  199. }
  200. uint16 rd_temperature()                //讀取溫度值
  201. {        
  202.         uint8 a=0,b=0;
  203.         uint16 t=0;
  204.         float tt=0;
  205.         rst_18b20();                //復位
  206.         wr_18b20(0xcc);                //跳過ROM
  207.         wr_18b20(0x44);                //啟動溫度轉換
  208.         rst_18b20();                //再次對18B20操作時,需要重新復位一次
  209.         wr_18b20(0xcc);                //跳過ROM
  210.         wr_18b20(0xbe);                //讀取內部RAM的內容
  211.         a=rd_18b20();                //讀溫度值低位(內部RAM的第0個字節)
  212.         b=rd_18b20();                //讀溫度值高位(內部RAM的第1個字節)
  213.         t=b;
  214.         t<<=8;                                //溫度值的高8位放在t的高8位
  215.         t=t|a;                                //溫度值的低8位放在t的低8位
  216.         if(t<0x0fff)                //判斷溫度值得正負值
  217.                    tflag=0;                //tflag=0溫度值為正
  218.     else
  219.    {
  220.                 t=~t+1;                        //溫度值為負,負值以補碼形式存放,這里要將其還原成原碼
  221.                 tflag=1;                //tflag=1溫度值為負
  222.    }
  223.         tt=t*0.0625;
  224.         t = tt*100 ;                        
  225.         return(t);
  226.         
  227. }

  228. //***********************************************//



  229. void tem_conv()                        //溫度轉換
  230.                         {               
  231.                                 uint8 flagdat ;//定義溫度值符號
  232.                                 if(tflag==0)
  233.                                 temdata[4]=flagdat=0x20;//溫度為正不顯示負號
  234.                                    else
  235.                                  temdata[4]=flagdat=0x2d;//負溫度顯示負號
  236.                                  temdata[0]=tdat/1000+0x30;//溫度十位
  237.                              temdata[1]=tdat%1000/100+0x30;//溫度個位
  238.                              temdata[2]=tdat%100/10+0x30;//小數十位
  239.                              temdata[3]=tdat%10+0x30;//小數百位
  240.                                 /*if(temdata[0]==0x30)
  241.                                     {temdata[0]=0x20;//?????0,???
  242.                                                    if(temdata[1]==0x30)
  243.                                             {
  244.                                                         temdata[1]=0x20;//?????0,???0????
  245.                                             }
  246.                                            }*/
  247.                                 
  248.                           }
  249.                         
  250. /**************************************************************
  251. 更新顯示緩沖區
  252. ***************************************************************/
  253. void updata_buffer(void)
  254. {

  255. //顯示日期
  256.         display_buffer1[0] = '2' ;
  257.         display_buffer1[1] = '0' ;
  258.         display_buffer1[2] = timedata[0]/16+0x30 ;                //年
  259.         display_buffer1[3] = timedata[0]%16+0x30 ;
  260.         display_buffer1[4] = 0 ;
  261.         display_buffer1[5] = timedata[1]/16+0x30 ;                //月
  262.         display_buffer1[6] = timedata[1]%16+0x30 ;
  263.         display_buffer1[7] = 0 ;
  264.         display_buffer1[8] = timedata[2]/16+0x30 ;                 //日
  265.         display_buffer1[9] = timedata[2]%16+0x30 ;
  266.         display_buffer1[10] = ' ' ;
  267.         display_buffer1[11] = ' ' ;
  268.         display_buffer1[12] = ' ' ;
  269.         switch(timedata[6]%16)                            //顯示星期
  270.                 {        case 1 : {display_buffer1[13] = '1' ;
  271.                                         }break ;
  272.                         case 2 : {display_buffer1[13] = '2' ;
  273.                                         }break ;
  274.                         case 3 : {display_buffer1[13] = '3' ;
  275.                                         }break ;
  276.                         case 4 : {display_buffer1[13] = '4' ;
  277.                                         }break ;
  278.                         case 5 : {display_buffer1[13] = '5' ;
  279.                                         }break ;
  280.                         case 6 : {display_buffer1[13] = '6' ;
  281.                                         }break ;
  282.                         case 7 : {display_buffer1[13] = '7' ;
  283.                                         }break ;
  284.                         default : break;        }
  285.         display_buffer1[14] = ' ' ;
  286.         if(ALARM_VALUE == 1)
  287.                 display_buffer1[15] = 1 ;          //按下ok鍵顯示定時標志
  288.         else
  289.     if(ALARM_VALUE == 0)
  290.                 display_buffer1[15] = 3 ;
  291.                                 
  292.                 //當前時間值
  293.         display_buffer2[0] = timedata[3]/16+0x30;                //時
  294.         display_buffer2[1] = timedata[3]%16+0x30;
  295.         display_buffer2[2] = ':' ;
  296.         display_buffer2[3] = timedata[4]/16+0x30 ;           //分
  297.         display_buffer2[4] = timedata[4]%16+0x30 ;
  298.         display_buffer2[5] = ':' ;
  299.         display_buffer2[6] = timedata[5]/16+0x30 ;           //秒
  300.         display_buffer2[7] = timedata[5]%16+0x30 ;
  301.                         
  302.                         //溫度值
  303.         display_buffer2[8] = ' ' ;
  304.         display_buffer2[9] = temdata[4] ;                //負號
  305.         display_buffer2[10] = temdata[0] ;                //溫度十位
  306.         display_buffer2[11] = temdata[1] ;                //溫度個位
  307.         display_buffer2[12] = '.' ;
  308.         display_buffer2[13] = temdata[2] ;                //小數十位
  309.         display_buffer2[14] = temdata[3] ;           //小數百位
  310.         display_buffer2[15] = 'C' ;
  311. }

  312. /******************************************************************
  313. 顯示緩沖區內容
  314. *******************************************************************/
  315. void display_buffer(void)
  316. {
  317.         uint8 i ;
  318.         send_command(0x80) ;        //顯示第一行
  319.         for(i=0;i<16;i++)
  320.         send_data(display_buffer1[i]);
  321.         send_command(0xc0) ;   //顯示第二行
  322.         for(i=0;i<16;i++)
  323.         send_data(display_buffer2[i]);
  324. }
  325. /*****************************************************************
  326. 按鍵掃描函數
  327. ******************************************************************/

  328. void key_scan(void)
  329. {
  330.         if(MODE == 0)
  331.                 {
  332.                         delay_ms(10) ;
  333.                         while(!MODE) ;
  334.                         speakers(5) ;
  335.                         DIS_ON = 0 ;
  336.                         MODE_ON ++ ;
  337.                         if(MODE_ON == 1 && OK_VALUE == 0)
  338.                         send_command(0x01);
  339.                         if(MODE_ON == 2 && OK_VALUE == 0)
  340.                                 {
  341.                                         MODE_ON = 0 ;
  342.                                         DIS_ON = 1 ;
  343.                                         self_pos = 0 ;
  344.                                 }
  345.                 }
  346.         
  347.         if(INC == 0 && MODE_ON == 1 && OK_VALUE == 0)
  348.                 {
  349.                         delay_ms(10) ;
  350.                         while(!INC) ;
  351.                         speakers(5) ;
  352.                         send_command(0x01) ;
  353.                         self_pos++ ;
  354.                         if(self_pos > 4)
  355.                         self_pos = 0 ;
  356.                 }
  357.         if(DEC == 0 && MODE_ON == 1 && OK_VALUE == 0)
  358.                 {
  359.                         delay_ms(10) ;
  360.                         while(!DEC) ;
  361.                         speakers(5) ;
  362.                         send_command(0x01) ;
  363.                         self_pos++ ;
  364.                         if(self_pos > 4)
  365.                         self_pos = 0 ;
  366.                 }
  367.         if(DEC == 0 )
  368.                 {
  369.                         delay_ms(10) ;
  370.                         while(!DEC) ;
  371.                         speakers(5) ;
  372.                         DEC_VALUE++;
  373.                 }
  374.         if(INC == 0)
  375.                 {
  376.                         delay_ms(10) ;
  377.                         while(!INC) ;
  378.                         speakers(5) ;
  379.                         INC_VALUE++;
  380.                 }
  381.         if(OK == 0 && MODE_ON != 0)
  382.                 {
  383.                         delay_ms(10) ;
  384.                         while(!OK) ;
  385.                         speakers(5) ;
  386.                         send_command(0x01) ;
  387.                         OK_VALUE++;
  388.                         INC_VALUE = 0 ;
  389.                         DEC_VALUE = 0 ;
  390.                 }
  391.         if(OK == 0 && MODE_ON == 0)
  392.                 {
  393.                         delay_ms(10) ;
  394.                         while(!OK) ;
  395.                         speakers(5) ;
  396.                         ALARM_ON = 1 ;
  397.                         if(ALARM_VALUE == 1)
  398.                                 ALARM_VALUE = 0 ;
  399.                         else
  400.                                 ALARM_VALUE = 1 ;
  401.                 }        
  402. }
  403. /*******************************************************************
  404. 按鍵菜單人機交互函數(第一級)
  405. ********************************************************************/
  406. void menu_display_1()
  407. {
  408.         if(MODE_ON == 1 && OK_VALUE == 0)
  409.                 {
  410.                         switch(self_pos)
  411.                                 {        
  412.                                         case 0 :  {
  413.                                                                 LCD1602_write_string(1,1,"Time  ") ;
  414.                                                                 LCD1602_write_string(1,0," Timing1 ") ;
  415.                                                           }break ;
  416.                                         case 1 :  {
  417.                                                                 LCD1602_write_string(1,1," Time  ") ;
  418.                                                                  LCD1602_write_string(1,0,"Timing1 ") ;
  419.                                                           }break ;
  420.                                         case 2 :  {
  421.                                                                 LCD1602_write_string(1,1," Timing1  ") ;
  422.                                                                 LCD1602_write_string(1,0,"Timing2") ;
  423.                                                           }break ;
  424.                                         case 3 :  {
  425.                                                                 LCD1602_write_string(1,1," Timing2  ") ;
  426.                                                                 LCD1602_write_string(1,0,"Timing3") ;
  427.                                                           }break ;
  428.                                         case 4 :  {
  429.                                                                 LCD1602_write_string(1,1," Timing3  ") ;
  430.                                                                 LCD1602_write_string(1,0,"Timing4") ;
  431.                                                           }break ;
  432.                                         default :  break ;
  433.                                 }        
  434.                 }
  435. }

  436. /*******************************************************************
  437. 按鍵菜單人機交互函數(第二級)
  438. ********************************************************************/
  439. void menu_display_2(void)
  440. {
  441.         uint8 i ,j;
  442.         if(MODE_ON != 0 && OK_VALUE != 0)
  443.                 {
  444.                         send_command(0x0f) ;
  445.                         if(self_pos == 0 )
  446.                                 {
  447.                                        
  448.                                         send_command(0x81) ;
  449.                                         for(i=0;i<15;i++)
  450.                                                 
  451. ……………………

  452. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
0.png

所有資料51hei提供下載:
8574and1602ti.rar (92.21 KB, 下載次數: 98)



評分

參與人數 2黑幣 +55 收起 理由
lamyauhoi + 5
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:261837 發表于 2018-3-2 17:51 | 顯示全部樓層
更新的源碼!!!!

8574and1602ti.rar

95.54 KB, 下載次數: 80, 下載積分: 黑幣 -5

回復

使用道具 舉報

ID:228939 發表于 2018-6-23 00:27 | 顯示全部樓層
感謝樓主,收藏了
回復

使用道具 舉報

ID:44889 發表于 2019-1-19 23:41 | 顯示全部樓層
正在研究I2C接口的LCD1602程序怎么寫,謝謝
回復

使用道具 舉報

ID:472104 發表于 2019-1-23 15:24 | 顯示全部樓層
PCF8574LCD模塊鏈接1602單片機51例程
回復

使用道具 舉報

ID:261837 發表于 2019-4-22 15:01 | 顯示全部樓層
somexu 發表于 2019-1-19 23:41
正在研究I2C接口的LCD1602程序怎么寫,謝謝

發送相應的數據就可以了;1602使用4線模式 占4位 es/rw/e 占3位 還有一位是背光的 參考電路就知道了。
回復

使用道具 舉報

ID:261837 發表于 2019-4-22 15:03 | 顯示全部樓層
8574模塊的電路
pcf8574模塊電路.jpg
回復

使用道具 舉報

ID:115740 發表于 2019-5-22 22:01 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:465596 發表于 2019-6-20 14:52 | 顯示全部樓層
一下子就省了5個IO口   贊
謝謝分享
回復

使用道具 舉報

ID:465596 發表于 2019-6-23 20:22 | 顯示全部樓層
要注意 pcf8574T 跟pcf8574AT的地址不一樣。
回復

使用道具 舉報

ID:357396 發表于 2019-9-14 22:12 | 顯示全部樓層
樓主,下載了你的程序后我的什么也沒顯示,是啥原因??地址我改了,背光也調過。[img]C:\Users\Administrator\Desktop[/img]
回復

使用道具 舉報

ID:677678 發表于 2020-1-2 21:59 | 顯示全部樓層
somexu 發表于 2019-1-19 23:41
正在研究I2C接口的LCD1602程序怎么寫,謝謝

我也在研究
回復

使用道具 舉報

ID:677678 發表于 2020-1-2 22:33 | 顯示全部樓層
頭文件??
回復

使用道具 舉報

ID:709013 發表于 2020-3-15 19:35 | 顯示全部樓層
編譯到倒數第二行出錯是什么問題?
回復

使用道具 舉報

15#
無效樓層,該帖已經被刪除
16#
無效樓層,該帖已經被刪除
ID:111875 發表于 2025-2-15 02:37 | 顯示全部樓層
請教下。pcf8574lcd.c文件里的int和char是怎么定義的。沒找到unsigned char和unsignde int
回復

使用道具 舉報

ID:1064915 發表于 2025-10-5 08:25 | 顯示全部樓層
正在學習pcf8574,沒有顯示,修改地址,還是沒有顯示
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
公侵犯人妻一区二区三区| 亚洲综合激情| 亚洲精品一区二区妖精| 久久国产66| 久久精品亚洲一区二区三区浴池| 亚洲一区二区三区四区五区中文 | 精品美女国产在线| 欧美本精品男人aⅴ天堂| 欧美高跟鞋交xxxxhd| a级国产乱理论片在线观看99| 欧美少妇一区二区三区| 国产人妻精品久久久久野外| 久草视频手机在线观看| 空姐吹箫视频大全| 涩涩视频免费网站| 婷婷丁香在线| 日韩有码中文字幕在线| 久久九九电影| 国产精品精品国产色婷婷| 欧美一级久久久久久久大片| 久久99精品国产99久久6尤物| 动漫3d精品一区二区三区 | 欧美一区二区三区系列电影| 欧美富婆性猛交| 久久国产一区二区| 狠狠干狠狠操视频| 国产一级片免费看| 蜜桃视频无码区在线观看| 中文字幕电影av| 亚洲av成人精品一区二区三区在线播放 | 成人免费a**址| 国产老妇另类xxxxx| 色综合天天综合网天天看片| www.久久久久久.com| 国语精品免费视频| 性猛交ⅹ×××乱大交| 亚洲免费激情视频| 91sese| 新版中文在线官网| 日韩欧美在线中字| 成人va在线观看| 3d成人h动漫网站入口| 日本一本a高清免费不卡| japanese在线播放| 五月婷婷综合激情网| 男女作爱免费网站| 日色在线视频| 国产精品网址| 国产一区二区三区久久久 | 国语一区二区三区| 国产精品综合二区| 欧美喷潮久久久xxxxx| 欧美在线视频一区二区| 可以看毛片的网址| 青娱乐av在线| 一线天自拍视频| 欧洲黄色一区| 欧美激情一级片一区二区| 欧美激情一区二区在线| 亚洲人成网在线播放| 免费在线一区二区| 国产男男chinese网站| 少妇av一区二区| 黄色网址在线播放| 综合亚洲色图| 日本一二三不卡| 日韩中文字幕在线精品| 亚洲欧美日韩国产yyy| 亚洲一二三精品| 国产亚洲精品拍拍拍拍拍| 久久婷婷综合中文字幕| 牛牛澡牛牛爽一区二区| 亚洲国产精品嫩草影院久久av| 丁香六月综合激情| 亚洲风情亚aⅴ在线发布| 国产伦精品一区| a天堂视频在线观看| 中文字幕在线免费看| 永久免费网站在线| 亚洲看片一区| 色婷婷av一区二区三区大白胸| 国产va免费精品高清在线| 亚洲一区二区三区四区五区xx| 最近中文字幕av| 色视频在线看| 天天天综合网| 五月天激情综合| 国产成人高清激情视频在线观看| 伊人网在线综合| www.日日夜夜| 黄色成年人视频在线观看| 在线日韩中文| 欧美三电影在线| 国产免费一区二区三区| 日本一级免费视频| 碰碰视频免费| 欧美电影院免费观看| 91捆绑美女网站| 日韩天堂在线视频| 国产精品秘入口18禁麻豆免会员| 亚洲综合五月天婷婷丁香| 国产毛片av在线| 亚洲欧洲午夜| 91精品在线免费| 日韩精品久久久毛片一区二区| 成人在线观看小视频| 3d黄动漫网站| 欧美视频网址| 欧美日韩在线视频免费观看| wwwwww日本| 影音欧美亚洲| 日本一区二区三区免费视频| 久草热在线观看| 99re6热在线精品视频播放| 国产不卡一二三区| 亚洲自拍偷拍九九九| 国产精品激情自拍| 亚洲一级Av无码毛片久久精品| 欧美黑人双插| 9999精品视频| 欧美国产日本韩| 日本精品在线视频| 无码熟妇人妻av| av电影不卡在线观看| 欧美理伦片在线播放| 一区二区三区在线观看动漫| 成人黄色免费网站在线观看| 丰满圆润老女人hd| 成人国产视频在线| 久久久久久久久久久久久久| 欧美久久久久久久久| 一级日韩一区在线观看| 久久久久亚洲视频| 免费在线观看av电影| 国产不卡高清在线观看视频| 欧美巨乳美女视频| 亚洲一区二区中文字幕在线观看| 精品国产免费观看一区| 天堂精品在线视频| 午夜视频在线观看一区二区| 成人三级视频在线观看一区二区| 久久精品一级片| 免费在线黄色影片| 爽爽淫人综合网网站| 在线观看91久久久久久| 99视频在线视频| 欧美videos粗暴高清性| 老牛精品亚洲成av人片| 日韩欧美一区二区三区久久| 色一情一乱一伦一区二区三区丨| 国产又大又粗又硬| 日韩高清不卡| 亚洲美腿欧美偷拍| 久久精品99| 在线免费看av片| 日本不良网站在线观看| 欧美激情中文不卡| 成人自拍爱视频| 四虎成人在线观看| 99热99re6国产在线播放| 久久久久久日产精品| 国产人妖伪娘一区91| 精品少妇久久久| 亚洲欧美激情另类| 成人久久精品| 欧美色道久久88综合亚洲精品| 天堂一区二区三区 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 欧美freesex8一10精品| 欧洲精品中文字幕| 妺妺窝人体色www看人体| 一区三区三区不卡| 亚欧日韩另类中文欧美| 欧美日韩情趣电影| 日韩av黄色网址| 韩国视频一区| 五月天综合网站| 一本色道久久88精品综合| 少妇性l交大片7724com| 成人黄色电影网址| 国产免费成人| 欧美成人精品一区二区| 极品蜜桃臀肥臀-x88av| 992tv免费直播在线观看| 成人福利视频在线| wwwxx欧美| 国产模特av私拍大尺度 | 蜜臀av免费一区二区三区| 日韩欧美一二区| 亚洲免费成人在线视频| 男女视频网站免费观看| 激情六月婷婷久久| 国产精品高潮呻吟久久av黑人| 91看片在线播放| 丁香久久综合| 欧美日韩精品免费观看视频| 日韩在线xxx| 免费女人黄页| 国模少妇一区二区三区| 成人a视频在线观看| 在线观看国产精品视频| 91精品尤物| 日韩成人av网址| aaaaa一级片| 在线观看三级视频| 亚洲午夜国产一区99re久久| 蜜臀久久99精品久久久无需会员 | 国内精品久久久久久| 美女视频黄免费| 色是在线视频| 91久久精品午夜一区二区| 日韩精品免费播放| 一级毛片视频| eeuss鲁片一区二区三区在线观看| 国产精品久久久久久久久婷婷| 蜜臀av午夜精品| 色天天综合网| 欧美韩日一区二区| 亚洲精品午夜国产va久久成人| 亚洲精品tv| 精品国产91洋老外米糕| 美女脱光内衣内裤| 美女日批视频在线观看| 精品久久中文字幕久久av| 亚洲一区二区蜜桃| 青青久草在线| 亚洲免费毛片网站| 国产97色在线 | 日韩| 免费在线观看麻豆视频| 久久久久青草大香线综合精品| 亚洲人成网站在线观看播放| 最新福利小视频在线播放| 日韩高清不卡一区二区三区| 91在线免费看网站| 男女下面一进一出无遮挡| 国产综合亚洲精品一区二| 日本欧美精品在线| 国 产 黄 色 大 片| 欧美日韩免费| 国产精品福利观看| 中国女人内谢69xxx视频| 韩日在线一区| 成人黄色片网站| 欧美成人精品福利网站| 天堂av在线一区| 国产精品一区视频| 在线播放黄色网址| 国产精品原创巨作av| 亚洲欧美日韩在线综合| 日日夜夜天天操| 久久人人97超碰com| 131美女爱做视频| 色猫av在线| 亚洲成人黄色影院| 免费欧美一级片| 欧美少妇精品| 亚洲经典中文字幕| 国产在线观看你懂的| 欧洲精品一区| 欧美有码在线观看| 亚洲成a人片77777老司机| 久久欧美肥婆一二区| 久久国产主播精品| 99re热在线观看| 国产精品大尺度| 五月天丁香花婷婷| а√在线中文在线新版| 亚洲大胆人体av| 男女日批视频在线观看| 360天大佬第二季在线观看| 亚洲最大成人综合| 伦理片一区二区| 日韩视频网站在线观看| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 免费在线激情视频| 97视频在线观看网站| 欧美日韩国产小视频在线观看| 国产视频不卡在线| 久久久久97| 日韩av手机在线| 久久精品免视着国产成人| 高清成人免费视频| av高清在线免费观看| 午夜免费视频在线国产| 91精品国产欧美一区二区18| 欧美极品aaaaabbbbb| 欧洲激情综合| 亚洲自拍偷拍一区| bdsmchinese医疗折磨| 国产精品成人免费精品自在线观看| jizz大全欧美jizzcom| 亚洲天堂手机| www国产91| 天堂av中文字幕| 成人免费av网站| 成人在线免费播放视频| 伦理av在线| 日韩一区二区精品视频| 成人免费一级视频| 国产精品一区二区在线看| www插插插无码视频网站| 国产精品va在线观看视色| 亚洲高清久久久久久| 中文字幕乱码人妻无码久久| 久久久一二三| 日本免费成人网| 肉肉视频在线观看| 亚洲视频欧洲视频| 秋霞欧美在线观看| 成人精品电影在线观看| 91高清国产视频| 先锋影音网一区二区| 2019精品视频| 免费能直接在线观看黄的视频| 国产精品乱码一区二区三区软件 | 女囚岛在线观看| 在线观看日韩欧美| 亚洲aⅴ乱码精品成人区| 成人av综合一区| 日本一二三四区视频| 亚洲性视频在线| 亚洲va欧美va国产综合久久| 免费一级大片| 欧美一级日韩免费不卡| 一级黄色片在线| 国产精品原创巨作av| 午夜免费福利在线| 成人免费91| 成人国产精品免费视频| 国产视频一二区| 91精品国产欧美一区二区| 中文字幕无码乱码人妻日韩精品| 蜜臀av性久久久久av蜜臀妖精| 97xxxxx| 久久久91麻豆精品国产一区| 成人免费xxxxx在线观看| 亚洲一区二区影视| 日本午夜一本久久久综合| 国产精品免费观看久久| 日韩福利在线观看| 国产专区欧美专区| 在线免费视频福利| 亚洲欧美中文另类| 色图欧美色图| 一区二区三区美女| 国产一级二级毛片| 精品亚洲porn| 国产成人精品一区二区在线小狼| 国产成人黄色| 亚洲精品一卡二卡三卡四卡| 神马午夜伦理不卡| 久久久久久久久久久免费 | 巨胸大乳www视频免费观看| 欧美国产小视频| 精品一区二区三区毛片| 91精品韩国| 91精品美女在线| 欧美视频综合| 日韩视频一区在线| 日日摸日日搞日日| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 国产精品乱看| 欧美两根一起进3p做受视频| 97se亚洲| 日韩在线国产| 欧美色网在线| 国产伦视频一区二区三区| 成人av福利| 欧美在线视频播放| 导航福利在线| 久久精品2019中文字幕| h视频在线观看免费网站| 日韩欧美自拍偷拍| 亚洲男人的天堂成人| 欧美色播在线播放| www.国产麻豆| 玉米视频成人免费看| 亚洲 欧美 中文字幕| 99在线热播精品免费| 国产极品美女在线| 久久国产精品99精品国产| 欧美性生交xxxxx| 精品成人一区| 在线不卡一区二区三区| 日韩免费一区| 欧美综合在线观看视频| 欧美伦理影院| 116极品美女午夜一级| 香蕉久久夜色精品国产使用方法| 天天操天天干天天玩| 国产va免费精品观看精品| 欧美一区视久久| 深夜福利亚洲| 亚洲电影免费| 国产精品一区二区美女视频免费看 | 91欧美在线视频| 国产成人综合精品在线| av在线二区| 国产精品高潮在线| av激情在线|