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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機+ntc溫度計使用1602液晶顯示測試成功,轉段碼屏不不能顯示,是什么問題?求解

[復制鏈接]
跳轉到指定樓層
樓主
ID:858009 發表于 2021-10-12 16:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1602液晶顯示成功程序:
  1. #include<reg52.h>                                 //頭文件
  2. #include<intrins.h>
  3. #include "math.h"
  4. #define uchar unsigned char                 //宏定義
  5. #define uint unsigned int                 //宏定義
  6. #define LCD1602_dat P0                         //LCD1602的數據傳輸IO口

  7. sbit LCD1602_rs=P3^5;//LCD1602命令數據控制IO
  8. sbit LCD1602_rw=P3^6; //LCD1602讀寫IO控制
  9. sbit LCD1602_e=P3^4;  //數據脈沖輸入

  10. sbit DIN  = P2^0;        //串行數據輸入端
  11. sbit DCLK  = P2^1;        //I/O時鐘輸入
  12. sbit DOUT = P2^5;   //串行數據輸出端
  13. sbit CS   = P3^7;        //片選腳IO

  14. #define  AD_CH3 0xe4

  15. float zhi;        //暫存讀取的輸入變量

  16. int temp;        //讀取熱敏溫度計的溫度數據

  17. void delay(uint T)                //系統延時程序
  18. {
  19.         while(T--);
  20. }

  21. /*=========================================
  22. 函數   :SPI_Write(uchar DAT)
  23. 參數   :DAT需要發送的數據
  24. 返回值 :無
  25. 描述   :發送一個字節數據
  26. ==========================================*/
  27. void SPI_Write(uchar DAT)
  28. {
  29.         uchar i;
  30.         for(i=0;i<8;i++)     //分別寫8次,每次寫一位
  31.         {
  32.                 DCLK = 0;        //拉低時鐘總,允許DIN變化
  33.                 if(DAT & 0x80)   //先寫數據最高位
  34.                         DIN = 1;     //寫1
  35.                 else
  36.                         DIN = 0;     //寫0
  37.                 DCLK = 1;        //拉高時鐘,讓從位機讀取DIN        
  38.                 DAT <<=1;
  39.         }
  40. }
  41. /*========================================
  42. 函數   :ReadByte()
  43. 參數   :無
  44. 返回值 :返回讀出的數據
  45. =========================================*/
  46. uint SPI_Read()
  47. {
  48.         uchar i;
  49.         uint DAT;
  50.         for(i=0;i<12;i++)  //分別讀12次,每次讀一位
  51.         {
  52.                 DAT <<=1;      //數據左移一位,準備接收一位
  53.                 DCLK = 1;      //拉高時鐘總線,讀取SDA上的數據
  54.                 DCLK = 0;      //拉低時鐘總線,允許從機控制SDA變化
  55.                 if(DOUT)
  56.                 DAT |= 0x01;   //為1則寫1,否則不執行寫1,通過左移補零
  57.         }
  58.         return(DAT);   //返回讀出的數據
  59. }
  60. /*=======================================
  61. 返回值 :AD轉出的數字量
  62. 描述   :讀指定通道的輸入的模擬量轉為數字量
  63. ========================================*/
  64. uint ReadAD(uchar cmd)
  65. {
  66.         uint DAT;
  67.         CS = 0;
  68.         SPI_Write(cmd);
  69.         DCLK = 0;        //拉低時鐘總線
  70.         _nop_();
  71.         _nop_();
  72.         _nop_();
  73.         _nop_();
  74.         _nop_();
  75.         DAT = SPI_Read();
  76.         CS = 1;
  77.         return(DAT);    //返回讀出數據
  78. }
  79. /********************************************************************
  80. * 名稱 : LCD1602_write(uchar order,dat)
  81. * 功能 : 1602寫如數據函數
  82. * 輸入 : 輸入的命令值
  83. * 輸出 : 無
  84. ***********************************************************************/
  85. void LCD1602_write(uchar order,dat)                                  //1602 一個字節  處理
  86. {
  87.     LCD1602_e=0;
  88.     LCD1602_rs=order;
  89.     LCD1602_dat=dat;
  90.     LCD1602_rw=0;
  91.     LCD1602_e=1;
  92.     delay(1);
  93.     LCD1602_e=0;                                                                                                                                                                                                     
  94. }
  95. /********************************************************************
  96. * 名稱 : LCD1602_writebye(uchar *prointer)
  97. * 功能 : 1602寫入數據函數  指針式
  98. * 輸入 : 輸入的命令值
  99. ***********************************************************************/
  100. void LCD1602_writebyte(uchar *prointer)                                   //1602 字符串    處理
  101. {
  102.     while(*prointer!='\0')
  103.     {
  104.         LCD1602_write(1,*prointer);
  105.         prointer++;
  106.     }
  107. }
  108. /********************************************************************
  109. * 名稱 : LCD1602_cls()
  110. * 功能 : 初始化1602液晶
  111. ***********************************************************************/
  112. void LCD1602_cls()                                                                         //1602 初始化
  113. {
  114.         LCD1602_write(0,0x01);     //1602 清屏 指令
  115.         delay(1500);
  116.         LCD1602_write(0,0x38);     // 功能設置 8位、5*7點陣
  117.         delay(1500);
  118.         LCD1602_write(0,0x0c);     //設置 光標   不顯示開關、不顯示光標、字符不閃爍
  119.         LCD1602_write(0,0x06);
  120.         LCD1602_write(0,0xd0);
  121.         delay(1500);
  122. }
  123. /********************************************************************
  124. * 名稱 : show()
  125. * 功能 : LCD1602液晶顯示程序
  126. ***********************************************************************/
  127. void show()                        //顯示數據
  128. {
  129.                 LCD1602_write(0,0x80);                   //顯示位置設定
  130.                 {
  131.                         LCD1602_write(1,0x30+temp/1000%10);           
  132.                         LCD1602_write(1,0x30+temp/100%10);
  133.                         LCD1602_write(1,0x30+temp/10%10);
  134.                 }
  135.                 LCD1602_write(1,0xdf);
  136.                 LCD1602_writebyte("C  ");
  137. }
  138. /********************************************************************
  139. * 名稱 : float TempCalculate(float Rx,float B,float Revise,float BasicRx)
  140. * 功能 : 根據當前熱敏電阻的阻值、以及參數、通過Sin曲線求出當前系統的溫度值  并返回浮點型的溫度值
  141. ***********************************************************************/
  142. float TempCalculate(float Rx,float B,float Revise,float BasicRx)
  143. {
  144. /*
  145. Rx:  熱敏電阻當前阻值
  146. B:   熱敏電阻參數B值
  147. Revise:  校正溫度
  148. BasicRx:  熱敏電阻25度時電阻(標稱電阻數值)
  149. 返回: 攝氏度
  150. */  
  151.     Rx = Rx / BasicRx;
  152.     Rx = log(Rx);   
  153.     Rx = (Rx) / B;
  154.     Rx = Rx + 0.003356;
  155.     Rx = 1 / Rx;
  156.     Rx = Rx - 273.13;  
  157.     Rx = Rx + Revise;   
  158.     return Rx;
  159. }
  160. /********************************************************************
  161. * 名稱 : void main()
  162. * 功能 : 系統主程序
  163. * 輸入 : 無
  164. * 輸出 : 無
  165. ***********************************************************************/
  166. void main()
  167. {
  168.         float Rad;               //生成運算暫存變量
  169.         LCD1602_cls();     //LCD1602初始化程序調用
  170.         while(1)
  171.         {
  172.                 zhi=(float)ReadAD(AD_CH3)/819.0;  //計算電壓值
  173.                 Rad=zhi/((5.0-zhi)/10000.0);   //計算熱敏電阻當前阻值
  174.                 temp=(int)((temp * 0.5) + (TempCalculate(Rad,3950.0,0,10000.0) * 0.5)*10);//求出當前系統的當前溫度
  175.                 show();                 //顯示函數
  176.         }
  177. }
