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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6289|回復: 8
打印 上一主題 下一主題
收起左側

注釋很詳細的51單片機簡易的電子鐘程序+Proteus仿真電路

  [復制鏈接]
跳轉到指定樓層
樓主
有需要自己借鑒
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. /*------------------------------------------------------------------------------------------------
  2. 程序功能:采用LCD1602液晶顯示,顯示項目有:年月日、星期、時分秒,帶按鍵調整功能。
  3. 按鍵操作說明:
  4. 1、S3按鍵:是調整時間日期鍵,該按鍵選擇對秒、分、時、星期、日、月、年選中操作,
  5. 當其中一個被選中的時候,可以進行時間調整和日期的調整。每按一次調整一個時間或日期,直到"年"再按一次退出設置界面。
  6. 2、S1按鍵:是時間、日期增加操作。
  7. 3、S2按鍵:是時間、日期減少操作。

  8. ------------------------------------------------------------------------------------------------*/

  9. #include <reg51.h>
  10. #include <intrins.h>
  11. #define uchar unsigned char
  12. #define uint unsigned int
  13. sbit ds1302_sclk= P1^4;    //DS1302的Sclk時鐘線位定義
  14. sbit ds1302_io  = P1^5;    //DS1302的i/o數據線位定義
  15. sbit ds1302_ce = P1^6;     //DS1302的ce片選線位定義
  16. sbit rd=P3^7;

  17. sbit lcd1602_rs = P1^2;          //位定義1602液晶數據命令選擇端
  18. sbit lcd1602_rw = P1^1;                 //位定義1602液晶讀寫選擇端
  19. sbit lcd1602_en  = P1^0;          //位定義1602液晶使能端
  20. sbit set = P3^4;               //定義S9按鍵_時間設置選擇鍵
  21. sbit up  = P3^2;               //定義S13按鍵_增加鍵
  22. sbit down= P3^3;               //定義S17按鍵_減小鍵

  23. uchar time_data[]={19,6,11,23,13,14,0};   //設置時間初值(年、周、月、日、時、分、秒)
  24. uchar write_add[]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80};  //年、周、月、日、時、分、秒的寄存器寫入地址

  25. uchar code table1[]={"20  -  -   Week"}; //液晶一直顯示的字符
  26. uchar code table2[]={"      :  :      "}; //用空格補齊16位
  27. uchar miao,fen,shi,nian,yue,ri,week;
  28. uchar flag=1,count=0,flag_up=0,flag_down=0,done=0;

  29. void delay(uchar x)  //延時函數
  30. {
  31.         uchar y,z;
  32.         for(z=x;z>0;z--)
  33.                 for(y=110;y>0;y--);
  34. }

  35. /*****************************與ds1302相關函數*********************************/

  36. void write_ds1302_byte(uchar dat)   //ds1302寫一字節
  37. {
  38.         uchar i;
  39.         for(i=0;i<8;i++)   //分8次循環,把(add)一位一位的寫入
  40.         {
  41.                 ds1302_sclk=0;       
  42.                 ds1302_io =dat&0x01;   //dat和0x01進行按位與,保留最低位。即從低位開始寫入
  43.                 dat=dat>>1;   //add右移一位
  44.                 ds1302_sclk=1;
  45.         }
  46. }

  47. void ds1302_write(uchar add,uchar date)  //單字節寫操作函數(包含地址和數據)
  48. {
  49.         ds1302_ce=0;      
  50.         ds1302_sclk=0;     
  51.         ds1302_ce=1;     //ce變為高電平,允許單片機向DS1302中的寄存器寫入地址命令和數據
  52.         _nop_();         
  53.         write_ds1302_byte(add);    //寫入控制命令(指明寫入的寄存器地址及后續的操作為寫操作)
  54.         write_ds1302_byte(date);   //寫入一個字節數據
  55.         ds1302_ce=0;     //地址命令和數據寫完之后,把ce拉低,防止對寫入的數據進行誤操作
  56.         _nop_();         
  57.         ds1302_io =1;    //釋放IO數據線
  58.         ds1302_sclk=1;   //釋放sclk時鐘線
  59. }

  60. uchar ds1302_read(uchar add)  //單字節讀操作函數
  61. {
  62.         uchar i,value;
  63.         ds1302_ce=0;     
  64.         ds1302_sclk=0;   
  65.         ds1302_ce=1;  //ce變為高電平,單片機向DS1302中的寄存器寫入地址命令,并讀出數據
  66.         _nop_();        //稍微延時(一個機器周期)
  67.         write_ds1302_byte(add);   //寫入控制命令,(指明要讀取的寄存器地址及后續的操作為讀操作)
  68.         for(i=0;i<8;i++)   //分8次循環,把數據一位一位的讀出
  69.         {
  70.                 value=value>>1;     //value右移一位
  71.                 ds1302_sclk=0;    //把sclk時鐘置為低電平,開始讀取數據
  72.                 if(ds1302_io)
  73.                 {
  74.                         value=value|0x80;    //把I0讀到的值,放到value 的最高位
  75.                 }
  76.                 ds1302_sclk=1;
  77.         }
  78.         ds1302_ce=0;      //一個字節的數據讀完之后,把ce拉低
  79.         _nop_();
  80.         ds1302_sclk=0;     //釋放sclk時鐘線
  81.         _nop_();
  82.         ds1302_sclk=1;
  83.         ds1302_io=1;      //釋放io數據線
  84.         return value;    //把 value值返回
  85. }

  86. void set_rtc()   //設置時間初值函數
  87. {
  88.         uchar i,j,k;
  89.         for(i=0;i<7;i++)  //把數組time_data[]中的7個十進制數轉換成BCD碼
  90.         {
  91.                 j=time_data[i]/10;
  92.                 k=time_data[i]%10;
  93.                 time_data[i]=k+j*16;
  94.         }
  95.         ds1302_write(0x8e,0x00);  //在往寄存器寫之前,要去除寫保護(8e為寫保護寄存器的地址)
  96.         for(i=0;i<7;i++)   //分7次循環,向年、周、月、日、時、分、秒的寄存器寫入時間數據
  97.         {
  98.                 ds1302_write(write_add[i],time_data[i]);
  99.         }
  100.         ds1302_write(0x8e,0x80);  //加寫保護
  101. }


  102. /***************************與lcd1602相關函數***************************/
  103. void lcd_write_com(uchar com)   //寫命令函數
  104. {
  105.         lcd1602_rs=0;     //數據命令選擇端,寫命令時設為0
  106.         lcd1602_rw=0;    //讀寫選擇端,寫時設為0
  107.         lcd1602_en=0;  
  108.         P0=com;        //將要寫的命令送到數據總線上
  109.         lcd1602_en=1;   //使能端電平變換,形成一個高脈沖將命令寫入到液晶控制器
  110.         delay(5);       //延時
  111.         lcd1602_en=0;               
  112. }

  113. void lcd_write_date(uchar date)    //寫數據函數
  114. {
  115.     lcd1602_rs=1;      //數據命令選擇端,寫數據時設為1
  116.         lcd1602_rw=0;     //讀寫選擇端,寫時設為0
  117.         lcd1602_en=0;
  118.         P0=date;       //將要寫的數據送到數據總線上
  119.         lcd1602_en=1;  //使能端電平變換,形成一個高脈沖將命令寫入到液晶控制器
  120.         delay(5);       //延時
  121.         lcd1602_en=0;       
  122. }

  123. void lcd1602_init()                 //LCD1602初始化函數       
  124. {
  125.         uchar lcdnum;
  126.         lcd_write_com(0x38);  
  127.         lcd_write_com(0x0c);   
  128.         lcd_write_com(0x06);   
  129.         lcd_write_com(0x01);   

  130.         lcd_write_com(0x80);                 //寫第一行數據
  131.         for(lcdnum=0;lcdnum<16;lcdnum++)             
  132.         {
  133.                 lcd_write_date(table1[lcdnum]);
  134.                 delay(2);
  135.         }
  136.         lcd_write_com(0x80+0x40);                         //寫入第二行數據
  137.         for(lcdnum=0;lcdnum<16;lcdnum++)
  138.         {
  139.                 lcd_write_date(table2[lcdnum]);
  140.                 delay(2);
  141.         }
  142. }

  143. /***********************************顯示部分********************************/

  144. void write_time1(uchar add,uchar date)    //日期送顯示
  145. {       
  146.         uchar shi,ge;
  147.         shi=date/10;
  148.         ge=date%10;
  149.         lcd_write_com(0x80+add);
  150.         lcd_write_date(0x30+shi);
  151.         lcd_write_date(0x30+ge);
  152. }

  153. void write_time2(uchar add,uchar date)    //時間送顯示
  154. {       
  155.         uchar shi,ge;
  156.         shi=date/10;
  157.         ge=date%10;
  158.         lcd_write_com(0x80+0x44+add);
  159.         lcd_write_date(0x30+shi);
  160.         lcd_write_date(0x30+ge);
  161. }

  162. uchar bcd_decimal(uchar bcd)              //bcd轉換十進制
  163. {
  164.         uchar decimal;
  165.         decimal=bcd>>4;
  166.         decimal=decimal*10+(bcd&=0x0f);
  167.         return decimal;        
  168. }

  169. void write_week(uchar we)        //星期送顯示
  170. {
  171.         lcd_write_com(0x80+0x0f);


  172.         switch(we)
  173.         {
  174.                 case 1: lcd_write_date('1');
  175.                                  break;
  176.                 case 2:        lcd_write_date('2');
  177.                                  break;
  178.                 case 3:        lcd_write_date('3');
  179.                                  break;
  180.                 case 4: lcd_write_date('4');
  181.                                  break;       
  182.                 case 5: lcd_write_date('5');
  183.                                  break;
  184.                 case 6: lcd_write_date('6');
  185.                                  break;
  186.                 case 7: lcd_write_date('7');
  187.                                  break;                                                                                                                  
  188.         }       
  189. }

  190. /******************************按鍵處理******************************/

  191. uchar key_bcd(uchar key_decimal)    //轉成ds1302所需的BCD碼
  192. {
  193.         uchar temp;
  194.         temp=(((key_decimal/10)&0x0f)<<4)|(key_decimal%10);
  195.         return temp;       
  196. }

  197. void key_up_down()     //加減鍵處理函數
  198. {
  199.         if(up==0)   //加鍵處理
  200.         {
  201.                 delay(50);
  202.                 flag_up=1;     //"加"更新標志
  203.                 while(!up);
  204.                 switch(count)
  205.                 {
  206.                         case 1:
  207.                                         miao++;
  208.                                         if(miao>59)
  209.                                                 miao=0;
  210.                                         break;
  211.                         case 2:
  212.                                         fen++;
  213.                                         if(fen>59)
  214.                                                 fen=0;
  215.                                         break;
  216.                         case 3:
  217.                                         shi++;
  218.                                         if(shi>23)
  219.                                                 shi=0;
  220.                                         break;                               
  221.                         case 4:
  222.                                         week++;
  223.                                         if(week>7)
  224.                                                 week=1;
  225.                                         break;                               
  226.                         case 5:
  227.                                         ri++;
  228.                                         if(ri>31)
  229.                                                 ri=1;
  230.                                         break;                                       
  231.                         case 6:
  232.                                         yue++;
  233.                                         if(yue>12)
  234.                                                 yue=1;
  235.                                         break;                                       
  236.                         case 7:       
  237.                                         nian++;
  238.                                         if(nian>99)
  239.                                                 nian=0;
  240.                                         break;                                                                                               
  241.                 }
  242.         }
  243.         if(down==0)    //減鍵處理
  244.         {
  245.                 delay(50);
  246.                 flag_down=1;           //"減"更新標志                       
  247.                 while(!down);
  248.                 switch(count)
  249.                 {
  250.                         case 1:
  251.                                         miao--;
  252.                                         if(miao==255)
  253.                                                 miao=59;
  254.                                         break;
  255.                         case 2:
  256.                                         fen--;
  257.                                         if(fen==255)
  258.                                                 fen=59;
  259.                                         break;
  260.                         case 3:
  261.                                         shi--;
  262.                                         if(miao==255)
  263.                                                 shi=23;
  264.                                         break;                               
  265.                         case 4:
  266.                                         week--;
  267.                                         if(week<1)
  268.                                                 week=7;
  269.                                         break;                               
  270.                         case 5:
  271.                                         ri--;
  272.                                         if(ri<1)
  273.                                                 ri=31;
  274.                                         break;                                       
  275.                         case 6:
  276.                                         yue--;
  277.                                         if(yue<1)
  278.                                                 yue=12;
  279.                                         break;                                       
  280.                         case 7:       
  281.                                         nian--;
  282.                                         if(nian==255)
  283.                                                 nian=99;
  284.                                         break;                                                                                               
  285.                 }
  286.         }                       
  287. }


  288. void key_set()   //ste鍵掃描函數
  289. {
  290.         if(set==0 )
  291.         {
  292.                 delay(50);
  293.                 if(set==0)
  294.                 {       
  295.                         while(!set);      //等待set釋放
  296.                         count++;        //按set一下,count加1,進入時間調速掃描程序  
  297.                         lcd_write_com(0x0f);  //把1602液晶顯示光標并閃爍
  298.                         if(flag==1)
  299.                                 {
  300.                                         done=1;
  301.                                         flag=0;
  302.                                         ds1302_write(0x8e,0x00);        //寫允許       
  303.                                         ds1302_write(0x80,key_bcd(miao)|0x80); //BIT7為1,晶振停止工作
  304.                                         ds1302_write(0x8e,0x80);        //寫保護       
  305.                                 }               
  306.                 }
  307.         }

  308. }

  309. void keyjpress()        //按鍵處理
  310. {       
  311.         key_set();
  312.         if(count!=0)           //count不為0,進入時間調整掃描
  313.         {
  314.                        
  315.                 switch(count)
  316.                 {
  317.                         case 1:do   
  318.                                    {
  319.                                                 lcd_write_com(0x80+0x40+11);     //調整秒
  320.                                                 key_up_down();
  321.                                                 if(flag_up || flag_down)
  322.                                                 {       
  323.                                                         flag_up=0;
  324.                                                         flag_down=0;
  325.                                                         ds1302_write(0x8e,0x00);                       
  326.                                                         ds1302_write(0x80,key_bcd(miao) | 0x80);
  327.                                                         ds1302_write(0x8e,0x80);        
  328.                                                     write_time2(6,miao);
  329.                                                     lcd_write_com(0x80+0x40+7);  //液晶寫字符后光標自動
  330.                                                          //向右移動一位,把光標
  331.                                                          //左移一位
  332.                                             }
  333.                                }
  334.                                     while(count==2);
  335.                                         break;

  336.                         case 2:do   
  337.                                    {
  338.                                                 lcd_write_com(0x80+0x40+8);      //調整分
  339.                                                 key_up_down();                                               
  340.                                                 if(flag_up || flag_down)
  341.                                                 {       
  342.                                                         flag_up=0;                                          
  343.                                                         flag_down=0;
  344.                                                         ds1302_write(0x8e,0x00);                       
  345.                                                         ds1302_write(0x82,key_bcd(fen));
  346.                                                         ds1302_write(0x8e,0x80);        
  347.                                                     write_time2(3,fen);
  348.                                                     lcd_write_com(0x80+0x40+4);
  349.                                             }       
  350.                                     }
  351.                                     while(count==3);       
  352.                                         break;

  353.                         case 3:do                                 
  354.                                    {       
  355.                                                 lcd_write_com(0x80+0x40+5);   //調整時
  356.                                                 key_up_down();
  357.                                                 if(flag_up || flag_down)
  358.                                                 {       
  359.                                                         flag_up=0;                                          
  360.                                                         flag_down=0;
  361.                                                         ds1302_write(0x8e,0x00);                       
  362.                                                         ds1302_write(0x84,key_bcd(shi));
  363.                                                         ds1302_write(0x8e,0x80);        
  364.                                                     write_time2(0,shi);
  365.                                                     lcd_write_com(0x80+0x40+1);
  366.                                             }
  367.                                     }
  368.                                     while(count==4);
  369.                                         break;                       
  370.                         case 4: do
  371.                                    {
  372.                                                 lcd_write_com(0x80+0x0f);    //調整星期
  373.                                                 key_up_down();
  374.                                                 if(flag_up || flag_down)
  375.                                                 {       
  376.                                                         flag_up=0;                                          
  377.                                                         flag_down=0;                                               
  378.                                                         ds1302_write(0x8e,0x00);                       
  379.                                                         ds1302_write(0x8a,key_bcd(week));
  380.                                                         ds1302_write(0x8e,0x80);        
  381.                                                     write_week(week);
  382.                                                     lcd_write_com(0x80+0x0e);
  383.                                             }       
  384.                                     }
  385.                                     while(count==5);
  386.                                         break;                       
  387.                         case 5:do
  388.                                    {       
  389.                                                 lcd_write_com(0x80+9);   //調整日
  390.                                                 key_up_down();
  391.                                                 if(flag_up || flag_down)
  392.                                                 {       
  393.                                                         flag_up=0;                                          
  394.                                                         flag_down=0;
  395.                                                         ds1302_write(0x8e,0x00);                       
  396.                                                         ds1302_write(0x86,key_bcd(ri));
  397.                                                         ds1302_write(0x8e,0x80);        
  398.                                                     write_time1(8,ri);
  399.                                                     lcd_write_com(0x80+9);
  400.                                             }
  401.                                     }
  402.                                         while(count==6);
  403.                                         break;                       
  404.                         case 6:do
  405.                                    {                    
  406.                                                 lcd_write_com(0x80+6);   //調整月
  407.                                                 key_up_down();
  408.                                                 if(flag_up || flag_down)
  409.                                                 {       
  410.                                                         flag_up=0;                                          
  411.                                                         flag_down=0;                                               
  412.                                                         ds1302_write(0x8e,0x00);                       
  413.                                                         ds1302_write(0x88,key_bcd(yue));
  414.                                                         ds1302_write(0x8e,0x80);        
  415.                                                     write_time1(5,yue);
  416.                                                     lcd_write_com(0x80+6);
  417.                                             }
  418.                                     }
  419.                                     while(count==7);
  420.                                         break;                       
  421.                         case 7:
  422.                                                 lcd_write_com(0x80+3);     //調整年
  423.                                                 key_up_down();
  424.                                                 if(flag_up || flag_down)
  425.                                                 {       
  426.                                                         flag_up=0;                                          
  427.                                                         flag_down=0;
  428.                                                         ds1302_write(0x8e,0x00);                       
  429.                                                         ds1302_write(0x8c,key_bcd(nian));
  430.                                                         ds1302_write(0x8e,0x80);        
  431.                                                     write_time1(2,nian);
  432.                                                     lcd_write_com(0x80+3);
  433.                                             }
  434.                                     break;
  435.                         case 8:       
  436.                                         lcd_write_com(0x0c);         //調整結束,關閉顯示光標
  437.                                          flag=1;
  438.                                          done=0;
  439.                                         count=0;
  440.                                         ds1302_write(0x8e,0x00);                       
  441.                                         ds1302_write(0x80,key_bcd(miao)&0x7f); //BIT7為0,晶振開始工作
  442.                                         ds1302_write(0x8e,0x80);
  443.                                         break;                                                           
  444.                         default:break;                                                                                       
  445.                 }       
  446.         }

  447. }

  448. void xianshi()  //1602液顯示函數
  449. {
  450.   //讀秒分時,日月年,星期               
  451.         miao=bcd_decimal(ds1302_read(0x81));  
  452.         fen =bcd_decimal(ds1302_read(0x83));
  453.         shi =bcd_decimal(ds1302_read(0x85));
  454.         ri  =bcd_decimal(ds1302_read(0x87));
  455.         yue =bcd_decimal(ds1302_read(0x89));
  456.         nian=bcd_decimal(ds1302_read(0x8d));
  457.         week=bcd_decimal(ds1302_read(0x8b));
  458.   //送液晶顯示               
  459.         write_time2(6,miao);
  460.         write_time2(3,fen);
  461.         write_time2(0,shi);
  462.         write_time1(8,ri);
  463.         write_time1(5,yue);
  464.         write_time1(2,nian);
  465.         write_week(week);       

  466. }

  467. main()  //主函數
  468. {
  469.         uchar ch;  
  470.         lcd1602_en=0;  //關閉1602液晶使能,防止1602數據端影響單片機P0口輸出
  471.         P0=0xff;       
  472.         lcd1602_init();    //1602液晶初始化

  473.         ch=ds1302_read(0x81)>>7;  //讀取DS1302時鐘的秒寄存器的值,并保留最高位
  474.         if(ch)   //判斷:若ch為0,不設置初值;若ch為1,重新設置初值
  475.         {
  476.         set_rtc();   //對DS1302設置時間初值
  477.         }
  478.         while(1)
  479.         {
  480.                 if(done==1)
  481.                 {       
  482.                         keyjpress();
  483.                 }
  484.                 if(done==0)
  485.                 {
  486.                         xianshi();        //取得并顯示日歷、時間
  487.                         key_set();
  488.                
  489.                 }                               
  490.         }
  491. }  
