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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機矩陣鍵盤掃描驅動程序與電路分析

  [復制鏈接]
跳轉到指定樓層
樓主
ID:446156 發表于 2021-11-15 14:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
矩陣鍵盤的掃描原理很多教材都介紹過,在這里再贅述一遍。
以4X4鍵盤為例,首先按照下圖制作電路。

然后將HOR1-HOR4連接到單片機的輸入引腳上去;LON1-LON4連接到單片機的開漏輸出引腳上去,注意這4個引腳必須設置為開漏模式!
程序上首先將LON1所連接的IO輸出低電平其余3個IO輸出高電平,同時檢測HOR1-HOR4的電平來獲取K1-K4的按鍵狀態;然后將LON2所連接的IO輸出低電平其余3個IO輸出高電平,同時檢測HOR1-HOR4的電平來獲取K5-K8的按鍵狀態;依次類推。
但是這個電路是有BUG的,比如同時按下K1、K5和K6,當LON1為低電平的時HOR1檢測到是低電平沒有問題;因為K2沒有被按下所以我們希望HOR2是高電平,但是由于K1、K5、K6同時按下電流從VCC通過R2再通過K6再通過K5再通過K1流到LON1,所以實際上HOR2也是低電平這時候程序就認為K2被按下了導致出錯。


解決這個問題很簡單只需要在合適的位置加一個二極管,利用其單向導電性阻擋電流跨列流動就行了。


好了,接下來是單片機代碼時間
  1. #ifndef __Key_matrix_H
  2. #define __Key_matrix_H

  3. #include "gpio.h"
  4. #include "gpio_bool.h"

  5. /*務必把這4個輸出IO設置為上拉輸入*/
  6. #define KEY_HOR1 PAin(7)
  7. #define KEY_HOR2 PAin(6)
  8. #define KEY_HOR3 PAin(5)
  9. #define KEY_HOR4 PAin(4)
  10. /*務必把這4個輸出IO設置為開漏*/
  11. #define KEY_LON1 PBout(0)
  12. #define KEY_LON2 PCout(5)
  13. #define KEY_LON3 PCout(4)
  14. #define KEY_LON4 PCout(3)

  15. #define KEY_PRESS_TIME 20//消抖常數
  16. #define KEY_LONG_PRESS_TIME 3000//單個按鍵長按閾值3s
  17. /*通過讀取(只讀)這三個變量即可獲得按鍵的單按、長按和組合鍵信息*/
  18. extern volatile uint16_t Key_Phy_Num;
  19. extern volatile uint8_t Key_Pulse_Num;
  20. extern volatile uint16_t Key_LP_Num;

  21. typedef enum
  22. {
  23.         KPL_DISABLE=0,
  24.         KPL_ENABLE
  25. }K_L_P;//按鍵的長按狀態
  26. typedef struct
  27. {
  28.         K_L_P KEY_LONG_PRESS;
  29.         uint16_t KeyOpenCount;
  30.         uint8_t KOC_EN;
  31.         uint16_t KeyCloseCount;
  32.         uint8_t KCC_EN;
  33. }Key_Para;

  34. exter Key_Par Key_1,Key_2,Key_3,Key_4,Key_5,Key_6,Key_7,Key_8,Key_9,Key_10,Key_11,Key_12,Key_13,Key_14,Key_15,Key_16;

  35. void Clear_Key_Pulse_Num(void);//當讀取完Key_Pulse_Num后調用
  36. void KeyCount_Run(void);//在1ms滴答里調用
  37. void Key_Scan(void);//大循環或者滴答里邊都行

  38. #endif
