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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機+LCD1602只有背光,沒有顯示,求解決

  [復制鏈接]
跳轉到指定樓層
樓主
酒精測試儀,實物制作完成后導入程序,液晶屏只亮燈,不顯示,問了師兄說是時序問題,很苦惱,求解決

單片機源程序如下:
  1. //程序頭函數
  2. #include <stc15.h>
  3. #include <intrins.h>
  4. #define uint unsigned int
  5. #define uchar unsigned char
  6. #define LCD1602 P0
  7. #define key_S 3                                        //宏定義按鍵短按(約15ms)
  8. #define key_L key_S*35                        //宏定義按鍵長按(約500ms)
  9. #define key_I key_S*27                        //宏定義長按連+/-間隔(約120ms)
  10. //宏定義ADC的操作命令
  11. #define ADC_POWER   0x80                        //ADC power control dit (宏定義ADC電源控制位)1000 0000
  12. #define ADC_START   0x08                        //ADC start control dit (宏定義ADC啟動控制位)0000 1000
  13. #define ADC_FLAG    0x10                        //ADC complete flag (宏定義ADC完成標志位)    0001 0000
  14. #define ADC_SPEEDLL 0x00                        //420 clocks (宏定義420時鐘)速度控制         0000 0000
  15. //宏定義ISP的操作命令
  16. #define CMD_IDLE    0               //空閑模式
  17. #define CMD_READ    1               //IAP字節讀命令
  18. #define CMD_PROGRAM 2               //IAP字節編程命令
  19. #define CMD_ERASE   3               //IAP扇區擦除命令
  20. #define ENABLE_IAP  0x82            //CPU的等待時間
  21. #define IAP_ADDRESS 0x0800                                //保存地址
  22. //管腳聲明
  23. #define LCD1602 P0
  24. sbit LED_R= P2^2; //紅指示燈
  25. sbit LED_G= P2^0; //綠色指示燈
  26. sbit FENG = P2^5; //蜂鳴器
  27. sbit LCD_RS=P2^3;        //液晶屏RS口
  28. sbit LCD_EN=P2^1;        //液晶屏EN口
  29. sbit Key1=P2^6;        //檢測/復位
  30. sbit Key2=P2^7;   //設置
  31. sbit Key3=P3^6;         //加
  32. sbit Key4=P3^7;   //減
  33. //變量定義
  34. uchar table[] ="ALCOHOL:   mg";        //第一行"酒精"
  35. uchar table1[]="WARNING H000 L00";//第二行"警告"
  36. uchar data dis_buf[]="000H000L000";
  37. bit flashing;                //閃爍標志
  38. bit Rev_Stop;                //啟動/停止標志
  39. bit preset;                        //預置標志
  40. uchar KeySec;                        //鍵值
  41. uchar set;          //設置標志位
  42. uint TheH,TheL;        //濃度高/濃度低參考值
  43. uint num,num1;                //計數變量
  44. uchar ADCP,PH;                //AD轉換值
  45. uchar WARNING;         // 初始報警值
  46. uchar i;
  47. //函數聲明
  48. void Timer0Init();                                        //定時器0初始化聲明
  49. void Timer2Init();                                        //定時器2初始化聲明
  50. void Delay1ms();                                                //延時子程序聲明
  51. void key_scan();                                                //按鍵掃描聲明
  52. void ADC_Init();                                                //初始化ADC子程序聲明
  53. uchar Read(uchar CHA);                                //ADC轉換子程序聲明
  54. void detection();
  55. void IapIdle();                                                //關閉IAP/EEPROM
  56. void init_eeprom();
  57. uchar IapReadByte(uint addr);                //讀取EEPROM數據
  58. void IapProgramByte(uint addr, uchar dat);//寫入EEPROM數據
  59. void IapEraseSector(uint addr);        //擦除EEPROM數據
  60. void write_com(uchar com);                        //1602液晶屏寫指令程序
  61. void write_date(uchar date);                //1602液晶屏寫數據程序
  62. void LCD_init();                                                //1602液晶屏初始化程序
  63. void display();                                                //顯示函數
  64. void alarm();                                                        //報警函數
  65. void Buzzer_second();
  66. //主函數
  67. void main()
  68. {
  69.         P0M0 = 0x00;
  70.         P0M1 = 0x00;
  71.         P1M1 = 0x01;                                         //設置P1.0高阻ADC輸入
  72.         P1M0 = 0x00;                                         //設置P1.0高阻ADC輸入
  73.         P2M0 = 0x00;
  74.         P2M1 = 0x00;
  75.         P3M0 = 0x00;
  76.         P3M1 = 0x00;
  77.         P4M0 = 0x00;
  78.         P4M1 = 0x00;
  79.         P5M0 = 0x00;
  80.         P5M1 = 0x00;
  81.         P6M0 = 0x00;
  82.         P6M1 = 0x00;
  83.         P7M0 = 0x00;
  84.         P7M1 = 0x00;

  85.         Timer0Init();                                        //定時器0初始化
  86.         Timer2Init();                                        //定時器2初始化
  87.         ADC_Init();                                                //初始化ADC
  88.         LCD_init();                                 //初始化液晶屏
  89.         init_eeprom();                                  //讀取eeprom初始數據      

  90.         while(1)//主循環
  91.         {
  92.                 key_scan();//按鍵掃描
  93.                 if(num==0 && preset==1)//自動保存設置
  94.                 {
  95.                         IapEraseSector(IAP_ADDRESS);
  96.                         IapProgramByte(IAP_ADDRESS, TheH);
  97.                         IapProgramByte(IAP_ADDRESS+1, TheL);
  98.                         preset=0;
  99.                         KeySec=0;
  100.                 }
  101.                 detection();//檢測酒精濃度
  102.                 display();//刷新LCD
  103. //                alarm();//報警函數
  104. //                Buzzer_second();
  105.         }
  106. }

  107. /*---------------------------------------------
  108.   定時器0初始化,時鐘12T、16位重載模式
  109. ----------------------------------------------*/
  110. void Timer0Init(void)                //50毫秒@11.0592MHz
  111. {
  112.         AUXR &= 0x7F;                //定時器時鐘12T模式
  113.         TMOD &= 0xF0;                //設置定時器模式
  114.         TL0 = 0x00;                //設置定時初始值
  115.         TH0 = 0x4C;                //設置定時初始值
  116.         TF0 = 0;                //清除TF0標志
  117.         TR0 = 1;                //定時器0開始計時
  118.         EA  = 1;                //開總中斷
  119.         ET0 = 1;
  120. }
  121. /*---------------------------------------------
  122.   定時器2初始化,時鐘12T、16位重載模式
  123. ----------------------------------------------*/
  124. void Timer2Init()                                        //250微秒@11.0592MHz
  125. {
  126.         AUXR &= 0xFB;                                        //定時器時鐘12T模式
  127.         T2L = 0x1A;                                                //設置定時初值
  128.         T2H = 0xFF;                                                //設置定時初值
  129. //        AUXR |= 0x10;                                        //定時器2開始計時

  130.         IE2 |=0x04;                                            //允許中斷
  131. }
  132. /*****************************
  133.         蜂鳴器間歇鳴響
  134. *****************************/
  135. /*
  136. void Buzzer_second()
  137. {
  138.         if(flashing && WARNING>0)        //計時周期1s        
  139.         {
  140.                 WARNING--;                                //蜂鳴器間歇鳴次數變量自-1
  141.                 AUXR |= 0x10;                        //定時器2開,蜂鳴器響一下
  142.         }
  143. }*/
  144. /*-------------------------------------------
  145.   定時器2中斷服務程序  200微秒 驅動無源蜂鳴器
  146. --------------------------------------------*/
  147. void timer2() interrupt 12
  148. {
  149.         static uint i=0;                        //中斷計數變量
  150.         i++;                                                        //中斷計數變量count3自+1
  151.         FENG=~FENG;                                        //蜂鳴器端口取反
  152.         if(i>=500)                                        //0.1秒時間到500
  153.         {
  154.                 i=0;                                                //計數清0
  155.                 FENG=1;                                        //蜂鳴器端口清0
  156.                 AUXR &= 0xef;                        //定時器2關閉
  157.         }
  158. }

  159. void  time0_int(void) interrupt 1 //定時器中斷0
  160. {
  161.         static int count=0;
  162.         if(++count>=20)
  163.         {
  164.                 count=0;
  165.                 flashing=~flashing;
  166.         }
  167.         if(num>0)num--;
  168.         if(num1>0)num1--;
  169. //加入報警時長代碼
  170. }

  171. void write_com(uchar com)//1602液晶屏寫指令程序
  172. {
  173.         LCD_EN=0;        //初始設置LCD_EN低電平
  174.         LCD_RS=0;        //允許寫指令
  175.         P0=com;                //傳遞指令
  176.         Delay1ms();        //延時1ms
  177.         LCD_EN=1;        //使能寫入
  178.         Delay1ms();        //延時1ms
  179.         LCD_EN=0;        //低跳變執行
  180. }

  181. void write_date(uchar date)//1602液晶屏寫數據程序
  182. {
  183. //        LCD_EN=0;        //初始設置LCD_EN低電平
  184.         LCD_RS=1;        //允許寫數據
  185.         P0 =date;        //傳遞數據
  186.         Delay1ms();        //延時1ms
  187.         LCD_EN=1;        //使能寫入
  188.         Delay1ms();        //延時1ms
  189.         LCD_EN=0;        //低跳變執行
  190. }

  191. void LCD_init()//1602液晶屏初始化程序
  192. {
  193.         uchar i;
  194.         LCD_EN=0;                 //初始設置LCD_EN低電平
  195.         write_com(0x38);//設置16*2顯示,5*7點陣,8位數據接口
  196.         write_com(0x01);//顯示清零,數據指針清零
  197. //        write_com(0x0f);//設置開顯示,顯示光標,光標閃爍
  198. //        write_com(0x0e);//設置開顯示,顯示光標,光標不閃
  199.         write_com(0x0c);//設置開顯示,不顯光標
  200.         write_com(0x06);//設置寫一個字符后地址指針加1
  201. //        write_com(0x07);//設置寫一個字符后整屏左移

  202.         write_com(0x80+1);//顯示固定字符
  203.         for(i=0;i<13;i++)
  204.                 write_date(table[i]);
  205.         write_com(0xc0);
  206.         for(i=0;i<16;i++)
  207.                 write_date(table1[i]);
  208. }
  209. /*-----------------------------------------------------------------------------
  210.   InitADC 初始化ADC
  211. -----------------------------------------------------------------------------*/
  212. void ADC_Init()
  213. {
  214.         P1ASF=0x01;                                                //設置P1的0通道端口作為模擬輸入
  215.         ADC_RES=0;                                                //清除ADC_RES存儲器以前的結果
  216. //        ADC_RESL=0;
  217.         ADC_CONTR=ADC_POWER|ADC_SPEEDLL;//ADC 開啟電源、轉換速度 1000 0000
  218.         Delay1ms();                                                //上電延時1ms                                                                                       
  219. }
  220. /*----------------------------------------------------------------------------
  221. Get ADC Result(獲取ADC結果)
  222. ----------------------------------------------------------------------------*/
  223. uchar Read(uchar CHA)                                //獲取ADC結果
  224. {
  225.         ADC_CONTR=ADC_POWER|ADC_SPEEDLL|CHA|ADC_START;//啟動轉換1000 1000
  226.     _nop_();                        //延時確保正確讀到ADC_CONTR寄存器的值
  227.     _nop_();
  228.     _nop_();
  229.     _nop_();
  230.         while(!(ADC_CONTR & ADC_FLAG));        //等待ADC轉換完成標志置位 1001 1000
  231.         ADC_CONTR &=~ADC_FLAG;                        //關閉ADC
  232. //        return (ADC_RES<<2)|ADC_RESL;        //返回10位ADC結果
  233.         return ADC_RES;        //返回8位ADC結果
  234. }

  235. void key_scan()//按鍵掃描
  236. {
  237.         static uint time=0;
  238.         if(!Key1||!Key2)
  239.         {
  240.                 time++;
  241.                 if(time>key_L)//長按有效
  242.                         time=key_I;//連+/-間隔

  243.                 if(time==key_S)//短按消抖
  244.                 {
  245.                         if(!Key1)
  246.                         {
  247.                                 Rev_Stop=~Rev_Stop;
  248.                                 if(Rev_Stop) num1=100;
  249.                                 PH=0;
  250.                                 AUXR |= 0x10;//蜂鳴器提示音"滴"
  251.                         }
  252.                         if(!Key2)
  253.                         {
  254.                                 KeySec++;
  255.                                 if(KeySec>3) KeySec=0;
  256.                                 AUXR |= 0x10;//蜂鳴器提示音"滴"
  257.                         }
  258.                 }
  259.                 if(time==key_S||time==key_L)//短按消抖或長按連+/-
  260.                 {
  261.                         if(!Key3 && KeySec>1)
  262.                         {
  263.                                 preset=1;
  264.                                 switch(KeySec)
  265.                                 {
  266.                                         case 1: if(TheH<255)TheH++; break;
  267.                                         case 2: if(TheL<TheH-1)TheL++; break;
  268.                                 }
  269.                                 AUXR |= 0x10;//蜂鳴器提示音"滴"
  270.                                 num=100;//自復位變量賦值(5秒)
  271.                         }
  272.                         if(!Key4 && KeySec>1)
  273.                         {
  274.                                 preset=1;
  275.                                 switch(KeySec)
  276.                                 {
  277.                                         case 1: if(TheH>TheL+1)TheH--; break;
  278.                                         case 2: if(TheL>0)TheL--; break;
  279.                                 }
  280.                                 AUXR |= 0x10;//蜂鳴器提示音"滴"
  281.                                 num=100;//自復位變量賦值(5秒)
  282.                         }
  283.                 }
  284.         }
  285.         else time=0;
  286. }
  287. void detection()
  288. {
  289.         uchar Pt;
  290.         if(Rev_Stop)
  291.         {               
  292.                 Pt=Read(0);
  293. //                ADCP=Pt + - * / ;//按實際要求換算PH值
  294. //                if(PH<ADCP)//保留最大值
  295. //                        PH=ADCP;

  296.                 dis_buf[0]=Pt/100%10+'0';
  297.                 dis_buf[1]=Pt/10%10+'0';
  298.                 dis_buf[2]=Pt%10+'0';
  299. //                dis_buf[3]='H';
  300.                 dis_buf[4]=TheH/100%10+'0';
  301.                 dis_buf[5]=TheH/10%10+'0';
  302.                 dis_buf[6]=TheH%10+'0';
  303. //                dis_buf[7]='L';
  304.                 dis_buf[8]=TheL/100%10+'0';
  305.                 dis_buf[9]=TheL/10%10+'0';
  306.                 dis_buf[10]=TheL%10+'0';
  307.         }
  308. /*        else //清空緩存
  309.         {
  310.                 dis_buf[0]=' ';
  311.                 dis_buf[1]=' ';
  312.                 dis_buf[2]=' ';        
  313.                 dis_buf[3]=' ';
  314.                 dis_buf[4]=' ';
  315.                 dis_buf[5]=' ';        

  316.         }*/
  317. }
  318. /*-------------------------------
  319.   1ms延時子程序(11.0592MHz 1T)
  320. -------------------------------*/
  321. void Delay1ms()                //@11.0592MHz
  322. {
  323.         unsigned char i, j;
  324.         _nop_();
  325.         _nop_();
  326.         _nop_();
  327.         i = 11;
  328.         j = 190;
  329.         do
  330.         {
  331.                 while (--j);
  332.         } while (--i);
  333. }

  334. /*----------------------------
  335.         關閉IAP功能
  336. ----------------------------*/
  337. void IapIdle()
  338. {
  339.     IAP_CONTR = 0;                  //關閉IAP功能
  340.     IAP_CMD = 0;                    //清除命令寄存器
  341.     IAP_TRIG = 0;                   //清除觸發寄存器
  342.     IAP_ADDRH = 0x80;               //將地址設置到非IAP區域
  343.     IAP_ADDRL = 0;
  344. }
  345. /*----------------------------
  346. 從ISP/IAP/EEPROM區域讀取一字節
  347. ----------------------------*/
  348. uchar IapReadByte(uint addr)
  349. {
  350.     uchar dat;                      //數據緩沖區
  351.     IAP_CONTR = ENABLE_IAP;         //使能IAP
  352.     IAP_CMD = CMD_READ;             //設置IAP命令
  353.     IAP_ADDRL = addr;               //設置IAP低地址
  354.     IAP_ADDRH = addr >> 8;          //設置IAP高地址
  355.     IAP_TRIG = 0x5a;                //寫觸發命令(0x5a)
  356.     IAP_TRIG = 0xa5;                //寫觸發命令(0xa5)
  357.     _nop_();                        //等待ISP/IAP/EEPROM操作完成
  358.     dat = IAP_DATA;                 //讀ISP/IAP/EEPROM數據
  359.     IapIdle();                      //關閉IAP功能
  360.     return dat;                     //返回
  361. }
  362. /*-------------------------------
  363. 寫一字節數據到ISP/IAP/EEPROM區域
  364. --------------------------------*/
  365. void IapProgramByte(uint addr, uchar dat)
  366. {
  367.     IAP_CONTR = ENABLE_IAP;         //使能IAP
  368.     IAP_CMD = CMD_PROGRAM;          //設置IAP命令
  369.     IAP_ADDRL = addr;               //設置IAP低地址
  370.     IAP_ADDRH = addr >> 8;          //設置IAP高地址
  371.     IAP_DATA = dat;                 //寫ISP/IAP/EEPROM數據
  372.     IAP_TRIG = 0x5a;                //寫觸發命令(0x5a)
  373.     IAP_TRIG = 0xa5;                //寫觸發命令(0xa5)
  374.     _nop_();                        //等待ISP/IAP/EEPROM操作完成
  375.     IapIdle();                      //關閉IAP功能
  376. }
  377. /*----------------------------
  378. ISP/IAP/EEPROM扇區擦除
  379. ----------------------------*/
  380. void IapEraseSector(uint addr)
  381. {
  382.     IAP_CONTR = ENABLE_IAP;         //使能IAP
  383.     IAP_CMD = CMD_ERASE;            //設置IAP命令
  384.     IAP_ADDRL = addr;               //設置IAP低地址
  385.     IAP_ADDRH = addr >> 8;          //設置IAP高地址
  386.     IAP_TRIG = 0x5a;                //寫觸發命令(0x5a)
  387.     IAP_TRIG = 0xa5;                //寫觸發命令(0xa5)
  388.     _nop_();                        //等待ISP/IAP/EEPROM操作完成
  389.     IapIdle();                      //關閉IAP功能
  390. }
  391. void init_eeprom()
  392. {
  393.         TheH=IapReadByte(IAP_ADDRESS);
  394.         TheL=IapReadByte(IAP_ADDRESS+1);
  395.         if((TheL<1||TheL>=TheH)||(TheH>254||TheH<=TheL))//首次上電初始化數據
  396.         {
  397.                 TheL=20;
  398.                 TheH=80;
  399.                 IapEraseSector(IAP_ADDRESS);
  400.                 IapProgramByte(IAP_ADDRESS, TheH);
  401.                 IapProgramByte(IAP_ADDRESS+1, TheL);
  402.         }
  403. }
  404. void display()
  405. {
  406.         uchar i;
  407.         write_com(0x80+9);//顯示第一行數字
  408.         for(i=0;i<3;i++)
  409.                 write_date(dis_buf[i]);
  410.         write_com(0xc0+8);//顯示第二行數字
  411.         for(i=0;i<9;i++)
  412.                 write_date(dis_buf[i+3]);        
  413. }
  414. /*
  415. void alarm()
  416. {
  417.         if(PH<TheL)
  418.         {
  419.                 LED_R= 1; //紅指示燈
  420.                 LED_G= 1; //綠色指示燈
  421.         }
  422.         if(PH>=TheL && PH<TheH)
  423.         {
  424.                 LED_R= 1; //紅指示燈
  425.                 LED_G= 0; //綠色指示燈
  426.         }
  427.         if(PH>=TheH)
  428.         {
  429.                 LED_R= 0; //紅指示燈
  430.                 LED_G= 1; //綠色指示燈
  431.         }
  432.         WARNING=25;
  433. }*/
