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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

LCD1602的單片機驅動詳解

作者:佚名   來源:本站原創   點擊數:  更新時間:2014年09月20日   【字體:

一.接口

 

LCD1602是很多單片機愛好者較早接觸的字符型液晶顯示器,它的主控芯片是HD44780或者其它兼容芯片。剛開始接觸它的大多是單片機的初學者。由于對它的不了解,不能隨心所欲地對它進行驅動。經過一段時間的學習,我對它的驅動有了一點點心得,今天把它記錄在這里,以備以后查閱。與此相仿的是LCD12864液晶顯示器,它是一種圖形點陣顯示器,能顯示的內容比LCD1602要豐富得多,除了普通字符外,還可以顯示點陣圖案,帶有漢字庫的還可以顯示漢字,它的并行驅動方式與LCD1602相差無幾,所以,在這里花點時間是值得的。

一般來說,LCD1602有16條引腳,據說還有14條引腳的,與16腳的相比缺少了背光電源A(15腳)和地線K(16腳)。我手里這塊LCD1602的型號是HJ1602A,是繪晶科技公司的產品,它有16條引腳。如圖1所示:



圖1

再來一張它的背面的,如圖2所示:



圖2

它的16條引腳定義如下:

引腳號

符號

引腳說明

引腳號

符號

引腳說明

1

VSS

電源地

9

D2

數據端口

2

VDD

電源正極

10

D3

數據端口

3

VO

偏壓信號

11

D4

數據端口

4

RS

命令/數據

12

D5

數據端口

5

RW

讀/寫

13

D6

數據端口

6

E

使能

14

D7

數據端口

7

D0

數據端口

15

A

背光正極

8

D1

數據端口

16

K

背光負極

對這個表的說明:

1.    VSS接電源地。

2.    VDD接+5V。

3.    VO是液晶顯示的偏壓信號,可接10K的3296精密電位器;蛲瑯幼柚档腞M065/RM063藍白可調電阻。見圖3。


圖3

4.    RS是命令/數據選擇引腳,接單片機的一個I/O,當RS為低電平時,選擇命令;當RS為高電平時,選擇數據。

5.    RW是讀/寫選擇引腳,接單片機的一個I/O,當RW為低電平時,向LCD1602寫入命令或數據;當RW為高電平時,從LCD1602讀取狀態或數據。如果不需要進行讀取操作,可以直接將其接VSS。

6.    E,執行命令的使能引腳,接單片機的一個I/O。

7.    D0—D7,并行數據輸入/輸出引腳,可接單片機的P0—P3任意的8個I/O口。如果接P0口,P0口應該接4.7K—10K的上拉電阻。如果是4線并行驅動,只須接4個I/O口。

8.    A背光正極,可接一個10—47歐的限流電阻到VDD。

9.    K背光負極,接VSS。見圖4所示。


圖4

二.基本操作

LCD1602的基本操作分為四種:

1.    讀狀態:輸入RS=0,RW=1,E=高脈沖。輸出:D0—D7為狀態字。

2.    讀數據:輸入RS=1,RW=1,E=高脈沖。輸出:D0—D7為數據。

3.    寫命令:輸入RS=0,RW=0,E=高脈沖。輸出:無。

4.    寫數據:輸入RS=1,RW=0,E=高脈沖。輸出:無。

讀操作時序圖(如圖5):


 圖5

寫操作時序圖(如圖6):


圖6

時序時間參數(如圖7):


圖7

三.DDRAM、CGROM和CGRAM

DDRAM(Display Data RAM)就是顯示數據RAM,用來寄存待顯示的字符代碼。共80個字節,其地址和屏幕的對應關系如下(如圖8):


 圖8

