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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

利用AT89S52單片機(jī)總線方式點(diǎn)亮LM6063CCW(ST7565)顯示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:46918 發(fā)表于 2020-3-4 18:56 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
液晶顯示模塊通常用來(lái)作為控制設(shè)備的人機(jī)交互的窗口,把機(jī)器/設(shè)備的內(nèi)部參數(shù)顯示在液晶屏幕上,今天和大家來(lái)分享一下,如何利用單片機(jī)的總線來(lái)點(diǎn)亮液晶顯示模塊的;
         通常情況下,拿到一個(gè)液晶屏幕要如何才能點(diǎn)亮他呢,首先得看懂用戶手冊(cè),也不是要全看懂哈,看懂關(guān)鍵的幾個(gè)點(diǎn)就可以了:
第一,  接口定義;
第二,  時(shí)序圖;
第三,  指令表;
看懂這些就差不多了,這里就拿工業(yè)顯示屏幕里比較知名的拓普微的LM6063CCW的模塊(控制器是ST7565的,128x64液晶屏用的最多的控制器了)來(lái)做個(gè)講解,首先打開(kāi)手冊(cè)(網(wǎng)上一搜一大把哈):
咱按著節(jié)奏來(lái):
第一:接口定義
全是英文的,不要被嚇到哈,其實(shí)這些都是比較簡(jiǎn)單的英文,我四級(jí)都沒(méi)過(guò)都能看懂,相信你們也都可以哈;怕有些草根確實(shí)看不明白,我挑幾個(gè)關(guān)鍵點(diǎn)說(shuō)一下,首先我們只看8080模式:1.手冊(cè)里說(shuō)這個(gè)是默認(rèn)的;2.AT89S52的總線就是8080的;
A0 通道選擇信號(hào),當(dāng)A0=0時(shí),選擇指令通道;A0=1時(shí),選擇數(shù)據(jù)通道;
         /RD為讀信號(hào),低電平有效;
         /WR為寫(xiě)信號(hào),低電平有效;注意:/WR/RD 不能同時(shí)為底電平哈
         /RES復(fù)位腳,低電平有效;
         /CS1片選型號(hào),低電平有效;與模塊通訊都需要片選信號(hào)有效情況下;
第二:時(shí)序圖
如何看懂時(shí)序圖在這里就不多說(shuō)了在學(xué)校師傅應(yīng)該是有教過(guò)的哈,如果已經(jīng)還給師傅了的話,可以私聊我;

第三:指令表
英文的,我也就不多解釋了,最好是看ST7565的IC資料也是英文的,不過(guò)我找到了中文版的資料需要的童鞋可以私聊我;

好了接下來(lái)畫(huà)重點(diǎn):
很多人都有用IO口點(diǎn)亮過(guò)液晶顯示模塊,今天咱來(lái)介紹一下更高級(jí)的點(diǎn)亮辦法,因?yàn)橛肐O口模擬時(shí)序,就需要一個(gè)一個(gè)信號(hào)的去操作,很耗費(fèi)時(shí)間,從而會(huì)導(dǎo)致整幅圖片刷新時(shí),能看出刷的效果;那么怎么樣才能夠避免出現(xiàn)刷的效果呢,可以通過(guò)節(jié)省送數(shù)據(jù)的時(shí)間,而51單片機(jī)設(shè)計(jì)的時(shí)候?yàn)榱丝焖僭L問(wèn)外部存儲(chǔ),帶有16根地址線可直接尋址既80總線,這種方式的好處是,他的讀寫(xiě)時(shí)序都是單片機(jī)內(nèi)部產(chǎn)生的時(shí)序,因此縮短模擬IO口所花費(fèi)的時(shí)間,可能這么說(shuō)你感覺(jué)不到什么,舉個(gè)實(shí)例:假設(shè)單片機(jī)的指令周期為1us,如果是IO口模擬的話至少需要7us,如果是用總線方式只需要1us,相差7倍!廢話少說(shuō),直接上干貨:
要使用總線方式,首先硬件要連接好,可參照下面的原理圖設(shè)計(jì)硬件:


總線尋址方式是模塊的數(shù)據(jù)總線直接掛在89S52的數(shù)據(jù)總線上,/RD、/WR作為模塊的讀、寫(xiě)控制信號(hào),/CS信號(hào)和A0信號(hào)都由地址線譯碼產(chǎn)生,模塊的/RES接RC復(fù)位電路。
總線尋址方式驅(qū)動(dòng)函數(shù)如下:(地址定義,根據(jù)用戶平臺(tái)接口修改)
1、指令代碼寫(xiě)入函數(shù)
voidSdCmd(uchar Command)
{
  uchar xdata *Com_addr;
Com_addr =0x8000;                 // 指令通道地址
  *Com_addr = Command;         //寫(xiě)指令操作
}
2、顯示數(shù)據(jù)寫(xiě)入函數(shù)
voidSdData(uchar DData)
{
uchar xdata *DData_addr;
   DData_addr =0x8100;        // 數(shù)據(jù)通道地址           
*DData_addr = DData;          //寫(xiě)數(shù)據(jù)操作
}
3、顯示數(shù)據(jù)讀取函數(shù)
ucharRdData()
{
uchar DData;
uchar xdata *DData_addr;
DData_addr =0x8100;       //數(shù)據(jù)通道地址
DData = DData_addr;             //讀數(shù)據(jù)操作
return(DData);                   //返回?cái)?shù)據(jù)值
}
其他的代碼就沒(méi)啥好說(shuō)的了,參照附件


  1. #include <stdio.h>
  2. #include <reg52.h>
  3. #include <intrins.h>

  4. #define uchar unsigned char // 0~255
  5. #define uint unsigned int   // 0~65535



  6. bit     AutoRun;           // 1 for auto run, 0 for manual run
  7. uchar   ContrastLevel;     // for contrast setting level



  8. //-----------------------------------
  9. // dispaly data (128x64)
  10. //-----------------------------------
  11. uchar code Logo[]={
  12. /*--  調(diào)入了一幅圖像:D:\guoq files\technic support\pic\LM6063c-LOGO-128x64.bmp  --*/
  13. /*--  寬度x高度=128x64  --*/
  14. 0xFF,0x01,0x81,0x01,0x81,0x01,0x81,0x01,0x81,0x41,0x81,0x41,0x81,0x41,0x81,0x41,
  15. 0x81,0x41,0xA1,0x41,0xA1,0x41,0xA1,0x51,0xA1,0x51,0xA1,0x51,0xA9,0x51,0xA9,0x51,
  16. 0xA9,0x55,0xA9,0x55,0x29,0x15,0xAB,0x95,0xCB,0xC5,0xEB,0xE5,0xE3,0xF5,0xF3,0xF9,
  17. 0xFB,0xF9,0xF9,0xFD,0xFD,0xFD,0xFD,0xFD,0xFD,0x01,0x01,0x41,0x81,0x01,0x81,0x81,
  18. 0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0xC1,0x01,0x01,0xC1,0x01,0x01,0x81,
  19. 0x01,0x01,0xC1,0x01,0x01,0x01,0xC1,0x01,0x01,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
  20. 0x01,0x01,0x01,0x01,0x41,0x81,0x01,0x01,0x81,0x41,0x01,0x01,0x01,0x01,0x01,0x81,
  21. 0x41,0x81,0x01,0xC1,0x01,0x81,0x01,0xC1,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,
  22. 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  23. 0x00,0x00,0x80,0x41,0xA8,0x55,0xAA,0x55,0xAA,0x55,0x2A,0x95,0xCA,0xE5,0xF2,0xF9,
  24. 0xF8,0xFD,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  25. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x42,0xE4,0x10,0x00,0x11,0x94,
  26. 0x52,0xFC,0x50,0x92,0x14,0x11,0x00,0x84,0x84,0xFF,0x44,0x44,0xFF,0x00,0x00,0xFF,
  27. 0x00,0x00,0xFF,0x00,0x22,0x22,0xFF,0x12,0x2A,0x10,0xFC,0x13,0x10,0x10,0xF0,0x00,
  28. 0x00,0x08,0x0B,0x0D,0xE9,0xAF,0xA9,0xA9,0xAF,0xA9,0xED,0x0B,0x09,0x00,0x11,0xF8,
  29. 0x04,0x0B,0xEA,0x2B,0xEA,0x8B,0x3C,0xC3,0x3E,0x02,0x00,0x00,0x00,0x00,0x00,0xFF,
  30. 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,
  31. 0xA8,0x54,0x2A,0x95,0xCA,0xE5,0xF2,0xF9,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  32. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  33. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x20,0x20,0x23,0x20,0x21,0x21,0x20,
  34. 0x20,0x23,0x20,0x20,0x21,0x21,0x20,0x20,0x21,0x20,0x22,0x21,0x20,0x20,0x20,0x20,
  35. 0x20,0x20,0x23,0x20,0x20,0x22,0x23,0x20,0x20,0x20,0x23,0x21,0x21,0x21,0x23,0x20,
  36. 0x20,0x20,0x20,0x20,0x23,0x22,0x22,0x22,0x22,0x22,0x23,0x20,0x20,0x20,0x20,0x23,
  37. 0x22,0x21,0x20,0x20,0x21,0x22,0x21,0x20,0x21,0x22,0x20,0x20,0x20,0x20,0x20,0xFF,
  38. 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x20,0x14,0xCA,0xE1,
  39. 0xF8,0xFC,0xFF,0xFF,0xFB,0xFB,0xC3,0xFB,0xFB,0xFF,0xE7,0xDB,0xDB,0xDB,0xE7,0xFF,
  40. 0xC3,0xEB,0xEB,0xEB,0xF7,0xFF,0xE3,0xDF,0xEF,0xDF,0xE3,0xFF,0xCF,0xE7,0xEB,0xE7,
  41. 0xCF,0xFF,0xFB,0xF7,0xCF,0xF7,0xFB,0xFF,0xFF,0x00,0x01,0x01,0xFF,0x01,0x01,0x00,
  42. 0x3C,0x42,0x81,0x81,0x81,0x42,0x3C,0x00,0xFF,0x11,0x11,0x11,0x0E,0x03,0x3C,0xC0,
  43. 0x30,0x0E,0x01,0x0E,0x30,0xC0,0x3C,0x03,0xC0,0x30,0x2E,0x21,0x2E,0x30,0xC0,0x00,
  44. 0x01,0x06,0x08,0xF0,0x08,0x06,0x01,0x00,0x00,0x00,0x00,0xFF,0x80,0x80,0x80,0x80,
  45. 0x04,0xFF,0x84,0x00,0x78,0x84,0x84,0x48,0xFF,0x00,0x00,0x80,0x00,0x00,0x00,0xFF,
  46. 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  47. 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  48. 0x00,0x00,0xF0,0xF0,0xF0,0x70,0xF0,0xC0,0x00,0x00,0x00,0xC0,0xF0,0x70,0xF0,0xF0,
  49. 0xF0,0x00,0x00,0x80,0xE0,0xE0,0x70,0x30,0x30,0x70,0x60,0x40,0x00,0x00,0x80,0xE0,
  50. 0xE0,0x70,0x30,0x70,0xE0,0xE0,0x80,0x00,0x00,0x80,0xE0,0xE0,0x70,0x30,0x30,0x70,
  51. 0x60,0x40,0x00,0x00,0xC0,0xE0,0xF0,0x30,0x30,0x30,0xF0,0xE0,0xC0,0x00,0x00,0x00,
  52. 0xC0,0xE0,0xE0,0x70,0x70,0x70,0x70,0xF0,0xE0,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,
  53. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
  54. 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  55. 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
  56. 0x00,0x00,0xFF,0xFF,0xFF,0x00,0x07,0x7F,0xFC,0xC0,0xFC,0x7F,0x07,0x00,0xFF,0xFF,
  57. 0xFF,0x00,0x00,0x7F,0xFF,0xFF,0x86,0x03,0x87,0xFF,0xFE,0x7C,0x00,0x00,0x7F,0xFF,
  58. 0xFF,0x80,0x00,0x80,0xFF,0xFF,0x7F,0x00,0x00,0x7F,0xFF,0xFF,0x86,0x03,0x87,0xFF,
  59. 0xFE,0x7C,0x00,0x00,0xC0,0xC0,0xC0,0x00,0x06,0x06,0xFF,0xFF,0xF9,0x00,0x00,0x3F,
  60. 0xFF,0xFF,0xC0,0x80,0x80,0x80,0x80,0xC0,0xE1,0xE1,0x40,0x00,0x00,0x00,0x00,0x00,
  61. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
  62. 0xFF,0x00,0xE0,0x20,0x20,0x20,0x20,0x00,0xC0,0x20,0x20,0x20,0x20,0x40,0x00,0x20,
  63. 0x20,0xE0,0x20,0x20,0x00,0xE0,0x43,0x83,0x03,0x03,0xE3,0x03,0x03,0x03,0x03,0xE3,
  64. 0x00,0x00,0x03,0x03,0x03,0x80,0x40,0x20,0x23,0x23,0x43,0x00,0xE0,0x20,0x23,0x23,
  65. 0x43,0x80,0x00,0x00,0x01,0x01,0x83,0x43,0xE3,0x01,0x01,0x00,0x40,0x20,0x20,0x21,
  66. 0xC1,0x03,0xC3,0x23,0x21,0x21,0xC0,0x00,0x00,0x00,0x01,0x81,0x03,0x03,0x03,0x81,
  67. 0x01,0x00,0x00,0x00,0xC0,0x21,0x23,0x23,0x43,0x03,0x03,0x81,0x40,0xE0,0x00,0x00,
  68. 0x00,0x01,0x01,0xE3,0x23,0x23,0x23,0xC3,0x01,0xA1,0x00,0x80,0x00,0x00,0x00,0x80,
  69. 0x00,0x00,0x80,0x80,0x80,0x00,0x00,0xE0,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0xFF,
  70. 0xFF,0x80,0x9F,0x81,0x81,0x81,0x80,0x80,0x88,0x91,0x91,0x92,0x92,0x8C,0x80,0x80,
  71. 0x80,0x9F,0x80,0x80,0x80,0x9F,0x80,0x81,0x86,0x88,0x9F,0x80,0x80,0x80,0x80,0x9F,
  72. 0x90,0x90,0x90,0x90,0x80,0x87,0x88,0x90,0x90,0x90,0x88,0x80,0x9F,0x90,0x90,0x90,
  73. 0x88,0x87,0x80,0x80,0x80,0x80,0x80,0x80,0x9F,0x80,0x80,0x80,0x90,0x98,0x94,0x92,
  74. 0x91,0x80,0x8E,0x91,0x91,0x91,0x8E,0x80,0x80,0x80,0x80,0x90,0x89,0x86,0x89,0x90,
  75. 0x80,0x80,0x80,0x80,0x8F,0x91,0x91,0x91,0x8E,0x80,0x86,0x85,0x84,0x9F,0x84,0x80,
  76. 0x80,0x80,0x80,0x9F,0x82,0x82,0x82,0x81,0x80,0x9F,0x80,0x90,0x89,0x86,0x89,0x90,
  77. 0x80,0x8F,0x92,0x92,0x92,0x8B,0x80,0x9F,0x80,0x89,0x92,0x92,0x94,0x89,0x80,0xFF

  78. };

  79. //-----------------------------------
  80. // Delay Routine
  81. //-----------------------------------
  82. void delayms(uint m)        // 12MHz Xtal, close to ms value
  83. {
  84.     uint j;
  85.     uint i;
  86.    
  87.     for(i=0; i<m; i++)
  88.         for(j=0; j<109; j++)
  89.            _nop_();
  90. }
  91. //--------------------------------------------
  92. //總線尋址方式驅(qū)動(dòng)程序  (INTEL8080 時(shí)序)

  93. //-----指令代碼寫(xiě)入函數(shù)----------------------
  94. void SdCmd(uchar Command)
  95. {
  96.         uchar xdata *Com_addr;            
  97.     Com_addr =0x8000;                // 指令口地址
  98.     *Com_addr = Command;       // 寫(xiě)指令操作
  99. }
  100. //-----顯示數(shù)據(jù)寫(xiě)入函數(shù)--------------------------
  101. void SdData(uchar DData)
  102. {
  103.     uchar xdata *DData_addr;
  104.     DData_addr =0x8100;               // 數(shù)據(jù)口地址
  105.     *DData_addr = DData;              // 寫(xiě)數(shù)據(jù)操作
  106. }
  107. //------顯示數(shù)據(jù)讀取函數(shù)-------------------------
  108. uchar RdData()
  109. {
  110.    uchar DData;
  111.    uchar xdata *DData_addr;
  112.    DData_addr = 0x8100;      // 讀數(shù)據(jù)地址
  113.    DData = *DData_addr;      // 讀數(shù)據(jù)操作
  114.    return(DData);           //返回?cái)?shù)據(jù)值

  115. }

  116. //-----------------------------------
  117. // Write a Screen
  118. //-----------------------------------
  119. void WriteScreen(uchar *DisplayData)        // DisplayData should be 164x64/8 = 1312byte
  120. {
  121.         uchar TempData;
  122.         uchar i, j;
  123.         for(i=0;i<8;i++)
  124.             {
  125.             SdCmd(0xb0 | i);        // select page 0~7
  126.             SdCmd(0x10);            // start form column 0
  127.             SdCmd(0x00);            // (2byte command)
  128.              for(j=0;j<128;j++)
  129.                      {
  130.                      TempData=(*(DisplayData+(i*128)+j));
  131.                      SdData(TempData);
  132.                     }
  133.         }
  134. }

  135. /*
  136. //-----------------------------------
  137. // Contrast control
  138. //-----------------------------------
  139. void LCD_Darker(void)
  140. {
  141.         if (ContrastLevel<0x3F)
  142.             {
  143.         ContrastLevel++;
  144.                 }
  145.     SdCmd(0x81);                     // E-Vol setting
  146.         SdCmd(ContrastLevel);   // (2byte command)
  147. }



  148. void LCD_Lighter(void)
  149. {
  150.         if (ContrastLevel>0x00)
  151.             {
  152.              ContrastLevel--;
  153.                 }
  154.     SdCmd(0x81);            // E-Vol setting
  155.         SdCmd(ContrastLevel);   // (2byte command)
  156. }

  157. */

  158. //-----------------------------------
  159. // Init LCD module
  160. //-----------------------------------
  161. void initLCDM(void)
  162. {
  163.         _RST=1;                 // hardware reset LCD module
  164.         _RST=0;
  165.         delayms(1);
  166.         _RST=1;
  167.         delayms(10);
  168.        
  169.     ContrastLevel=0x21;     // default Contrast Level

  170.         SdCmd(0xaf);            // display on
  171.         SdCmd(0x40);            // display start line=0
  172.     SdCmd(0xa1);            // ADC=1
  173.     SdCmd(0xa6);            // normal display
  174.     SdCmd(0xa4);            // Display all point = off
  175.     SdCmd(0xa2);            // LCD bias = 1/9
  176.     SdCmd(0xc0);            // Common output mode select= reverse


  177.     SdCmd(0x2f);            // Power control = all on

  178.            SdCmd(0x25);                        // RA/RB setting

  179.            SdCmd(0xf8);SdCmd(0x00);// Booster Ratio Set= 2x,3x,4x (2byte command)

  180.         SdCmd(0x81);            // E-Vol setting
  181.     SdCmd(ContrastLevel);   // (2byte command)
  182. }

  183. //-----------------------------------
  184. // Main Program
  185. //-----------------------------------
  186. void main()
  187. {
  188.         SP=0x60;
  189.         EA = 0;         // disable interrupts

  190.   
  191.     _RST    = 1;


  192.            initLCDM();
  193.         WriteScreen(Logo);   
  194.         while(1)
  195.         {
  196.         }
  197. }
  198. //end of program