復制代碼



段碼屏程序(不能顯示對應的溫度):

  1. #include <reg52.h>
  2. //#include <intrins.h>           //為了使用NOP
  3. #define NOP _nop_()
  4. #define uchar unsigned char                                                                                                                                                                                                                                      
  5. #define uint unsigned int
  6. #define ComMode 0x52  //4COM,1/3bias 1000 010 1001 0
  7. #define RCosc 0x30    //內部RC振蕩器(上電默認)1000 0011 0000
  8. #define LCD_on 0x06   //打開LCD顯示 偏壓發生器1000 0000 0 11 0
  9. #define LCD_off 0x04  //關閉LCD顯示(上電默認)
  10. #define Sys_en 0x02   //系統振蕩器開 1000 0000 0010
  11. #define Ctrl_cmd 0x80 //寫控制命令 1000
  12. #define Data_cmd 0xa0 //寫數據命令 1010

  13. //定義HT1621端口
  14. #define SEG_NUM 27          //段碼數字個數,即Seg數量/2

  15. sbit CS1=P1^0;
  16. sbit WR1=P1^1;
  17. sbit DATA1=P1^2;

  18. /**-------------------------------------------------------------------------
  19. Name: SendBit_1621(送數據程序)
  20. ---------------------------------------------------------------------------*/
  21. void SendBit_1621(uchar sdata,uchar cnt) //sdata 的高cnt 位寫入HT1621,高位在前
  22. {
  23.         uchar i;
  24.         for(i=0;i<cnt;i++)
  25.         {
  26.                 WR1=0;         
  27.                 if(sdata&0x80) DATA1=1;
  28.                 else DATA1=0;
  29.                 WR1=1;
  30.                 sdata<<=1;
  31.         }
  32. }
  33. /**-------------------------------------------------------------------------
  34. Name: SendCmd(送命令)
  35. ---------------------------------------------------------------------------*/
  36. void SendCmd_1621(uchar command)
  37. {
  38.         CS1=0;
  39.         SendBit_1621(0x80,4);    //寫入標志碼“100”和9 位command 命令,由于
  40.         SendBit_1621(command,8); //沒有使有到更改時鐘輸出等命令,為了編程方便
  41.         CS1=1;                   //直接將command 的最高位寫“0”
  42. }
  43. /**-------------------------------------------------------------------------
  44. Name: Write_1621(送數據和命令程序)
  45. ---------------------------------------------------------------------------*/
  46. void Write_1621(uchar addr,uchar sdata,uchar len)
  47. {
  48.         addr<<=2;
  49.         CS1=0;
  50.         SendBit_1621(0xa0,3);  //寫入標志碼“101”
  51.         SendBit_1621(addr,6);  //寫入addr 的高6位
  52.         SendBit_1621(sdata,len); //寫入data 的高len位
  53.         CS1=1;
  54. }
  55. /**-------------------------------------------------------------------------
  56. Name: all_off(清除1621顯示)
  57. ---------------------------------------------------------------------------*/
  58. void HT1621_all_off(void)
  59. {
  60.         uchar i;
  61.         uchar addr=0;
  62.         for(i=0;i<SEG_NUM;i++)
  63.         {
  64.                 Write_1621(addr,0x00,8);
  65.                 addr+=2;
  66.         }
  67. }
  68. /**-------------------------------------------------------------------------
  69. Name: Init_1621(初始化1621)
  70. -------------------------------------------------------------------------*/
  71. void Init_1621(void)
  72. {
  73.         SendCmd_1621(Sys_en);
  74.         SendCmd_1621(RCosc);
  75.         SendCmd_1621(ComMode);
  76.         SendCmd_1621(LCD_on);
  77. }

  78. 主程序:
  79. #include<reg52.h>                                 //頭文件
  80. #include<intrins.h>
  81. #include "math.h"
  82. #include "HT1621.h"
  83. #define uchar unsigned char                 //宏定義
  84. #define uint unsigned int                 //宏定義
  85. sbit DIN  = P2^0;        //串行數據輸入端
  86. sbit DCLK  = P2^1;        //I/O時鐘輸入
  87. sbit DOUT = P2^5;   //串行數據輸出端
  88. sbit CS   = P3^7;        //片選腳IO
  89. uchar code tab1[10]= {0xF0,0x00,0xD0,0x90,0x20,0xB0,0xF0,0x10,0xF0,0xB0};
  90. uchar code tab2[10]= {0xA0,0xA0,0x60,0xE0,0xE0,0xC0,0xC0,0xA0,0xE0,0xE0};

  91. #define  AD_CH3 0xe4

  92. float zhi;        //暫存讀取的輸入變量

  93. int temp;        //讀取熱敏溫度計的溫度數據

  94. void delay(uint T)                //系統延時程序
  95. {
  96.         while(T--);
  97. }
  98. /*=========================================
  99. 函數   :SPI_Write(uchar DAT)
  100. 參數   :DAT需要發送的數據
  101. 返回值 :無
  102. 描述   :發送一個字節數據
  103. ==========================================*/
  104. void SPI_Write(uchar DAT)
  105. {
  106.         uchar i;
  107.         for(i=0;i<8;i++)     //分別寫8次,每次寫一位
  108.         {
  109.                 DCLK = 0;        //拉低時鐘總,允許DIN變化
  110.                 if(DAT & 0x80)   //先寫數據最高位
  111.                         DIN = 1;     //寫1
  112.                 else
  113.                         DIN = 0;     //寫0
  114.                 DCLK = 1;        //拉高時鐘,讓從位機讀取DIN        
  115.                 DAT <<=1;
  116.         }
  117. }
  118. /*========================================
  119. 函數   :ReadByte()
  120. 參數   :無
  121. 返回值 :返回讀出的數據
  122. =========================================*/
  123. uint SPI_Read()
  124. {
  125.         uchar i;
  126.         uint DAT;
  127.         for(i=0;i<12;i++)  //分別讀12次,每次讀一位
  128.         {
  129.                 DAT <<=1;      //數據左移一位,準備接收一位
  130.                 DCLK = 1;      //拉高時鐘總線,讀取SDA上的數據
  131.                 DCLK = 0;      //拉低時鐘總線,允許從機控制SDA變化
  132.                 if(DOUT)
  133.                 DAT |= 0x01;   //為1則寫1,否則不執行寫1,通過左移補零
  134.         }
  135.         return(DAT);   //返回讀出的數據
  136. }
  137. /*=======================================
  138. 函數   :PCF8591Read(uchar cmd)
  139. 參數   :cmd XPT2046控制字節
  140. 返回值 :AD轉出的數字量
  141. 描述   :讀指定通道的輸入的模擬量轉為數字量
  142. ========================================*/
  143. uint ReadAD(uchar cmd)
  144. {
  145.         uint DAT;
  146.         CS = 0;
  147.         SPI_Write(cmd);
  148.         DCLK = 0;        //拉低時鐘總線
  149.         _nop_();
  150.         _nop_();
  151.         _nop_();
  152.         _nop_();
  153.         _nop_();
  154.         DAT = SPI_Read();
  155.         CS = 1;
  156.         return(DAT);    //返回讀出數據
  157. }
  158. /********************************************************************
  159. * 名稱 : show()
  160. * 功能 : 液晶段碼屏顯示程序
  161. ***********************************************************************/
  162. void show()                        //顯示數據
  163. {
  164.         Write_1621(15,tab1[temp/100],4);
  165.         Write_1621(16,tab2[temp/100],4);
  166.         Write_1621(17,tab1[temp/10%10],4);
  167.         Write_1621(18,tab2[temp/10%10],4);
  168.         Write_1621(19,tab1[temp%10],4);
  169.         Write_1621(20,tab2[temp%10],4);
  170. }
  171. /********************************************************************
  172. * 名稱 : float TempCalculate(float Rx,float B,float Revise,float BasicRx)
  173. * 功能 : 根據當前熱敏電阻的阻值、以及參數、通過Sin曲線求出當前系統的溫度值  并返回浮點型的溫度值***********************************************************************/
  174. float TempCalculate(float Rx,float B,float Revise,float BasicRx)
  175. {
  176. /*
  177. Rx:  熱敏電阻當前阻值
  178. B:   熱敏電阻參數B值
  179. Revise:  校正溫度
  180. BasicRx:  熱敏電阻25度時電阻(標稱電阻數值)
  181. 返回: 攝氏度
  182. */  
  183.     Rx = Rx / BasicRx;   
  184.     Rx = log(Rx);
  185.     Rx = (Rx) / B;
  186.     Rx = Rx + 0.003356;
  187.     Rx = 1 / Rx;
  188.     Rx = Rx - 273.13;  
  189.     Rx = Rx + Revise;
  190.     return Rx;
  191. }
  192. /********************************************************************
  193. * 名稱 : void main()
  194. * 功能 : 系統主程序
  195. ***********************************************************************/
  196. void main()
  197. {
  198.         float Rad;               //生成運算暫存變量
  199.         Init_1621();
  200.         HT1621_all_off();
  201.         while(1)
  202.         {
  203.                 zhi=(float)ReadAD(AD_CH3)/819.0;  //計算電壓值
  204.                 Rad=zhi/((5.0-zhi)/10000.0);   //計算熱敏電阻當前阻值
  205.                 temp=(int)((temp * 0.5) + (TempCalculate(Rad,3950.0,0,10000.0) * 0.5)*10);//求出當前系統的當前溫度
  206.                 show();                 //顯示函數
  207.         }
  208. }
