久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC90C52RC+BMP180+1602溫度氣壓顯示

  [復制鏈接]
跳轉到指定樓層
樓主
bmp180模塊非常便宜,5塊錢居然能實現溫度和氣壓采集,還能學習IIC接口,在網上找了個例程,很容易就實現了。

20151125_115544.jpg (1.84 MB, 下載次數: 429)

bmp180模塊

bmp180模塊

20151125_115551.jpg (1.91 MB, 下載次數: 351)

連接p1.0,p1.1

連接p1.0,p1.1

20151125_115714.jpg (2.06 MB, 下載次數: 193)

最小系統板和1602

最小系統板和1602

20151125_121026.jpg (2.12 MB, 下載次數: 202)

和卡西歐登山表對比

和卡西歐登山表對比

bmp180.rar

3.23 KB, 下載次數: 273, 下載積分: 黑幣 -5

評分

參與人數 2黑幣 +55 收起 理由
coodz + 5 很給力!
admin + 50 共享資料的積分獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:1 發表于 2015-11-26 21:02 | 只看該作者
樓主的程序我發出來,給大家省點黑幣
  1. //***************************************
  2. // BMP180 IIC測試程序
  3. // 使用單片機STC90C52RC
  4. // 晶振:11.0592M
  5. // 顯示:LCD1602
  6. // 編譯環境 Keil uVision3
  7. // 參考宏晶網站24c04通信程序
  8. //****************************************
  9. #include  <REG52.H>          
  10. #include  <math.h>    //Keil library  
  11. #include  <stdlib.h>  //Keil library  
  12. #include  <stdio.h>   //Keil library       
  13. #include  <INTRINS.H> //Keil library  
  14. #define   uchar unsigned char
  15. #define   uint unsigned int       
  16. #define   DataPort P0    //LCD1602數據端口
  17. sbit          SCL=P1^0;      //IIC時鐘引腳定義
  18. sbit           SDA=P1^1;      //IIC數據引腳定義
  19. sbit      LCM_RS=P2^0;   //LCD1602命令端口               
  20. sbit      LCM_RW=P2^1;   //LCD1602命令端口               
  21. sbit      LCM_EN=P2^2;   //LCD1602命令端口

  22. #define        BMP180_SlaveAddress   0xee          //定義器件在IIC總線中的從地址                              

  23. #define OSS 0        // Oversampling Setting (note: code is not set up to use other OSS values)
  24.                                                           
  25. typedef unsigned char  BYTE;
  26. typedef unsigned short WORD;
  27.           
  28. uchar ge,shi,bai,qian,wan,shiwan;           //顯示變量
  29. int  dis_data;                              //變量

  30. short ac1;
  31. short ac2;
  32. short ac3;
  33. unsigned short ac4;
  34. unsigned short ac5;
  35. unsigned short ac6;
  36. short b1;
  37. short b2;
  38. short mb;
  39. short mc;
  40. short md;

  41. void delay(unsigned int k);
  42. void InitLcd();                            //初始化lcd1602

  43. void WriteDataLCM(uchar dataW);
  44. void WriteCommandLCM(uchar CMD,uchar Attribc);
  45. void DisplayOneChar(uchar X,uchar Y,uchar DData);
  46. void conversion(long temp_data);

  47. void  Single_Write(uchar SlaveAddress,uchar REG_Address,uchar REG_data);   //單個寫入數據
  48. uchar Single_Read(uchar REG_Address);                                      //單個讀取內部寄存器數據
  49. void  Multiple_Read(uchar,uchar);                                          //連續的讀取內部寄存器數據
  50. //------------------------------------
  51. void Delay5us();
  52. void Delay5ms();
  53. void BMP180_Start();
  54. void BMP180_Stop();
  55. void BMP180_SendACK(bit ack);
  56. bit  BMP180_RecvACK();
  57. void BMP180_SendByte(BYTE dat);
  58. BYTE BMP180_RecvByte();
  59. void BMP180_ReadPage();
  60. void BMP180_WritePage();
  61. //-----------------------------------

  62. //*********************************************************
  63. void conversion(long temp_data)  
  64. {  
  65.    
  66.     shiwan=temp_data/100000+0x30 ;
  67.     temp_data=temp_data%100000;   //取余運算
  68.     wan=temp_data/10000+0x30 ;
  69.     temp_data=temp_data%10000;   //取余運算
  70.         qian=temp_data/1000+0x30 ;
  71.     temp_data=temp_data%1000;    //取余運算
  72.     bai=temp_data/100+0x30   ;
  73.     temp_data=temp_data%100;     //取余運算
  74.     shi=temp_data/10+0x30    ;
  75.     temp_data=temp_data%10;      //取余運算
  76.     ge=temp_data+0x30;        
  77. }

  78. /*******************************/
  79. void delay(unsigned int k)       
  80. {                                               
  81. unsigned int i,j;                               
  82. for(i=0;i<k;i++)
  83. {                       
  84. for(j=0;j<121;j++)                       
  85. {;}}                                               
  86. }
  87. /*******************************/
  88. void WaitForEnable(void)       
  89. {                                       
  90. DataPort=0xff;               
  91. LCM_RS=0;LCM_RW=1;_nop_();
  92. LCM_EN=1;_nop_();_nop_();
  93. while(DataPort&0x80);       
  94. LCM_EN=0;                               
  95. }                                       
  96. /*******************************/
  97. void WriteCommandLCM(uchar CMD,uchar Attribc)
  98. {                                       
  99. if(Attribc)WaitForEnable();       
  100. LCM_RS=0;LCM_RW=0;_nop_();
  101. DataPort=CMD;_nop_();       
  102. LCM_EN=1;_nop_();_nop_();LCM_EN=0;
  103. }                                       
  104. /*******************************/
  105. void WriteDataLCM(uchar dataW)
  106. {                                       
  107. WaitForEnable();               
  108. LCM_RS=1;LCM_RW=0;_nop_();
  109. DataPort=dataW;_nop_();       
  110. LCM_EN=1;_nop_();_nop_();LCM_EN=0;
  111. }               
  112. /***********************************/
  113. void InitLcd()                               
  114. {                       
  115. WriteCommandLCM(0x38,1);       
  116. WriteCommandLCM(0x08,1);       
  117. WriteCommandLCM(0x01,1);       
  118. WriteCommandLCM(0x06,1);       
  119. WriteCommandLCM(0x0c,1);
  120. }                       
  121. /***********************************/
  122. void DisplayOneChar(uchar X,uchar Y,uchar DData)
  123. {                                               
  124. Y&=1;                                               
  125. X&=15;                                               
  126. if(Y)X|=0x40;                                       
  127. X|=0x80;                       
  128. WriteCommandLCM(X,0);               
  129. WriteDataLCM(DData);               
  130. }                                               

  131. /**************************************
  132. 延時5微秒(STC90C52RC@12M)
  133. 不同的工作環境,需要調整此函數,注意時鐘過快時需要修改
  134. 當改用1T的MCU時,請調整此延時函數
  135. **************************************/
  136. void Delay5us()
  137. {
  138.     _nop_();_nop_();_nop_();_nop_();
  139.     _nop_();_nop_();_nop_();_nop_();
  140.         _nop_();_nop_();_nop_();_nop_();
  141.         _nop_();_nop_();_nop_();_nop_();
  142. }

  143. /**************************************
  144. 延時5毫秒(STC90C52RC@12M)
  145. 不同的工作環境,需要調整此函數
  146. 當改用1T的MCU時,請調整此延時函數
  147. **************************************/
  148. void Delay5ms()
  149. {
  150.     WORD n = 560;

  151.     while (n--);
  152. }

  153. /**************************************
  154. 起始信號
  155. **************************************/
  156. void BMP180_Start()
  157. {
  158.     SDA = 1;                    //拉高數據線
  159.     SCL = 1;                    //拉高時鐘線
  160.     Delay5us();                 //延時
  161.     SDA = 0;                    //產生下降沿
  162.     Delay5us();                 //延時
  163.     SCL = 0;                    //拉低時鐘線
  164. }

  165. /**************************************
  166. 停止信號
  167. **************************************/
  168. void BMP180_Stop()
  169. {
  170.     SDA = 0;                    //拉低數據線
  171.     SCL = 1;                    //拉高時鐘線
  172.     Delay5us();                 //延時
  173.     SDA = 1;                    //產生上升沿
  174.     Delay5us();                 //延時
  175. }

  176. /**************************************
  177. 發送應答信號
  178. 入口參數:ack (0:ACK 1:NAK)
  179. **************************************/
  180. void BMP180_SendACK(bit ack)
  181. {
  182.     SDA = ack;                  //寫應答信號
  183.     SCL = 1;                    //拉高時鐘線
  184.     Delay5us();                 //延時
  185.     SCL = 0;                    //拉低時鐘線
  186.     Delay5us();                 //延時
  187. }

  188. /**************************************
  189. 接收應答信號
  190. **************************************/
  191. bit BMP180_RecvACK()
  192. {
  193.     SCL = 1;                    //拉高時鐘線
  194.     Delay5us();                 //延時
  195.     CY = SDA;                   //讀應答信號
  196.     SCL = 0;                    //拉低時鐘線
  197.     Delay5us();                 //延時

  198.     return CY;
  199. }

  200. /**************************************
  201. 向IIC總線發送一個字節數據
  202. **************************************/
  203. void BMP180_SendByte(BYTE dat)
  204. {
  205.     BYTE i;

  206.     for (i=0; i<8; i++)         //8位計數器
  207.     {
  208.         dat <<= 1;              //移出數據的最高位
  209.         SDA = CY;               //送數據口
  210.         SCL = 1;                //拉高時鐘線
  211.         Delay5us();             //延時
  212.         SCL = 0;                //拉低時鐘線
  213.         Delay5us();             //延時
  214.     }
  215.     BMP180_RecvACK();
  216. }

  217. /**************************************
  218. 從IIC總線接收一個字節數據
  219. **************************************/
  220. BYTE BMP180_RecvByte()
  221. {
  222.     BYTE i;
  223.     BYTE dat = 0;

  224.     SDA = 1;                    //使能內部上拉,準備讀取數據,
  225.     for (i=0; i<8; i++)         //8位計數器
  226.     {
  227.         dat <<= 1;
  228.         SCL = 1;                //拉高時鐘線
  229.         Delay5us();             //延時
  230.         dat |= SDA;             //讀數據               
  231.         SCL = 0;                //拉低時鐘線
  232.         Delay5us();             //延時
  233.     }
  234.     return dat;
  235. }
  236. /*
  237. //單字節寫入BMP180內部數據*******************************

  238. void Single_Write(uchar SlaveAddress,uchar REG_Address,uchar REG_data)
  239. {
  240.     BMP180_Start();                  //起始信號
  241.     BMP180_SendByte(SlaveAddress);   //發送設備地址+寫信號
  242.     BMP180_SendByte(REG_Address);    //內部寄存器地址
  243.     BMP180_SendByte(REG_data);       //內部寄存器數據
  244.     BMP180_Stop();                   //發送停止信號
  245. }
  246. */
  247. /*
  248. //單字節讀取BMP180內部數據********************************
  249. uchar Single_Read(uchar REG_Address)
  250. {  uchar REG_data;
  251.     BMP180_Start();                          //起始信號
  252.     BMP180_SendByte(BMP180_SlaveAddress);           //發送設備地址+寫信號
  253.     BMP180_SendByte(REG_Address);            //發送存儲單元地址       
  254.     BMP180_Start();                          //起始信號
  255.     BMP180_SendByte(BMP180_SlaveAddress+1);         //發送設備地址+讀信號
  256.     REG_data=BMP180_RecvByte();              //讀出寄存器數據
  257.         BMP180_SendACK(1);   
  258.         BMP180_Stop();                           //停止信號
  259.     return REG_data;
  260. }
  261. */
  262. //*********************************************************
  263. //讀出BMP180內部數據,連續兩個
  264. //*********************************************************
  265. short Multiple_read(uchar ST_Address)
  266. {   
  267.         uchar msb, lsb;
  268.         short _data;
  269.     BMP180_Start();                          //起始信號
  270.     BMP180_SendByte(BMP180_SlaveAddress);    //發送設備地址+寫信號
  271.     BMP180_SendByte(ST_Address);             //發送存儲單元地址
  272.     BMP180_Start();                          //起始信號
  273.     BMP180_SendByte(BMP180_SlaveAddress+1);         //發送設備地址+讀信號

  274.     msb = BMP180_RecvByte();                 //BUF[0]存儲
  275.     BMP180_SendACK(0);                       //回應ACK
  276.     lsb = BMP180_RecvByte();     
  277.         BMP180_SendACK(1);                       //最后一個數據需要回NOACK

  278.     BMP180_Stop();                           //停止信號
  279.     Delay5ms();
  280.     _data = msb << 8;
  281.         _data |= lsb;       
  282.         return _data;
  283. }
  284. //********************************************************************
  285. long bmp180ReadTemp(void)
  286. {

  287.     BMP180_Start();                  //起始信號
  288.     BMP180_SendByte(BMP180_SlaveAddress);   //發送設備地址+寫信號
  289.     BMP180_SendByte(0xF4);                  // write register address
  290.     BMP180_SendByte(0x2E);               // write register data for temp
  291.     BMP180_Stop();                   //發送停止信號
  292.         delay(10);        // max time is 4.5ms
  293.        
  294.         return (long) Multiple_read(0xF6);
  295. }
  296. //*************************************************************
  297. long bmp180ReadPressure(void)
  298. {
  299.         long pressure = 0;

  300.     BMP180_Start();                   //起始信號
  301.     BMP180_SendByte(BMP180_SlaveAddress);   //發送設備地址+寫信號
  302.     BMP180_SendByte(0xF4);                  // write register address
  303.     BMP180_SendByte(0x34);                 // write register data for pressure
  304.     BMP180_Stop();                    //發送停止信號
  305.         delay(10);                              // max time is 4.5ms
  306.        
  307.         pressure = Multiple_read(0xF6);
  308.         pressure &= 0x0000FFFF;
  309.        
  310.         return pressure;       
  311.         //return (long) bmp085ReadShort(0xF6);
  312. }

  313. //**************************************************************

  314. //初始化BMP180,根據需要請參考pdf進行修改**************
  315. void Init_BMP180()
  316. {
  317.         ac1 = Multiple_read(0xAA);
  318.         ac2 = Multiple_read(0xAC);
  319.         ac3 = Multiple_read(0xAE);
  320.         ac4 = Multiple_read(0xB0);
  321.         ac5 = Multiple_read(0xB2);
  322.         ac6 = Multiple_read(0xB4);
  323.         b1 =  Multiple_read(0xB6);
  324.         b2 =  Multiple_read(0xB8);
  325.         mb =  Multiple_read(0xBA);
  326.         mc =  Multiple_read(0xBC);
  327.         md =  Multiple_read(0xBE);
  328. }
  329. //***********************************************************************
  330. void bmp180Convert()
  331. {
  332.         long ut;
  333.         long up;
  334.         long x1, x2, b5, b6, x3, b3, p;
  335.         unsigned long b4, b7;
  336.         long  temperature;
  337.         long  pressure;
  338.        
  339.         ut = bmp180ReadTemp();
  340.         ut = bmp180ReadTemp();           // 讀取溫度
  341.         up = bmp180ReadPressure();
  342.         up = bmp180ReadPressure();  // 讀取壓強
  343.        
  344.         x1 = ((long)ut - ac6) * ac5 >> 15;
  345.         x2 = ((long) mc << 11) / (x1 + md);
  346.         b5 = x1 + x2;
  347.          temperature = (b5 + 8) >> 4;

  348.          //*************

  349.          conversion(temperature);
  350.          DisplayOneChar(0,0,'W');        //溫度顯示
  351.          DisplayOneChar(1,0,'e');
  352.          DisplayOneChar(2,0,'n');
  353.          DisplayOneChar(3,0,'D');
  354.          DisplayOneChar(4,0,'u');
  355.      DisplayOneChar(5,0,':');
  356.      DisplayOneChar(7,0,bai);      
  357.      DisplayOneChar(8,0,shi);
  358.      DisplayOneChar(9,0,'.');
  359.          DisplayOneChar(10,0,ge);
  360.          DisplayOneChar(11,0,0XDF);     //溫度單位
  361.          DisplayOneChar(12,0,'C');

  362.          
  363.      //*************
  364.        
  365.         b6 = b5 - 4000;
  366.         x1 = (b2 * (b6 * b6 >> 12)) >> 11;
  367.         x2 = ac2 * b6 >> 11;
  368.         x3 = x1 + x2;
  369.         b3 = (((long)ac1 * 4 + x3) + 2)/4;
  370.         x1 = ac3 * b6 >> 13;
  371.         x2 = (b1 * (b6 * b6 >> 12)) >> 16;
  372.         x3 = ((x1 + x2) + 2) >> 2;
  373.         b4 = (ac4 * (unsigned long) (x3 + 32768)) >> 15;
  374.         b7 = ((unsigned long) up - b3) * (50000 >> OSS);
  375.         if( b7 < 0x80000000)
  376.              p = (b7 * 2) / b4 ;
  377.            else  
  378.                     p = (b7 / b4) * 2;
  379.         x1 = (p >> 8) * (p >> 8);
  380.         x1 = (x1 * 3038) >> 16;
  381.         x2 = (-7357 * p) >> 16;
  382.          pressure = p + ((x1 + x2 + 3791) >> 4);

  383.          conversion(pressure);
  384.      DisplayOneChar(0,1,'Q');    //顯示壓強
  385.          DisplayOneChar(1,1,'i');
  386.          DisplayOneChar(2,1,'Y');
  387.          DisplayOneChar(3,1,'a');
  388.      DisplayOneChar(5,1,':');
  389.          DisplayOneChar(6,1,shiwan);
  390.          DisplayOneChar(7,1,wan);   
  391.      DisplayOneChar(8,1,qian);
  392.      DisplayOneChar(9,1,'.');
  393.      DisplayOneChar(10,1,bai);
  394.      DisplayOneChar(11,1,shi);
  395.          DisplayOneChar(12,1,'K');   //氣壓單位
  396.          DisplayOneChar(13,1,'p');
  397.          DisplayOneChar(14,1,'a');

  398. }

  399. //*********************************************************
  400. //******主程序********
  401. //*********************************************************
  402. void main()
  403. {
  404.     delay(50);                           //上電延時               
  405.     InitLcd();                     //液晶初始化
  406.     Init_BMP180();                //初始化BMP085
  407.   while(1)                         //循環
  408.   {
  409.     bmp180Convert();
  410.         delay(1000);
  411.   }
  412. }