復制代碼

所有資料51hei提供下載:
time1.zip (82.72 KB, 下載次數: 115)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:282431 發表于 2019-11-24 10:05 | 只看該作者
這注釋真的非常這詳細,非常棒,謝謝分享!
回復

使用道具 舉報

板凳
ID:614253 發表于 2019-12-18 16:11 | 只看該作者

這注釋真的非常這詳細,非常棒,謝謝分享!
回復

使用道具 舉報

地板
ID:27825 發表于 2019-12-18 20:13 來自觸屏版 | 只看該作者
謝謝老師,好好學習
回復

使用道具 舉報

5#
無效樓層,該帖已經被刪除
6#
ID:770377 發表于 2020-6-5 15:12 | 只看該作者
太強了
回復

使用道具 舉報

7#
ID:655556 發表于 2020-6-5 22:31 | 只看該作者
很詳細,非常感謝
回復

使用道具 舉報

8#
無效樓層,該帖已經被刪除
9#
ID:765729 發表于 2020-6-7 09:51 來自觸屏版 | 只看該作者
大神厲害,我學到了
回復

使用道具 舉報

10#
ID:1073996 發表于 2023-4-26 10:23 | 只看該作者
為什么我的搞完之后,數碼管顯示2005/5/05-05:05:05.ds1302顯示的年和日期反了
回復