復制代碼



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

使用道具 舉報

沙發
ID:154281 發表于 2021-10-12 20:35 | 只看該作者
電路圖發出來,看下你電路
回復

使用道具 舉報

板凳
ID:213173 發表于 2021-10-13 07:11 | 只看該作者
不顯示和不能正確顯示是兩回事。不顯示通常是驅動函數問題,不能正確顯示是段碼與屏段位不符。以下是實際使用中的1款HT1621.C文件。芯片型號STC15W404AS。
  1. #include <STC15F2K60S2.H>
  2. #include <intrins.h>

  3. /*7段數碼段對應的8Bit順序依次為bit7~bit0:abcx_fged
  4.     --01--
  5.    |      |
  6.    10     02   08
  7.    |--20--|
  8.    40     04   08
  9.    |      |
  10.     --80--       
  11. */
  12. /*----------------------------
  13. LCD操作相關的宏定義和函數聲明
  14. ----------------------------*/
  15. #define ComMode  0x52    //4COM,1/3bias                1000 0101 0010
  16. //#define ComMode  0x50    //4COM,1/2bias          1000 0101 0000
  17. #define RCosc    0x30    //內部RC振蕩器(上電默認)1000 0011 0000
  18. #define LCD_on   0x06    //打開LCD顯示 偏壓發生器1000 0000 0110
  19. #define LCD_off  0x04    //關閉LCD顯示(上電默認)
  20. #define Sys_en   0x02    //系統振蕩器開 1000 0000 0010
  21. #define Ctrl_cmd 0x80    //寫控制命令   1000
  22. #define Data_cmd 0xa0    //寫數據命令   1010

  23. sbit DIPIN=P3^7;              //LCD液晶屏DI引腳
  24. sbit CLKPIN=P3^6;             //LCD液晶屏CLK引腳
  25. sbit CSPIN=P3^5;              //LCD液晶屏CS引腳

  26. //SMS0707B LCD Drive code
  27. //Write bit data 寫位數據
  28. void SendBit_1621(unsigned char sdata,unsigned char cnt) //sdata 的高cnt 位寫入HT1621,高位在前
  29. {
  30.         unsigned char i;
  31.         for(i=0;i<cnt;i++)
  32.         {
  33.                 CLKPIN=0;         
  34.                 if(sdata&0x80)
  35.                         DIPIN=1;
  36.                 else DIPIN=0;
  37.                 CLKPIN=1;
  38.                 sdata<<=1;
  39.         }
  40. }
  41. /*-------------------------------------------------------------------------
  42. Name: SendCmd(送命令)
  43. 寫入標志碼"100"和9位comma命令,由于沒有使用到更改時鐘輸出等命令
  44. 為了編程方便直接將command 的最高位寫"0"
  45. ---------------------------------------------------------------------------*/
  46. void SendCmd_1621(unsigned char command)//寫命令
  47. {//3位標志碼 + 9位命令,共12位
  48.         CSPIN=0; //執行一個下降沿                                       
  49.         SendBit_1621(0x80,4);    //寫入標志碼"100"和9位comma命令的最高1位共4位
  50.         SendBit_1621(command,8); //寫入9位comma命令的后8位,組成1000 xxxx xxxx
  51.         CSPIN=1;//送數完成后置高電平
  52. }
  53. /**-------------------------------------------------------------------------
  54. Name: Write_1621(送命令和數據程序)
  55. 寫入標志碼"101"和6位addr地址碼和8位sdata顯示數據。
  56. ---------------------------------------------------------------------------*/
  57. void Write_1621(unsigned char addr,unsigned char sdata,unsigned char len)//寫數據
  58. {//3位標志碼 + 6位寫數據命令 + 8(4)位數據,共17位
  59.         addr<<=2;//高6位有效
  60.         CSPIN=0; //執行一個下降沿
  61.         SendBit_1621(0xa0,3);                //寫入標志碼"101"    寫數據命令101
  62.         SendBit_1621(addr,6);                //寫入addr 的高6位   寫數據命令xxxx xx
  63.         SendBit_1621(sdata,len);        //寫入8/4位 sdata數據  len=8/4
  64.         CSPIN=1;//送數完成后置高電平
  65. }
  66. /**-------------------------------------------------------------------------
  67. Name: Init_1621(初始化1621)
  68. -------------------------------------------------------------------------*/
  69. void LCD_Init()                                                //初始化
  70. {//程序輸入100 0+8=9位命令
  71.         SendCmd_1621(Sys_en);//Sys_en 0x02 系統振蕩器開          100 0 0000 0010
  72.         SendCmd_1621(RCosc); //RCosc 0x30 內部RC振蕩器(上電默認) 100 0 0011 0000
  73.         SendCmd_1621(ComMode);//4COM,1/3bias                     100 0 0101 0020
  74.         SendCmd_1621(LCD_on);//LCD_on 0x06 打開LCD顯示 偏壓發生器100 0 0000 0110
  75. }
  76. /*-------------------------------------------------------------------------
  77. Name: lcdwd1(點亮1621全部Seg)
  78. -------------------------------------------------------------------------*/
  79. void LCDWD1(void)
  80. {
  81.         unsigned char i;
  82.         unsigned char addr=9;//5位顯示碼寄存器起始地址0x09
  83.         for(i=0;i<5;i++)
  84.         {
  85.                 Write_1621(addr,LCD_Buffer[i+1],8);//addr為地址碼,l_data為數據,8為8位數據
  86.                 addr+=2;//順延2個4位地址碼
  87.         }
  88. }

