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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機(jī)和GY-29 ADXL345傳感器的計(jì)步器設(shè)計(jì)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
分享一個(gè)計(jì)步器設(shè)計(jì)文件
這是一個(gè)基于51單片機(jī) GY-29 ADXL345三軸加速度傳感器的計(jì)步器
壓縮包里的文件截圖如下:

這個(gè)計(jì)步器有開機(jī)出現(xiàn)“WELCOME!”(歡迎使用!)的界面,很好的交互性。


Z代表總步數(shù),L代表總路程,單位(m),Steps代表的是步數(shù)。


總體來說,這個(gè)計(jì)步器的性能還是很不錯(cuò)的。但是,有一個(gè)缺點(diǎn)就是沒有斷電記憶功能,通俗的說就是斷開電源后數(shù)據(jù)會丟失。不過只要一直有電就不會出現(xiàn)這種情況!
番外:
我也是一個(gè)在校大學(xué)生。這是我12月份做的一個(gè)項(xiàng)目,當(dāng)時(shí)為了做好這個(gè)項(xiàng)目連續(xù)一個(gè)星期熬夜到凌晨兩點(diǎn),甚是艱苦!也在網(wǎng)上查閱了不少資料,我也是在這個(gè)時(shí)候找到了咱們51hei 電子論壇!很是幸運(yùn)~在這里我也找到了不少有用的資料!非常感謝論壇里的大神們以及幫助過我的所有人
本著“我為人人,人人為我”的精神,我也感觸深刻的明白有一份清晰明了的資料的重要性,所以我昨天用了一天的時(shí)間將資料整理打包好。今天上傳上來,希望能給同學(xué)們力所能及的幫助!
  1. #include  <REG51.H>        
  2. #include  <math.h>    //Keil library  
  3. #include  <stdio.h>   //Keil library        
  4. #include  <INTRINS.H>
  5. #define   uchar unsigned char
  6. #define   uint unsigned int        
  7. #define   DataPort P0    //LCD1602數(shù)據(jù)端口
  8. sbit          SCL=P1^0;      //IIC時(shí)鐘引腳定義
  9. sbit           SDA=P1^1;      //IIC數(shù)據(jù)引腳定義
  10. sbit      LCM_RS=P2^0;   //LCD1602命令端口               
  11. sbit      LCM_RW=P2^1;   //LCD1602命令端口               
  12. sbit      LCM_EN=P2^2;   //LCD1602命令端口

  13. #define        SlaveAddress   0xA6          //定義器件在IIC總線中的從地址,根據(jù)ALT  ADDRESS地址引腳不同修改
  14.                               //ALT  ADDRESS引腳接地時(shí)地址為0xA6,接電源時(shí)地址為0x3A
  15. typedef unsigned char  BYTE;
  16. typedef unsigned short WORD;

  17. BYTE BUF[8];                         //接收數(shù)據(jù)緩存區(qū)              
  18. uchar ge,shi,bai,qian,wan;           //顯示變量
  19. int  dis_data;                       //變量

  20. void delay(unsigned int k);
  21. void InitLcd();                      //初始化lcd1602
  22. void Init_ADXL345(void);             //初始化ADXL345

  23. void WriteDataLCM(uchar dataW);
  24. void WriteCommandLCM(uchar CMD,uchar Attribc);
  25. void DisplayOneChar(uchar X,uchar Y,uchar DData);
  26. void conversion(uint temp_data);

  27. void  Single_Write_ADXL345(uchar REG_Address,uchar REG_data);   //單個(gè)寫入數(shù)據(jù)
  28. uchar Single_Read_ADXL345(uchar REG_Address);                   //單個(gè)讀取內(nèi)部寄存器數(shù)據(jù)
  29. void  Multiple_Read_ADXL345();                                  //連續(xù)的讀取內(nèi)部寄存器數(shù)據(jù)
  30. //------------------------------------
  31. void Delay5us();
  32. void Delay5ms();
  33. void ADXL345_Start();
  34. void ADXL345_Stop();
  35. void ADXL345_SendACK(bit ack);
  36. bit  ADXL345_RecvACK();
  37. void ADXL345_SendByte(BYTE dat);
  38. BYTE ADXL345_RecvByte();
  39. void ADXL345_ReadPage();
  40. void ADXL345_WritePage();
  41. //-----------------------------------

  42. //*********************************************************
  43. void conversion(uint temp_data)  
  44. {  
  45.     wan=temp_data/10000+0x30 ;
  46.     temp_data=temp_data%10000;   //取余運(yùn)算
  47.         qian=temp_data/1000+0x30 ;
  48.     temp_data=temp_data%1000;    //取余運(yùn)算
  49.     bai=temp_data/100+0x30   ;
  50.     temp_data=temp_data%100;     //取余運(yùn)算
  51.     shi=temp_data/10+0x30    ;
  52.     temp_data=temp_data%10;      //取余運(yùn)算
  53.     ge=temp_data+0x30;         
  54. }

  55. /*******************************/
  56. void delay(unsigned int k)        
  57. {                                                
  58. unsigned int i,j;                                
  59. for(i=0;i<k;i++)
  60. {                        
  61. for(j=0;j<121;j++)                        
  62. {;}}                                                
  63. }
  64. /*******************************/
  65. void WaitForEnable(void)        
  66. {                                       
  67. DataPort=0xff;               
  68. LCM_RS=0;LCM_RW=1;_nop_();
  69. LCM_EN=1;_nop_();_nop_();
  70. while(DataPort&0x80);        
  71. LCM_EN=0;                                
  72. }                                       
  73. /*******************************/
  74. void WriteCommandLCM(uchar CMD,uchar Attribc)
  75. {                                       
  76. if(Attribc)WaitForEnable();        
  77. LCM_RS=0;LCM_RW=0;_nop_();
  78. DataPort=CMD;_nop_();        
  79. LCM_EN=1;_nop_();_nop_();LCM_EN=0;
  80. }                                       
  81. /*******************************/
  82. void WriteDataLCM(uchar dataW)
  83. {                                       
  84. WaitForEnable();               
  85. LCM_RS=1;LCM_RW=0;_nop_();
  86. DataPort=dataW;_nop_();        
  87. LCM_EN=1;_nop_();_nop_();LCM_EN=0;
  88. }               
  89. /***********************************/
  90. void InitLcd()                                
  91. {                        
  92. WriteCommandLCM(0x38,1);        
  93. WriteCommandLCM(0x08,1);        
  94. WriteCommandLCM(0x01,1);        
  95. WriteCommandLCM(0x06,1);        
  96. WriteCommandLCM(0x0c,1);
  97. }                        
  98. /***********************************/
  99. void DisplayOneChar(uchar X,uchar Y,uchar DData)
  100. {                                                
  101. Y&=1;                                                
  102. X&=15;                                                
  103. if(Y)X|=0x40;                                       
  104. X|=0x80;                        
  105. WriteCommandLCM(X,0);               
  106. WriteDataLCM(DData);               
  107. }                                                

  108. /**************************************
  109. 延時(shí)5微秒(STC90C52RC@12M)
  110. 不同的工作環(huán)境,需要調(diào)整此函數(shù),注意時(shí)鐘過快時(shí)需要修改
  111. 當(dāng)改用1T的MCU時(shí),請調(diào)整此延時(shí)函數(shù)
  112. **************************************/
  113. void Delay5us()
  114. {
  115.     _nop_();_nop_();_nop_();_nop_();
  116.     _nop_();_nop_();_nop_();_nop_();
  117.         _nop_();_nop_();_nop_();_nop_();
  118. }

  119. /**************************************
  120. 延時(shí)5毫秒(STC90C52RC@12M)
  121. 不同的工作環(huán)境,需要調(diào)整此函數(shù)
  122. 當(dāng)改用1T的MCU時(shí),請調(diào)整此延時(shí)函數(shù)
  123. **************************************/
  124. void Delay5ms()
  125. {
  126.     WORD n = 560;

  127.     while (n--);
  128. }

  129. /**************************************
  130. 起始信號
  131. **************************************/
  132. void ADXL345_Start()
  133. {
  134.     SDA = 1;                    //拉高數(shù)據(jù)線
  135.     SCL = 1;                    //拉高時(shí)鐘線
  136.     Delay5us();                 //延時(shí)
  137.     SDA = 0;                    //產(chǎn)生下降沿
  138.     Delay5us();                 //延時(shí)
  139.     SCL = 0;                    //拉低時(shí)鐘線
  140. }

  141. /**************************************
  142. 停止信號
  143. **************************************/
  144. void ADXL345_Stop()
  145. {
  146.     SDA = 0;                    //拉低數(shù)據(jù)線
  147.     SCL = 1;                    //拉高時(shí)鐘線
  148.     Delay5us();                 //延時(shí)
  149.     SDA = 1;                    //產(chǎn)生上升沿
  150.     Delay5us();                 //延時(shí)
  151. }

  152. /**************************************
  153. 發(fā)送應(yīng)答信號
  154. 入口參數(shù):ack (0:ACK 1:NAK)
  155. **************************************/
  156. void ADXL345_SendACK(bit ack)
  157. {
  158.     SDA = ack;                  //寫應(yīng)答信號
  159.     SCL = 1;                    //拉高時(shí)鐘線
  160.     Delay5us();                 //延時(shí)
  161.     SCL = 0;                    //拉低時(shí)鐘線
  162.     Delay5us();                 //延時(shí)
  163. }

  164. /**************************************
  165. 接收應(yīng)答信號
  166. **************************************/
  167. bit ADXL345_RecvACK()
  168. {
  169.     SCL = 1;                    //拉高時(shí)鐘線
  170.     Delay5us();                 //延時(shí)
  171.     CY = SDA;                   //讀應(yīng)答信號
  172.     SCL = 0;                    //拉低時(shí)鐘線
  173.     Delay5us();                 //延時(shí)

  174.     return CY;
  175. }

  176. /**************************************
  177. 向IIC總線發(fā)送一個(gè)字節(jié)數(shù)據(jù)
  178. **************************************/
  179. void ADXL345_SendByte(BYTE dat)
  180. {
  181.     BYTE i;

  182.     for (i=0; i<8; i++)         //8位計(jì)數(shù)器
  183.     {
  184.         dat <<= 1;              //移出數(shù)據(jù)的最高位
  185.         SDA = CY;               //送數(shù)據(jù)口
  186.         SCL = 1;                //拉高時(shí)鐘線
  187.         Delay5us();             //延時(shí)
  188.         SCL = 0;                //拉低時(shí)鐘線
  189.         Delay5us();             //延時(shí)
  190.     }
  191.     ADXL345_RecvACK();
  192. }

  193. /**************************************
  194. 從IIC總線接收一個(gè)字節(jié)數(shù)據(jù)
  195. **************************************/
  196. BYTE ADXL345_RecvByte()
  197. {
  198.     BYTE i;
  199.     BYTE dat = 0;

  200.     SDA = 1;                    //使能內(nèi)部上拉,準(zhǔn)備讀取數(shù)據(jù),
  201.     for (i=0; i<8; i++)         //8位計(jì)數(shù)器
  202.     {
  203.         dat <<= 1;
  204.         SCL = 1;                //拉高時(shí)鐘線
  205.         Delay5us();             //延時(shí)
  206.         dat |= SDA;             //讀數(shù)據(jù)               
  207.         SCL = 0;                //拉低時(shí)鐘線
  208.         Delay5us();             //延時(shí)
  209.     }
  210.     return dat;
  211. }

  212. //******單字節(jié)寫入*******************************************

  213. void Single_Write_ADXL345(uchar REG_Address,uchar REG_data)
  214. {
  215.     ADXL345_Start();                  //起始信號
  216.     ADXL345_SendByte(SlaveAddress);   //發(fā)送設(shè)備地址+寫信號
  217.     ADXL345_SendByte(REG_Address);    //內(nèi)部寄存器地址,請參考中文pdf22頁
  218.     ADXL345_SendByte(REG_data);       //內(nèi)部寄存器數(shù)據(jù),請參考中文pdf22頁
  219.     ADXL345_Stop();                   //發(fā)送停止信號
  220. }

  221. //********單字節(jié)讀取*****************************************
  222. uchar Single_Read_ADXL345(uchar REG_Address)
  223. {  uchar REG_data;
  224.     ADXL345_Start();                          //起始信號
  225.     ADXL345_SendByte(SlaveAddress);           //發(fā)送設(shè)備地址+寫信號
  226.     ADXL345_SendByte(REG_Address);                   //發(fā)送存儲單元地址,從0開始        
  227.     ADXL345_Start();                          //起始信號
  228.     ADXL345_SendByte(SlaveAddress+1);         //發(fā)送設(shè)備地址+讀信號
  229.     REG_data=ADXL345_RecvByte();              //讀出寄存器數(shù)據(jù)
  230.         ADXL345_SendACK(1);   
  231.         ADXL345_Stop();                           //停止信號
  232.     return REG_data;
  233. }
  234. //*********************************************************
  235. //
  236. //連續(xù)讀出ADXL345內(nèi)部加速度數(shù)據(jù),地址范圍0x32~0x37
  237. //
  238. //*********************************************************
  239. void Multiple_read_ADXL345(void)
  240. {   uchar i;
  241.     ADXL345_Start();                          //起始信號
  242.     ADXL345_SendByte(SlaveAddress);           //發(fā)送設(shè)備地址+寫信號
  243.     ADXL345_SendByte(0x32);                   //發(fā)送存儲單元地址,從0x32開始        
  244.     ADXL345_Start();                          //起始信號
  245.     ADXL345_SendByte(SlaveAddress+1);         //發(fā)送設(shè)備地址+讀信號
  246.          for (i=0; i<6; i++)                      //連續(xù)讀取6個(gè)地址數(shù)據(jù),存儲中BUF
  247.     {
  248.         BUF[i] = ADXL345_RecvByte();          //BUF[0]存儲0x32地址中的數(shù)據(jù)
  249.         if (i == 5)
  250.         {
  251.            ADXL345_SendACK(1);                //最后一個(gè)數(shù)據(jù)需要回NOACK
  252.         }
  253.         else
  254.         {
  255.           ADXL345_SendACK(0);                //回應(yīng)ACK
  256.        }
  257.    }
  258.     ADXL345_Stop();                          //停止信號
  259.     Delay5ms();
  260. }


  261. //*****************************************************************

  262. //初始化ADXL345,根據(jù)需要請參考pdf進(jìn)行修改************************
  263. void Init_ADXL345()
  264. {
  265.    Single_Write_ADXL345(0x31,0x0B);   //測量范圍,正負(fù)16g,13位模式
  266.    Single_Write_ADXL345(0x2C,0x08);   //速率設(shè)定為12.5 參考pdf13頁
  267.    Single_Write_ADXL345(0x2D,0x08);   //選擇電源模式   參考pdf24頁
  268.    Single_Write_ADXL345(0x2E,0x80);   //使能 DATA_READY 中斷
  269.    Single_Write_ADXL345(0x1E,0x00);   //X 偏移量 根據(jù)測試傳感器的狀態(tài)寫入pdf29頁
  270.    Single_Write_ADXL345(0x1F,0x00);   //Y 偏移量 根據(jù)測試傳感器的狀態(tài)寫入pdf29頁
  271.    Single_Write_ADXL345(0x20,0x05);   //Z 偏移量 根據(jù)測試傳感器的狀態(tài)寫入pdf29頁
  272. }
  273. //***********************************************************************
  274. //顯示x軸
  275. void display_x()
  276. {   float temp;
  277.     dis_data=(BUF[1]<<8)+BUF[0];  //合成數(shù)據(jù)   
  278.         if(dis_data<0){
  279.         dis_data=-dis_data;
  280.     DisplayOneChar(2,0,'-');      //顯示正負(fù)符號位
  281.         }
  282.         else DisplayOneChar(2,0,' '); //顯示空格

  283.     temp=(float)dis_data*3.9;  //計(jì)算數(shù)據(jù)和顯示,查考ADXL345快速入門第4頁
  284.     conversion(temp);          //轉(zhuǎn)換出顯示需要的數(shù)據(jù)
  285.         DisplayOneChar(0,0,'X');   //第0行,第0列 顯示X
  286.     DisplayOneChar(1,0,':');
  287.     DisplayOneChar(3,0,qian);
  288.         DisplayOneChar(4,0,'.');
  289.     DisplayOneChar(5,0,bai);
  290.     DisplayOneChar(6,0,shi);
  291.         DisplayOneChar(7,0,'g');
  292. }

  293. //***********************************************************************
  294. //顯示y軸
  295. void display_y()
  296. {     float temp;
  297.     dis_data=(BUF[3]<<8)+BUF[2];  //合成數(shù)據(jù)   
  298.         if(dis_data<0){
  299.         dis_data=-dis_data;
  300.     DisplayOneChar(2,1,'-');      //顯示正負(fù)符號位
  301.         }
  302.         else DisplayOneChar(2,1,' '); //顯示空格

  303.     temp=(float)dis_data*3.9;  //計(jì)算數(shù)據(jù)和顯示,查考ADXL345快速入門第4頁
  304.     conversion(temp);          //轉(zhuǎn)換出顯示需要的數(shù)據(jù)
  305.         DisplayOneChar(0,1,'Y');   //第1行,第0列 顯示y
  306.     DisplayOneChar(1,1,':');
  307.     DisplayOneChar(3,1,qian);
  308.         DisplayOneChar(4,1,'.');
  309.     DisplayOneChar(5,1,bai);
  310.     DisplayOneChar(6,1,shi);  
  311.         DisplayOneChar(7,1,'g');  
  312. }

  313. //***********************************************************************
  314. //顯示z軸
  315. void display_z()
  316. {      float temp;
  317.     dis_data=(BUF[5]<<8)+BUF[4];    //合成數(shù)據(jù)   
  318.         if(dis_data<0){
  319.         dis_data=-dis_data;
  320.     DisplayOneChar(10,1,'-');       //顯示負(fù)符號位
  321.         }
  322.         else DisplayOneChar(10,1,' ');  //顯示空格

  323.     temp=(float)dis_data*3.9;  //計(jì)算數(shù)據(jù)和顯示,查考ADXL345快速入門第4頁
  324.     conversion(temp);          //轉(zhuǎn)換出顯示需要的數(shù)據(jù)
  325.         DisplayOneChar(10,0,'Z');  //第0行,第10列 顯示Z
  326.     DisplayOneChar(11,0,':');
  327.     DisplayOneChar(11,1,qian);
  328.         DisplayOneChar(12,1,'.');
  329.     DisplayOneChar(13,1,bai);
  330.     DisplayOneChar(14,1,shi);
  331.         DisplayOneChar(15,1,'g');  
  332. }


  333. //*********************************************************
  334. //******主程序********
  335. //*********************************************************
  336. void main()
  337. {
  338.   uchar devid;
  339.   delay(500);                           //上電延時(shí)               
  340.   InitLcd();                      //液晶初始化ADXL345
  341.   Init_ADXL345();                 //初始化ADXL345
  342.   devid=Single_Read_ADXL345(0X00);//讀出的數(shù)據(jù)為0XE5,表示正確
  343.   while(1)                         //循環(huán)
  344.   {
  345.     Multiple_Read_ADXL345();       //連續(xù)讀出數(shù)據(jù),存儲在BUF中
  346.     display_x();                   //---------顯示X軸
  347.     display_y();                   //---------顯示Y軸
  348.     display_z();                   //---------顯示Z軸
  349.     delay(200);                    //延時(shí)            
  350.   }
  351. }