復制代碼
回復

使用道具 舉報

板凳
ID:65908 發表于 2015-11-26 22:12 | 只看該作者
厲害太厲害了
回復

使用道具 舉報

地板
ID:87193 發表于 2015-11-27 10:51 | 只看該作者
樓主很厲害,學習一下
回復

使用道具 舉報

5#
ID:98591 發表于 2016-1-10 17:09 | 只看該作者
我也在學,問下,為什么我的讀出來的校正系數是0x0000啊(2塊都是這樣),同樣的函數,讀出來的未校正的有關溫度的那個正常,手摸會變化
回復

使用道具 舉報

6#
ID:96769 發表于 2016-3-12 22:42 | 只看該作者
樓主,這個程序有兩個地方不懂啊,比如signal單字節寫入BMP180內部數據,單字節讀取BMP180內部數據都沒用到,而且用到的也有沒  BMP180_SendByte(REG_Address); 的地址傳入啊,求解答。
回復

使用道具 舉報

7#
ID:112181 發表于 2016-4-4 17:03 | 只看該作者
很好的資料
回復

使用道具 舉報

8#
ID:171545 發表于 2017-4-8 23:04 | 只看該作者
有沒有這個裝置的電路原理圖呀,求一個
回復

使用道具 舉報

9#
ID:195089 發表于 2017-4-30 19:37 | 只看該作者
xiexlouzhu
回復