復制代碼
回復

使用道具 舉報

地板
ID:858009 發表于 2021-10-13 09:57 | 只看該作者
wulin 發表于 2021-10-13 07:11
不顯示和不能正確顯示是兩回事。不顯示通常是驅動函數問題,不能正確顯示是段碼與屏段位不符。以下是實際使 ...

不能正確顯示溫度,只顯示000
回復

使用道具 舉報

5#
ID:213173 發表于 2021-10-13 19:04 | 只看該作者
qwettyuio 發表于 2021-10-13 09:57
不能正確顯示溫度,只顯示000

只顯示000不能充分說明不能正確顯示,而是要輸入已知的數字,看顯示結果。
回復

使用道具 舉報

6#
ID:1064915 發表于 2023-7-4 11:10 | 只看該作者
沒有段碼屏的邏輯表
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲网站在线观看 | 日本三级电影免费 | 91麻豆精品国产91久久久更新资源速度超快 | 亚洲高清中文字幕 | 亚洲国产精选 | 亚洲品质自拍视频 | 日本午夜精品 | 精品久久久久久 | 欧美乱大交xxxxx另类电影 | 521av网站| 99国产精品99久久久久久粉嫩 | 日本在线免费看最新的电影 | 黄色av网站在线免费观看 | 国产精品美女久久久久久久久久久 | 欧美日韩成人在线 | 在线日韩欧美 | www.干| 澳门永久av免费网站 | 精品av | 日日夜夜免费精品视频 | 中国三级黄色录像 | 欧美一区二区三区在线观看视频 | 一区在线视频 | 一级免费视频 | 欧美日韩在线不卡 | 久久精品欧美一区二区三区不卡 | 色婷婷久久 | a级免费黄色片 | 麻豆a级片| 精品成人免费一区二区在线播放 | 一区二区精品电影 | 毛片在线免费 | 波多野结衣一区二区 | 欧美福利久久 | 男人的天堂久久 | 日韩 欧美 二区 | 欧美国产视频 | 欧美视频免费在线 | 精品香蕉一区二区三区 | 精品香蕉一区二区三区 | 日本精品一区二区 |