復(fù)制代碼


所有制作資料下載:
基于單片機(jī) GY-29ADXL345傳感器計(jì)步器設(shè)計(jì).zip (12.72 MB, 下載次數(shù): 440)



評分

參與人數(shù) 2黑幣 +108 收起 理由
wangtao123 + 8 共享資料的黑幣獎(jiǎng)勵(lì)!
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

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

使用道具 舉報(bào)

沙發(fā)
ID:89286 發(fā)表于 2017-2-2 08:26 | 只看該作者
thanks for sharing
回復(fù)

使用道具 舉報(bào)

板凳
ID:129081 發(fā)表于 2017-3-22 20:32 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

地板
ID:186896 發(fā)表于 2017-4-8 13:27 | 只看該作者
樓主大人,我看您分享的壓縮包只有一個(gè)main.c 和一個(gè).h文件。里面貌似沒有計(jì)算步數(shù)的算法程序吧
回復(fù)

使用道具 舉報(bào)

5#
ID:202660 發(fā)表于 2017-5-19 20:03 來自手機(jī) | 只看該作者
thanks for sharing
回復(fù)

使用道具 舉報(bào)

6#
ID:164371 發(fā)表于 2017-6-4 21:18 | 只看該作者
好厲害
回復(fù)

使用道具 舉報(bào)