使用道具 舉報

10#
ID:196347 發表于 2017-5-4 18:30 | 只看該作者
加油~~讓我看看程序吧。。。
回復

使用道具 舉報

11#
ID:202296 發表于 2017-5-18 19:18 | 只看該作者
抱拳了 老鐵
回復

使用道具 舉報

12#
ID:202238 發表于 2017-5-18 19:25 | 只看該作者
里面有電路圖嗎?
回復

使用道具 舉報

13#
ID:202296 發表于 2017-5-19 14:17 | 只看該作者
很可以 贊一個
回復

使用道具 舉報

14#
ID:205217 發表于 2017-6-3 11:03 | 只看該作者
很好用,很給力
回復

使用道具 舉報

15#
ID:205217 發表于 2017-6-3 21:42 | 只看該作者
大神啊,要是加個模塊NRF2L01進行無線發射和接收,怎么改啊,不懂啊,
回復

使用道具 舉報

16#
ID:155719 發表于 2017-8-2 11:14 | 只看該作者
好人啊
回復

使用道具 舉報

17#
ID:227948 發表于 2017-8-16 18:17 | 只看該作者
還沒試,先謝謝樓主啦
回復

使用道具 舉報

18#
ID:136185 發表于 2017-10-30 22:43 | 只看該作者
讀出來只有50多Kpa
回復

