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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

注釋非常詳細的單片機DS1302的日歷時鐘程序與仿真

[復制鏈接]
跳轉到指定樓層
樓主
基于DS1302的日歷時鐘,包含仿真和c代碼

單片機源程序如下:
  1. #include<reg51.h>     //包含單片機寄存器的頭文件
  2. #include<intrins.h>   //包含_nop_()函數定義的頭文件
  3. /***********************************************************************
  4. 以下是DS1302芯片的操作程序
  5. ************************************************************************/
  6. unsigned char code digit[10]={"0123456789"};   //定義字符數組顯示數字
  7. sbit DATA=P1^1;   //位定義1302芯片的接口,數據輸出端定義在P1.1引腳
  8. sbit RST=P1^2;    //位定義1302芯片的接口,復位端口定義在P1.1引腳
  9. sbit SCLK=P1^0;   //位定義1302芯片的接口,時鐘輸出端口定義在P1.1引腳
  10. /*****************************************************
  11. 函數功能:延時若干微秒
  12. 入口參數:n
  13. ***************************************************/
  14. void delaynus(unsigned char n)
  15. {
  16. unsigned char i;
  17. for(i=0;i<n;i++)
  18.       ;
  19. }
  20. /*****************************************************
  21. 函數功能:向1302寫一個字節數據
  22. 入口參數:x
  23. ***************************************************/
  24. void Write1302(unsigned char dat)
  25. {
  26.   unsigned char i;
  27.   SCLK=0;            //拉低SCLK,為脈沖上升沿寫入數據做好準備
  28.   delaynus(2);       //稍微等待,使硬件做好準備
  29.   for(i=0;i<8;i++)      //連續寫8個二進制位數據
  30.     {
  31.             DATA=dat&0x01;    //取出dat的第0位數據寫入1302
  32.                 delaynus(2);       //稍微等待,使硬件做好準備
  33.                  SCLK=1;           //上升沿寫入數據
  34.                  delaynus(2);      //稍微等待,使硬件做好準備
  35.                  SCLK=0;           //重新拉低SCLK,形成脈沖
  36.                  dat>>=1;          //將dat的各數據位右移1位,準備寫入下一個數據位
  37.           }
  38.        
  39. }
  40. /*****************************************************
  41. 函數功能:根據命令字,向1302寫一個字節數據
  42. 入口參數:Cmd,儲存命令字;dat,儲存待寫的數據
  43. ***************************************************/
  44. void WriteSet1302(unsigned char Cmd,unsigned char dat)
  45. {
  46.    RST=0;           //禁止數據傳遞
  47.    SCLK=0;          //確保寫數居前SCLK被拉低
  48.         RST=1;           //啟動數據傳輸
  49.         delaynus(2);     //稍微等待,使硬件做好準備
  50.         Write1302(Cmd);  //寫入命令字
  51.         Write1302(dat);  //寫數據
  52.         SCLK=1;          //將時鐘電平置于已知狀態
  53.         RST=0;           //禁止數據傳遞
  54. }
  55. /*****************************************************
  56. 函數功能:從1302讀一個字節數據
  57. 入口參數:x
  58. ***************************************************/
  59. unsigned char Read1302(void)
  60. {
  61.    unsigned char i,dat;
  62.         delaynus(2);       //稍微等待,使硬件做好準備
  63.         for(i=0;i<8;i++)   //連續讀8個二進制位數據
  64.          {
  65.            dat>>=1;       //將dat的各數據位右移1位,因為先讀出的是字節的最低位
  66.                 if(DATA==1)    //如果讀出的數據是1
  67.                  dat|=0x80;    //將1取出,寫在dat的最高位
  68.                  SCLK=1;       //將SCLK置于高電平,為下降沿讀出
  69.                  delaynus(2);  //稍微等待
  70.                  SCLK=0;       //拉低SCLK,形成脈沖下降沿
  71.                  delaynus(2);  //稍微等待
  72.           }         
  73.   return dat;        //將讀出的數據返回
  74. }  
  75. /*****************************************************
  76. 函數功能:根據命令字,從1302讀取一個字節數據
  77. 入口參數:Cmd
  78. ***************************************************/
  79. unsigned char  ReadSet1302(unsigned char Cmd)
  80. {
  81.   unsigned char dat;
  82.   RST=0;                 //拉低RST
  83.   SCLK=0;                //確保寫數居前SCLK被拉低
  84.   RST=1;                 //啟動數據傳輸
  85.   Write1302(Cmd);       //寫入命令字
  86.   dat=Read1302();       //讀出數據
  87.   SCLK=1;              //將時鐘電平置于已知狀態
  88.   RST=0;               //禁止數據傳遞
  89.   return dat;          //將讀出的數據返回
  90. }
  91. /*****************************************************
  92. 函數功能: 1302進行初始化設置
  93. ***************************************************/
  94. void Init_DS1302(void)
  95. {       
  96.    WriteSet1302(0x8E,0x00);                 //根據寫狀態寄存器命令字,寫入不保護指令
  97.    WriteSet1302(0x80,((0/10)<<4|(0%10)));   //根據寫秒寄存器命令字,寫入秒的初始值
  98.         WriteSet1302(0x82,((0/10)<<4|(0%10)));   //根據寫分寄存器命令字,寫入分的初始值
  99.         WriteSet1302(0x84,((12/10)<<4|(12%10))); //根據寫小時寄存器命令字,寫入小時的初始值
  100.         WriteSet1302(0x86,((16/10)<<4|(16%10))); //根據寫日寄存器命令字,寫入日的初始值
  101.         WriteSet1302(0x88,((11/10)<<4|(11%10))); //根據寫月寄存器命令字,寫入月的初始值
  102.         WriteSet1302(0x8c,((8/10)<<4|(8%10)));   //根據寫小時寄存器命令字,寫入小時的初始值
  103. }
  104. /*******************************************************************************
  105. 以下是對液晶模塊的操作程序
  106. *******************************************************************************/
  107. sbit RS=P2^0;           //寄存器選擇位,將RS位定義為P2.0引腳
  108. sbit RW=P2^1;           //讀寫選擇位,將RW位定義為P2.1引腳
  109. sbit E=P2^2;            //使能信號位,將E位定義為P2.2引腳
  110. sbit BF=P0^7;           //忙碌標志位,,將BF位定義為P0.7引腳
  111. /*****************************************************
  112. 函數功能:延時1ms
  113. (3j+2)*i=(3×33+2)×10=1010(微秒),可以認為是1毫秒
  114. ***************************************************/
  115. void delay1ms()
  116. {
  117.    unsigned char i,j;       
  118.          for(i=0;i<10;i++)
  119.           for(j=0;j<33;j++)
  120.            ;                 
  121. }
  122. /*****************************************************
  123. 函數功能:延時若干毫秒
  124. 入口參數:n
  125. ***************************************************/
  126. void delaynms(unsigned char n)
  127. {
  128.    unsigned char i;
  129.         for(i=0;i<n;i++)
  130.            delay1ms();
  131. }
  132. /*****************************************************
  133. 函數功能:判斷液晶模塊的忙碌狀態
  134. 返回值:result。result=1,忙碌;result=0,不忙
  135. ***************************************************/
  136. bit BusyTest(void)
  137.   {
  138.     bit result;
  139.         RS=0;       //根據規定,RS為低電平,RW為高電平時,可以讀狀態
  140.     RW=1;
  141.     E=1;        //E=1,才允許讀寫
  142.     _nop_();   //空操作
  143.     _nop_();
  144.     _nop_();
  145.     _nop_();   //空操作四個機器周期,給硬件反應時間       
  146.     result=BF;  //將忙碌標志電平賦給result
  147.    E=0;         //將E恢復低電平
  148.    return result;
  149.   }
  150. /*****************************************************
  151. 函數功能:將模式設置指令或顯示地址寫入液晶模塊
  152. 入口參數:dictate
  153. ***************************************************/
  154. void WriteInstruction (unsigned char dictate)
  155. {   
  156.     while(BusyTest()==1);   //如果忙就等待
  157.          RS=0;                  //根據規定,RS和R/W同時為低電平時,可以寫入指令
  158.          RW=0;   
  159.          E=0;                   //E置低電平(根據表8-6,寫指令時,E為高脈沖,
  160.                            // 就是讓E從0到1發生正跳變,所以應先置"0"
  161.          _nop_();
  162.          _nop_();               //空操作兩個機器周期,給硬件反應時間
  163.          P0=dictate;            //將數據送入P0口,即寫入指令或地址
  164.          _nop_();
  165.          _nop_();
  166.          _nop_();
  167.          _nop_();               //空操作四個機器周期,給硬件反應時間
  168.          E=1;                   //E置高電平
  169.          _nop_();
  170.          _nop_();
  171.          _nop_();
  172.          _nop_();               //空操作四個機器周期,給硬件反應時間
  173.           E=0;                  //當E由高電平跳變成低電平時,液晶模塊開始執行命令
  174. }
  175. /*****************************************************
  176. 函數功能:指定字符顯示的實際地址
  177. 入口參數:x
  178. ***************************************************/
  179. void WriteAddress(unsigned char x)
  180. {
  181.      WriteInstruction(x|0x80); //顯示位置的確定方法規定為"80H+地址碼x"
  182. }
  183. /*****************************************************
  184. 函數功能:將數據(字符的標準ASCII碼)寫入液晶模塊
  185. 入口參數:y(為字符常量)
  186. ***************************************************/
  187. void WriteData(unsigned char y)
  188. {
  189.     while(BusyTest()==1);  
  190.           RS=1;           //RS為高電平,RW為低電平時,可以寫入數據
  191.           RW=0;
  192.           E=0;            //E置低電平(根據表8-6,寫指令時,E為高脈沖,
  193.                      // 就是讓E從0到1發生正跳變,所以應先置"0"
  194.           P0=y;           //將數據送入P0口,即將數據寫入液晶模塊
  195.           _nop_();
  196.           _nop_();
  197.           _nop_();
  198.      _nop_();       //空操作四個機器周期,給硬件反應時間
  199.           E=1;           //E置高電平
  200.           _nop_();
  201.           _nop_();
  202.           _nop_();
  203.          _nop_();        //空操作四個機器周期,給硬件反應時間
  204.          E=0;            //當E由高電平跳變成低電平時,液晶模塊開始執行命令
  205. }
  206. /*****************************************************
  207. 函數功能:對LCD的顯示模式進行初始化設置
  208. ***************************************************/
  209. void LcdInitiate(void)
  210. {
  211.     delaynms(15);               //延時15ms,首次寫指令時應給LCD一段較長的反應時間
  212.     WriteInstruction(0x38);     //顯示模式設置:16×2顯示,5×7點陣,8位數據接口
  213.         delaynms(5);                //延時5ms ,給硬件一點反應時間
  214.     WriteInstruction(0x38);
  215.         delaynms(5);               //延時5ms ,給硬件一點反應時間
  216.         WriteInstruction(0x38);     //連續三次,確保初始化成功
  217.         delaynms(5);               //延時5ms ,給硬件一點反應時間
  218.         WriteInstruction(0x0c);     //顯示模式設置:顯示開,無光標,光標不閃爍
  219.         delaynms(5);               //延時5ms ,給硬件一點反應時間
  220.         WriteInstruction(0x06);     //顯示模式設置:光標右移,字符不移
  221.         delaynms(5);                //延時5ms ,給硬件一點反應時間
  222.         WriteInstruction(0x01);     //清屏幕指令,將以前的顯示內容清除
  223.         delaynms(5);             //延時5ms ,給硬件一點反應時間

  224. }
  225. /**************************************************************
  226. 以下是1302數據的顯示程序
  227. **************************************************************/
  228. /*****************************************************
  229. 函數功能:顯示秒
  230. 入口參數:x
  231. ***************************************************/
  232. void DisplaySecond(unsigned char x)
  233. {
  234. unsigned char i,j;     //j,k,l分別儲存溫度的百位、十位和個位
  235.         i=x/10;//取十位
  236.         j=x%10;//取個位     
  237.         WriteAddress(0x49);    //寫顯示地址,將在第2行第7列開始顯示
  238.         WriteData(digit[i]);    //將百位數字的字符常量寫入LCD
  239.         WriteData(digit[j]);    //將十位數字的字符常量寫入LCD
  240.         delaynms(50);         //延時1ms給硬件一點反應時間   
  241. }

  242. /*****************************************************
  243. 函數功能:顯示分鐘
  244. 入口參數:x
  245. ***************************************************/
  246. void DisplayMinute(unsigned char x)
  247. {
  248. unsigned char i,j;     //j,k,l分別儲存溫度的百位、十位和個位
  249.         i=x/10;//取十位
  250.         j=x%10;//取個位     
  251.         WriteAddress(0x46);    //寫顯示地址,將在第2行第7列開始顯示
  252.         WriteData(digit[i]);    //將百位數字的字符常量寫入LCD
  253.         WriteData(digit[j]);    //將十位數字的字符常量寫入LCD
  254.         delaynms(50);         //延時1ms給硬件一點反應時間   
  255. }
  256. /*****************************************************
  257. 函數功能:顯示小時
  258. 入口參數:x
  259. ***************************************************/
  260. void DisplayHour(unsigned char x)
  261. {
  262. unsigned char i,j;     //j,k,l分別儲存溫度的百位、十位和個位
  263.         i=x/10;//取十位
  264.         j=x%10;//取個位     
  265.         WriteAddress(0x43);    //寫顯示地址,將在第2行第7列開始顯示
  266.         WriteData(digit[i]);    //將百位數字的字符常量寫入LCD
  267.         WriteData(digit[j]);    //將十位數字的字符常量寫入LCD
  268.         delaynms(50);         //延時1ms給硬件一點反應時間   
  269. }
  270. /*****************************************************
  271. 函數功能:顯示日
  272. 入口參數:x
  273. ***************************************************/
  274. void DisplayDay(unsigned char x)
  275. {
  276. unsigned char i,j;     //j,k,l分別儲存溫度的百位、十位和個位
  277.         i=x/10;//取十位
  278.         j=x%10;//取個位     
  279.         WriteAddress(0x0c);    //寫顯示地址,將在第2行第7列開始顯示
  280.         WriteData(digit[i]);    //將百位數字的字符常量寫入LCD
  281.         WriteData(digit[j]);    //將十位數字的字符常量寫入LCD
  282.         delaynms(50);         //延時1ms給硬件一點反應時間   
  283. }
  284. /*****************************************************
  285. 函數功能:顯示月
  286. 入口參數:x
  287. ***************************************************/
  288. void DisplayMonth(unsigned char x)
  289. {
  290. unsigned char i,j;     //j,k,l分別儲存溫度的百位、十位和個位
  291.         i=x/10;//取十位
  292.         j=x%10;//取個位     
  293.         WriteAddress(0x09);    //寫顯示地址,將在第2行第7列開始顯示
  294.         WriteData(digit[i]);    //將百位數字的字符常量寫入LCD
  295.         WriteData(digit[j]);    //將十位數字的字符常量寫入LCD
  296.         delaynms(50);         //延時1ms給硬件一點反應時間   
  297. }
  298. /*****************************************************
  299. 函數功能:顯示年
  300. 入口參數:x
  301. ***************************************************/
  302. void DisplayYear(unsigned char x)
  303. {
  304. unsigned char i,j;     //j,k,l分別儲存溫度的百位、十位和個位
  305.         i=x/10;//取十位
  306.         j=x%10;//取個位     
  307.         WriteAddress(0x06);    //寫顯示地址,將在第2行第7列開始顯示
  308.         WriteData(digit[i]);    //將百位數字的字符常量寫入LCD
  309.         WriteData(digit[j]);    //將十位數字的字符常量寫入LCD
  310.         delaynms(50);         //延時1ms給硬件一點反應時間   
  311. }

  312. /*****************************************************
  313. 函數功能:主函數
  314. ***************************************************/
  315. void main(void)
  316. {
  317.   unsigned char second,minute,hour,day,month,year;      //分別儲存苗、分、小時,日,月,年
  318.   unsigned char ReadValue;   //儲存從1302讀取的數據
  319.   LcdInitiate();             //將液晶初始化
  320.   WriteAddress(0x01);  //寫Date的顯示地址,將在第1行第2列開始顯示
  321.   WriteData('D');      //將字符常量寫入LCD
  322.   WriteData('a');      //將字符常量寫入LCD
  323.   WriteData('t');      //將字符常量寫入LCD
  324.   WriteData('e');      //將字符常量寫入LCD
  325.   WriteData(':');      //將字符常量寫入LCD
  326.   WriteAddress(0x08);  //寫年月分隔符的顯示地址, 顯示在第1行第9列
  327.   WriteData('-');      //將字符常量寫入LCD
  328.   WriteAddress(0x0b);  //寫月日分隔符的顯示地址, 顯示在第1行第12列
  329.   WriteData('-');      //將字符常量寫入LCD
  330.   WriteAddress(0x45);  //寫小時與分鐘分隔符的顯示地址, 顯示在第2行第6列
  331.   WriteData(':');      //將字符常量寫入LCD
  332.   WriteAddress(0x48);  //寫分鐘與秒分隔符的顯示地址, 顯示在第2行第9列
  333.   WriteData(':');      //將字符常量寫入LCD
  334.   Init_DS1302();       //將1302初始化       
  335.   while(1)
  336.     {
  337.           ReadValue = ReadSet1302(0x81);   //從秒寄存器讀數據
  338.      second=((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);//將讀出數據轉化
  339.           DisplaySecond(second);          //顯示秒
  340.           ReadValue = ReadSet1302(0x83);  //從分寄存器讀
  341.      minute=((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); //將讀出數據轉化
  342.           DisplayMinute(minute);               //顯示分
  343.      ReadValue = ReadSet1302(0x85);  //從分寄存器讀
  344.      hour=((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); //將讀出數據轉化
  345.           DisplayHour(hour);                     //顯示小時
  346.      ReadValue = ReadSet1302(0x87);  //從分寄存器讀
  347.      day=((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); //將讀出數據轉化
  348.           DisplayDay(day);                //顯示日
  349.           ReadValue = ReadSet1302(0x89);  //從分寄存器讀
  350.      month=((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); //將讀出數據轉化
  351.           DisplayMonth(month);            //顯示月
  352.           ReadValue = ReadSet1302(0x8d);  //從分寄存器讀
  353.      year=((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); //將讀出數據轉化
  354.           DisplayYear(year);              //顯示年
  355.          }
  356. }
復制代碼

所有資料51hei提供下載:
基于DS1302的日歷時鐘.zip (47.27 KB, 下載次數: 88)


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

使用道具 舉報

無效樓層,該帖已經被刪除
板凳
ID:869186 發表于 2020-12-28 09:55 | 只看該作者
為什么不能顯示實時的時間和日期呢
回復

使用道具 舉報

地板
ID:869186 發表于 2020-12-28 10:16 | 只看該作者
為什么不能自動更新時間啊????
回復

使用道具 舉報

5#
ID:852641 發表于 2021-1-13 07:51 來自觸屏版 | 只看該作者
想問下1302是只接vcc2一個5v電壓嗎?實物這樣可以嗎?
回復

使用道具 舉報

6#
ID:929148 發表于 2021-5-29 17:07 | 只看該作者
可以用按鍵調時間嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
欧美国产成人精品一区二区三区| 在线日韩国产精品| 国产精品白浆流出视频| 97av自拍| 在线观看国产一区二区| 国产精品免费看| hs视频在线观看| 五十路熟女丰满大屁股| 一本色道久久88亚洲综合88| 一本久道综合久久精品| 高清全集视频免费在线| 国产乱淫片视频| 激情视频综合网| 欧美高跟鞋交xxxxhd| 成人avav影音| 美女网站视频一区| 欧美做受xxxxxⅹ性视频| 精品久久蜜桃| 欧美精品一区二区三| 蜜桃视频一区二区三区在线观看| 自拍偷拍欧美视频| 国产叼嘿网站免费观看不用充会员| 国产精品九九九九九九| 日韩最新中文字幕| 日韩在线观看成人| 国产精品久99| 成人台湾亚洲精品一区二区| wwwcom羞羞网站| 欧美激情一区二区视频| 天天在线免费视频| 国产精品v片在线观看不卡| 一本大道久久a久久精品综合| 欧美在线影院| 国产高清在线a视频大全| 天天综合天天色| 亚洲一级片免费观看| 国产不卡一区二区在线观看 | 欧美一区二区在线不卡| 日韩视频一区| 一区二区日韩| 欧美精品久久久久久久久久丰满| 欧美性猛交xxxx乱大交hd| 日本黄色三级大片| 91九色蝌蚪成人| 久久成人精品视频| 午夜精品爽啪视频| 天堂av在线一区| 亚洲三级电影| 四虎永久免费观看| 亚洲v国产v| 九九热这里只有精品免费看| 欧美日高清视频| 国产午夜精品美女毛片视频| 黄色精品网站| 亚洲成人黄色| caoporn免费在线视频| 中文在线最新版天堂8| 亚洲av成人精品日韩在线播放| 日本xxxxxxxxx18| 欧美大片在线播放| 日日噜噜夜夜狠狠久久丁香五月| 日本一区二区视频| 国产精品久久久久久久久久99 | 日韩精品免费一区二区| 亚洲伊人成人网| 性欧美13一14内谢| 在线观看av中文字幕| 国内精品在线观看视频| 国产chinese精品一区二区| 成人福利视频在线观看| 久久精品99国产精品酒店日本 | 激情小说网站亚洲综合网| 91九色蝌蚪国产| 欧美激情成人在线视频| 欧美成人精品一区| 久久 天天综合| 日韩在线看片| 久久av网站| 国产精品蜜臀| 久草免费在线视频| 女同性互吃奶乳免费视频| 国产又粗又猛又黄| 国产一级免费观看| av无码av天天av天天爽| 国产精品69页| 欧美交换配乱吟粗大25p| 亚洲在线第一页| 日韩av免费一区| 亚洲人午夜精品免费| 在线不卡a资源高清| 亚洲1区2区3区视频| 精品久久久香蕉免费精品视频| 国产精品亚洲成在人线| 黄页免费在线| 曰皮视频在线播放免费的| 亚洲av成人精品毛片| 男人的天堂av社区在线| 91肉色超薄丝袜脚交一区二区| 一本一道精品欧美中文字幕| 国产成人精品网| 国产又粗又猛又爽又黄的| 亚洲av无码国产精品久久不卡| 亚洲黄网在线观看| 国产一级视频在线播放| 亚洲色图日韩精品| www.超碰97| 熟女av一区二区| 成人在线观看免费高清| 亚洲精品乱码久久久久久蜜桃图片| 亚洲国产精品毛片av不卡在线| 污片在线免费看| 日韩免费高清在线| av av在线| 波多野结衣免费观看| 最近2019中文字幕一页二页| 国产精品无码免费播放| 国产精品美女呻吟| 97视频在线观看亚洲| 久久久精品国产网站| 高清在线视频日韩欧美| 欧美福利视频网站| 国产精品亚洲综合天堂夜夜| 国产成人精品一区| 精品国产91亚洲一区二区三区www| 午夜精品一区二区在线观看 | 免费网站在线高清观看| 亚洲国产果冻传媒av在线观看| 久久日免费视频| 日韩xxx视频| 国产精品久久久久久久久久久久久久久久久久 | 国产日韩精品在线看| 日本一二三区视频免费高清| 男男互摸gay网站| 福利成人在线观看| 成人午夜sm精品久久久久久久| 久久精品资源| 亚洲乱码免费伦视频| 成人黄色av网址| 尤物精品在线| 久久精品久久99精品久久| 国产伦精品一区二区三区免费 | blacked蜜桃精品一区| 91电影在线播放| 一级毛片视频在线| 日本中文字幕在线看| 精品176极品一区| 你懂的视频一区二区| kk眼镜猥琐国模调教系列一区二区| 91亚洲精华国产精华精华液| 久久久99精品久久| 亚洲男人的天堂一区二区| 最新日韩av在线| 日韩欧美在线视频观看| 欧美丰满一区二区免费视频| 久久精品国产v日韩v亚洲| 国产欧美日韩在线播放| 国产一区二区黑人欧美xxxx| 色诱女教师一区二区三区| 国产精品亚洲自拍| 欧美在线观看成人| 美女搡bbb又爽又猛又黄www| 乱子伦一区二区三区| 黑人巨大狂躁日本妞在线观看 | 视频一区中文| 欧美久久成人| 国产精品中文字幕一区二区三区| 五月激情六月综合| 美女扒开尿口让男人操亚洲视频网站| 久久久久久精| 怡红院av亚洲一区二区三区h| 男人操女人免费| 国产人妻精品一区二区三区不卡| 一卡二卡在线视频| a√免费观看在线网址www| 色播视频在线播放| 亚洲中文无码av在线| jizz18日本| 日韩在线免费电影| 9999国产精品| 国产精品一区二区久久不卡| 欧美亚洲动漫精品| 久久中文字幕国产| 亚洲午夜久久久影院伊人| www.天天射.com| 影音先锋制服丝袜| 在线播放性xxx欧美| 男女免费网站| 日韩欧美一级| 成人精品视频一区二区三区尤物| 亚洲成人在线观看视频| 亚洲成人a**站| 蜜臀久久99精品久久久无需会员| 亚洲va韩国va欧美va精四季| 一本色道久久88| 一个人看的www视频免费观看| 成人在线黄色电影| 久久裸体视频| 亚洲精选一二三| 欧美成人sm免费视频| 日韩人妻无码精品久久久不卡| 91视频在线免费| 男人女人靠逼视频| 2021中文字幕在线| 日韩免费看片| 亚洲国产综合91精品麻豆| 亚洲无限av看| 中国一级黄色录像| 久久午夜免费视频| 在线播放av网站| 日本免费一区二区视频| 国产丶欧美丶日本不卡视频| 欧美性猛交xxxx富婆| 国产精品久久9| 午夜av免费看| 夜夜摸夜夜操| 午夜精品在线| 国产精品盗摄一区二区三区| 91精品国产高清自在线 | 久久精品国产成人精品| 人人妻人人做人人爽| 最新国产中文字幕| 亚洲精品自拍区在线观看| 男人天堂亚洲| av影片在线一区| 亚洲成av人片一区二区梦乃| 成人黄色激情网| 中文字幕第24页| 99视频免费| 周于希免费高清在线观看| 欧美日韩国产高清| 欧美日韩精品高清| 亚洲巨乳在线观看| 黄免费在线观看| 在线观看黄色av网站| 国产激情久久| 国产欧美日韩视频在线观看| 亚洲人成网站在线播| 日韩xxxx视频| 亚洲色图狠狠干| 欧美高清影院| 亚洲人一二三区| 欧美大学生性色视频| 在线观看岛国av| 麻豆tv在线播放| 国产九色91回来了| 婷婷色在线资源| 99精品热6080yy久久| 欧美一级欧美三级在线观看| 老司机午夜网站| 你懂的国产在线| а天堂中文在线官网| 韩国精品在线观看| 国产丝袜精品视频| 亚洲日本欧美在线| 国产aⅴ一区二区三区| 亚洲免费福利| 日韩毛片在线免费观看| 国产精品二区二区三区| 中文字幕免费观看| 密臀av在线播放| 中文字幕不卡的av| 午夜精品在线视频| 成人午夜福利一区二区| 麻豆影视在线观看| 久久精品国产亚洲高清剧情介绍| 欧美成人免费大片| 美女久久久久久久久久| 午夜成人影视| 欧美激情日韩| 日韩激情视频在线| 狠狠干视频网站| 丁香花免费高清完整在线播放| a级片国产精品自在拍在线播放| 懂色av一区二区三区蜜臀| 最近2019中文字幕一页二页 | 国产麻豆成人精品| 国产精品日韩欧美| 久久久久久久久黄色| 在线欧美成人| 国产在线麻豆精品观看| 国产一区二区黄| 亚洲国产第一区| 污网站免费在线观看| 国产成人综合精品三级| 国产区精品视频| av电影在线不卡| 第一福利在线| 国产欧美精品国产国产专区| 国产一区二区自拍| 特黄aaaaaaaaa真人毛片| 欧美福利在线播放网址导航| 亚洲成av人片一区二区| 韩国v欧美v日本v亚洲| av片在线免费看| www在线免费观看视频| 中文字幕欧美激情一区| 日韩av一区二区三区在线| 五月天婷婷久久| 婷婷午夜社区一区| 国产精品欧美久久久久无广告| 国产成人激情视频| 成人免费看片98欧美| 成人免费毛片嘿嘿连载视频…| 国产精品久久久久9999吃药| 日韩欧美电影一区二区| 欧美成人观看免费全部完小说| av成人男女| 亚洲国产黄色片| 亚洲国产无码精品| 中文字幕福利片| 模特精品在线| 日韩一区av在线| 91九色丨porny丨极品女神| 成人黄色动漫| 欧美无砖砖区免费| 一级黄色片在线免费观看| 先锋影音av资源在线| 蜜桃久久久久久| 亚洲啪啪综合av一区二区三区| 成年在线观看视频| www.天天操| 成人精品在线视频观看| 欧洲亚洲一区| 九九九热视频| 在线国产精品一区| 日本一区二区三区在线播放| 国产又粗又猛又黄| 国产精品久久久久久久久久10秀| 精品日韩一区二区| 亚洲国产精品三区| 日产精品久久久久久久性色| 国产成人午夜片在线观看高清观看| 痴汉一区二区三区| 人善交vide欧美| 久久国产日本精品| 高清日韩一区| 九色91蝌蚪| 亚洲精选国产| 午夜伦理精品一区| 亚洲午夜精品久久久| 欧美mv日韩| 国产精品男人的天堂| 亚洲在线偷拍自拍| 天堂网在线观看国产精品| 韩国v欧美v日本v亚洲| 一级片一区二区三区| 欧美一区高清| 91香蕉亚洲精品| 在线免费观看www| 成人aa视频在线观看| 欧美日韩中文字幕在线播放 | 国产精品久久久久精| 99视频精品全国免费| 国产精品久久久久久超碰 | 久久九九国产精品怡红院| 看黄色一级大片| 黄色亚洲在线| 久久大香伊蕉在人线观看热2| 九色蝌蚪av新入口| 自拍偷拍国产亚洲| 日韩欧美色视频| 亚洲成a人片| 久久久av电影| 狠狠人妻久久久久久综合麻豆| 久久精品亚洲| 亚洲免费视频播放| 精品电影在线| 夜夜揉揉日日人人青青一国产精品| 在线观看成人免费| 香蕉av一区| 欧美三级视频在线播放| 奇米视频888| 黄色视屏在线免费观看| 亚洲人成网站色ww在线| 在线观看免费黄色小视频| 国内久久视频| 四虎影院一区二区三区| 在线国产一级| 欧美日韩国产精选| 国产网站在线看| 午夜激情一区| 欧美三日本三级少妇三99| 色免费在线观看| 国产一区二区在线看| 毛片av在线播放| 在线观看a视频| 亚洲国产成人精品女人久久久| 国产女主播喷水视频在线观看 | 青青久久av| 91精品视频在线看| 2018av男人天堂| 日韩欧美福利视频| 欧美黑人精品一区二区不卡| 成人久久综合| 国产精品成人va在线观看| 国产精品爱久久久久久久小说| 亚洲国产精品成人久久综合一区| 色悠悠在线视频| 国产成人tv| 国语自产在线不卡|