7#
ID:164371 發(fā)表于 2017-6-4 21:18 | 只看該作者
好厲害
回復(fù)

使用道具 舉報(bào)

8#
ID:285028 發(fā)表于 2018-2-23 18:22 | 只看該作者
謝謝啦
回復(fù)

使用道具 舉報(bào)

9#
ID:302766 發(fā)表于 2018-4-12 10:31 | 只看該作者
贊美樓主
回復(fù)

使用道具 舉報(bào)

10#
ID:363710 發(fā)表于 2018-7-3 09:56 | 只看該作者
謝謝樓主
回復(fù)

使用道具 舉報(bào)

11#
ID:363710 發(fā)表于 2018-7-3 09:59 | 只看該作者
贊美樓主
回復(fù)

使用道具 舉報(bào)

12#
ID:364936 發(fā)表于 2018-7-4 16:23 | 只看該作者
很有用,剛好在弄相關(guān)項(xiàng)目,借鑒一哈樓主的帖子。
回復(fù)

使用道具 舉報(bào)

13#
ID:365463 發(fā)表于 2018-7-5 11:12 | 只看該作者
謝謝,樓主大人
回復(fù)

使用道具 舉報(bào)

14#
ID:365463 發(fā)表于 2018-7-5 11:12 | 只看該作者
謝謝樓主大人
回復(fù)

