《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于CPLD 的矩陣鍵盤掃描模塊設(shè)計(jì)
基于CPLD 的矩陣鍵盤掃描模塊設(shè)計(jì)
電子市場(chǎng)
摘要: 為了在不增加CPU 工作負(fù)擔(dān)的前提下,實(shí)現(xiàn)標(biāo)準(zhǔn)鍵盤和矩陣鍵盤雙鍵盤同時(shí)工作,提出了一種基于復(fù)雜可編邏輯器件(CPLD)的矩陣鍵盤掃描方案,實(shí)現(xiàn)了在矩陣鍵盤狀態(tài)控制下CPLD 自動(dòng)完成鍵盤掃描、編碼、輸出的功能,CPU 通過(guò)定時(shí)器中斷服務(wù)程序定時(shí)查詢矩陣鍵盤狀態(tài),并將按鍵值直接送入鍵盤緩沖區(qū),供其他程序使用。
關(guān)鍵詞: CPLD 鍵盤掃描
Abstract:
Key words :

     摘要: 為了在不增加CPU 工作負(fù)擔(dān)的前提下,實(shí)現(xiàn)標(biāo)準(zhǔn)鍵盤和矩陣鍵盤雙鍵盤同時(shí)工作,提出了一種基于復(fù)雜可編邏輯器件(CPLD)的矩陣鍵盤掃描方案,實(shí)現(xiàn)了在矩陣鍵盤狀態(tài)控制下CPLD 自動(dòng)完成鍵盤掃描、編碼、輸出的功能,CPU 通過(guò)定時(shí)器中斷服務(wù)程序定時(shí)查詢矩陣鍵盤狀態(tài),并將按鍵值直接送入鍵盤緩沖區(qū),供其他程序使用。

  給出了CPLD 部分模塊的VHDL 語(yǔ)言實(shí)現(xiàn)和仿真波形。在矩陣鍵盤的掃描、編碼、輸出完全不需CPU 控制的前提下,實(shí)現(xiàn)標(biāo)準(zhǔn)鍵盤和矩陣鍵盤雙鍵盤同時(shí)使用。

  在基于PC104 的便攜式野外測(cè)試設(shè)備的設(shè)計(jì)中,鍵盤是常用的輸入設(shè)備。對(duì)于便攜式設(shè)備野外工作時(shí),一般使用小型(4×4)矩陣鍵盤就能滿足設(shè)備的信息輸入需要; 室內(nèi)調(diào)試時(shí), 使用標(biāo)準(zhǔn)PS2 鍵盤更方便、靈活。一般的做法是保留PC104 的鍵盤接口用于接標(biāo)準(zhǔn)鍵盤, 利用擴(kuò)展I/O接口完成小矩陣鍵盤的掃描和輸入。這樣做雖然可以實(shí)現(xiàn)設(shè)備雙鍵盤同時(shí)工作的功能, 卻需耗費(fèi)大量的CPU 處理時(shí)間掃描矩陣鍵盤, 造成CPU 處理其他信息的能力下降。而本文設(shè)計(jì)的基于CPLD 的矩陣鍵盤掃描模塊能夠很好地解決上述問(wèn)題。

  1 矩陣鍵盤掃描原理

  圖1 給出了4×4 矩陣鍵盤的電路圖, 在圖1 中KX[3..0]為掃描碼輸入,KY[3..0]為掃描碼輸出。鍵盤掃描開(kāi)始時(shí),首先置KX[3..0]=“0000”;鍵盤掃描碼寄存器和鍵盤掃描碼緩存器Kreg[15..0]和Kscan[15..0]置成“1111111111111111” ( 全1為沒(méi)有鍵按下,有鍵按下時(shí)至少有一位為0),一旦有鍵按下,KY[3..0]輸出不全為“0”的掃描碼觸發(fā)鍵盤掃描功能開(kāi)始鍵盤掃描,掃描開(kāi)始后,依次將KX3、KX2、KX1、KX0 置“0”,分別將對(duì)應(yīng)的4 組KY[3..0]輸入值保存于Kscan[15..12]、Kscan[11..8] 、Kscan[7..4] 、Kscan[3..0]中,而后比較Kscan 和Kreg 的大小,如果Kscan 小于Kreg,將Kscan 保存于Kreg 中,重復(fù)上述掃描過(guò)程直到Kscan[15..0]各位輸出全為“1”時(shí),說(shuō)明按下的鍵全部抬起,Kreg[15..0]中的每一個(gè)為“0”的位對(duì)應(yīng)一個(gè)按下的鍵,保留掃描過(guò)程中的Kreg 最小值就可以處理組合鍵。

  根據(jù)記錄的Kreg 值可以判斷是哪個(gè)或哪幾個(gè)鍵按下, 據(jù)此編碼按鍵值后輸出。將KX[3..0]置為“0000”,等待下一次按鍵發(fā)生。