復制代碼
  1. #include "Key_matrix.h"

  2. Key_Par Key_1,Key_2,Key_3,Key_4,Key_5,Key_6,Key_7,Key_8,Key_9,Key_10,Key_11,Key_12,Key_13,Key_14,Key_15,Key_16;
  3. volatile uint16_t Key_Phy_Num=0;  //Key_Phy_Num每一個bit代表一個按鍵的狀態
  4. volatile uint8_t Key_Pulse_Num=0;//當某一個按鍵從按下到彈起的過程中(非長按)始終只有該按鍵被操作,則Key_Pulse_Num被修改為該鍵的序號
  5. volatile uint16_t Key_LP_Num=0;   //Key_LP_Num每一個bit代表一個按鍵的長按狀態
  6. uint8_t KeyCom=0;//組合鍵是否出現

  7. static void Key_Num_Read(Key_Para* Key,uint16_t KPN,uint8_t Pulse,uint8_t Key_Hor)
  8. {
  9.         if(Key_Hor == 0)
  10.         {
  11.                 Key->KOC_EN=0;//按鍵按下立即清除(松開)計數
  12.                 if(Key->KeyCloseCount > KEY_PRESS_TIME)
  13.                 {
  14.                         /*消抖方法為檢測到按鍵被(持續)按下超過20ms*/
  15.                         Key_Phy_Num|=KPN;//消抖完畢后記錄被按下的按鍵的鍵值
  16.                         if(Key->KeyCloseCount > KEY_LONG_PRESS_TIME)
  17.                         {
  18.                                 /*檢測到按鍵被(持續)按下超過3秒*/
  19.                                 Key->KEY_LONG_PRESS=KPL_ENABLE;
  20.                                 Key_LP_Num|=KPN;
  21.                                 Key->KCC_EN=0;
  22.                         }
  23.                         else
  24.                         {
  25.                                 /*時間不夠啟動計數*/
  26.                                 Key->KCC_EN=1;
  27.                         }
  28.                 }
  29.                 else
  30.                 {
  31.                         /*時間不夠啟動計數*/
  32.                         Key->KCC_EN=1;
  33.                 }
  34.         }
  35.         else
  36.         {
  37.                 Key->KCC_EN=0;//按鍵松開立即清除(按下)計數
  38.                 if(Key->KeyOpenCount > KEY_PRESS_TIME)
  39.                 {
  40.                         if((Key_Phy_Num==KPN)&&(KeyCom==0)&&(Key->KEY_LONG_PRESS!=KPL_ENABLE))
  41.                         {
  42.                                 //按鍵被按下過&&非長按&&不是在組合鍵周期,該按鍵釋放時發出生命周期為直到被讀取或者直到有新按鍵被按下的脈沖
  43.                                 Key_Pulse_Num=Pulse;
  44.                         }
  45.                          //清除該位
  46.                          Key_Phy_Num&=(~KPN);
  47.                          Key_LP_Num&=(~KPN);
  48.                         /*檢測到(持續)松開20ms*/
  49.                         Key->KEY_LONG_PRESS=KPL_DISABLE;
  50.                         Key->KOC_EN=0;
  51.                 }
  52.                 else
  53.                 {
  54.                         Key->KOC_EN=1;
  55.                 }
  56.         }
  57. }
  58. /********************************************************/
  59. static void Key_Count(Key_Para *Key)
  60. {
  61.         if(Key->KOC_EN==0)
  62.         {
  63.                 Key->KeyOpenCount=0;
  64.         }
  65.         else if(Key->KeyOpenCount>=50000)
  66.         {
  67.                 Key->KeyOpenCount=50000;
  68.         }
  69.         else
  70.         {
  71.                 Key->KeyOpenCount++;
  72.         }

  73.         if(Key->KCC_EN==0)
  74.         {
  75.                 Key->KeyCloseCount=0;
  76.         }
  77.         else if(Key->KeyCloseCount>=50000)
  78.         {
  79.                 Key->KeyCloseCount=50000;
  80.         }
  81.         else
  82.         {
  83.                 Key->KeyCloseCount++;
  84.         }
  85. }
  86. /********************************************************/
  87. void Clear_Key_Pulse_Num(void)
  88. {
  89.         Key_Pulse_Num=0;
  90. }
  91. /********************************************************/
  92. void KeyCount_Run(void)
  93. {
  94.         Key_Count(&Key_1);
  95.         Key_Count(&Key_2);
  96.         Key_Count(&Key_3);
  97.         Key_Count(&Key_4);
  98.         Key_Count(&Key_5);
  99.         Key_Count(&Key_6);
  100.         Key_Count(&Key_7);
  101.         Key_Count(&Key_8);
  102.         Key_Count(&Key_9);
  103.         Key_Count(&Key_10);
  104.         Key_Count(&Key_11);
  105.         Key_Count(&Key_12);
  106.         Key_Count(&Key_13);
  107.         Key_Count(&Key_14);
  108.         Key_Count(&Key_15);
  109.         Key_Count(&Key_16);
  110. }
  111. /********************************************************/
  112. static void Recognition_KeyCombination(void)
  113. {
  114.         uint8_t i=0,j=0;
  115.         uint16_t Data=0;
  116.         
  117.         Data=Key_Phy_Num;
  118.         for(i=0;i<16;i++)
  119.         {
  120.                 if(Data&0x8000)
  121.                 {
  122.                         j++;
  123.                 }
  124.                 Data<<=1;
  125.         }
  126.         /*發現多個bit為1,那指定多個按鍵按下了*/
  127.         if(j>1)
  128.         {
  129.                 KeyCom=1;
  130.         }
  131.         /*一切歸于平靜,又是一個因果循環*/
  132.         if(Key_Phy_Num==0x0)
  133.         {
  134.                 KeyCom=0;
  135.         }
  136. }
  137. /********************************************************/
  138. void Key_Scan(void)
  139. {        
  140.   static uint8_t ScanCount=0;
  141.   
  142.   Recognition_KeyCombination();
  143.   switch(ScanCount)
  144.   {
  145.     case 0:
  146.     {
  147.       KEY_LON1=0;KEY_LON2=1;KEY_LON3=1;KEY_LON4=1;
  148.       Key_Num_Read(&Key_1,(uint16_t)0x0001   ,1,KEY_HOR1);
  149.       Key_Num_Read(&Key_2,(uint16_t)0x0001<<1,2,KEY_HOR2);
  150.       Key_Num_Read(&Key_3,(uint16_t)0x0001<<2,3,KEY_HOR3);
  151.       Key_Num_Read(&Key_4,(uint16_t)0x0001<<3,4,KEY_HOR4);
  152.       KEY_LON1=1;KEY_LON2=0;KEY_LON3=1;KEY_LON4=1;
  153.       ScanCount++;
  154.     }break;
  155.     case 1:
  156.     {
  157.       KEY_LON1=1;KEY_LON2=0;KEY_LON3=1;KEY_LON4=1;
  158.       Key_Num_Read(&Key_5,(uint16_t)0x0001<<4,5,KEY_HOR1);
  159.       Key_Num_Read(&Key_6,(uint16_t)0x0001<<5,6,KEY_HOR2);
  160.       Key_Num_Read(&Key_7,(uint16_t)0x0001<<6,7,KEY_HOR3);
  161.       Key_Num_Read(&Key_8,(uint16_t)0x0001<<7,8,KEY_HOR4);
  162.       KEY_LON1=1;KEY_LON2=1;KEY_LON3=0;KEY_LON4=1;
  163.       ScanCount++;
  164.     }break;
  165.     case 2:
  166.     {
  167.       KEY_LON1=1;KEY_LON2=1;KEY_LON3=0;KEY_LON4=1;
  168.       Key_Num_Read(&Key_9 ,(uint16_t)0x0001<<8 , 9,KEY_HOR1);
  169.       Key_Num_Read(&Key_10,(uint16_t)0x0001<<9 ,10,KEY_HOR2);
  170.       Key_Num_Read(&Key_11,(uint16_t)0x0001<<10,11,KEY_HOR3);
  171.       Key_Num_Read(&Key_12,(uint16_t)0x0001<<11,12,KEY_HOR4);
  172.       KEY_LON1=1;KEY_LON2=1;KEY_LON3=1;KEY_LON4=0;
  173.       ScanCount++;
  174.     }break;
  175.     case 3:
  176.     {
  177.       KEY_LON1=1;KEY_LON2=1;KEY_LON3=1;KEY_LON4=0;
  178.       Key_Num_Read(&Key_13,(uint16_t)0x0001<<12,13,KEY_HOR1);
  179.       Key_Num_Read(&Key_14,(uint16_t)0x0001<<13,14,KEY_HOR2);
  180.       Key_Num_Read(&Key_15,(uint16_t)0x0001<<14,15,KEY_HOR3);
  181.       Key_Num_Read(&Key_16,(uint16_t)0x0001<<15,16,KEY_HOR4);
  182.       KEY_LON1=0;KEY_LON2=1;KEY_LON3=1;KEY_LON4=1;
  183.       ScanCount=0;
  184.     }break;
  185.     default:
  186.     {
  187.       ScanCount=0;
  188.     }break;
  189.   }
  190. }