復制代碼


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

使用道具 舉報

沙發
ID:301191 發表于 2022-1-13 23:21 | 只看該作者
頂一下
回復

使用道具 舉報

板凳
ID:262 發表于 2022-1-13 23:21 | 只看該作者
來看一下51hei論壇里面解決此問題的痛苦經歷吧:
51hei搜索框輸入"1602 方塊"或者"1602 黑塊"或者"1602 白塊"或者"1602 格":

這個是io口設置問題,最終搞定了:http://www.zg4o1577.cn/bbs/dpj-199732-1.html
http://www.zg4o1577.cn/bbs/dpj-168643-1.html
http://www.zg4o1577.cn/bbs/dpj-208189-1.html
http://www.zg4o1577.cn/bbs/dpj-210690-1.html

既有可能是軟件問題也有硬件問題
http://www.zg4o1577.cn/bbs/dpj-187378-1.html
http://www.zg4o1577.cn/bbs/dpj-160754-1.html
回復

使用道具 舉報

地板
ID:999060 發表于 2022-1-13 23:53 | 只看該作者
heicad 發表于 2022-1-13 23:21
來看一下51hei論壇里面解決此問題的痛苦經歷吧:
51hei搜索框輸入"1602 方塊"或者"1602 黑塊"或者"1602 白 ...