DDRAM相當于計算機的顯存,我們為了在屏幕上顯示字符,就把字符代碼送入顯存,這樣該字符就可以顯示在屏幕上了。同樣LCD1602共有80個字節的顯存,即DDRAM。但LCD1602的顯示屏幕只有16×2大小,因此,并不是所有寫入DDRAM的字符代碼都能在屏幕上顯示出來,只有寫在上圖所示范圍內的字符才可以顯示出來,寫在范圍外的字符不能顯示出來。這樣,我們在程序中可以利用下面的“光標或顯示移動指令”使字符慢慢移動到可見的顯示范圍內,看到字符的移動效果。

前面說了,為了在液晶屏幕上顯示字符,就把字符代碼送入DDRAM。例如,如果想在屏幕左上角顯示字符‘A’,那么就把字符‘A’的字符代碼41H寫入DDRAM的00H地址處即可。至于怎么寫入,后面會有說明。那么為什么把字符代碼寫入DDRAM,就可以在相應位置顯示這個代碼的字符呢?我們知道,LCD1602是一種字符點陣顯示器,為了顯示一種字符的字形,必須要有這個字符的字模數據,什么叫字符的字模數據,看看下面的這個圖就明白了(如圖9)。


圖9

上圖的左邊就是字符‘A’的字模數據,右邊就是將左邊數據用“○”代表0,用“■”代表1。從而顯示出‘A’這個字形。從下面的圖可以看出,字符‘A’的高4位是0100,低4位是0001,合在一起就是01000001b,即41H。它恰好與該字符的ASCII碼一致,這樣就給了我們很大的方便,我們可以在PC上使用P2=‘A’這樣的語法。編譯后,正好是這個字符的字符代碼。

在LCD1602模塊上固化了字模存儲器,就是CGROM和CGRAM,HD44780內置了192個常用字符的字模,存于字符產生器CGROM(Character Generator ROM)中,另外還有8個允許用戶自定義的字符產生RAM,稱為CGRAM(Character Generator RAM)。下圖(如圖12)說明了CGROM和CGRAM與字符的對應關系。從ROM和RAM的名字我們也可以知道,ROM是早已固化在LCD1602模塊中的,只能讀。欢鳵AM是可讀寫的。也就是說,如果只需要在屏幕上顯示已存在于CGROM中的字符,那么只須在DDRAM中寫入它的字符代碼就可以了;但如果要顯示CGROM中沒有的字符,比如攝氏溫標的符號,那么就只有先在CGRAM中定義,然后再在DDRAM中寫入這個自定義字符的字符代碼即可。和CGROM中固化的字符不同,CGRAM中本身沒有字符,所以要在DDRAM中寫入某個CGROM不存在的字符,必須在CGRAM中先定義后使用。程序退出后CGRAM中定義的字符也不復存在,下次使用時,必須重新定義。


圖10

上面這個圖(如圖10)說明的是5×8點陣和5×10點陣字符的字形和光標的位置。先來說5×8點陣,它有8行5列。那么定義這樣一個字符需要8個字節,每個字節的前3個位沒有被使用。例如,定義攝氏溫標的符號{0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00}。


 圖11

上面這個圖(如圖11)說明的是設置CGRAM地址指令。從這個指令的格式中我們可以看出,它共有aaaaaa這6位,一共可以表示64個地址,即64個字節。一個5×8點陣字符共占用8個字節,那么這64個字節一共可以自定義8個字符。也就是說,上面這個圖的6位地址中的DB5DB4DB3用來表示8個自定義的字符,DB2DB1DB0用來表示每個字符的8個字節。這DB5DB4DB3所表示的8個自定義字符(0--7)就是要寫入DDRAM中的字符代碼。我們知道,在CGRAM中只能定義8個自定義字符,也就是只有0—7這8個字符代碼,但在下面的這個表(如圖12)中一共有16個字符代碼(××××0000b--××××1111b)。實際上,如圖所示,它只能表示8個自定義字符 (××××0000b=××××1000b, ××××0001b=××××1001b……依次類推)。也就是說,寫入DDRAM中的字符代碼0和字符代碼8是同一個自定義字符。 5×10點陣每個字符共占用16個字節的空間,所以CGRAM中只能定義4個這樣的自定義字符。