復制代碼




評分

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

查看全部評分

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

使用道具 舉報

無效樓層,該帖已經被刪除
無效樓層,該帖已經被刪除
地板
ID:859897 發表于 2021-11-24 09:53 | 只看該作者
優秀啊
回復

使用道具 舉報

5#
無效樓層,該帖已經被刪除
6#
無效樓層,該帖已經被刪除
7#
ID:989232 發表于 2021-12-14 21:09 來自觸屏版 | 只看該作者
牛啊,確實不錯
回復

使用道具 舉報

8#
無效樓層,該帖已經被刪除
9#
無效樓層,該帖已經被刪除
10#
無效樓層,該帖已經被刪除
11#
無效樓層,該帖已經被刪除
12#
無效樓層,該帖已經被刪除
13#
無效樓層,該帖已經被刪除
14#
無效樓層,該帖已經被刪除
15#
無效樓層,該帖已經被刪除
16#
無效樓層,該帖已經被刪除
17#
無效樓層,該帖已經被刪除
18#
無效樓層,該帖已經被刪除
19#
無效樓層,該帖已經被刪除
20#
無效樓層,該帖已經被刪除
21#
ID:872412 發表于 2022-3-1 11:54 | 只看該作者
矩陣代碼需要寫這么多么,寫過一次記得沒幾句
回復