4×4 矩陣鍵盤電路圖

圖1 4×4 矩陣鍵盤電路圖。

  2 基于CPLD 的4×4 矩陣鍵盤掃描模塊設(shè)計(jì)

  根據(jù)上述掃描原理和工作流程,如果以PC104 CPU 實(shí)現(xiàn)上述矩陣鍵盤的掃描過(guò)程, 那么在有鍵按下后,CPU 必須不停地掃描矩陣鍵盤電路,在此期間不能進(jìn)行其他工作,降低了CPU 工作效率,且CPU 連續(xù)高速運(yùn)轉(zhuǎn)增加系統(tǒng)功耗。

  本文的目的就是在不需要CPU 參與的條件下以CPLD完成矩陣鍵盤按鍵事件觸發(fā)、按鍵的掃描定位以及按鍵的編碼和鍵值輸出工作,CPU 只需要定時(shí)查詢有無(wú)鍵按下并讀走按下鍵的按鍵值送入鍵盤緩沖區(qū)。這樣就使CPU 從繁重的矩陣鍵盤掃描工作中解脫出來(lái)。根據(jù)上述鍵盤掃描工作原理,基于CPLD 的4×4 矩陣鍵盤掃描模塊功能框圖如圖2 所示。


4×4 矩陣鍵盤掃描模塊CPLD 實(shí)現(xiàn)框圖

圖2 4×4 矩陣鍵盤掃描模塊CPLD 實(shí)現(xiàn)框圖。

  圖中, 模塊KeyTri 在時(shí)鐘信號(hào)CLK 的控制下實(shí)現(xiàn)按鍵事件觸發(fā)和矩陣鍵盤掃描時(shí)序產(chǎn)生功能; 模塊keycode 在時(shí)鐘信號(hào)CLK 和掃描時(shí)序碼SCode 的控制下完成輸出鍵盤掃描碼KX,同時(shí)記錄16 位鍵盤掃描數(shù)據(jù)等工作,并在所有鍵抬起后對(duì)按下的鍵編碼完成輸出功能;模塊nread 實(shí)現(xiàn)按鍵碼的暫存、按鍵狀態(tài)的置位和清除以及矩陣鍵盤的使能;模塊PCPORT 完成矩陣鍵盤與CPU 的接口; 模塊OSC 與CreatClock 產(chǎn)生控制鍵盤掃描模塊工作的3 KHz 時(shí)鐘信號(hào)CLK。

  2.1 鍵盤掃描觸發(fā)模塊(KeyTri)的功能與時(shí)序仿真

  鍵盤掃描過(guò)程中,掃描信號(hào)不停變化,以判斷鍵盤按鍵的按下和抬起。高速變化的鍵盤掃描信號(hào)不僅使系統(tǒng)功耗增加,而且還會(huì)對(duì)其他敏感電路造成干擾。因此在本設(shè)計(jì)中將鍵盤掃描模式設(shè)計(jì)成鍵按下觸發(fā)掃描方式,只有當(dāng)鍵盤有鍵按下后,才觸發(fā)鍵盤掃描電路產(chǎn)生掃描鍵盤時(shí)序,所有鍵都放開(kāi)后,停止對(duì)鍵盤的掃描,使電路處于相對(duì)靜止?fàn)顟B(tài),以減少對(duì)其他電路的干擾。

  鍵盤按下時(shí)會(huì)有抖動(dòng),在按鍵抖動(dòng)時(shí)掃描鍵盤,可能會(huì)使鍵盤掃描電路產(chǎn)生誤判,因此在鍵盤按下與開(kāi)始掃描之間應(yīng)加入一段延時(shí),延時(shí)結(jié)束后按鍵仍處于按下?tīng)顟B(tài),才允許開(kāi)始鍵盤掃描,這樣做可以最大限度地避免掃描電路的誤判和漏判。

  鍵盤掃描觸發(fā)模塊實(shí)現(xiàn)的功能為: 在KX=“0000” 的狀態(tài)下,如果有任意一個(gè)鍵被按下,KY 必然不全為‘1’,觸發(fā)延時(shí)功能開(kāi)始延時(shí),延時(shí)結(jié)束后,如果KY 仍不全為‘1’,說(shuō)明該按鍵事件有效, 啟動(dòng)掃描時(shí)序產(chǎn)生1H~BH 的4 位循環(huán)掃描時(shí)序碼,控制后續(xù)的鍵盤掃描電路對(duì)鍵盤掃描,當(dāng)ReSet 變低時(shí),立即將掃描時(shí)序碼置為0H,停止本次鍵盤掃描并等待下一次鍵盤按下事件到來(lái)。鍵盤掃描觸發(fā)模塊的VHDL 語(yǔ)言實(shí)現(xiàn)如下:




  鍵盤掃描觸發(fā)模塊的時(shí)序仿真如圖3 所示。