復(fù)制代碼





評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:46918 發(fā)表于 2020-3-10 08:33 | 只看該作者
看樣子大家都是大蝦呀,都沒(méi)啥人提問(wèn)呀
回復(fù)

使用道具 舉報(bào)

板凳
ID:343102 發(fā)表于 2021-7-5 21:22 | 只看該作者
程序缺太多內(nèi)容。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产大毛片 | 日韩精品免费一区二区在线观看 | 国产91丝袜在线播放 | 国产精品久久国产精品 | 狠狠色狠狠色综合日日92 | 性精品 | 欧美日韩一二三区 | 91精品久久久久久久久久入口 | 成人一级片在线观看 | 精品熟人一区二区三区四区 | 精品久| 欧美日韩精品免费 | 免费观看一级黄色录像 | 久久久2o19精品 | 国产资源在线播放 | 亚洲麻豆 | 国产精品乱码一二三区的特点 | 国产专区免费 | 自拍 亚洲 欧美 老师 丝袜 | 久久久美女 | 91精品国产一区 | 亚洲国产中文字幕 | 亚洲视频三区 | 一区二区在线 | 久久在线看 | 一级毛片免费 | 欧美日韩国产一区二区三区不卡 | 一区二区三区视频在线观看 | 欧美一区二区三区视频在线观看 | 精品国产欧美 | 国产精品久久久久久久三级 | 久久一热 | 国产精品一区二区三区在线 | 亚洲在线看 | 一区二区三区在线 | aaaaaaa片毛片免费观看 | 成人福利在线视频 | 中文字幕韩在线第一页 | 久久99精品久久久久婷婷 | 韩日一区二区 | 午夜精品久久久久久久久久久久久 |