使用道具 舉報(bào)

15#
ID:387247 發(fā)表于 2018-8-30 16:28 | 只看該作者
老哥能不能把你的代碼給一下
回復(fù)

使用道具 舉報(bào)

16#
ID:115061 發(fā)表于 2018-11-23 18:09 | 只看該作者
這沒有計(jì)步器算法
回復(fù)

使用道具 舉報(bào)

17#
ID:479008 發(fā)表于 2019-3-27 17:26 | 只看該作者
只是一個(gè)測試程序,沒有算法的。
回復(fù)

使用道具 舉報(bào)

18#
ID:501442 發(fā)表于 2019-3-30 21:58 | 只看該作者
樓主我想問下你用什么軟件仿真呢,我用的proteus沒有adxl345這個(gè)元器件
回復(fù)

使用道具 舉報(bào)

19#
ID:512398 發(fā)表于 2019-4-21 22:34 | 只看該作者
我不知道- 發(fā)表于 2019-3-30 21:58
樓主我想問下你用什么軟件仿真呢,我用的proteus沒有adxl345這個(gè)元器件

朋友你找到了嗎?帶ADXL345的元件庫
回復(fù)

使用道具 舉報(bào)

20#
ID:512398 發(fā)表于 2019-4-21 22:38 | 只看該作者
求樓主protues元件庫。我的元件庫里沒有ADXL模塊啊。求大佬分享
回復(fù)