使用道具 舉報

19#
ID:246166 發表于 2017-11-8 18:40 | 只看該作者
樓主太強了,學習學習
回復

使用道具 舉報

20#
ID:264389 發表于 2017-12-23 18:47 | 只看該作者
你好,我用這個代碼,為什么溫度亂碼,氣壓不變,一直都是99.7Kpa
回復

使用道具 舉報

21#
ID:264389 發表于 2017-12-23 20:52 | 只看該作者
admin 發表于 2015-11-26 21:02
樓主的程序我發出來,給大家省點黑幣

我用了你的程序,現在有問題,溫度不能正常顯示,氣壓是定值,還有把傳感器不跟單片機連,也有氣壓。
回復

使用道具 舉報

22#
ID:259858 發表于 2018-1-26 16:34 | 只看該作者
在32中兩個I2C咋辦
回復

使用道具 舉報

23#
ID:388335 發表于 2018-8-22 16:29 | 只看該作者
用了之后,初始化居然都么有讀出數值,溫度監視變量為0,氣壓為一定值。
回復

使用道具 舉報

24#
ID:461137 發表于 2019-3-14 17:37 | 只看該作者
很好,行號畢設用到,LZ能說說線怎么接的嗎
回復

使用道具 舉報

25#
ID:398105 發表于 2019-3-17 22:16 | 只看該作者
多謝樓主
回復