鍵盤掃描觸發(fā)模塊的時(shí)序仿真

圖3 鍵盤掃描觸發(fā)模塊的時(shí)序仿真。

  在圖3 中,①和②之間的時(shí)間為去鍵盤抖動(dòng)延時(shí),為了方便仿真,此處把延時(shí)時(shí)間設(shè)定為4 個(gè)周期,實(shí)際使用時(shí),應(yīng)保持在20~30 ms 左右。

  2.2 鍵盤掃描與編碼輸出模塊(keycode)的功能與時(shí)序仿真

  所謂鍵盤掃描,就是在鍵盤的KX 端依次送入掃描碼,以便定位被按下的鍵。鍵盤編碼是對(duì)鍵盤掃描值譯碼得到按下鍵的按鍵值。

  該模塊完成的功能為: 在掃描時(shí)序控制碼SCode [3..0]和CLK 的下降沿控制下依次輸出4 組掃描碼“0111”、“1011”、“1101”、“1110”掃描整個(gè)鍵盤,同時(shí)記錄鍵盤的掃描值,將記錄的4 組掃描值組合成一組16 位的鍵盤掃描值Kscan [15..0],如果Kscan[15..0] 小于Kreg[15..0], 將Kscan[15..0] 保存于Kreg[15..0]中,當(dāng)所有鍵放開(kāi)后,對(duì)Kreg[15..0]譯碼產(chǎn)生按鍵編碼并輸出。有一個(gè)鍵按下,16 位的鍵盤掃描值中有且只有一位為0,多鍵組合按下時(shí),鍵盤掃描值中就會(huì)有多個(gè)位為‘0’,因此在鍵盤掃描過(guò)程中,記錄最小的鍵盤掃描值,使得掃描模塊不僅能夠處理單鍵,而且可以處理多鍵組合。具體工作過(guò)程說(shuō)明如下:

  當(dāng)SCode [3..0]=0 時(shí),KX=“0000”, 置16 位鍵盤掃描值Kscan[15..0]和Kreg[15..0]為全‘1’,此時(shí)無(wú)論哪一個(gè)鍵按下,都可使KY 不全為‘1’,從而觸發(fā)掃描模塊工作;當(dāng)SCode[3..0]=1 或2 時(shí),KX=“0111”,此時(shí)圖1 中K12~K15 有按下的鍵時(shí), KY 對(duì)應(yīng)位為‘0’,其他位為‘1’,記錄KY到鍵盤掃描碼寄存器的Kreg[15..12];當(dāng)SCode[3..0]=3 或4 時(shí),KX=“1011”,此時(shí)圖1 中K08~K11 有按下的鍵時(shí), KY 對(duì)應(yīng)位為‘0’,其他位為‘1’,記錄KY到鍵盤掃描碼寄存器的Kreg[11..8];當(dāng)SCode[3..0]=5 或6 時(shí),KX=“1101”,此時(shí)圖1 中K04~K07 有按下的鍵時(shí), KY 對(duì)應(yīng)位為‘0’,其他位為‘1’,記錄KY到鍵盤掃描碼寄存器的Kreg[7..4];當(dāng)SCode[3..0]=7 或8 時(shí),KX=“1110”,此時(shí)圖1 中K00~K03 有按下的鍵時(shí), KY 對(duì)應(yīng)位為‘0’,其他位為‘1’,記錄KY到鍵盤掃描碼寄存器的Kreg[3..0];當(dāng)SCode[3..0]=9 和10 時(shí),如果Kscan[15..0]各位不全為“1” 且Kscan[15..0]< Kreg[15..0], 將Kscan[15..0] 保存到Kreg[15..0];否則對(duì)Kreg[15..0]譯碼產(chǎn)生按鍵編碼并輸出;當(dāng)SCode[3..0]=11 且記錄Kscan[15..0]各位為全“1”時(shí),產(chǎn)生鍵盤復(fù)位信號(hào)ReSet,結(jié)束本次鍵盤掃描。

  鍵盤掃描與編碼輸出模塊的核心模塊VHDL 語(yǔ)言實(shí)現(xiàn)如下:




  鍵盤掃描與編碼輸出模塊的時(shí)序仿真圖如圖4 所示。

