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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機adxl345傳感器的計步器程序源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:307792 發(fā)表于 2018-4-25 11:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
稀缺資源
單片機源碼:
  1. #include  <REG52.H>       
  2. #include  <INTRINS.H>
  3. #define   uchar unsigned char
  4. #define   uint unsigned int       
  5. #define   DataPort P0    //LCD1602數(shù)據(jù)端口
  6. sbit          SCL=P3^5;      //IIC時鐘引腳定義;                                         
  7. sbit           SDA=P3^4;      //IIC數(shù)據(jù)引腳定義
  8. uchar code table_num[]="0123456789abcdefg";
  9.    /* *********** LCD1602設(shè)置 *************/
  10. sbit rs=P2^5;         //寄存器選擇信號 H:數(shù)據(jù)寄存器          L:指令寄存器
  11. sbit rw=P2^6;         //寄存器選擇信號 H:數(shù)據(jù)寄存器          L:指令寄存器
  12. sbit e =P2^7;         //片選信號   下降沿觸發(fā)
  13.          /* ***********清零按鍵設(shè)置 ********/
  14. sbit key1 = P3^6;
  15. sbit key2 = P3^7;
  16. sbit key3 = P1^2;

  17. #define        SlaveAddress   0xA6          /*定義器件在IIC總線中的從地址,根據(jù)ALT  ADDRESS地址引腳不同修改ALT  ADDRESS引腳接地時地址為0xA6,接電源時地址為0x3A*/
  18. long bushu,zong;  //步數(shù)
  19. uchar BUF[8];                         //接收數(shù)據(jù)緩存區(qū)             
  20. uchar ge,shi,bai,qian,wan;           //顯示變量
  21. int  dis_data;                       //變量
  22. int c;
  23. int s;
  24. int h=30.5;
  25. void  Multiple_Read_ADXL345();        //連續(xù)的讀取內(nèi)部寄存器數(shù)據(jù)
  26. #define RdCommand 0x01          //定義ISP的操作命令
  27. #define PrgCommand 0x02
  28. #define EraseCommand 0x03
  29. #define Error 1
  30. #define Ok 0
  31. #define WaitTime 0x01      //定義CPU的等待時間
  32. sfr ISP_DATA=0xe2;         //寄存器申明
  33. sfr ISP_ADDRH=0xe3;
  34. sfr ISP_ADDRL=0xe4;
  35. sfr ISP_CMD=0xe5;
  36. sfr ISP_TRIG=0xe6;
  37. sfr ISP_CONTR=0xe7;
  38. uchar a_a;
  39. /**************打開 ISP,IAP 功能 ********* */
  40. void ISP_IAP_enable(void)
  41. {
  42.          EA = 0;                  //關(guān)中斷
  43.          ISP_CONTR = ISP_CONTR & 0x18;        // 0001,1000
  44.          ISP_CONTR = ISP_CONTR | WaitTime;    // 寫入硬件延時
  45.          ISP_CONTR = ISP_CONTR | 0x80;         // ISPEN=1
  46. }
  47. /************** 關(guān)閉 ISP,IAP 功能 *************** */
  48. void ISP_IAP_disable(void)
  49. {
  50.          ISP_CONTR = ISP_CONTR & 0x7f;           // ISPEN = 0
  51.          ISP_TRIG = 0x00;
  52.          EA   =   1;           // 開中斷
  53. }
  54. /*****************公用的觸發(fā)代碼********* */
  55. void ISPgoon(void)
  56. {
  57.          ISP_IAP_enable();        //打開 ISP,IAP 功能
  58.          ISP_TRIG = 0x46;     //觸發(fā)ISP_IAP命令字節(jié)1
  59.          ISP_TRIG = 0xb9;            //觸發(fā)ISP_IAP命令字節(jié)2
  60.          _nop_();
  61. }
  62. /**********字節(jié)讀 *********** */
  63. unsigned char byte_read(unsigned int byte_addr)
  64. {
  65.         EA = 0;
  66.          ISP_ADDRH = (unsigned char)(byte_addr >> 8);    // 地址賦值
  67.          ISP_ADDRL = (unsigned char)(byte_addr & 0x00ff);
  68.          ISP_CMD   = ISP_CMD & 0xf8;      //清除低3位  
  69.          ISP_CMD   = ISP_CMD | RdCommand;    // 寫入讀命令
  70.          ISPgoon();           //觸發(fā)執(zhí)行  
  71.          ISP_IAP_disable();       // 關(guān)閉ISP,IAP功能
  72.          EA  = 1;
  73.          return (ISP_DATA);       // 返回讀到的數(shù)據(jù)
  74. }
  75. /************ 扇區(qū)擦除*********** */
  76. void SectorErase(unsigned int sector_addr)
  77. {
  78.          unsigned int iSectorAddr;
  79.          iSectorAddr = (sector_addr & 0xfe00);    // 取扇區(qū)地址
  80.          ISP_ADDRH = (unsigned char)(iSectorAddr >> 8);
  81.          ISP_ADDRL = 0x00;
  82.          ISP_CMD = ISP_CMD & 0xf8;      //清空低3位  
  83.          ISP_CMD = ISP_CMD | EraseCommand;    //擦除命令3
  84.          ISPgoon();        //觸發(fā)執(zhí)行  
  85.          ISP_IAP_disable();     //關(guān)閉ISP,IAP功能
  86. }
  87. /********** 字節(jié)寫 ******* */
  88. void byte_write(unsigned int byte_addr, unsigned char original_data)
  89. {
  90.          EA  = 0;
  91. //         SectorErase(byte_addr);
  92.          ISP_ADDRH = (unsigned char)(byte_addr >> 8);  // 取地址
  93.          ISP_ADDRL = (unsigned char)(byte_addr & 0x00ff);
  94.          ISP_CMD  = ISP_CMD & 0xf8;    // 清低3位
  95.          ISP_CMD  = ISP_CMD | PrgCommand;  //寫命令2
  96.          ISP_DATA = original_data;   //寫入數(shù)據(jù)準(zhǔn)備
  97.          ISPgoon();       //觸發(fā)執(zhí)行
  98.          ISP_IAP_disable();     //關(guān)閉IAP功能
  99.          EA =1;
  100. }
  101. /**********把數(shù)據(jù)保存到單片機內(nèi)部eeprom中**************/
  102. void write_eeprom()        //保存數(shù)據(jù)
  103. {
  104.         SectorErase(0x2000);
  105.         byte_write(0x2000, bushu);
  106.         byte_write(0x2001, bushu >> 8);
  107.         byte_write(0x2002, bushu >> 16);
  108.         byte_write(0x2003, zong);
  109.         byte_write(0x2004, zong >> 8);
  110.         byte_write(0x2005, zong >> 16);

  111.         byte_write(0x2055, a_a);       
  112. }
  113. /******************把數(shù)據(jù)從單片機內(nèi)部eeprom中讀出來*****************/
  114. void read_eeprom()         //讀出保存數(shù)據(jù)
  115. {
  116.         bushu = byte_read(0x2002);
  117.         bushu <<= 8;
  118.         bushu |= byte_read(0x2001);  
  119.         bushu <<= 8;
  120.         bushu |= byte_read(0x2000);

  121.         zong = byte_read(0x2005);
  122.         zong <<= 8;
  123.         zong |= byte_read(0x2004);  
  124.         zong <<= 8;
  125.         zong |= byte_read(0x2003);
  126.         a_a    = byte_read(0x2055);
  127. }
  128. /**************開機自檢eeprom初始化*****************/
  129. void init_eeprom()           //開始初始化保存的數(shù)據(jù)
  130. {
  131.         read_eeprom();         //讀出保存數(shù)據(jù)
  132.         if(a_a != 14)                //新的單片機初始單片機內(nèi)問eeprom
  133.         {
  134.             zong = 0;
  135.                 bushu = 0;
  136.                 a_a = 14;
  137.                 write_eeprom();        //保存數(shù)據(jù)
  138.         }       
  139. }
  140. void conversion(uint temp_data)  
  141. {  
  142.     wan=temp_data/10000+0x30 ;
  143.     temp_data=temp_data%10000;   //取余運算
  144.         qian=temp_data/1000+0x30 ;
  145.     temp_data=temp_data%1000;    //取余運算
  146.     bai=temp_data/100+0x30   ;
  147.     temp_data=temp_data%100;     //取余運算
  148.     shi=temp_data/10+0x30    ;
  149.     temp_data=temp_data%10;      //取余運算
  150.     ge=temp_data+0x30;        
  151. }
  152. void delay_1ms(uint q)
  153. {
  154.         uint i,j;
  155.         for(i=0;i<q;i++)
  156.                 for(j=0;j<120;j++);
  157. }
  158. void delay_uint(uint q)
  159. {
  160.         while(q--);
  161. }
  162. void write_com(uchar com)
  163. {
  164.         e=0;
  165.         rs=0;
  166.         rw=0;
  167.         P0=com;
  168.         delay_uint(25);
  169.         e=1;
  170.         delay_uint(100);
  171.         e=0;
  172. }
  173. void write_data(uchar dat)
  174. {
  175.         e=0;
  176.         rs=1;
  177.         rw=0;
  178.         P0=dat;
  179.         delay_uint(25);
  180.         e=1;
  181.         delay_uint(100);
  182.         e=0;       
  183. }
  184. /***********lcd1602上顯示十進制數(shù)************/
  185. void write_bushu(uchar hang,uchar add,long date)
  186. {
  187.         if(hang==1)   
  188.                 write_com(0x80+add);
  189.         else
  190.                 write_com(0x80+0x40+add);
  191.         if(date >= 1000000)
  192.                 write_data(0x30+date/1000000%10);
  193.         if(date >= 100000)
  194.                 write_data(0x30+date/100000%10);
  195.         if(date >= 10000)
  196.                 write_data(0x30+date/10000%10);
  197.         if(date >= 1000)
  198.                 write_data(0x30+date/1000%10);
  199.         if(date >= 100)
  200.                 write_data(0x30+date/100%10);
  201.         if(date >= 10)
  202.                 write_data(0x30+date/10%10);
  203.         write_data(0x30+date%10);       
  204. }
  205. /*************lcd1602上顯示這字符函數(shù)**************/
  206. void write_string(uchar hang,uchar add,uchar *p)
  207. {
  208.         if(hang==1)   
  209.                 write_com(0x80+add);
  210.         else
  211.                 write_com(0x80+0x40+add);
  212.                 while(1)                                                                                                                 
  213.                 {
  214.                         if(*p == '\0')  break;
  215.                         write_data(*p);
  216.                         p++;
  217.                 }       
  218. }
  219.                
  220. /***********lcd1602初始化設(shè)置*************/
  221. void init_1602()        //lcd1602初始化
  222. {
  223.         write_com(0x38);       
  224.         write_com(0x0c);
  225.         write_com(0x06);
  226.         delay_uint(1000);
  227.         write_string(1,0,"B:0      Z:0      ");       
  228.         write_string(2,0,"S:0      C:0      ");       
  229. }
  230. /**********lcd1602上顯示特定的字符***********/
  231. void write_zifu(uchar hang,uchar add,uchar date)
  232. {
  233.         if(hang==1)   
  234.                 write_com(0x80+add);
  235.         else
  236.                 write_com(0x80+0x40+add);
  237.         write_data(date);       
  238. }
  239. void Delay5us()
  240. {
  241.     _nop_();_nop_();_nop_();_nop_();
  242.     _nop_();_nop_();_nop_();_nop_();
  243.         _nop_();_nop_();_nop_();_nop_();
  244. }
  245. void Delay5ms()
  246. {
  247.     uint n = 560;

  248.     while (n--);
  249. }
  250. /*********起始信號************/
  251. void ADXL345_Start()
  252. {
  253.     SDA = 1;                    //拉高數(shù)據(jù)線
  254.     SCL = 1;                    //拉高時鐘線
  255.     Delay5us();                 //延時
  256.     SDA = 0;                    //產(chǎn)生下降沿
  257.     Delay5us();                 //延時
  258.     SCL = 0;                    //拉低時鐘線
  259. }
  260. /******停止信號********/
  261. void ADXL345_Stop()
  262. {
  263.     SDA = 0;                    //拉低數(shù)據(jù)線
  264.     SCL = 1;                    //拉高時鐘線
  265.     Delay5us();                 //延時
  266.     SDA = 1;                    //產(chǎn)生上升沿
  267.     Delay5us();                 //延時
  268. }
  269. /********發(fā)送應(yīng)答信號  入口參數(shù):ack (0:ACK 1:NAK)**********/
  270. void ADXL345_SendACK(bit ack)
  271. {
  272.     SDA = ack;                  //寫應(yīng)答信號
  273.     SCL = 1;                    //拉高時鐘線
  274.     Delay5us();                 //延時
  275.     SCL = 0;                    //拉低時鐘線
  276.     Delay5us();                 //延時
  277. }
  278. /**************************************
  279. 接收應(yīng)答信號
  280. **************************************/
  281. bit ADXL345_RecvACK()
  282. {
  283.     SCL = 1;                    //拉高時鐘線
  284.     Delay5us();                 //延時
  285.     CY = SDA;                   //讀應(yīng)答信號
  286.     SCL = 0;                    //拉低時鐘線
  287.     Delay5us();                 //延時
  288.     return CY;
  289. }
  290. /**************************************
  291. 向IIC總線發(fā)送一個字節(jié)數(shù)據(jù)
  292. **************************************/
  293. void ADXL345_SendByte(uchar dat)
  294. {
  295.     uchar i;
  296.     for (i=0; i<8; i++)         //8位計數(shù)器
  297.     {
  298.         dat <<= 1;              //移出數(shù)據(jù)的最高位
  299.         SDA = CY;               //送數(shù)據(jù)口
  300.         SCL = 1;                //拉高時鐘線
  301.         Delay5us();             //延時
  302.         SCL = 0;                //拉低時鐘線
  303.         Delay5us();             //延時
  304.     }
  305.     ADXL345_RecvACK();
  306. }
  307. /*************從IIC總線接收一個字節(jié)數(shù)據(jù)*******/
  308. uchar ADXL345_RecvByte()
  309. {
  310.     uchar i;
  311.     uchar dat = 0;
  312.     SDA = 1;                    //使能內(nèi)部上拉,準(zhǔn)備讀取數(shù)據(jù),
  313.     for (i=0; i<8; i++)         //8位計數(shù)器
  314.     {
  315.         dat <<= 1;
  316.         SCL = 1;                //拉高時鐘線
  317.         Delay5us();             //延時
  318.         dat |= SDA;             //讀數(shù)據(jù)               
  319.         SCL = 0;                //拉低時鐘線
  320.         Delay5us();             //延時
  321.     }
  322.     return dat;
  323. }
  324. //******單字節(jié)寫入***********//
  325. void Single_Write_ADXL345(uchar REG_Address,uchar REG_data)
  326. {
  327.     ADXL345_Start();                  //起始信號
  328.     ADXL345_SendByte(SlaveAddress);   //發(fā)送設(shè)備地址+寫信號
  329.     ADXL345_SendByte(REG_Address);    //內(nèi)部寄存器地址,參考中文pdf22頁
  330.     ADXL345_SendByte(REG_data);       //內(nèi)部寄存器數(shù)據(jù),參考中文pdf22頁
  331.     ADXL345_Stop();                   //發(fā)送停止信號
  332. }
  333. //********單字節(jié)讀取************//
  334. uchar Single_Read_ADXL345(uchar REG_Address)
  335. {  uchar REG_data;
  336.     ADXL345_Start();                          //起始信號
  337.     ADXL345_SendByte(SlaveAddress);           //發(fā)送設(shè)備地址+寫信號
  338.     ADXL345_SendByte(REG_Address);            //發(fā)送存儲單元地址,從0開始       
  339.     ADXL345_Start();                          //起始信號
  340.     ADXL345_SendByte(SlaveAddress+1);         //發(fā)送設(shè)備地址+讀信號
  341.     REG_data=ADXL345_RecvByte();              //讀出寄存器數(shù)據(jù)
  342.         ADXL345_SendACK(1);   
  343.         ADXL345_Stop();                           //停止信號
  344.     return REG_data;
  345. }
  346. //*****連續(xù)讀出ADXL345內(nèi)部加速度數(shù)據(jù),地址范圍0x32~0x37*****//
  347. void Multiple_read_ADXL345(void)
  348. {   uchar i;
  349.     ADXL345_Start();                          //起始信號
  350.     ADXL345_SendByte(SlaveAddress);           //發(fā)送設(shè)備地址+寫信號
  351.     ADXL345_SendByte(0x32);                   //發(fā)送存儲單元地址,從0x32開始       
  352.     ADXL345_Start();                          //起始信號
  353.     ADXL345_SendByte(SlaveAddress+1);         //發(fā)送設(shè)備地址+讀信號
  354.          for (i=0; i<6; i++)                      //連續(xù)讀取6個地址數(shù)據(jù),存儲中BUF
  355.     {
  356.         BUF[i] = ADXL345_RecvByte();          //BUF[0]存儲0x32地址中的數(shù)據(jù)
  357.         if (i == 5)
  358.         {
  359.            ADXL345_SendACK(1);                //最后一個數(shù)據(jù)需要回NOACK
  360.         }
  361.         else
  362.         {
  363.           ADXL345_SendACK(0);                //回應(yīng)ACK
  364.        }
  365.    }
  366.     ADXL345_Stop();                          //停止信號
  367.     Delay5ms();
  368. }
  369. //******初始化ADXL345,根據(jù)需要請參考pdf進行修改***//
  370. void Init_ADXL345()
  371. {
  372.    Single_Write_ADXL345(0x31,0x0B);   //測量范圍,正負16g,13位模式
  373.    Single_Write_ADXL345(0x2C,0x08);   //速率設(shè)定為12.5 參考pdf13頁
  374.    Single_Write_ADXL345(0x2D,0x08);   //選擇電源模式   參考pdf24頁
  375.    Single_Write_ADXL345(0x2E,0x80);   //使能 DATA_READY 中斷
  376.    Single_Write_ADXL345(0x1E,0x00);   //X 偏移量 根據(jù)測試傳感器的狀態(tài)寫入pdf29頁
  377.    Single_Write_ADXL345(0x1F,0x00);   //Y 偏移量 根據(jù)測試傳感器的狀態(tài)寫入pdf29頁
  378.    Single_Write_ADXL345(0x20,0x05);   //Z 偏移量 根據(jù)測試傳感器的狀態(tài)寫入pdf29頁
  379. }
  380. //*******顯示x軸*******//
  381. void display_y()
  382. {     
  383.         static uchar flag_en,flag_fu;
  384.         float temp;
  385.     dis_data=(BUF[3]<<8)+BUF[2];  //合成數(shù)據(jù)   
  386.         if(dis_data<0)
  387.         {
  388.                 dis_data=-dis_data;
  389.                 flag_fu = 1;
  390.         }
  391.         else
  392.         {
  393.                 flag_en = 1;
  394.                 flag_fu = 0;
  395.         }
  396.     temp=(float)dis_data*3.9;       //計算數(shù)據(jù)和顯示,查考ADXL345快速入門第4頁
  397.         if(temp > 100)     //步數(shù)加1
  398.         {                    
  399.                 if((flag_en == 1) && (flag_fu == 1))
  400.                 {
  401.                         flag_en = 0;
  402.                         bushu ++;
  403.                         zong ++;
  404.                         s=bushu*h;
  405.                         c=bushu*1.5;       
  406.                         write_eeprom();            //保存數(shù)據(jù)
  407.                         write_bushu(1,2,bushu);                //顯示步數(shù)
  408.                         write_bushu(1,11,zong);                //顯示總步數(shù)
  409.                         write_bushu(2,2,s);
  410.                         write_bushu(2,11,c);
  411.                 }
  412.         }
  413.         if(temp < 70)  
  414.         {
  415.                 flag_en = 1;       
  416.         }
  417. }
  418. //******按鍵控制程序*******//
  419. void key()
  420. {
  421.         if(key1 == 0)
  422.         {
  423.                 delay_1ms(1);
  424.                 if(key1 == 0)
  425.                 {
  426.                         zong = 0;
  427.                         write_string(1,11,"      ");
  428.                         write_bushu(1,2,bushu);                //顯示步數(shù)
  429.                         write_bushu(1,11,zong);                //顯示總步數(shù)
  430.                         write_eeprom();        //保存數(shù)據(jù)               
  431.                 }
  432.                 while(key1 == 0);  //松手檢測
  433.         }
  434.         if(key2 == 0)
  435.         {
  436.                 delay_1ms(1);
  437.                 if(key2 == 0)
  438.                 {
  439.                         bushu = 0;
  440.                         write_string(1,2,"     ");
  441.                         write_bushu(1,2,bushu);                //顯示步數(shù)
  442.                         write_bushu(1,11,zong);                //顯示總步數(shù)
  443.                         write_eeprom();        //保存數(shù)據(jù)               
  444.                 }
  445.                 while(key2 == 0);  //松手檢測
  446.         }
  447. }
  448. //******主程序********//
  449. void main()
  450. {
  451.         static uint flag_value;
  452.         uchar devid;
  453.         init_1602();        //lcd1602初始化
  454.         Init_ADXL345();                         //初始化ADXL345
  455.         devid=Single_Read_ADXL345(0X00);        //讀出的數(shù)據(jù)為0XE5,表示正確
  456.         delay_1ms(20);
  457.         init_eeprom();                 //開始初始化保存的數(shù)據(jù)
  458.         write_bushu(1,11,zong);                //顯示總步數(shù)
  459.         bushu=0;
  460.         while(1)                      //循環(huán)
  461.         {        
  462.         if(key3==0)
  463.         {delay_1ms(1);
  464.           if(key3==0)
  465.             h=h+1.5;}
  466.     if(h==38)
  467.            { h=30.5;}
  468.                
  469.                 key();          //按鍵程序
  470.                 flag_value ++;
  471.                 if(flag_value >= 100)           //100ms
  472.                 {
  473.                         flag_value = 0;
  474.                         Init_ADXL345();                         //初始化ADXL345
  475.                         devid=Single_Read_ADXL345(0X00);        //讀出的數(shù)據(jù)為0XE5,表示正確
  476.                         if(devid!=0XE5)
  477.                         {                       
  478.                                 write_string(2,11,"error");                       
  479.                         }
  480.                         else
  481.                         {                       
  482.                                 Multiple_Read_ADXL345();               //連續(xù)讀出數(shù)據(jù),存儲在BUF中
  483.                                 display_y();                           //---------顯示Y軸
  484.                         }     
  485.                 }
  486.                 delay_1ms(1);                            //延時  
  487.         }
  488. }