好的我看看謝謝
回復

使用道具 舉報

5#
ID:35873 發表于 2022-1-14 02:05 | 只看該作者
伙計 你程序里沒有1602的讀寫控制操作 如何顯示  這是什么1602   R/W讀寫控制應該還是有的吧
回復

使用道具 舉報

6#
ID:857072 發表于 2022-1-14 11:04 來自手機 | 只看該作者
應該是只寫不讀所以,r/w直接給了電平,調一下R?的值看是不是你的屏和電路上的對比度設置的參考值不一樣。
回復

使用道具 舉報

7#
ID:945127 發表于 2022-1-14 13:31 來自手機 | 只看該作者
1602的3腳的其中一個電阻變為可變電阻,再調一下就有字出來了
回復

使用道具 舉報

8#
ID:517466 發表于 2022-1-14 18:49 | 只看該作者
LCD1602的讀寫有時序問題,注意你的MCU的晶振頻率,以及讀寫LCD1602的時序。時序不對(脈沖高低電平的持續時間,及指令、數據發出后的中間停頓時間),會導致指令、數據不能被正常傳遞給1602,造成不顯示。
回復

使用道具 舉報

9#
ID:230742 發表于 2022-1-14 23:55 | 只看該作者
P0口要接上拉電阻吧。 89C52是要接上拉的,要不1602不會亮,STC15F2K的我沒試過。
回復