使用道具 舉報(bào)

21#
ID:198530 發(fā)表于 2019-4-22 11:25 | 只看該作者
程序和圖片上的現(xiàn)象不符。。。也沒有計(jì)步算法
回復(fù)

使用道具 舉報(bào)

22#
ID:92810 發(fā)表于 2019-5-27 10:46 | 只看該作者
謝謝樓主分享了啊
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日本成人免费观看 | 免费九九视频 | 免费黄色片在线观看 | 国产精品夜色一区二区三区 | 91在线免费视频 | 青草福利 | 国产99久久 | 日韩欧美精品 | 美女张开腿露出尿口 | 欧美精品成人一区二区三区四区 | 日本又色又爽又黄又高潮 | 一级特黄色毛片 | 日本精品一区二区三区四区 | 国产精品久久久久久吹潮 | 日韩在线观看一区 | 精品免费国产视频 | 国产丝袜一区二区三区免费视频 | 中文字幕一区二区三区乱码在线 | 久久99久久99精品免视看婷婷 | 欧美日韩一区二区三区四区五区 | 欧美一区二区三区在线观看 | 一级毛片视频 | 看亚洲a级一级毛片 | 精品视频在线观看 | 欧美一区久久 | 欧美黑人一区 | 亚洲国产精品久久久 | 欧美一级在线 | 亚洲人成在线播放 | 黄片毛片 | 久久一起草 | 久久国产精品-国产精品 | 亚洲性人人天天夜夜摸 | 久热9| 99久久婷婷国产综合精品电影 | 日韩欧美亚洲 | 中文视频在线 | 亚洲精品在线国产 | 在线国产99 | 久久久精品一区 | 精品欧美乱码久久久久久 |