使用道具 舉報

22#
無效樓層,該帖已經被刪除
23#
無效樓層,該帖已經被刪除
24#
無效樓層,該帖已經被刪除
25#
ID:214914 發表于 2022-3-20 20:11 | 只看該作者
講的很好,通俗易懂
回復

使用道具 舉報

26#
無效樓層,該帖已經被刪除
27#
無效樓層,該帖已經被刪除
28#
無效樓層,該帖已經被刪除
29#
ID:1014835 發表于 2022-4-2 11:52 | 只看該作者
矩陣代碼需要寫這么多么,寫過一次記得沒幾句
回復

使用道具 舉報

30#
ID:1015352 發表于 2022-4-3 11:17 | 只看該作者
so nice
回復

使用道具 舉報

31#
無效樓層,該帖已經被刪除
32#
無效樓層,該帖已經被刪除
33#
ID:1064915 發表于 2023-8-28 15:04 | 只看該作者
在51用,程序怎么改
回復

使用道具 舉報

34#
無效樓層,該帖已經被刪除
35#
ID:371734 發表于 2024-3-15 21:35 | 只看該作者
牛啊,確實不錯
回復

使用道具 舉報

36#
ID:446156 發表于 2024-11-4 08:21 | 只看該作者
關于驅動如何修改成51用,第一搞一個1ms的中斷,用定時器也行在大循環里記個數模擬1ms周期也行不需要太準確。第二把8個IO的宏改成51的IO,比如把#define KEY_HOR1 PAin(7)改成#define KEY_HOR1 P1^0;并按照注釋來配置輸入輸出狀態。第三把uint8_t改成unsigned char,uint16_t改成unsigned int。第四把#include "gpio.h"#include "gpio_bool.h"刪掉換上51的頭文件
回復

使用道具 舉報

37#
ID:349276 發表于 2024-11-6 10:14 | 只看該作者
學習來著,空了研究一下。
回復

使用道具 舉報

38#
ID:446156 發表于 2025-3-11 09:24 | 只看該作者
op5726170 發表于 2022-3-1 11:54
矩陣代碼需要寫這么多么,寫過一次記得沒幾句

這么多年了,我忍住不懟你。矩陣驅動確實可以寥寥幾行就能實現,但是你寫的那玩意有幾個功能?估計連消抖都沒有,更別說隨意擴展、跨平臺移植、識別長短按以及松手后的事件觸發
回復

使用道具 舉報

39#
ID:349276 發表于 2025-3-17 15:04 | 只看該作者
qinlu123 發表于 2025-3-11 09:24
這么多年了,我忍住不懟你。矩陣驅動確實可以寥寥幾行就能實現,但是你寫的那玩意有幾個功能?估計連消抖 ...