那么如何在CGRAM中自定義字符呢?在上面的介紹中,我們知道有一個設置CGRAM地址指令,同寫DDRAM指令相似,只須設置好某個自定義字符的字模數據,然后按照上面介紹的方法,設置好CGRAM地址,依次寫入這個字模數據即可。我們在后面的例子中再進行說明。


 圖12

四.LCD1602指令

1.工作方式設置指令(如圖13)


 圖13

×:不關心,也就是說這個位是0或1都可以,一般取0。

DL:設置數據接口位數。

DL=1:8位數據接口(D7—D0)。

DL=0:4位數據接口(D7—D4)。

N=0:一行顯示。

N=1:兩行顯示。

F=0:5×8點陣字符。

F=1:5×10點陣字符。

說明:因為是寫指令字,所以RS和RW都是0。LCD1602只能用并行方式驅動,不能用串行方式驅動。而并行方式又可以選擇8位數據接口或4位數據接口。這里我們選擇8位數據接口(D7—D0)。我們的設置是8位數據接口,兩行顯示,5×8點陣,即0b00111000也就是0x38。(注意:NF是10或11的效果是一樣的,都是兩行5×8點陣。因為它不能以兩行5×10點陣方式進行顯示,換句話說,這里用0x38或0x3c是一樣的)。

2.顯示開關控制指令(如圖14)


圖14

D=1:顯示開,D=0:顯示關。

C=1:光標顯示,C=0:光標不顯示。

B=1:光標閃爍,B=0:光標不閃爍。

說明:這里的設置是顯示開,不顯示光標,光標不閃爍,設置字為0x0c。

3.進入模式設置指令(如圖15、16)


圖15

I/D=1:寫入新數據后光標右移。

I/D=0:寫入新數據后光標左移。

S=1:顯示移動。

S=0:顯示不移動。


 圖16

說明:這里的設置是0x06。

4.光標或顯示移動指令(如圖17、18)


圖17


 圖18

說明:在需要進行整屏移動時,這個指令非常有用,可以實現屏幕的滾動顯示效果。初始化時不使用這個指令。

5.清屏指令(如圖19)


圖19

說明:清除屏幕顯示內容。光標返回屏幕左上角。執行這個指令時需要一定時間。

6.光標歸位指令(如圖20)

 

 圖20

說明:光標返回屏幕左上角,它不改變屏幕顯示內容。

7.設置CGRAM地址指令(如圖21)


圖21

說明:這個指令在上面已經介紹過。用法在后面例子中說明。

8.設置DDRAM地址指令(如圖22)


圖22

說明:這個指令用于設置DDRAM地址。在對DDRAM進行讀寫之前,首先要設置DDRAM地址,然后才能進行讀寫。前面我們說過,DDRAM就是LCD1602的顯示存儲器。我們要在它上面進行顯示,就要把要顯示的字符寫入DDRAM。同樣,我們想知道DDRAM某個地址上有什么字符,也要先設置DDRAM地址,然后將它讀出到單片機。

9.讀忙信號和地址計數器AC(如圖23)


圖23

說明:這個指令用來讀取LCD1602狀態。對于單片機來說,LCD1602屬于慢速設備。當單片機向其發送一個指令后,它將去執行這個指令。這時如果單片機再次發送下一條指令,由于LCD1602速度較慢,前一條指令還未執行完畢,它將不接受這新的指令,導致新的指令丟失。因此這條讀忙指令可以用來判斷LCD1602是否忙,能否接收單片機發來的指令。當BF=1,表示LCD1602正忙,不能接受單片機的指令;當BF=0,表示LCD1602空閑,可以接收單片機的指令。RS=0,表示是指令;RW=1,表示是讀取。這條指令還有一個副產品:即可以得到地址記數器AC的值(address counter)。LCD1602維護了一個地址計數器AC,用來記錄下一次讀寫CGRAM或DDRAM的位置。需要強調的是:這條指令我一次也沒有執行成功。很多網友似乎也是這樣。好在我們有另外的辦法,也就是延時。通過查看每條指令的執行時間,再經過一些試驗,可以確定指令的延時。這樣就可以在上一條指令執行完畢后再執行下一條指令了。