使用道具 舉報

11#
無效樓層,該帖已經被刪除
12#
ID:863362 發表于 2023-4-27 13:48 | 只看該作者
為什么運行起來時間誤差很大呢?每分鐘誤差10秒。
回復

使用道具 舉報

13#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
蜜桃a∨噜噜一区二区三区| 中文字幕一区电影| 中文字幕av一区 二区| 国产精品18久久久久久久久 | 成人情趣视频网站| 欧美日韩导航| 中文字幕区一区二区三| 日韩av黄色| 香蕉成人影院| 国产成+人+综合+亚洲欧美| 成人免费影院| 欧美极品免费| 国产精品久久久久久久久久齐齐| 国产精品专区免费| 日韩电影网站| 午夜日韩成人影院| 草民电影神马电影一区二区| 成人在线免费| 久久综合给合| 极度色播免费播放视频| 日韩8x8x| 999人在线精品播放视频| 夜夜操夜夜操| 草莓视频末满18勿| sm一区二区三区| 能在线观看av网站| 又黄又爽在线免费观看| 色视频在线看| 蜜桃视频在线观看免费视频网站www| 日韩在线免费电影| 国产在线黄色片| 原千岁中文字幕| 三级理论午夜在线观看| 日本高清视频在线播放| 国产网红女主播精品视频| av成人 com a| 日韩久久99| 日韩中出av| 日韩欧美在线中字| 亚洲伦理一区| 黄一区二区三区| 97精品久久久午夜一区二区三区| 国产精品久久久久久久裸模| 尤物av一区二区| 色综合久久六月婷婷中文字幕| 欧美另类久久久品| 亚洲视频欧美视频| 久久久亚洲影院你懂的| 成人黄色在线播放| 欧美深深色噜噜狠狠yyy| 黄色一级片网址| 成 年 人 黄 色 大 片大 全| 亚洲精品高清无码视频| 91丨porny丨对白| 中文字幕在线有码| 182在线观看视频| 日本免费在线观看视频| 丁香六月天婷婷| 91视频在线| 91短视频在线观看| 久久精品视频观看| 国产极品一区| 日韩在线视频精品| 免费成人在线视频观看| 国产亲近乱来精品视频| 午夜精品视频一区| 亚洲精品97久久| 午夜精品三级视频福利| 国产精品久久久久久久免费大片| 亚洲精品高清国产一线久久| 国产自偷自偷免费一区| 亚洲自拍偷拍图| 中文字幕精品视频在线观看| 亚洲永久免费网站| а√最新版地址在线天堂| 久草在线视频福利| 欧美电影在线观看完整版| 99国产精品视频免费观看一公开 | 香蕉网站在线| 日韩伦理在线一区| 日韩mv欧美mv国产网站| 免费日韩一区二区| 国产欧美一区二区精品性色| 欧美日韩激情一区| 欧美激情免费视频| 蜜桃精品久久久久久久免费影院| 爱情岛论坛vip永久入口| 一起操在线播放| 国模私拍视频在线| 爆操欧美孕妇| 色综合桃花网| 欧洲毛片在线视频免费观看| 韩国三级中文字幕hd久久精品| 亚洲精品国产一区二区精华液| 亚洲精品在线免费播放| 久久av在线播放| 精品久久一区二区三区蜜桃| 日日摸天天爽天天爽视频| 91n在线视频| 日批免费在线观看| 黄页网址大全在线观看| 色综合天天色| 日韩亚洲精品在线| 亚洲三级小视频| 亚洲天堂网在线观看| 亚洲一区二区三区成人在线视频精品| 久久久亚洲精品无码| 蜜桃视频最新网址| 最近的中文字幕在线看视频| 欧美美乳在线| 国内精品麻豆美女在线播放视频 | 狠狠操精品视频| 国产精品不卡av| 国产精选一区二区三区不卡催乳| 亚洲图片88| 国产精品片aa在线观看| 99久久久免费精品国产一区二区 | 偷拍亚洲色图| 国产精品一二二区| 欧美日韩国产综合久久| 国产91久久婷婷一区二区| 我的公把我弄高潮了视频| 国产午夜精品理论片在线| 中文字幕在线久热精品| 3d成人动漫在线| 成人羞羞视频播放网站| 久久麻豆一区二区| 日韩精品黄色网| 精品伦精品一区二区三区视频| 丰满人妻一区二区三区大胸 | 亚洲黄网在线观看| 国产激情99| 欧美日本三级| 国产成人亚洲综合a∨婷婷| 51精品国自产在线| 91麻豆国产精品| 国产精品久久久久久久久久久久久 | a'aaa级片在线观看| 中文在线日韩| 中文字幕亚洲精品在线观看| 久久精品99无色码中文字幕| 在线一区日本视频| 精品爆乳一区二区三区无码av| 日本dvd播放| 欧美日韩在线精品一区二区三区激情综合 | 亚洲午夜国产成人| 国产91露脸合集magnet| 日韩精品高清在线观看| 午夜精品区一区二区三| 极品久久久久久| h网站免费在线观看| 成人动漫视频在线观看| 成人国产亚洲欧美成人综合网 | 涩视频在线观看| 亚洲不卡1卡2卡三卡2021麻豆| 黄色网页在线免费看| 激情久久一区| 欧美亚洲动漫制服丝袜| 91久久国产综合久久蜜月精品| 91视频在线免费| 欧美高清videos性极品| 欧美二三四区| 国产91丝袜在线观看| 亚洲人成自拍网站| 成人av在线播放观看| 波多野结衣黄色网址| 在线91av| 欧美~级网站不卡| 91久久国产综合久久| 不卡一区二区三区视频| 日本人亚洲人jjzzjjz| 免费黄色成年网站| 国内自拍欧美| 亚洲精品视频观看| 国产精品高清在线观看| 西西大胆午夜视频| 日本视频网址| 久久99国产精品久久99大师| 亚洲欧美区自拍先锋| 国产精品91在线| 97人妻精品一区二区免费| 美女被c网站| 午夜精品影视国产一区在线麻豆| 一区二区三区资源| 91精品国产综合久久久久久久久| 天天躁夜夜躁狠狠是什么心态| 农村一级毛片| 免费福利视频一区| 亚洲成人精品在线观看| 成人午夜电影免费在线观看| 男人天堂资源网| 女同久久另类69精品国产| 高清一级毛片视频| 一区二区三区国产精华| 欧美一区二区精品久久911| 亚洲午夜高清视频| 国产精品久久久久久免费免熟| 女人天堂av在线播放| 国产成人一区二区精品非洲| 久久久久久久久久久免费精品| www.四虎精品| jizz在线播放| 亚洲草久电影| 日韩免费视频一区| 国产午夜福利100集发布| 天天操天天爱天天干| 国产精品传媒麻豆hd| 成人欧美一区二区三区黑人麻豆| 91精品久久久久久久| 欧美黄色aaa| 你懂的视频在线免费| 日韩不卡一区二区| 久久亚洲精品一区二区| 四虎永久免费观看| 99reav| 亚洲日本黄色| 一区二区三区高清国产| 国内自拍第二页| 成年人免费影院| 久久97精品| 欧美日韩www| 国产九九九九九| 99久9在线视频| 色橹橹欧美在线观看视频高清| 欧美日韩免费观看一区二区三区| 福利在线小视频| 亚洲欧美自偷自拍| 欧美精品国产白浆久久久久| 欧美日韩国产综合久久 | 亚洲国产一区二区在线| 亚洲高清视频在线播放| 91麻豆精品一二三区在线| 狠狠做深爱婷婷久久综合一区| 亚洲 国产 欧美一区| 亚洲经典一区二区| 欧州一区二区三区| 欧美日韩在线免费视频| 欧美 国产 综合| 色网在线播放| 黄色日韩在线| 欧美成人国产va精品日本一级| 亚洲日本精品视频| 99青草视频在线播放视| 久久久久久久久一| 久久综合给合久久狠狠色| 国产精品一区无码| 久久青草视频| 91久久国产最好的精华液| 欧美变态另类刺激| 草莓视频app18在线视频| 一区二区久久| 2019av中文字幕| 久久亚洲天堂网| 免费污视频在线一区| 色综合天天性综合| 青青草av网站| 狠狠干五月天| 国产精品66部| 成人免费看片网站| 日韩一级片免费观看| 久久av免费看| 最近2019中文字幕在线高清| gv天堂gv无码男同在线观看| 日韩经典av| 亚洲成a人片在线不卡一二三区| 黄色三级中文字幕| 福利在线网站| 免费黄网站欧美| 成人免费视频在线观看超级碰| 一区二区不卡视频在线观看| 红杏成人性视频免费看| 亚洲美女www午夜| 亚洲а∨天堂久久精品2021| 超免费在线视频| 日韩欧美主播在线| 成人性生交免费看| 污污网站在线| 中文字幕在线视频一区| 996这里只有精品| а√最新版在线天堂| 成人污视频在线观看| 免费国产一区| 999久久久免费精品国产牛牛| 日韩成人一区二区| 国产精品久久久久久久久久直播| 热久久中文字幕| 亚洲主播在线| 亚洲最大的av网站| 亚洲精品自产拍在线观看app| 一本色道88久久加勒比精品| 国产男人精品视频| 无码国产伦一区二区三区视频| 伊人成人在线视频| 国产精品一二三视频| 亚洲男人的天堂成人| 久久午夜电影| 久久精品日产第一区二区三区乱码| 国产麻豆精品一区二区三区v视界| 另类图片国产| 精品国产电影| 成品网站w灬+源码1688网页| 26uuu亚洲| 妺妺窝人体色777777| 在线一区观看| 亚洲电影激情视频网站| 国产又粗又猛又爽又黄| 欧美日韩在线视频免费观看| 欧美一区二区三区白人| 任我爽在线视频| 欧美日韩导航| 欧美有码在线观看| 成年女人免费毛片视频永久| 美女看a上一区| 亚洲一区二区在线看| 91青娱乐在线视频| 性做久久久久久免费观看欧美| www日本在线观看| 台湾佬中文娱乐久久久| 亚洲精品自拍偷拍| 亚洲av人无码激艳猛片服务器| 亚洲精品2区| 国产成人一区二区三区免费看| 天堂在线网站| 国产欧美一区二区三区鸳鸯浴| 色戒在线免费观看| 欧美aa一级| 中文字幕国内精品| 国产超碰人人模人人爽人人添| 久久久久中文| 亚洲精品一区二区三| 中文在线√天堂| 色婷婷综合久久久久中文一区二区 | 亚洲动漫第一页| 8x8x成人免费视频| 国产一二三区在线观看| 日韩欧美精品在线视频| 99久久精品久久亚洲精品| 牛牛精品成人免费视频| 久久久久久久久久国产精品| www香蕉视频| 麻豆成人91精品二区三区| 欧美日韩日本网| 伊人网在线观看| 高潮白浆女日韩av免费看| 久久午夜夜伦鲁鲁片| 国产伦理久久久久久妇女| 久久久伊人欧美| 国产精品合集一区二区| 99re热这里只有精品视频| 免费黄色日本网站| 亚洲风情在线资源| 中文字幕最新精品| 亚洲女人天堂a在线播放| 精品一区二区三区免费播放| 日韩电影大全在线观看| 看电影就来5566av视频在线播放| 色综合久久66| 男女视频免费看| 中文字幕免费一区二区| 99re在线观看| 一级毛片免费在线| 狠狠干狠狠久久| 日本系列第一页| 91精品久久久久久久蜜月| 国产原创欧美精品| 成人高清免费| 欧美日韩性视频在线| 久久亚洲精品大全| 久久久久蜜桃| 国产高清精品一区二区| 成视频免费在线看| 日韩欧美亚洲一二三区| 精品国产免费观看| 1024成人| 免费国产a级片| 涩涩视频网站在线观看| 国产亚洲欧洲高清一区| 亚洲第一香蕉视频| 久久在线观看免费| 久久精品—区二区三区舞蹈 | 国产又粗又猛又爽又黄的视频小说| 狼人精品一区二区三区在线| www 成人av com| 骚视频在线观看| 欧美日韩成人在线| 国产不卡精品视频| 成人一区二区三区视频在线观看| 亚洲 自拍 另类 欧美 丝袜| 精品国产亚洲一区二区三区在线| 欧美成人精品影院| 黄网视频午夜青春| 欧美日韩国产页| 亚洲图片欧美日韩| 麻豆国产91在线播放| 午夜影院免费版| 伊人久久噜噜噜躁狠狠躁| 91色中文字幕| av男人的天堂在线| 中文字幕在线成人| 你懂的网址视频|