鍵盤掃描與編碼模塊的時(shí)序仿真

圖4 鍵盤掃描與編碼模塊的時(shí)序仿真。

  2.3 鍵盤編碼輸出模塊(nread)的功能與時(shí)序仿真

  在該模塊中,KeyData 的最高位KeyData(7)為鍵盤緩存狀態(tài)指示位,當(dāng)KeyData(7)=‘0’時(shí),表示鍵盤緩存中沒(méi)有按鍵碼;當(dāng)KeyData(7)=‘1’時(shí),表示鍵盤緩存中有按鍵碼等待CPU 讀取。KeyData[6..0]為按下鍵的編碼。ReSet 的下降沿用于將KeyVal[6..0]存入KeyData[6..0],同時(shí)將KeyData(7)置成‘1’。enKeyOut 用于使能矩陣鍵盤輸出,當(dāng)enKeyOut=‘1’時(shí),允許矩陣鍵盤輸出按鍵碼;當(dāng)enKeyOut=‘0’時(shí),禁止矩陣鍵盤輸出按鍵碼。ClrKey 用于清除鍵盤緩存狀態(tài)指示位KeyData(7),當(dāng)ClrKey=‘0’時(shí),置KeyData(7)為‘0’。

  鍵盤編碼輸出模塊的VHDL 語(yǔ)言實(shí)現(xiàn)如下:


  鍵盤編碼輸出模塊的時(shí)序仿真圖如圖5 所示。

鍵盤編碼輸出模塊的時(shí)序仿真

圖5 鍵盤編碼輸出模塊的時(shí)序仿真。

  2.4 接口模塊(PCPORT)的功能與時(shí)序仿真

  該模塊用于實(shí)現(xiàn)CPU 讀入鍵盤碼以及矩陣鍵盤控制信號(hào)的輸出。開(kāi)始時(shí),CPU 首先應(yīng)通過(guò)該模塊送出OSCEn=‘1’ 信號(hào), 使振蕩器模塊(OSC) 和時(shí)鐘產(chǎn)生模塊(CreatClock)開(kāi)始工作,產(chǎn)生驅(qū)動(dòng)掃描模塊工作的時(shí)鐘信號(hào)F3kHz;接下來(lái)送出鍵盤禁止信號(hào)enKeyOut=0;禁止矩陣鍵盤在穩(wěn)定工作前隨機(jī)輸出按鍵值; 其次送出清除鍵盤緩存狀態(tài)指示位的ClrKey 信號(hào); 最后再送出鍵盤使能信號(hào)enKeyOut=‘1’,開(kāi)始模塊掃描鍵盤工作。接口模塊的時(shí)序仿真圖如圖6 所示。

接口模塊的時(shí)序仿真