嘿嘿,還可以搞組合鍵
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
婷婷亚洲婷婷综合色香五月| 夜夜爽99久久国产综合精品女不卡| 亚洲美女淫视频| 欧美最新另类人妖| 色悠久久久久综合先锋影音下载| 亚洲性受xxx喷奶水| 欧美性受ⅹ╳╳╳黑人a性爽| 久久久久久久久久久久网站| 日本高清视频www| 国产永久免费视频| 久久久免费高清视频| 久草国产在线观看| 久久久久成人片免费观看蜜芽| 国产suv精品一区二区68| 日韩一卡二卡在线观看| 99自拍视频在线| 久久久一区二区三区四区| 91无套直看片红桃| 91超碰在线观看| 很黄很黄的网站免费的| 天天色av.com| 麻豆免费网站| 伊人色综合网| 亚洲视频tv| 欧美黄色视屏| 国产精品毛片av| 国产va免费精品观看精品视频| 米奇777超碰欧美日韩亚洲| 玖玖在线精品| 国产一区二区三区在线观看精品| 国产毛片一区二区| 亚洲成精国产精品女| 色婷婷综合激情| 欧美一二三四区在线| 亚洲激情中文字幕| 中文字幕亚洲精品| 色综合五月天导航| 欧美怡春院一区二区三区| 国产精品久在线观看| 97久久精品午夜一区二区| 国产日韩欧美二区| 在线精品日韩| 中文字幕乱码人妻综合二区三区| 黄色小视频免费网站| 三级男人添奶爽爽爽视频| 国产午夜精品福利视频| 欧美 日韩 精品| 国产图片综合| 成年人视频在线| 牛牛影视精品影视| 92久久精品| 久久久91麻豆精品国产一区| 色无极亚洲影院| 国产精品亚洲综合久久| 国产精品一二三区| 亚洲日本在线观看| 欧美日高清视频| 中国人与牲禽动交精品| 国产专区一区二区| 91香蕉视频免费看| 青青草原在线免费观看| 99热这里只有精| 免费视频91| 黄色av网站在线看| 成人做爰视频www网站小优视频| 免费成人蒂法| 美女精品在线观看| 久久久高清一区二区三区| 精品久久久久久久久久国产| 亚洲精品美女在线观看播放| 日本视频久久久| 区一区二区三区中文字幕| 国产精品69页| www成人啪啪18软件| jlzzjlzz亚洲女人18| 日本激情五月| 亚洲图片88| 日韩精品首页| 亚洲人成影院在线观看| 久久99久国产精品黄毛片入口| 黑人另类av| 男操女免费网站| 久草免费在线观看视频| 三级毛片在线| 国产在线激情| 果冻天美麻豆一区二区国产| 99国产精品国产精品毛片| 一本色道亚洲精品aⅴ| 国产精品久久久久久久久久久不卡| 一区二区三区免费看| 久久嫩草捆绑紧缚| 你懂的视频在线观看资源| 99热播精品免费| 99成人在线| 成人欧美一区二区三区黑人麻豆| 亚洲第五色综合网| 日韩美女视频中文字幕| 国产又黄又猛的视频| 丰满人妻一区二区| 欧美h版电影| 欧美日韩一区二区三区在线电影| 免费成人av在线| 亚洲国产精品久久人人爱| 欧美亚洲成人免费| 亚洲怡红院在线| 色欲av伊人久久大香线蕉影院| 在线影院av| 台湾天天综合人成在线| 国产精品毛片在线| 欧美日韩二区三区| 韩国一区二区三区美女美女秀| 四虎国产精品成人免费入口| 成人午夜福利视频| 91蜜桃在线视频| 999视频精品| 国产日韩欧美高清| 亚洲国产三级网| 亚洲欧洲日韩精品| 中文天堂资源在线| 999sesese| 免费av一区| 香港成人在线视频| 青草热久免费精品视频| 黄色动漫网站入口| 国产午夜福利精品| 任你操在线观看| 香蕉成人app| 国产精品盗摄一区二区三区| 国产一区二区三区在线| 蜜桃麻豆91| 老鸭窝一区二区| 男人用机机桶女人| 黄色av电影在线播放| 日韩专区中文字幕一区二区| 在线免费观看日本一区| 日韩av不卡电影| 99久久免费看精品国产一区 | 亚洲午夜18毛片在线看| 国产视频精选在线| 最新国产一区| 国产精品久久影院| 精品国产欧美一区二区五十路| 欧日韩一区二区三区| 成人毛片18女人毛片| 男女无套免费网站| 四虎在线精品| 亚洲男人天堂一区| 成人黄色片视频网站| 亚洲成a人片在线www| 免费观看黄色av| 日韩成人av电影| 国产精品美女久久久久av爽李琼| 国产精品视频午夜| 三级黄色片在线观看| 小明精品国产一区二区三区| 免费看日本一区二区| 日韩欧美中文第一页| 国产欧美 在线欧美| 国产调教打屁股xxxx网站| 69av自拍偷拍| 僵尸再翻生在线观看免费国语| 日韩黄色小视频| 深夜福利国产精品| 91九色丨porny丨国产jk| www.毛片.com| 污网站在线免费看| 免费高清视频精品| 欧美成人免费全部| 黑鬼大战白妞高潮喷白浆| 中文字幕av免费| 欧美爱爱网站| 欧美一区二区日韩一区二区| 午夜精品福利一区二区| 国产极品999| 一区在线不卡| 国产欧美日韩精品在线| 97碰在线观看| 国产精品熟妇一区二区三区四区| 2020天天干夜夜爽| 亚洲乱亚洲高清| 精品国产区一区| 中文字幕av日韩精品| 无码精品人妻一区二区三区影院| 乱馆动漫1~6集在线观看| 国产成人啪午夜精品网站男同| 国产一区二区精品丝袜| 99免费观看视频| 色影视在线视频资源站| 欧美国产激情| 欧美另类高清zo欧美| 欧美一区二区三区精美影视| www.成人免费视频| 成人一区福利| 中文字幕 久热精品 视频在线 | 国产成人高潮免费观看精品| 国产网站无遮挡| 亚洲精品97久久久babes| 国产麻豆精品一区二区| 国产欧亚日韩视频| 欧美另类69xxxx| 亚洲成a人v欧美综合天堂麻豆| 久久精品无码一区二区三区| 欧美激情一区二区三区在线视频 | 精品国产免费无码久久久| 中文字幕日韩在线| 午夜精品一区二区三区三上悠亚 | 亚洲福利精品视频| 美女胸又www又黄的网站| 国产一区二区三区日韩| 91在线观看免费网站| 日韩成人毛片视频| 黄色美女网站在线观看| 久久人人超碰精品| 国产精品网站入口| 中文字幕有码视频| 成人影音在线| 国产欧美一区在线| 欧美在线播放一区二区| 人xxxx性xxxxx欧美| 日韩av午夜| 精品在线欧美视频| 日本黄色的视频| 亚洲成人天堂| 国产精品人妖ts系列视频| 精品一区二区成人免费视频| 区日韩二区欧美三区 | 日韩一区二区三区在线观看视频| 国产一区99| 欧美一级淫片007| 欧美一级片在线免费观看| av在线免费播放网站| 成人午夜伦理影院| 国产成人精品免费视频| 在线中文字幕网站| 国产精品无码久久久久| 亚洲自拍偷拍综合| 一本久久a久久精品vr综合| 精品麻豆国产| 午夜激情久久| 一区二区三区亚洲| 久久久久亚洲av无码专区桃色| 性爱视频在线播放| 91精品91久久久中77777| 天堂а√在线中文在线| 欧美精品另类| 亚洲第一偷拍| 日韩少妇与小伙激情| 国产在线视频在线观看| 97青娱国产盛宴精品视频| 精品国产一区二区亚洲人成毛片 | 成人免费视频在线观看| 日韩中文字幕三区| 性网站在线播放| 夜夜精品视频一区二区| 日韩高清第一页| 成年人网站在线| 国产精品国产自产拍在线| 黄色网页免费在线观看| 天天撸夜夜操| 国产片一区二区| 国产二区视频在线播放| 国产在线黄色| 欧美视频不卡中文| 中文字幕免费高清视频| 国产超碰精品| 亚洲网在线观看| 日韩欧美在线观看免费| 国产精品777777在线播放| 欧美大肚乱孕交hd孕妇| 国产麻豆xxxvideo实拍| 国产 日韩 欧美一区| 欧美色综合影院| 国产成人一区二区三区别| 性生活视频网站| k8久久久一区二区三区| 欧美二区在线| av成人网在线| 亚洲人吸女人奶水| 久久精品一二三四| 都市激情综合| 亚洲欧美日韩在线高清直播| 日本免费网站视频| 成人免费在线电影网| 久久久人成影片一区二区三区观看 | 亚洲精品18在线观看| 欧美日韩精品一区二区视频| 国产精品69久久| 国产一级免费| 久久新电视剧免费观看| 亚洲无吗一区二区三区| 日本ー区在线视频| 中文字幕欧美一| 国产精欧美一区二区三区白种人| 国模吧精品人体gogo| 在线免费亚洲电影| 91麻豆精品成人一区二区| 亚洲三级网页| 亚洲精品欧美一区二区三区| 中文字幕av高清| 国产精品99精品久久免费| 国产午夜福利100集发布| 中文字幕视频在线观看| 一本大道久久a久久综合婷婷 | abab456成人免费网址| 日韩欧美成人午夜| 国产成年人免费视频| 麻豆成人入口| 国产精品福利在线| 在线看片网址| 亚洲色图在线播放| 毛片网站免费观看| 国产成人福利夜色影视| 国内自拍欧美激情| 国产免费1000拍拍拍| 国产精品美女久久久久久| 亚洲av成人片无码| 久久久久观看| 91久久精品日日躁夜夜躁国产| 18激情网站| 国产欧美日韩三级| 污网站免费观看| 欧洲精品99毛片免费高清观看| 2021国产精品视频| 日本免费黄色网| 黄色一区二区在线| 国产网站在线看| 噜噜噜在线观看免费视频日韩| youjizz.com在线观看| av免费不卡国产观看| 欧美精品成人在线| 少妇人妻精品一区二区三区| 成人国产电影网| 欧美日韩午夜爽爽| 一个人免费观看视频www在线播放 一个人免费视频www在线观看 | 亚洲日本一区二区三区在线不卡| 91露出在线| 欧美夫妻性生活| 国产精品va无码一区二区三区| 日韩中文欧美在线| 欧美成人免费高清视频| 91成人短视频在线观看| 国产狼人综合免费视频| 在线视频99| 欧美日韩免费在线观看| 亚洲av无码一区二区三区观看| 精品国产精品| 日韩在线第一区| 完全免费av在线播放| 亚洲精品www久久久| 手机在线观看免费av| 中文字幕国产精品一区二区| 欧美人与禽zoz0善交| 欧美精品激情| 小说区图片区图片区另类灬| 成人福利片网站| 色综合久综合久久综合久鬼88| 美女毛片免费看| 亚洲激情av在线| 中文文字幕文字幕高清| 日本在线电影一区二区三区| 91免费高清视频| 天天在线女人的天堂视频| 在线观看欧美日韩| 奇米影视狠888| 91精品国产高清一区二区三区| 亚洲精品视频专区| 亚洲视频一区二区在线观看| 五月天婷婷丁香| 国产传媒日韩欧美成人| 亚洲国产日韩一区无码精品久久久| 国产综合亚洲精品一区二| 日韩高清专区| cao在线视频| 国产欧美日韩亚洲精品| 日本天堂影院在线视频| 久久精品久久精品亚洲人| 亲爱的老师6电影韩剧| 精品久久香蕉国产线看观看gif| 中文字幕久久久久| 国产精品免费观看视频| 精品成人av一区二区在线播放| 成人aa视频在线观看| 中国1级黄色片| 秋霞国产午夜精品免费视频| 国产91对白刺激露脸在线观看| 国产一区二区高清在线| 欧美一级二级三级| 视频在线日韩| 精品一区2区三区| 中文字幕在线免费观看视频| 国产成人免费电影| 成人高清免费在线播放| 久久琪琪电影院| 最全影音av资源中文字幕在线| 久久综合久久美利坚合众国| 天堂在线免费观看| 精品久久久久久久久久久久久久久久久 | 1769免费视频在线观看| 日本精品久久电影| 成人精品一区二区三区免费|