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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機驅動ILI9325TP TFT2.4彩屏顯示漢字程序(有詳細注釋)

  [復制鏈接]
跳轉到指定樓層
樓主

分享一個用8051單片機驅動ILI9325TP芯片的 TFT2.4寸彩屏讓他顯示漢字的程序(帶有詳細注釋)



完整代碼下載:
tft基本的顯示程序帶注釋.rar (66.28 KB, 下載次數: 260)


LCD點陣提取工具zimo221.rar (256.32 KB, 下載次數: 108)




部分源碼預覽:

  1. #include"reg52.h"

  2. #define WINDOW_XADDR_START        0x0050 // Horizontal Start Address Set
  3. #define WINDOW_XADDR_END        0x0051 // Horizontal End Address Set
  4. #define WINDOW_YADDR_START        0x0052 // Vertical Start Address Set
  5. #define WINDOW_YADDR_END        0x0053 // Vertical End Address Set
  6. #define GRAM_XADDR                    0x0020 // GRAM Horizontal Address Set
  7. #define GRAM_YADDR                    0x0021 // GRAM Vertical Address Set
  8. #define GRAMWR                             0x0022 // memory write

  9. /* LCD color */
  10. #define White          0xFFFF
  11. #define Black          0x0000
  12. #define Blue           0x001F
  13. #define Blue2          0x051F
  14. #define Red            0xF800
  15. #define Magenta        0xF81F
  16. #define Green          0x07E0
  17. #define Cyan           0x7FFF
  18. #define Yellow         0xFFE0

  19. sbit CS=P2^7;                //片選                        //要改
  20. sbit RES=P2^5;                //復位
  21. sbit RS=P2^4;                //數據/命令選擇
  22. sbit RW=P2^3;
  23.                     //數據口使用P1                    //要改
  24. //====================================================//

  25. void main (void);
  26. void ILI9325_Initial(void);
  27. void show_colour_bar (void);
  28. void Init_data(unsigned char x, unsigned int y);
  29. void Write_Cmd(unsigned char DH,unsigned char DL);
  30. void Write_Data(unsigned char DH,unsigned char DL);
  31. void delayms(unsigned int tt);
  32. void show_photo(void);
  33. void Show_RGB (unsigned int x0,unsigned int x1,unsigned int y0,unsigned int y1,unsigned int Color);
  34. unsigned char code pic[];
  35. void  Write_Data_U16(unsigned int y);
  36. static void LCD_SetPos(unsigned int x0,unsigned int x1,unsigned int y0,unsigned int y1);
  37. void ClearScreen(unsigned int bColor);
  38. void LCD_PutChar8x16(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor);
  39. void LCD_PutChar(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor);
  40. void LCD_PutString(unsigned short x, unsigned short y, char *s, unsigned int fColor, unsigned int bColor);

  41. void LCD_PutChar8x8(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor);
  42. void PutGB1616(unsigned short x, unsigned short  y, unsigned char c[2], unsigned int fColor,unsigned int bColor);
  43. void PutGB3232(unsigned short x, unsigned short  y, unsigned char c[2], unsigned int fColor,unsigned int bColor);
  44. //================================================//

  45. void  main(void)
  46. {   
  47.         CS=1;
  48.         delayms(25);
  49.         RES=0;
  50.         delayms(150);
  51.         RES=1;
  52.         delayms(25);
  53.         ILI9325_Initial();
  54.         while(1)
  55.         {
  56.        


  57. ClearScreen(0x0);

  58. //show_colour_bar();       


  59. LCD_PutString(2,40,"http://shop58797699.taobao.com/",Red,Blue);                  ///前景顏色和背景顏色,可以直接預定義,也可以直接填入16進制數字
  60. LCD_PutString(40,60,"I LOVE MY JOB ",Blue2,Yellow);
  61. LCD_PutString(40,80,"碩耀電子科技有限公司",Magenta,Green);
  62. LCD_PutString(40,100,"專業技術支持論壇",0x07e0,0xf800);
  63. LCD_PutString(40,120,"專業開發板工控板",0xF800,Yellow);
  64. LCD_PutString(40,140,"1234567890",0xF800,Yellow);
  65. LCD_PutString(20,160,"abcdefghijklmnopqistuvwxyz",0xF800,Yellow);
  66. LCD_PutString(20,180,"`,./<>';:[]{}\|?)(-=+*&^%$",0xF800,Yellow);
  67. PutGB3232(20,200,"我",Blue,Yellow);        //寫入32x32漢字
  68. PutGB3232(60,200,"愛",Blue,Red);
  69. PutGB3232(100,200,"單",Blue,Magenta);
  70. PutGB3232(140,200,"片",Blue,Green);
  71. PutGB3232(180,200,"機",Blue,Cyan);       
  72. PutGB3232(20,240,"碩",Blue,0X00);       
  73. PutGB3232(60,240,"耀",Blue,0X00);       
  74. PutGB3232(100,240,"電",Blue,0X00);       
  75. PutGB3232(140,240,"子",Blue,0X00);       
  76. PutGB3232(180,240,"科",Blue,0X00);
  77. PutGB3232(20,280,"技",Blue,0X00);               
  78. PutGB3232(60,280,"歡",Blue,0X00);       
  79. PutGB3232(100,280,"迎",Blue,0X00);       
  80. PutGB3232(140,280,"你",Blue,0X00);       
  81. PutGB3232(180,280,"!",Blue,0X00);       

  82. //        show_photo();

  83.                 while(1);       


  84.         }
  85. }


  86. void ClearScreen(unsigned int bColor)  //清屏,可以設置顏色
  87. {
  88. unsigned int i,j;
  89. LCD_SetPos(0,240,0,320);//320x240
  90. for (i=0;i<325;i++)                   //按地址來說只能是從上往下刷屏,循環只是為了計數
  91.         {
  92.        
  93.            for (j=0;j<240;j++)
  94.                Write_Data_U16(bColor);

  95.         }
  96. }

  97. /////////////////////////////////////////////////////////////
  98. #include "8X16.h"
  99. void LCD_PutChar8x16(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor)
  100. {
  101. unsigned int i,j;
  102. LCD_SetPos(x,x+8-1,y,y+16-1);
  103. for(i=0; i<16;i++) {
  104.                 unsigned char m=Font8x16[c*16+i];      //數組中一個字符占了橫8豎16,相當于先取行再取排,m是每一組數的第i+1行字符8位
  105.                 for(j=0;j<8;j++) {
  106.                         if((m&0x80)==0x80) {           //每次m左移一位,即每次取第一個數判斷是0還是1
  107.                                 Write_Data_U16(fColor);
  108.                                 }
  109.                         else {
  110.                                 Write_Data_U16(bColor); //兩種顏色,字色和底色
  111.                                 }
  112.                         m<<=1;
  113.                         }
  114.                 }
  115. }


  116. void LCD_PutChar(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor) {

  117.                 LCD_PutChar8x16( x, y, c, fColor, bColor );
  118.         }


  119. #include "GB1616.h"        //16*16漢字字模

  120. void PutGB1616(unsigned short x, unsigned short  y, unsigned char c[2], unsigned int fColor,unsigned int bColor){
  121.         unsigned int i,j,k;

  122.         LCD_SetPos(x,  x+16-1,y, y+16-1);

  123.         for (k=0;k<64;k++) { //64標示自建漢字庫中的個數,循環查詢內碼 ?應該是25個吧。。
  124.           if ((codeGB_16[k].Index[0]==c[0])&&(codeGB_16[k].Index[1]==c[1])){
  125.             for(i=0;i<32;i++) {
  126.                   unsigned short m=codeGB_16[k].Msk[i];
  127.                   for(j=0;j<8;j++) {
  128.                         if((m&0x80)==0x80) {
  129.                                 Write_Data_U16(fColor);
  130.                                 }
  131.                         else {
  132.                                 Write_Data_U16(bColor);
  133.                                 }
  134.                         m<<=1;
  135.                         }
  136.                   }
  137.                 }  
  138.           }       
  139.         }

  140.         #include "GB3232.h"        //32*32漢字字模

  141. void PutGB3232(unsigned short x, unsigned short  y, unsigned char c[2], unsigned int fColor,unsigned int bColor){
  142.         unsigned int i,j,k;

  143.         LCD_SetPos(x,  x+32-1,y, y+32-1);

  144.         for (k=0;k<15;k++) { //15標示自建漢字庫中的個數,循環查詢內碼 這個15倒是對的。。
  145.           if ((codeGB_32[k].Index[0]==c[0])&&(codeGB_32[k].Index[1]==c[1])){
  146.             for(i=0;i<128;i++) {
  147.                   unsigned short m=codeGB_32[k].Msk[i];
  148.                   for(j=0;j<8;j++) {
  149.                         if((m&0x80)==0x80) {
  150.                                 Write_Data_U16(fColor);
  151.                                 }
  152.                         else {
  153.                                 Write_Data_U16(bColor);
  154.                                 }
  155.                         m<<=1;
  156.                         }
  157.                   }
  158.                 }  
  159.           }       
  160.         }

  161. void LCD_PutString(unsigned short x, unsigned short y, unsigned char *s, unsigned int fColor, unsigned int bColor) {
  162.          unsigned char l=0;
  163.         while(*s) {
  164.                 if( *s < 0x80)
  165.                     {
  166.                         LCD_PutChar(x+l*8,y,*s,fColor,bColor);  //橫著寫,縱坐標不變,間距8
  167.                         s++;l++;
  168.                         }
  169.                 else
  170.                     {
  171.                         PutGB1616(x+l*8,y,(unsigned char*)s,fColor,bColor); //間距16
  172.                         s+=2;l+=2;
  173.                         }
  174.                 }
  175.         }
  176. //==================== 顯示R G B 顔色 ====================//



  177. void Show_RGB (unsigned int x0,unsigned int x1,unsigned int y0,unsigned int y1,unsigned int Color)
  178. {
  179.         unsigned int i,j;
  180.         LCD_SetPos(x0,x1,y0,y1);
  181.         for (i=y0;i<=y1;i++)
  182.         {
  183.            for (j=x0;j<=x1;j++)
  184.                Write_Data_U16(Color); //寫像素點

  185.         }


  186. }

  187. //====================== 顯示彩條 ======================//
  188. void show_colour_bar (void)   //和上一個函數沒有本質區別,只是規定了寬度

  189. {
  190.         int V,H;
  191.         LCD_SetPos(0,240,0,320);//320x240

  192.         for(H=0;H<240;H++)
  193.         {
  194.                 for(V=0;V<40;V++)
  195.                 Write_Data(0xf8,0x00);  //干嘛非要把16位數用兩個8位拼起來,為什么不直接write_data_U16那個函數呢?真蛋疼。。
  196.         }

  197.         for(H=0;H<240;H++)
  198.         {
  199.                 for(V=40;V<80;V++)
  200.                 Write_Data(0x07,0xe0);
  201.         }

  202.         for(H=0;H<240;H++)
  203.         {
  204.                 for(V=80;V<120;V++)
  205.                 Write_Data(0x00,0x1f);
  206.         }

  207.         for(H=0;H<240;H++)
  208.         {
  209.                 for(V=120;V<160;V++)
  210.                 Write_Data(0xff,0xe0);
  211.         }

  212.         for(H=0;H<240;H++)
  213.         {
  214.                 for(V=160;V<200;V++)
  215.                 Write_Data(0xf8,0x1f);
  216.         }

  217.         for(H=0;H<240;H++)
  218.         {
  219.                 for(V=200;V<240;V++)
  220.                 Write_Data(0x07,0xff);
  221.         }

  222.         for(H=0;H<240;H++)
  223.         {
  224.                 for(V=240;V<280;V++)
  225.                 Write_Data(0xff,0xff);
  226.         }

  227.         for(H=0;H<240;H++)
  228.         {
  229.                 for(V=280;V<320;V++)
  230.                 Write_Data(0x00,0x00);
  231.         }

  232. }

  233. void show_photo(void)
  234. {
  235.         unsigned char j;
  236.         unsigned int i;
  237.         unsigned long s=0;

  238.         LCD_SetPos(0,240,0,320);//320x240

  239.         for (i=0;i<75;i++)
  240.         {
  241.         for (j=0;j<240;j++)
  242.         Write_Data(0xff,0xff);
  243.                
  244.         }

  245.         for (i=0;i<170;i++)
  246.         {
  247.         for (j=0;j<55;j++)
  248.                 Write_Data(0xff,0xff);

  249.                 for (j=0;j<130;j++)
  250.                 Write_Data(pic[s++],pic[s++]);
  251.                
  252.                 for (j=0;j<55;j++)
  253.                 Write_Data(0xff,0xff);
  254.         }

  255.     for (i=0;i<75;i++)
  256.         {
  257.         for (j=0;j<240;j++)
  258.         Write_Data(0xff,0xff);
  259.                
  260.         }

  261.         }

  262. //=======================================================//



  263. void  Init_data (unsigned char x,unsigned int y)
  264. {
  265.         unsigned char m,n;
  266.         m=y>>8;
  267.         n=y;
  268.         Write_Cmd(0x00,x);
  269.         Write_Data(m,n);

  270. }


  271. void  Write_Data_U16(unsigned int y)
  272. {
  273.         unsigned char m,n;
  274.         m=y>>8;
  275.         n=y;
  276.         Write_Data(m,n);

  277. }
  278. //====================== 寫命令 ==========================//

  279. void Write_Cmd(unsigned char DH,unsigned char DL)
  280. {
  281.   
  282.        

  283.         CS=0;
  284.         RS=0;

  285.         P1=DH;
  286.         RW=0;
  287.         RW=1;

  288.         P1=DL;
  289.        
  290.         RW=0;
  291.         RW=1;
  292.         CS=1;
  293. }

  294. //===================== 寫數據 ===========================//

  295. void Write_Data(unsigned char DH,unsigned char DL)
  296. {

  297.   
  298.        
  299.         CS=0;
  300.        
  301.         RS=1;
  302.         P1=DH;
  303.         RW=0;
  304.         RW=1;

  305.         P1=DL;       
  306.         RW=0;
  307.         RW=1;
  308.         CS=1;
  309. }





  310. //=======================================================
  311. void delayms(unsigned int count)
  312. {
  313.     int i,j;                                                                                
  314.     for(i=0;i<count;i++)                                                                    
  315.        {
  316.              for(j=0;j<260;j++);
  317.        }                                                                                    
  318. }



  319. //===================== 初始化代碼 =======================//



  320. void ILI9325_Initial(void)          //看不懂,反正照抄。。而且為什么參數是16位的。。。
  321. {

  322.   //////////////////////////////////////////////////////////
  323. delayms(150);                     //根據不同晶振速度可以調整延時,保障穩定顯示
  324. Init_data(0x00E5, 0x8000); // Set the Vcore voltage and this setting is must.
  325. Init_data(0x0000, 0x0001); // Start internal OSC.
  326. Init_data(0x0001, 0x0100); // set SS and SM bit
  327. Init_data(0x0002, 0x0700); // set 1 line inversion
  328. Init_data(0x0003, 0x0030); // set GRAM write direction and BGR=0.
  329. Init_data(0x0004, 0x0000); // Resize register
  330. Init_data(0x0008, 0x0202); // set the back porch and front porch
  331. Init_data(0x0009, 0x0000); // set non-display area refresh cycle ISC[3:0]
  332. Init_data(0x000A, 0x0000); // FMARK function
  333. Init_data(0x000C, 0x0000); // RGB interface setting
  334. Init_data(0x000D, 0x0000); // Frame marker Position
  335. Init_data(0x000F, 0x0000); // RGB interface polarity
  336. //*************Power On sequence ****************//
  337. Init_data(0x0010, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
  338. Init_data(0x0011, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
  339. Init_data(0x0012, 0x0000); // VREG1OUT voltage
  340. Init_data(0x0013, 0x0000); // VDV[4:0] for VCOM amplitude
  341. delayms(200); // Dis-charge capacitor power voltage
  342. Init_data(0x0010, 0x17B0); // SAP, BT[3:0], AP, DSTB, SLP, STB
  343. Init_data(0x0011, 0x0037); // DC1[2:0], DC0[2:0], VC[2:0]
  344. delayms(50); // Delay 50ms
  345. Init_data(0x0012, 0x013E); // VREG1OUT voltage
  346. delayms(50); // Delay 50ms
  347. Init_data(0x0013, 0x1F00); // VDV[4:0] for VCOM amplitude
  348. Init_data(0x0029, 0x0013); // VCM[4:0] for VCOMH
  349. delayms(50);
  350. Init_data(0x0020, 0x0000); // GRAM horizontal Address
  351. Init_data(0x0021, 0x0000); // GRAM Vertical Address
  352. // ----------- Adjust the Gamma Curve ----------//
  353. Init_data(0x0030, 0x0000);
  354. Init_data(0x0031, 0x0404);
  355. Init_data(0x0032, 0x0404);
  356. Init_data(0x0035, 0x0004);
  357. Init_data(0x0036, 0x0404);
  358. Init_data(0x0037, 0x0404);
  359. Init_data(0x0038, 0x0404);
  360. Init_data(0x0039, 0x0707);
  361. Init_data(0x003C, 0x0500);
  362. Init_data(0x003D, 0x0607);
  363. //------------------ Set GRAM area ---------------//
  364. Init_data(0x0050, 0x0000); // Horizontal GRAM Start Address

  365. Init_data(0x0051, 0x00EF); // Horizontal GRAM End Address
  366. Init_data(0x0052, 0x0000); // Vertical GRAM Start Address
  367. Init_data(0x0053, 0x013F); // Vertical GRAM Start Address
  368. Init_data(0x0060, 0x2700); // Gate Scan Line
  369. Init_data(0x0061, 0x0001); // NDL,VLE, REV
  370. Init_data(0x006A, 0x0000); // set scrolling line
  371. //-------------- Partial Display Control ---------//
  372. Init_data(0x0080, 0x0000);
  373. Init_data(0x0081, 0x0000);
  374. Init_data(0x0082, 0x0000);
  375. Init_data(0x0083, 0x0000);
  376. Init_data(0x0084, 0x0000);
  377. Init_data(0x0085, 0x0000);
  378. //-------------- Panel Control -------------------//
  379. Init_data(0x0090, 0x0010);
  380. Init_data(0x0092, 0x0000);
  381. Init_data(0x0093, 0x0003);
  382. Init_data(0x0095, 0x0110);
  383. Init_data(0x0097, 0x0000);
  384. Init_data(0x0098, 0x0000);
  385. Init_data(0x0007, 0x0173); // 262K color and display ON

  386.        
  387. //        Write_Cmd_Data(0x0022);//               

  388. }







  389. /*===========================================================*/

  390. /*************************************************************
  391. 函數名稱:LCD_DefineDispWindow
  392. 功    能:定義顯示窗體
  393. 參    數:x0:  窗體中X坐標中較小者
  394.          x1:  窗體中X坐標中較大者
  395.          y0:  窗體中Y坐標中較小者
  396.          y1:  窗體中Y坐標中較大者
  397. 返 回 值:無
  398. *************************************************************/
  399. static void LCD_SetPos(unsigned int x0,unsigned int x1,unsigned int y0,unsigned int y1) //寫彩屏必須要知道,寫之前必須激活區域,而且地址會自動加1等基本常識
  400. {
  401.   Init_data(WINDOW_XADDR_START,x0);
  402.   Init_data(WINDOW_XADDR_END,x1);
  403.   Init_data(WINDOW_YADDR_START,y0);
  404.   Init_data(WINDOW_YADDR_END,y1);
  405.   Init_data(GRAM_XADDR,x0);
  406.   Init_data(GRAM_YADDR,y0);
  407.   Write_Cmd (0x00,0x22);//LCD_WriteCMD(GRAMWR);
  408. }
復制代碼



評分

參與人數 3黑幣 +20 收起 理由
關外秀才 + 5 贊一個!
qjzyx + 3 贊一個!
YJGG + 12 贊一個!

查看全部評分

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

使用道具 舉報

沙發
ID:64765 發表于 2017-5-16 15:58 | 只看該作者
沒下載成,積分反而給扣了,胸悶!

評分

參與人數 1黑幣 +40 收起 理由
admin + 40

查看全部評分

回復

使用道具 舉報

板凳
ID:229053 發表于 2017-8-24 10:46 | 只看該作者
為什么扣了我黑幣,但是沒有讓我下載
回復

使用道具 舉報

地板
ID:64765 發表于 2018-2-21 16:34 | 只看該作者
感謝你的分享
回復

使用道具 舉報

5#
ID:266116 發表于 2018-2-21 17:21 | 只看該作者
等幾天在下個個看
回復

使用道具 舉報

6#
ID:64765 發表于 2018-3-1 13:49 | 只看該作者
好資料,謝謝分享。
回復

使用道具 舉報

7#
ID:25103 發表于 2018-7-19 22:55 | 只看該作者
感謝你的分享,對初學是好資料!!
回復

使用道具 舉報

8#
ID:371672 發表于 2018-7-20 10:59 | 只看該作者
不錯不錯,謝謝樓主
回復

使用道具 舉報

9#
ID:142383 發表于 2018-8-2 20:12 | 只看該作者
正在找lcd取模軟件,謝謝樓主.
回復

使用道具 舉報

10#
ID:110931 發表于 2018-8-3 00:12 | 只看該作者

為什么扣了我黑幣,但是沒有讓我下載
回復

使用道具 舉報

11#
ID:403374 發表于 2018-10-17 21:42 | 只看該作者
謝謝分享
回復

使用道具 舉報

12#
ID:411414 發表于 2018-10-17 22:13 | 只看該作者
沒下載成,胸悶!
回復

使用道具 舉報

13#
ID:9727 發表于 2019-2-16 20:23 | 只看該作者
給力,太好了,鼓掌吧
回復

使用道具 舉報

14#
ID:377382 發表于 2019-2-23 11:26 | 只看該作者
好資料,謝謝分享
回復

使用道具 舉報

15#
ID:505233 發表于 2019-4-5 11:01 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

16#
ID:427723 發表于 2020-5-22 10:39 | 只看該作者
謝謝分享!
回復

使用道具 舉報

17#
ID:138956 發表于 2021-3-8 18:55 | 只看該作者

好資料,謝謝分享!
回復

使用道具 舉報

18#
ID:187857 發表于 2021-3-12 10:15 | 只看該作者
好資料,謝謝分享!
回復

使用道具 舉報

19#
ID:577423 發表于 2021-8-10 14:52 | 只看該作者
16位的51單片機用不了code8781
回復

使用道具 舉報

20#
ID:24810 發表于 2022-5-6 06:24 | 只看該作者
好東西,感謝分享,下來試下能不能點亮屏幕!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91av视频在线播放 | 91亚洲视频在线 | 一区二区三区视频在线免费观看 | 户外露出一区二区三区 | 日韩一区二区av | 免费在线一区二区三区 | 亚洲精品一区二区三区在线 | 亚洲高清久久 | 精品视频一区二区在线观看 | 国产精品高清在线 | 国产在线中文字幕 | 欧美精品一区二区三区在线播放 | 日韩在线精品强乱中文字幕 | 午夜免费观看网站 | 国产一区二区三区四 | 精品国产一区一区二区三亚瑟 | 欧美激情网站 | 亚洲精品一区二区二区 | 国产欧美精品一区二区 | 成人欧美日韩一区二区三区 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 五月激情综合 | 日韩毛片在线观看 | 久久久国产一区二区 | 99久久久久久99国产精品免 | 午夜av一区二区 | 日日骚视频 | 午夜视频一区 | 国产精品免费观看 | 麻豆久久精品 | 日韩a在线 | 欧美片网站免费 | 人人人人人爽 | 久久久国产视频 | 中文字幕99| 一级做a爰片性色毛片16美国 | 成人毛片网 | 精品中文字幕一区二区三区 | 视频一区在线观看 | 日韩精品视频在线观看一区二区三区 | 欧美一级欧美三级在线观看 |