圖6 接口模塊的時(shí)序仿真。

  2.5 其他模塊的功能

  振蕩器模塊(OSC) 為利用Altera 公司的IP 核產(chǎn)生的MAXII 系列CPLD 內(nèi)帶的振蕩器, 用于在使能信號(hào)的控制下產(chǎn)生3.3 MHz 的時(shí)鐘輸出。

  時(shí)鐘產(chǎn)生模塊(CreatClock),用于將3.3 MHz 的時(shí)鐘分頻產(chǎn)生3 KHz 的鍵盤掃描時(shí)鐘,驅(qū)動(dòng)整個(gè)鍵盤掃描模塊工作。

  3 控制軟件的設(shè)計(jì)

  本文軟件設(shè)計(jì)的基本思想是:CPU 利用定時(shí)中斷查詢矩陣鍵盤狀態(tài)并讀入矩陣鍵盤的按鍵碼,如果按鍵碼為需要立即響應(yīng)的特殊功能鍵(如熱啟動(dòng)鍵),即在中斷服務(wù)程序中作出處理,否則直接送入與標(biāo)準(zhǔn)鍵盤共用的鍵盤緩沖區(qū),在鍵盤緩沖區(qū)與標(biāo)準(zhǔn)鍵盤送來(lái)的按鍵碼一起排隊(duì)等待CPU 響應(yīng)處理,從而實(shí)現(xiàn)雙鍵盤同時(shí)工作。在向鍵盤緩沖區(qū)寫入按鍵值時(shí),必須使用DOS 軟中斷,否則會(huì)由于中斷優(yōu)先級(jí)的原因而使新寫入的按鍵碼得不到響應(yīng)。

  矩陣鍵盤的控制軟件采用C 語(yǔ)言編制,利用PC104 的定時(shí)器中斷定時(shí)查詢矩陣鍵盤, 如果有鍵值, 將其存入PC104 的鍵盤緩沖區(qū),等待PC104 使用。控制程序的源碼如下:


  4 測(cè)試結(jié)果

  本文所述的鍵盤掃描模塊已經(jīng)在多功能電法接收機(jī)中使用,在使用過(guò)程中對(duì)矩陣鍵盤的響應(yīng)時(shí)間、準(zhǔn)確度、CPU 處理時(shí)間占用、以及雙鍵盤同時(shí)工作性能等指標(biāo)進(jìn)行了測(cè)試分析,結(jié)果如下:

  1)矩陣鍵盤響應(yīng)時(shí)間和準(zhǔn)確度測(cè)試,理論上計(jì)算矩陣鍵盤的最短響應(yīng)時(shí)間為T=t1+t2+t3+t4=55.9 ms(其中,t1為防抖動(dòng)延時(shí)時(shí)間30 ms; t2鍵盤掃描最短用時(shí), 共掃描2 次用22 個(gè)F3 kHz 時(shí)鐘周期6.6 ms; t3為鍵盤值暫存時(shí)間,3 個(gè)F3kHz 時(shí)鐘周期1 ms; t4為查詢鍵盤中斷間隔18.3 ms), 考慮到操作鍵盤的速度, 測(cè)試方法為全部16 個(gè)鍵以3 次/s 的速度連續(xù)按6 次,間隔5 s 換一個(gè)鍵,將鍵值輸出到顯示器觀察輸入情況,測(cè)試結(jié)果為:總按鍵數(shù):96;顯示按鍵數(shù):96;漏判按鍵數(shù):0;錯(cuò)判按鍵數(shù):0;準(zhǔn)確率:100%。

  2)矩陣鍵盤占用CPU 時(shí)間分析,通過(guò)對(duì)矩陣鍵盤按鍵值的讀入程序分析可知, 當(dāng)允許矩陣鍵盤輸出且有鍵按下時(shí),每次中斷服務(wù)程序需要額外執(zhí)行8 條語(yǔ)句, 大約用時(shí)4 μs;當(dāng)允許矩陣鍵盤輸出且沒(méi)有鍵按下時(shí),每次中斷服務(wù)程序需要額外執(zhí)行3 條語(yǔ)句,大約用時(shí)1.5 μs;與CPU 完成矩陣鍵盤掃描工作(假設(shè)從鍵按下到釋放一般用時(shí)300 ms)相比,一次按鍵讀入CPU 占用時(shí)間節(jié)省99.998%。

  3)雙鍵盤同時(shí)工作測(cè)試,測(cè)試方法將矩陣鍵盤和標(biāo)準(zhǔn)鍵盤同時(shí)接入系統(tǒng), 按1 次/s 的速度交替按兩鍵盤的按鍵100個(gè),在顯示器上觀察按鍵輸出情況,得出雙鍵盤工作可靠性數(shù)據(jù)如下: 總按鍵數(shù):200;顯示按鍵數(shù)200;漏判按鍵數(shù):0;錯(cuò)判按鍵數(shù):0;準(zhǔn)確率:100%。因此,該模塊可以實(shí)現(xiàn)雙鍵盤同時(shí)工作。

  5 結(jié)論

  該模塊經(jīng)過(guò)測(cè)試和使用,得出如下結(jié)論:1)基于CPLD 的矩陣鍵盤掃描模塊占用CPU 時(shí)間很少;2)可以實(shí)現(xiàn)雙鍵盤同時(shí)工作;3)誤判、漏判率低;4)反應(yīng)速度快,能夠處理組合鍵。

  測(cè)試結(jié)果表明,該方案滿足設(shè)計(jì)要求。該模塊以按鍵的放開(kāi)控制按鍵編碼輸出,因此在鍵按下一段時(shí)間后到釋放按鍵之前不能按一定的間隔連續(xù)輸出按下鍵的鍵值,矩陣鍵盤沒(méi)有連續(xù)按鍵輸出功能。鍵盤碼的讀入采用PC104 定時(shí)器中斷(18.3 ms 一次)定時(shí)查詢的方式實(shí)現(xiàn),在大多數(shù)情況下都不會(huì)查詢到按鍵事件發(fā)生,也就是說(shuō)矩陣鍵盤占用的比較少的CPU 處理時(shí)間中絕大部分被白白浪費(fèi)。如果能夠修改接口模塊實(shí)現(xiàn)更靈活的按鍵外中斷觸發(fā)方式讀入鍵值,還可以節(jié)省更多的時(shí)間。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美一区二区三区电影在线观看| 国产欧美日韩另类一区| 亚洲天堂av在线免费| 91久久国产综合久久| 亚洲制服欧美中文字幕中文字幕| 国产精品一区二区久久| 欧美精品日韩综合在线| 欧美成人一品| 欧美成人午夜剧场免费观看| 久久婷婷色综合| 久久婷婷人人澡人人喊人人爽| 一本一道久久综合狠狠老精东影业 | 亚洲欧美在线视频观看| 正在播放日韩| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产综合在线视频| 国产亚洲在线| 精品av久久久久电影| 极品少妇一区二区三区| 激情国产一区| 樱桃视频在线观看一区| 在线电影国产精品| 91久久在线播放| 一区二区久久久久久| 一区二区日韩伦理片| 亚洲一区亚洲| 欧美在线免费看| 亚洲国产精品一区二区www| 亚洲精品国产精品乱码不99按摩| 亚洲欧美日韩精品久久久| 亚洲图片自拍偷拍| 小辣椒精品导航| 亚洲国产一区二区三区青草影视| 亚洲一区尤物| 午夜精品成人在线| 亚洲国产精品久久久久婷婷老年| 亚洲在线观看视频网站| 亚洲欧美色婷婷| 亚洲高清在线播放| av成人免费观看| 欧美专区亚洲专区| 欧美电影免费观看| 欧美午夜精品| 国产一区二区三区久久| 亚洲国产高潮在线观看| 一本色道久久综合亚洲精品不 | 午夜国产精品影院在线观看| 午夜国产精品影院在线观看| 亚洲第一级黄色片| 一区二区av在线| 欧美一级电影久久| 欧美成人精品在线观看| 国产精品ⅴa在线观看h| 国产综合18久久久久久| 亚洲精选视频在线| 欧美一级二级三级蜜桃| 99精品黄色片免费大全| 欧美亚洲一区二区在线| 毛片基地黄久久久久久天堂| 欧美性开放视频| 永久免费毛片在线播放不卡| 99天天综合性| 亚洲高清中文字幕| 在线亚洲一区| 久久亚洲国产成人| 国产精品久久久对白| 有码中文亚洲精品| 亚洲一区二区在线观看视频| 亚洲精品一区二| 性欧美8khd高清极品| 欧美丰满高潮xxxx喷水动漫| 国产久一道中文一区| 91久久综合亚洲鲁鲁五月天| 午夜欧美电影在线观看| 亚洲视频在线播放| 裸体素人女欧美日韩| 国产精品入口66mio| 亚洲日本va在线观看| 久久福利一区| 欧美一级艳片视频免费观看| 欧美日韩成人综合在线一区二区| 欧美国产一区在线| 国产亚洲一区二区三区在线观看| 国产真实乱子伦精品视频| 日韩五码在线| 亚洲精品影院| 免费成人在线视频网站| 国产午夜精品全部视频播放| 在线视频亚洲一区| 亚洲靠逼com| 麻豆精品视频在线| 国产在线一区二区三区四区 | 最新国产の精品合集bt伙计| 性色av一区二区三区在线观看| 欧美一区二区三区精品| 欧美高清hd18日本| 影音先锋中文字幕一区二区| 午夜精品视频在线观看一区二区| 亚洲国产精品久久人人爱蜜臀| 日韩小视频在线观看专区| 久久夜色精品亚洲噜噜国产mv| 欧美激情一区二区三级高清视频| 欧美日韩一区二区高清| 影音先锋亚洲视频| 久久国内精品视频| 欧美一区国产二区| 国产欧美短视频| 亚洲尤物视频在线| 亚洲制服少妇| 国产精品大全| 在线一区欧美| 亚洲一区亚洲| 国产精品av久久久久久麻豆网| 国内精品久久国产| 欧美与黑人午夜性猛交久久久| 日韩一区二区免费看| 免费观看久久久4p| 在线观看一区二区视频| 亚洲国产精品久久久久婷婷884 | 欧美日本一区二区高清播放视频| 国产精品欧美风情| 亚洲性夜色噜噜噜7777| 亚洲综合成人婷婷小说| 国产精品久久夜| 午夜精品999| 久久久综合香蕉尹人综合网| 好吊色欧美一区二区三区视频| 亚洲精品乱码久久久久久按摩观 | 久久成年人视频| 国产欧美高清| 欧美亚洲免费高清在线观看| 久久精品毛片| 黄色在线一区| 亚洲精品无人区| 欧美三级第一页| 亚洲在线观看| 久久精品国产清高在天天线 | 午夜精品亚洲| 久久久久久网| 在线观看亚洲专区| 一区二区免费在线观看| 欧美日韩综合在线| 亚洲专区欧美专区| 久久男女视频| 亚洲国产精品专区久久| 在线亚洲一区| 国产欧美视频一区二区三区| 久久精品99| 欧美日韩国产片| 亚洲专区一二三| 狂野欧美一区| 亚洲精品免费看| 亚洲欧美综合网| 黄色亚洲网站| 在线视频一区观看| 国产欧美欧洲在线观看| 亚洲夫妻自拍| 欧美三级韩国三级日本三斤| 亚洲在线视频一区| 久久综合九色| 一本久久精品一区二区| 久久九九免费| 亚洲精品久久久久久一区二区| 亚洲电影免费在线| 欧美精品一区三区在线观看| 亚洲图片欧洲图片av| 久久久之久亚州精品露出| 亚洲欧洲精品一区二区三区| 午夜激情一区| 在线日韩日本国产亚洲| 亚洲午夜激情在线| 国产在线精品二区| 国产精品99久久久久久有的能看| 欧美激情精品久久久久久久变态| 尤物视频一区二区| 亚洲少妇最新在线视频| 国产欧美日韩综合| 99re热精品| 国外精品视频| 亚洲欧美国内爽妇网| 在线日韩av片| 欧美专区在线观看| 亚洲六月丁香色婷婷综合久久| 99综合电影在线视频| 国产精品一页| 一本色道久久综合精品竹菊| 国产女主播视频一区二区| 亚洲免费精品| 国产午夜精品麻豆| 亚洲一区区二区| 在线看日韩欧美| 欧美亚洲一区二区三区| 亚洲人成啪啪网站| 久久全球大尺度高清视频| 在线一区二区三区四区五区| 免费欧美网站| 久久成人亚洲| 国产精品亚发布| 亚洲视频axxx| 亚洲国产精品嫩草影院|