10.寫數據到CGRAM或DDRAM指令(如圖24)


圖24

說明:RS=1,數據;RW=0,寫。指令執行時,要在DB7—DB0上先設置好要寫入的數據,然后執行寫命令。

11.從CGRAM或DDRAM讀數據指令(如圖25)


圖25

說明:RS=1,數據;RW=1,讀。先設置好CGRAM或DDRAM的地址,然后執行讀取命令。數據就被讀入后DB7—DB0。

 

五.實例

下面我們就以一個實例來結束這篇文章。先介紹一下背景:單片機最小系統(擴充了外部RAM 62256)。采用STC89C52RC,晶振22.1184MHZ。以5×8點陣,16×2行,8位數據端口。首先在第一行顯示“I love MCU!”,第二行顯示“LCD1602 Test!”。延時一段時間,清屏。然后在第一行顯示自定義字符:攝氏溫標標志。第二行顯示圓周率(pai)標志。再延時一段時間,清屏。最后在第一行顯示“Welcome to my blog!”,顯示方式是從屏幕右面移入,左面移出。周而復始(如圖26)。


圖26

//File1

 

#ifndef __ZHANGTYPE_H__

#define __ZHANGTYPE_H__

 

#define uint8    unsigned char

#define uint16   unsigned short int

#define uint32   unsigned long int

#define int8     signed char

#define int16    signed short int

#define int32    signed long int

#define uint64   unsigned long long int

#define int64    signed long long int

 

#endif 

//File2

 

#ifndef __FUN_H__

#define __FUN_H__ 

#include "ZhangType.h"

#include  

void Delay(uint16 time); 

#endif 

//File3

 

#include "fun.h" 

void Delay(uint16 time)

{

    while(time--);

} 

//File4

 

#ifndef __1602_H__

#define __1602_H__

 

#include

#include "ZhangType.h"          //變量類型

#include "fun.h"            //常用函數 

 

#define    SETMODE    0x38          //16*2顯示,5*7點陣,8位數據接口

#define DISOPEN   0x0C          //顯示開,不顯示光標,光標不閃爍

#define DISMODE   0x06          //讀寫字符后地址加1,屏顯不移動

#define    SETADDR    0x80          //設置數據地址指針初始值

#define CLEAR 0x01          //清屏,數據指針清零

#define RET       0x02          //回車,數據指針清零 

#define PORT  P2            //I/O口 

 

sbit RS = P1^0;

sbit RW = P1^1;

sbit E = P1^2; 

 

void Init1602(void);        //初始化1602

void Write1602_Com(uint8 com);  //寫命令

void Write1602_Dat(uint8 dat);  //寫數據

void CheckBusy(void);           //檢查忙

void Write1602_One_Dat(uint8 X,uint8 Y,uint8 dat);          //寫一個數據

void Write1602_Str(uint8 addr,uint8 length,uint8 *pbuf);    //寫一個數據串 

#endif//

//File5

 

#include "1602.h" 

 

void Write1602_Com(uint8 com)

{

    E=0;

    RS=0;                    //命令

    Delay(50);               //延時

    RW=0;                    //寫         

    Delay(50);

    PORT=com;                //端口賦值

    Delay(50);

    E=1;                     //高脈沖

    Delay(50);

    E=0;

}

 

void Write1602_Dat(uint8 dat)

{

    E=0;

    RS=1;                    //數據

    Delay(50);               //延時

    RW=0;                    //寫

    Delay(50);

    PORT=dat;                //端口賦值

    Delay(50);

    E=1;                     //高脈沖

    Delay(50);

    E=0;

} 

 

void CheckBusy(void)