復(fù)制代碼

所有資料51hei提供下載:
2、程序.rar (133.75 KB, 下載次數(shù): 90)


評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:308041 發(fā)表于 2018-5-19 15:42 | 只看該作者
謝謝樓主
回復(fù)

使用道具 舉報

板凳
ID:320407 發(fā)表于 2018-5-22 15:09 | 只看該作者
為什么只是亮屏  沒有顯示步數(shù),是不是doc>代碼里面的直接打開計步器計步器u4vision4  文件
回復(fù)

使用道具 舉報

地板
ID:744258 發(fā)表于 2020-5-5 00:22 | 只看該作者
謝謝樓主,
回復(fù)

使用道具 舉報

5#
ID:904038 發(fā)表于 2021-4-21 14:45 | 只看該作者
空小白格 發(fā)表于 2018-5-22 15:09
為什么只是亮屏  沒有顯示步數(shù),是不是doc>代碼里面的直接打開計步器計步器u4vision4  文件

解決了不,我的也是
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人午夜 | 欧洲精品码一区二区三区免费看 | 亚洲国产视频一区二区 | 日本中文字幕在线观看 | 成人二区 | 97精品超碰一区二区三区 | 国产视频久久久 | 在线一区二区三区 | 国产精品久久久久久久久久 | 毛片大全 | 久草精品视频 | 国产精品区二区三区日本 | 看毛片的网站 | 欧美综合网 | 欧美 日韩 视频 | 精品一区二区在线视频 | 久久久久国产精品午夜一区 | 精品福利视频一区二区三区 | 国产精品久久九九 | 欧美电影一区 | 欧美在线观看一区 | 婷婷久久精品一区二区 | 精品一区二区三区在线视频 | 久久福利电影 | 国产精品日韩一区二区 | www.免费看片.com | 国产福利视频在线观看 | 日韩中文电影 | 成人免费在线 | 永久av| 欧美日韩网站 | 欧美1区2区 | 九七午夜剧场福利写真 | 看av电影| 国产亚洲成av人片在线观看桃 | 欧美自拍网站 | 国产精久久久久久久 | 亚洲福利 | 中文字幕的av | 91av国产在线视频 | 日本手机在线 |