使用道具 舉報

26#
ID:510419 發表于 2019-5-2 15:23 | 只看該作者
樓主,有原理圖么,除了定義的還有些線不知道怎么連
回復

使用道具 舉報

27#
ID:264360 發表于 2019-5-10 10:48 | 只看該作者
admin 發表于 2015-11-26 21:02
樓主的程序我發出來,給大家省點黑幣

感謝熱心分享  謝謝哈
回復

使用道具 舉報

28#
ID:227784 發表于 2020-1-28 15:27 來自手機 | 只看該作者
劉小爺 發表于 2017-12-23 18:47
你好,我用這個代碼,為什么溫度亂碼,氣壓不變,一直都是99.7Kpa


我的也是如此,溫度亂碼,氣壓99.97一直不變
回復

使用道具 舉報

29#
ID:731275 發表于 2020-5-23 11:08 | 只看該作者
15393729688 發表于 2020-1-28 15:27
我的也是如此,溫度亂碼,氣壓99.97一直不變

問題解決了么老哥
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区国产视频 | 国产一区二区在线看 | 黄片毛片在线观看 | 久在线视频播放免费视频 | 久久综合一区 | 精品一区二区三区不卡 | 国产免费一区二区 | 福利二区| 久久精品一区 | 玖玖久久| 欧美黑人狂野猛交老妇 | com.色.www在线观看 | 亚洲一区二区三区四区五区午夜 | 一区二区福利视频 | 日韩精品在线免费观看视频 | m豆传媒在线链接观看 | 午夜一级黄色片 | 欧美性久久久 | 中文字幕伊人 | 第四色狠狠 | 国产成人在线视频播放 | 亚洲精品乱码久久久久久蜜桃91 | 97caoporn国产免费人人 | 青青草av在线播放 | 亚洲国产精品一区二区久久 | 狠狠做深爱婷婷综合一区 | 国内精品免费久久久久软件老师 | 成人性生交大片免费看中文带字幕 | 久久综合伊人一区二区三 | 在线免费观看黄色 | 成人国产精品久久 | 亚洲社区在线 | 亚洲日本视频 | 超碰国产在线 | avav在线看| 亚洲日韩中文字幕一区 | 免费看国产片在线观看 | 成人免费网站www网站高清 | 亚洲精品国产偷自在线观看 | 日韩国产在线 | 国产高清精品网站 |