使用道具 舉報

10#
ID:453974 發表于 2022-1-18 20:46 | 只看該作者
實物的話,建議你換個液晶屏試一試,看是不是屏幕壞了
回復

使用道具 舉報

11#
ID:956918 發表于 2022-1-18 23:09 | 只看該作者
可以搜搜1602的對比度,這個也是很重要的
回復

使用道具 舉報

12#
ID:924572 發表于 2022-2-18 20:56 | 只看該作者
請問1602 有3.3V供電 和5V供電 有什么辦法分辨嗎?
回復

使用道具 舉報

13#
ID:255377 發表于 2022-2-19 00:08 來自手機 | 只看該作者
第1連接的線路檢查  第2 1602初始化延時按照技術規格書搞  第3寫1602和讀1602數據的時序不斷調整
回復

使用道具 舉報

14#
ID:254046 發表于 2022-2-19 21:03 | 只看該作者
讀寫時序不對,
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费观看一级特黄欧美大片 | 欧美成人精品一区二区男人看 | 国产精品九九视频 | 久久免费资源 | 黄色网址在线免费播放 | 国产成人精品久久二区二区91 | 日韩欧美综合 | 中文av在线播放 | 亚欧精品一区 | 国产xxxx搡xxxxx搡麻豆 | 久久久久国产精品一区二区 | 色成人免费网站 | 国产精品久久久久久久久久久免费看 | 欧美一区二区三区在线 | 蜜桃av一区二区三区 | 精品一区二区观看 | 在线观看免费av网站 | 亚洲欧洲成人 | 免费一二区 | 国产精品一区二区久久久久 | 欧美a级成人淫片免费看 | 免费观看一级毛片 | 日本黄色不卡视频 | 色香婷婷 | 国产精品久久毛片av大全日韩 | 久久精品国产a三级三级三级 | 亚洲精品中文字幕中文字幕 | 四色永久 | 亚欧精品一区 | 久久在线 | 欧美天堂| 欧美在线视频一区 | 亚洲导航深夜福利涩涩屋 | 黄色电影在线免费观看 | 成人一区二区三区视频 | 91亚洲国产成人久久精品网站 | 最新中文字幕第一页视频 | 中文字幕亚洲精品在线观看 | 欧美精品乱码久久久久久按摩 | 中文字幕一区二区三区不卡在线 | 99国产精品久久久久老师 |