{

    uint8 temp;

    RS=0;                    //命令

    RW=1;                    //讀

    E=0;

    while(1)

    {

       PORT=0xFF;           //端口為輸入

       E=1;                 //高脈沖

       temp=PORT;

       E=0;

       if ((temp&0x80)==0)      //檢查BF位是否為0

           break;

    }

} 

 

void Init1602(void)

{

    Write1602_Com(SETMODE);     //模式設置

    Delay(500);

    Write1602_Com(DISOPEN);     //顯示設置

    Delay(500);

    Write1602_Com(DISMODE);     //顯示模式

    Delay(500);

    Write1602_Com(CLEAR);       //清屏

    Delay(500);

} 

 

void Write1602_One_Dat(uint8 x,uint8 y,uint8 dat)

{

    x&=0x0f;

    y&=0x01;

    if(y)

       x|=0x40;

    x|=0x80;

    Write1602_Com(x);

    Write1602_Dat(dat);

} 

 

void Write1602_Str(uint8 addr,uint8 length,uint8 *pbuf)

{

    uint8 i; 

    Write1602_Com(addr);

    for(i=0;i

    {

       Write1602_Dat(pbuf[i]);

    }

} 

//File6

*******************************************************

*名稱:主文件(_main.c)

*功能:測試

*日期:2014/09/09

*******************************************************/

#include "1602.h"

#include "fun.h" 

uint8 code hot[8]={                                  //攝氏溫度字模

0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00

};

uint8 code pi[8]={                       

0x00,0x1f,0x0a,0x0a,0x0a,0x13,0x00,0x00                 //pai

}; 

uint8 code strMCU[]="I love MCU!";

uint8 code strTest[]="LCD1602 Test!";

uint8 code blog[]="Welcome to my blog!"; 

uint8 i; 

void main()

{

    Init1602();                                      //初始化1602 

    //自定義CGRAM

    Write1602_Str(0x40,8,hot);                       //攝氏溫標

    Write1602_Str(0x48,8,pi);                        //pai

 

    Write1602_Str(0x80,strlen(strMCU),strMCU);           //"I love MCU!"

    Write1602_Str(0x80+0x40,strlen(strTest),strTest);    //"LCD1602 Test!"

 

    for(i=0;i<50;i++)                             //延時一段時間

       Delay(10000);

 

    Write1602_Com(CLEAR);                            //指令執行時間較長

    Delay(500);                                      //多加一些延時

    for(i=0;i<16;i++)

       Write1602_Dat(0);

   

    Write1602_Com(0xc0);                          //設置DDRAM地址

    for(i=0;i<16;i++)

       Write1602_Dat(1);

    for(i=0;i<50;i++)                             //延時一段時間

       Delay(10000);

   

    Write1602_Com(CLEAR);                            //指令執行時間較長

    Delay(500);                                      //多加一些延時

    Write1602_Str(0x80+0x10,strlen(blog),blog);          //寫在顯示之外

    while(1)

    {

       Write1602_Com(0x18);                      //左移

       for(i=0;i<20;i++)                         //延時

           Delay(10000);

    }

} 

//############################# THE END #############################

關閉窗口
99国产精品久久久久久久久久久| 久久亚洲精品一区二区| 另类专区欧美蜜桃臀第一页| 国产日本亚洲| 免费在线黄色影片| 亚洲国产成人影院播放| 国产女片a归国片aa| 色综合久久久久无码专区| 444亚洲人体| 粗暴蹂躏中文一区二区三区| 欧美在线免费播放| 国产精品入口久久| 亚洲乱妇老熟女爽到高潮的片| av资源站久久亚洲| 粗暴蹂躏中文一区二区三区| 7777精品伊人久久久大香线蕉经典版下载 | 四色成人av永久网址| 天堂网www在线中文天堂| 国产精品久久久久久久久久久久久久久久久 | 日本不卡视频在线播放| 亚洲欧美精品中文字幕在线| 欧美在线制服丝袜| 国产精品一区三区在线观看| 色综合久久影院| 日本调教视频在线观看| 成人亚洲欧美日韩在线观看| 亚洲AV无码成人片在线观看| 国产无遮挡又黄又爽又色| 中文字幕日韩三级片| www黄色在线| 三年中国中文在线观看免费播放| 成人在线看片| 国产精品白丝jk喷水视频一区| 久久精品这里热有精品| 亚洲精品国产suv| 欧美日韩成人在线一区| 欧美日韩国产在线播放| 亚洲视频狠狠干| 白白色 亚洲乱淫| 极品少妇一区二区三区精品视频| 在线不卡欧美| 91精品电影| 国产精品嫩模av在线| 日韩一二三区在线观看| 久久福利在线| 456亚洲精品成人影院| 中文字幕在线三区| 欧美jizzhd欧美| 青青视频在线观| 久久久久久五月天久久久久久久久| jizzjizzjizzjizz日本老师| www.91| 国产精品被窝福利一区| 在线电影中文字幕| 影音先锋中文字幕影院| 亚洲av无码乱码在线观看性色| 波多野结衣电车痴汉| 亚洲黄色小说图片| 欧美一级视频免费观看| 欧美日韩中文视频| 妺妺窝人体色www在线下载| 欧美高清性xxxx| 全黄一级裸体片| 亚洲欧洲久久久| 男人的天堂av网| 午夜激情福利电影| 欧美日韩在线视频免费| 国产精品白丝喷水在线观看| 亚洲波多野结衣| 激情视频在线播放| 国产一级片播放| 天天综合网久久综合网| 国产精品免费无遮挡无码永久视频| 欧美日韩怡红院| 精品视频无码一区二区三区| 91av俱乐部| 午夜一区二区视频| 国产精品一级无码| 无码熟妇人妻av| 国产白丝一区二区三区| 久久久久久久久久久久久久久久久| 久久久国产精华液| 亚洲av无码精品一区二区| 国产女主播喷水视频在线观看 | 男人添女人下部高潮视频在线观看| 国产精品剧情| 好吊日av在线| 成人1区2区| av综合网址| 日韩欧美高清| av成人动漫| 在线91av| 日本天码aⅴ片在线电影网站| av资源一区| 91大神在线观看线路一区| 超碰国产精品一区二页| 黑人操亚洲人| 性欧美暴力猛交另类hd| 国产九色精品成人porny| 久久久国产一区二区三区四区小说| 亚洲欧美日韩系列| 在线视频一区二区免费| 亚洲成人精品在线| 九九久久国产精品| 国产日韩欧美影视| 日韩视频在线观看国产| www.com毛片| 亚洲精品久久一区二区三区777 | 免费看毛片的网址| 91蝌蚪视频在线| 欧美丰满老妇熟乱xxxxyyy| 国产一区二区三区影院| 欧美 日韩 国产 在线| 国产视频xxxx| 黄网站app在线观看大全免费视频| 北条麻妃在线| 欧美国产日韩电影| 91青青国产在线观看精品| 日本在线观看不卡视频| 国产亚洲人成网站| 欧美三级乱人伦电影| 亚洲性69xxxbbb| 国产成人精品最新| 亚洲国产一区二区三区在线播| 精品视频免费在线播放| 极品粉嫩小仙女高潮喷水久久| 国产主播在线观看| 影音先锋一区二区资源站| 色婷五月综激情亚洲综合| 日本在线视频网| 国产69精品久久久久孕妇| 女子免费在线观看视频www| youjizzjizz亚洲| 亚洲最黄网站| 国产精品久久久久久久第一福利| 久久9热精品视频| 国产精品毛片无遮挡高清| 欧美精品在线一区二区三区| 久久综合伊人77777蜜臀| 国产精品日韩一区二区三区| 免费在线激情视频| 熟女少妇a性色生活片毛片| av观看在线免费| 黄色免费av| www在线看| 99久久久久久中文字幕一区| 国产成人精品一区二区三区网站观看| 精品福利免费观看| 日韩有码在线电影| 久久一区二区精品| 精品人妻在线视频| 久久综合狠狠综合久久综青草| 成人久久久久久久久| 麻豆精品一区二区三区视频| 伊人影院蕉久影院在线观看| 免费看男男www网站入口在线| 中文成人在线| 人人爽香蕉精品| 精品国产福利视频| 欧美久久久精品| 性高潮久久久久久久久| 国产三级国产精品| 色丁香婷婷综合久久| 在线观看视频色潮| 18国产精品| 成人丝袜视频网| 欧美一卡在线观看| 成人激情视频小说免费下载| www.日日操| 天天综合天天干| 日日摸夜夜爽人人添av| 成人免费视频观看| 看片网站欧美日韩| 欧美精品自拍偷拍| 91视频国产精品| 亚洲欧美天堂在线| www.天堂在线| 成人高清网站| 2023国产精品久久久精品双| 亚洲欧洲一区二区在线播放| 中文字幕日韩av综合精品| 色狠狠久久av五月综合| 天天摸日日摸狠狠添| 欧美性xxxxx极品视频| 女同视频在线观看| 亚洲在线电影| 欧美日韩亚洲国产综合| 91深夜福利视频| fc2成人免费视频| 天天操天天插天天射| 免费黄色在线看| 国内激情久久| 色综合久久99| 亚洲r级在线观看| 完美搭档在线观看| 欧美老头gaygay1069| 牛牛电影国产一区二区| 羞羞答答国产精品www一本| 欧美三级欧美一级| 国产精品三区在线| 欧美成人短视频| 亚洲黄色小说图片| 毛片中文在线观看| 国产精品欧美三级在线观看| 国产精品乱码一区二三区小蝌蚪| 欧美成人黑人xx视频免费观看| 免费一级特黄毛片| 国产一区二区在线不卡| 888av在线| 销魂美女一区二区三区视频在线| 欧美伊人精品成人久久综合97 | 欧美高清一级片| 欧美人与牛zoz0性行为| 国产精品欧美精品| 久久久久亚洲精品国产| 久久国产这里只有精品| 无码国产伦一区二区三区视频| 黄色的视频在线观看| 国内不卡的二区三区中文字幕| 亚洲欧美国产精品va在线观看| 欧美 日韩 国产精品| 国产精品尤物视频| 羞羞色院91蜜桃| 一级片免费视频| 男男gay无套免费视频欧美 | 国产啪精品视频| 中国极品少妇videossexhd| 第四色播日韩| 啪啪激情综合网| 亚洲自拍偷拍网站| 2019国产精品视频| 激情五月婷婷小说| 国产黄在线看| 日韩av中文字幕一区二区三区| 亚洲精品成人av| 欧美色图色综合| 先锋影音av中文字幕| 亚洲日本免费电影| 亚洲桃色在线一区| 99re在线播放| 日韩乱码人妻无码中文字幕| 国产福利电影在线| 免费观看在线综合色| 深夜福利一区二区| 精品不卡一区二区三区| 欧美一区二区三区爽爽爽| 亚洲mv在线| 日本视频一区二区| 久久夜色精品亚洲噜噜国产mv| 亚洲福利精品视频| 国产精品久久精品牛牛影视| 亚洲另类春色校园小说| 欧美三级在线视频| 国产一区二区三区小说| 9.1人成人免费视频网站| 成人综合日日夜夜| 污片在线观看一区二区| 五月天色一区| 午夜精品久久久久久久99热黄桃| 成人在线中文| 午夜久久久影院| 曰韩不卡视频| 亚洲人成色777777精品音频| 精品成人自拍视频| 欧美性色综合网| 337p粉嫩大胆噜噜噜鲁| 国产精品178页| 久久中文字幕二区| 亚洲欧美三级在线| 美女流白浆视频| 午夜精彩视频| 国产一区免费电影| 国产精品va在线播放我和闺蜜| 欧美色图亚洲视频| 一二三四区在线观看| 国产精品乱码人人做人人爱| 激情一区二区三区| 蜜臀av中文字幕| 秋霞蜜臀av久久电影网免费| 欧美一区二区三区啪啪| 亚洲 欧美 日韩系列| 激情综合丁香| 免费的国产精品| 国产精品99久久久久久白浆小说| 日韩手机在线观看| 四虎影视4hu4虎成人| 色婷婷av一区二区三区软件| 久久久久久久久久久视频| 国产5g影院天天爽天天看| 99精品视频在线| 日日摸夜夜添一区| 天天舔天天操天天干| 黄色av网站在线播放| 国产精品国产三级国产aⅴ中文| 日韩av电影在线观看| 一区二区三区精品牛牛| 亚洲精品97| 欧美另类老女人| 国产污视频在线看| 日韩护士脚交太爽了| 欧美日韩精品一区二区三区四区| 免费看污污网站| a视频在线看| 成人黄色777网| 欧美日韩电影一区二区三区| 中文字幕人成高清视频| 亚洲小说欧美另类社区| 55夜色66夜色国产精品视频| 亚洲成人av网址| 亚洲精品aaaaa| 久久色在线播放| 精品一区免费观看| 欧美第一在线视频| 亚洲欧美一区二区精品久久久| 欧美熟妇激情一区二区三区| 丝袜美腿av在线| 欧美性精品220| 三级黄色片免费观看| 日本www在线观看视频| 亚洲精选在线视频| 国产欧美在线一区| 小草av在线播放| 中文字幕一区二区三区四区| 国产av国片精品| 中文字字幕在线中文乱码电影| 国产香蕉久久精品综合网| 日本三日本三级少妇三级66| 99re6在线视频| 久久蜜桃av一区二区天堂| 免费的av在线| 福利视频午夜| 国产精品美女一区二区在线观看| 国产 日韩 亚洲 欧美| 真不卡电影网| 亚洲综合在线视频| 一本之道在线视频| 白白色在线观看| 日韩一本二本av| 日韩在线一卡二卡| 亚洲网一区二区三区| 久久av资源网站| 国产毛片毛片毛片毛片毛片| 午夜精品久久| av日韩免费电影| 黄色91视频| 99久久精品久久久久久清纯| 成人在线免费观看视频网站| 中文字幕在线视频免费观看| 一区二区成人在线| 国产伦精品一区二区三区88av| 川上优av中文字幕一区二区| 精品盗摄一区二区三区| 国产在线观看成人| 免费黄色成人| 国产精品美女久久久久av超清| 亚洲视频日韩| 国产一区日韩二区欧美三区| 麻豆视频传媒入口| 天堂在线中文资源| 91成人看片片| 婷婷社区五月天| 亚洲人成亚洲精品| 国产精品麻豆va在线播放| 欧美毛片又粗又长又大| 国产成人av电影在线观看| 国产xxxx振车| 在线观看免费版| 日韩欧美综合一区| 成人毛片18女人毛片| 亚洲精品网址| 韩国成人动漫在线观看| 久久久久久77777| 欧美日韩一二三四五区| 91狠狠综合久久久久久| 欧美激情影院| 成人久久久久久久| 影视先锋av在线| 精品久久香蕉国产线看观看gif| 中文字幕免费高清| 欧美成a人免费观看久久| 国产精品亚洲片夜色在线| 香蕉视频在线观看www| 中文字幕中文字幕在线一区| 久久久久成人精品无码中文字幕| 精品麻豆剧传媒av国产九九九| 7m第一福利500精品视频| 国产视频你懂的| 亚洲视频在线一区| 欧美高清性xxxx| 欧美午夜精品一区二区三区电影| 亚洲在线免费视频| 极品粉嫩饱满一线天在线| 51午夜精品国产| 波多野结衣在线观看一区| 久久午夜av| 欧美亚洲国产成人| 一本色道久久综合狠狠躁篇怎么玩 | 中文字幕成人精品久久不卡 | 精品电影一区二区| 国产精品欧美综合|