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

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

QQ登錄

只需一步,快速開始

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

單片機(jī)紅外接收程序(Nokia5110液晶屏顯示)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主


本例程,實(shí)現(xiàn)單片機(jī)紅外接收解碼,并用nokia5110液晶屏來顯示內(nèi)容。完整keil工程文件下載:
http://www.zg4o1577.cn/bbs/dpj-55490-1.html


下面是部分程序代碼的預(yù)覽:
主程序:
  1. #include "IR_Receive.h"
  2. #include "Nokia5110.h"
  3. #include "delay.h"

  4. extern uint8_t  IRcode_Type;//紅外數(shù)據(jù)類型,RCA或NEC8或NEC16
  5. extern uint16_t IRcode[2];  //紅外數(shù)據(jù)中的系統(tǒng)碼IRcode[0],紅外數(shù)據(jù)中的用戶碼IRcode[1]
  6. extern uint32_t RCAcode_Original;//RCA協(xié)議原碼       
  7. extern uint32_t NECcode_Original;//NEC原始數(shù)據(jù)

  8. void main(void)
  9. {
  10.         IRreceiver_Init();
  11.         Nokia5110_Init();
  12.        
  13.         Nokia5110_WriteString(0,0,"*IR_Receiver*");
  14.         Nokia5110_WriteString(2,0,"Rev:**********");                               
  15.         Nokia5110_WriteString(3,0,"CodeType:****");
  16.         Nokia5110_WriteString(4,0,"SysCode :****");
  17.         Nokia5110_WriteString(5,0,"UserCode:****");
  18.         while(1)
  19.         {
  20.                 if(IRdata_Analysis())//解析成功串口打印正確紅外碼值
  21.                 {
  22.                         Nokia5110_Clear(1,5);
  23.                         switch(IRcode_Type)
  24.                         {
  25.                                 case IRcode_TypeRCA:
  26.                                 {
  27.                                         Nokia5110_Printf(2,0,"Rev:",RCAcode_Original,Hex);//打印出未進(jìn)行解析的原始紅外RCA數(shù)據(jù)       
  28.                                         Nokia5110_WriteString(3,0,"CodeType: RCA");
  29.                                         Nokia5110_Printf(4,0,"SysCode : ",IRcode[0],Hex);
  30.                                         Nokia5110_Printf(5,0,"UserCode: ",IRcode[1],Hex);
  31.                                         break;
  32.                                  }
  33.                                 case IRcode_TypeNEC8:
  34.                                 {
  35.                                         Nokia5110_Printf(2,0,"Rev:",NECcode_Original,Hex);//打印出未進(jìn)行解析的原始紅外NEC數(shù)據(jù)       
  36.                                         Nokia5110_WriteString(3,0,"CodeType: NEC8");
  37.                                         Nokia5110_Printf(4,0,"SysCode : ",IRcode[0],Hex);
  38.                                         Nokia5110_Printf(5,0,"UserCode: ",IRcode[1],Hex);
  39.                                         break;
  40.                                  }
  41.                                 case IRcode_TypeNEC16:
  42.                                 {
  43.                                         Nokia5110_Printf(2,0,"Rev:",NECcode_Original,Hex);//打印出未進(jìn)行解析的原始紅外NEC數(shù)據(jù)       
  44.                                         Nokia5110_WriteString(3,0,"CodeType:NEC16");
  45.                                         Nokia5110_Printf(4,0,"SysCode:",IRcode[0],Hex);
  46.                                         Nokia5110_Printf(5,0,"UserCode:",IRcode[1],Hex);
  47.                                         break;
  48.                                  }
  49.                                 default:{break;}
  50.                          }
  51.                         IRcode_Type = IRcode_TypeNone;
  52.                         Buzzer_Speak();//解碼成功,蜂鳴器響
  53.                  }
  54.    }
  55. }
復(fù)制代碼
  1. #include "Nokia5110.h"
  2. #include "ASII_Font.h"
  3. #include "IR_Receive.h"

  4. uint8_t Dex_Hex_Buffer[Length_Max];//數(shù)據(jù)緩沖區(qū)
  5. extern uint8_t  IRcode_Type;//定義收到的紅外數(shù)據(jù)類型

  6. /*************************************************************************************
  7. 函數(shù):void Divide_Dex_Hex(uint32_t Num,uint8_t Format)
  8. 功能:數(shù)據(jù)分離,儲(chǔ)存在緩沖中數(shù)組中,低位~高位=[0]~[Length_Max-1],返回?cái)?shù)據(jù)位數(shù)
  9. *************************************************************************************/
  10. uint8_t Divide_Dex_Hex(uint32_t Num,uint8_t Format)
  11. {
  12.         signed char i=0;
  13.         uint8_t Num_Cnt = 0;

  14.         for(i=0;i<Length_Max;i++) //緩沖清零
  15.         {
  16.                 Dex_Hex_Buffer[i] = '0';
  17.          }

  18.   if(Num == 0)//Num = 0處理
  19.         {
  20.                 if(Format == Dex)return 1;
  21.                 if(Format == Hex)return 2;
  22.          }

  23.         else if(Format == Dex)//把數(shù)據(jù)分離成十進(jìn)制數(shù)
  24.         {
  25.                 i = 0;
  26.                 while(Num)
  27.                 {
  28.                         Dex_Hex_Buffer[i] = Num%10+'0';//處理成ASIIC碼
  29.                         Num /= 10;
  30.                         Num_Cnt++;
  31.                         i++;
  32.                  }       
  33.          }

  34.         else if(Format == Hex)//把數(shù)據(jù)分離成十六進(jìn)制數(shù)
  35.         {
  36.                 i = 0;
  37.                 while(Num)
  38.                 {
  39.                         Dex_Hex_Buffer[i] = Num%16;
  40.                         Num /= 16;
  41.                         Num_Cnt++;
  42.                         i++;
  43.                  }
  44.                 for(i=Num_Cnt-1;i>=0;i--)        //把分離出來的十六進(jìn)制數(shù)據(jù)處理成ASIIC碼
  45.                 {
  46.                         if(Dex_Hex_Buffer[i]<10)
  47.                         {
  48.                                  Dex_Hex_Buffer[i] += 0x30;
  49.                          }
  50.                         else
  51.                         {
  52.                                 Dex_Hex_Buffer[i] = Dex_Hex_Buffer[i]-0x0A+0x41;
  53.                          }
  54.                  }
  55.                 if(Num_Cnt%2)Num_Cnt+=1;  //十六進(jìn)制返回的位數(shù)強(qiáng)制為偶數(shù)                 
  56.          }

  57.         return Num_Cnt;//返回?cái)?shù)據(jù)十進(jìn)制或十六進(jìn)制位數(shù)
  58. }

  59. /*******************************************************
  60. 函數(shù):void Nokia5110_Write(uint8_t dat,bit data_cmd);
  61. 功能:向Nokia5110中寫入數(shù)據(jù)或命令;
  62. *******************************************************/
  63. void Nokia5110_Write(uint8_t dat,bit data_cmd)
  64. {  
  65.   uint8_t i;
  66.   LCD_CE = 0;                              /*使能5110*/
  67.   LCD_DC = data_cmd;                /*DC=1,寫入數(shù)據(jù);DC=0,寫入命令*/
  68.   for(i=0;i<8;i++)
  69.   {
  70.    if(dat&0x80)
  71.          {
  72.            LCD_DIN = 1;                 
  73.                 }
  74.          else
  75.          {
  76.                  LCD_DIN = 0;
  77.                 }
  78.          LCD_CLK = 0;
  79.          dat<<=1;
  80.          LCD_CLK = 1;
  81.    }
  82.   LCD_CE  = 1;                          /*關(guān)閉5110*/
  83. }
  84. /************************************************************************************************
  85. 函數(shù):void Nokia5110_Clear(uint8_t Y_Start, uint8_t Y_End);
  86. 功能:對(duì)Nokia5110選擇性區(qū)域進(jìn)行清屏;
  87. ***********************************************************************************************/
  88. void Nokia5110_Clear(uint8_t Y_Start, uint8_t Y_End)
  89. {  
  90.   uint16_t i;
  91.         uint16_t AreaSize = 0;
  92.        
  93.   Nokia5110_Write(0x80|0x00,CMD);
  94.         Nokia5110_Write(0x40|Y_Start,CMD);
  95.        
  96.         AreaSize = 84*(Y_End-Y_Start+1);
  97.   for(i=0;i<AreaSize;i++)
  98.         {
  99.                 Nokia5110_Write(0x00,DATA);               
  100.          }
  101. }
  102. /*******************************************************
  103. 函數(shù):void Nokia5110_Init();
  104. 功能:對(duì)Nokia5110進(jìn)行初始化;
  105. *******************************************************/
  106. void Nokia5110_Init(void)
  107. {
  108.   delay_us(10);
  109.   LCD_RST = 0;
  110.         delay_us(10);
  111.   LCD_RST = 1;                                   //RST=1  復(fù)位,開始寫數(shù)據(jù)
  112.   Nokia5110_Write(0x21,CMD);  //使用擴(kuò)展指令集,水平尋址
  113.   Nokia5110_Write(0xC5,CMD);        //寫Vop到寄存器
  114.   Nokia5110_Write(0x07,CMD);        //溫度系數(shù)3
  115.   Nokia5110_Write(0x13,CMD);        //偏置值1:48
  116.   Nokia5110_Write(0x20,CMD);  //使用基本指令集,水平尋址
  117.   Nokia5110_Write(0x0C,CMD);  //選擇普通模式
  118.   Nokia5110_Clear(0,5);                         //清屏
  119. }

  120. /*******************************************************
  121. 函數(shù):void Nokia5110_SetRC(uint8_t line,uint8_t lie);
  122. 功能:顯示屏坐標(biāo)設(shè)定,R:line=0~5,C:lie=0~13;
  123. *******************************************************/
  124. void Nokia5110_SetRC(uint8_t line,uint8_t lie)       
  125. {
  126.   lie*=6;
  127.   Nokia5110_Write(0x40|line,CMD);
  128.         Nokia5110_Write(0x80|lie, CMD);
  129. }
  130. /*******************************************************
  131. 函數(shù):void Nokia5110_WriteChar(uint8_t Char);
  132. 功能:向5110液晶屏中寫入一個(gè)字節(jié);
  133. *******************************************************/
  134. void Nokia5110_WriteChar(uint8_t Char)
  135. {
  136.   uint8_t i,j;
  137.         i = Char-0x20;
  138.         for(j=0;j<6;j++)
  139.         {
  140.                 Nokia5110_Write(ASII_Font[i][j],DATA);
  141.          }
  142. }
  143. /*************************************************************************************
  144. 函數(shù):void Nokia5110_WriteString(uint8_t line,uint8_t lie,uint8_t *pString);
  145. 功能:向5110液晶屏指定地址開始寫入字符串;
  146. ************************************************************************************/
  147. void Nokia5110_WriteString(uint8_t line,uint8_t lie,uint8_t *pString)
  148. {
  149.         Nokia5110_SetRC(line,lie);
  150.        
  151.         while(*pString != '\0')
  152.         {
  153.                 Nokia5110_WriteChar(*pString);
  154.                 pString++;
  155.          }
  156. }
  157. /*************************************************************************************
  158. 函數(shù):void Nokia5110_ClearData(uint8_t line,uint8_t lie,uint8_t Length);
  159. 功能:清除指定坐標(biāo)中的指定長度數(shù)據(jù)
  160. ************************************************************************************/
  161. void Nokia5110_ClearData(uint8_t line,uint8_t lie,uint8_t Length)
  162. {
  163.         uint8_t i=0;
  164.         Nokia5110_SetRC(line,lie);
  165.         for(i=0;i<Length;i++)
  166.         {
  167.                 Nokia5110_WriteChar(' ');
  168.          }
  169. }
  170. /***************************************************************************************************
  171. 函數(shù):void Nokia5110_Printf(uint8_t hang,uint8_t,lie,uint8_t *String,uint32_t Value,uint8_t Format);
  172. 功能:以十進(jìn)制或者十六進(jìn)制往5110液晶屏中寫ASIIC數(shù)據(jù);
  173. **************************************************************************************************/
  174. void Nokia5110_Printf(uint8_t hang,uint8_t lie,uint8_t *pString,uint32_t Value,uint8_t Format)
  175. {
  176.         uint8_t i;
  177.         static uint8_t SysCode4Bit_Flag = 0;//系統(tǒng)碼為4位標(biāo)志位,用于顯示NEC16系統(tǒng)碼高八位為0
  178.         uint8_t Num_Cnt = 0;

  179.         Num_Cnt = Divide_Dex_Hex(Value,Format);
  180.        
  181.         if((IRcode_Type==IRcode_TypeRCA)&&(Num_Cnt==4))//處理RCA系統(tǒng)碼為0的情況,原碼需要把00顯示出來
  182.         {
  183.                 Num_Cnt = 6;
  184.    }
  185.         if((IRcode_Type==IRcode_TypeNEC8)&&(Num_Cnt==6))//處理NEC8系統(tǒng)碼為0的情況,原碼需要把00顯示出來
  186.         {
  187.                 Num_Cnt = 8;
  188.    }
  189.         if((IRcode_Type==IRcode_TypeNEC16)&&(Num_Cnt==6))//處理NEC16系統(tǒng)碼高八位為0的情況,原碼需要把00顯示出來
  190.         {
  191.                 Num_Cnt = 8;
  192.                 SysCode4Bit_Flag = 1;
  193.    }
  194.         if((SysCode4Bit_Flag==1)&&(Num_Cnt==2))//處理NEC16系統(tǒng)碼高八位為0的情況,系統(tǒng)碼需要把00顯示出來
  195.         {
  196.                 SysCode4Bit_Flag = 0;
  197.                 Num_Cnt = 4;
  198.    }
  199.                
  200.         Nokia5110_WriteString(hang,lie,pString);
  201.         if(Format==Hex)
  202.         {
  203.                 Nokia5110_WriteChar('0');
  204.                 Nokia5110_WriteChar('x');
  205.          }

  206.         for(i=0;i<Num_Cnt;i++)
  207.         {
  208.                 Nokia5110_WriteChar(Dex_Hex_Buffer[(Num_Cnt-1)-i]);
  209.          }
  210. }
復(fù)制代碼

  1. #include "STC89Cx_it.h"
  2. #include "IR_Receive.h"

  3. //紅外解碼原理:把紅外中的載波解調(diào)成低電平,把紅外中的低電平解調(diào)成高電平輸出
  4. //識(shí)別原理:識(shí)別一個(gè)完整周期的高低電平總時(shí)間來識(shí)別頭碼和"0"或"1"的值

  5. #define Rev_Header      0x00          //數(shù)據(jù)接收狀態(tài):接收頭碼0xAA或oxAB
  6. #define Rev_Length      0x01          //數(shù)據(jù)接收狀態(tài):接收頭碼數(shù)據(jù)包長度
  7. #define Rev_DataPackage 0x02         //數(shù)據(jù)接收狀態(tài):接收數(shù)據(jù)包

  8. extern uint8_t IRcode_Type;                          //聲明收到的紅外數(shù)據(jù)類型
  9. extern uint8_t IRdataReceive_Flag;//聲明接收紅外數(shù)據(jù)狀態(tài),等待or接收中or接收完畢
  10. extern uint32_t IRcode_Buffer;                //紅外數(shù)據(jù)緩存
  11. uint8_t CycleTime = 0;                                 //存儲(chǔ)完整周期時(shí)間(高電平+低電平)
  12. /**********************************************
  13. 函數(shù):void INT0_Handler(void);
  14. 功能:外部中斷0中斷處理函數(shù);
  15. ***********************************************/
  16. void INT0_Handler(void) interrupt 0
  17. {
  18. }

  19. /**********************************************
  20. 函數(shù):void TIME0_Handler(void);
  21. 功能:定時(shí)器0中斷處理函數(shù);
  22. ***********************************************/
  23. void TIME0_Handler(void) interrupt 1
  24. {
  25.         CycleTime++;
  26.         if(CycleTime==255)CycleTime=0;         
  27. }

  28. /**********************************************
  29. 函數(shù):void INT1_Handler(void);
  30. 功能:外部中斷1中斷處理函數(shù);
  31. ***********************************************/
  32. void INT1_Handler(void) interrupt 2
  33. {
  34.         static uint8_t EnterINT0_CNT = 0;//存儲(chǔ)進(jìn)入外部中斷次數(shù)
  35.         static uint8_t Rev_State = Rev_Header;//定義接收狀態(tài)
  36.         uint8_t CycleTime_Buffer=0;                         //周期時(shí)間緩沖變量
  37.        
  38.         EnterINT0_CNT++;                                                                 //每進(jìn)入中斷一次加1
  39.         //第一次進(jìn)入中斷周期清零,打開定時(shí)器0準(zhǔn)備計(jì)時(shí)
  40.         if(EnterINT0_CNT==1)
  41.         {
  42.                 CycleTime=0;
  43.                 IRcode_Buffer=0;
  44.                 TR0=1;
  45.          }
  46.         else//之后先讀時(shí)間,再進(jìn)行清零
  47.         {
  48.                 CycleTime_Buffer=CycleTime;
  49.                 CycleTime = 0;
  50.          }
  51.          
  52.          //開始識(shí)別頭碼
  53.         if((Rev_State==Rev_Header)&&(EnterINT0_CNT==2))         
  54.         {
  55.                 Rev_State = Rev_DataPackage;
  56.                 if((CycleTime_Buffer>60)&&(CycleTime_Buffer<100))                         //頭碼時(shí)間位于6.0ms~10ms則為RCA碼(標(biāo)準(zhǔn)8ms)
  57.                 {
  58.                         IRcode_Type = IRcode_TypeRCA;
  59.                  }
  60.                 else if((CycleTime_Buffer>110)&&(CycleTime_Buffer<160))//頭碼時(shí)間位于11ms~16ms(必須是大于11ms)則為NEC碼(標(biāo)準(zhǔn)13.5ms)
  61.                 {
  62.                         IRcode_Type = IRcode_TypeNEC8;
  63.                  }
  64.                 else//如果都不是,則認(rèn)為沒有收到頭碼
  65.                 {
  66.                         TR0=0;
  67.                         IRcode_Buffer = 0;
  68.                         EnterINT0_CNT = 0;
  69.                         Rev_State = Rev_Header;
  70.                  }
  71.          }
  72.          
  73.         if((Rev_State==Rev_DataPackage)&&(EnterINT0_CNT>2))//開始解碼
  74.         {
  75.                 IRcode_Buffer <<= 1;
  76.                 switch(IRcode_Type)
  77.                 {
  78.                         case IRcode_TypeRCA:
  79.                         {
  80.                                 if((CycleTime_Buffer>10)&&(CycleTime_Buffer<20))//碼值時(shí)間位于1.0ms~2.0ms則為RCA'1'(標(biāo)準(zhǔn)1.5ms)
  81.                                 {
  82.                                         IRcode_Buffer |= (uint32_t)0x01;
  83.                                  }
  84.                                 else if((CycleTime_Buffer>20)&&(CycleTime_Buffer<30))//碼值時(shí)間位于1.0ms~2.0ms則為RCA'0'(標(biāo)準(zhǔn)2.5ms)
  85.                                 {
  86.                                         IRcode_Buffer |= (uint32_t)0x00;
  87.                                  }
  88.                                 else
  89.                                 {
  90.                                         TR0=0;
  91.                                         IRcode_Buffer = 0;
  92.                                         EnterINT0_CNT = 0;
  93.                                         Rev_State = Rev_Header;
  94.                                  }
  95.                                 break;
  96.                          }
  97.                         case IRcode_TypeNEC8:
  98.                         {
  99.                                 if((CycleTime_Buffer>6)&&(CycleTime_Buffer<16))//碼值時(shí)間位于0.6ms~1.6ms則為NEC'0'(標(biāo)準(zhǔn)1.124ms)
  100.                                 {
  101.                                         IRcode_Buffer |= (uint32_t)0x00;
  102.                                  }
  103.                                 else if((CycleTime_Buffer>16)&&(CycleTime_Buffer<28))//碼值時(shí)間位于1.6ms~2.8ms則為NEC'1'(標(biāo)準(zhǔn)2.25ms)
  104.                                 {
  105.                                         IRcode_Buffer |= (uint32_t)0x01;
  106.                                  }
  107.                                 else
  108.                                 {
  109.                                         TR0=0;
  110.                                         IRcode_Buffer = 0;
  111.                                         EnterINT0_CNT = 0;
  112.                                         Rev_State = Rev_Header;
  113.                            }
  114.                                 break;
  115.                          }
  116.                  }
  117.                  
  118.                 if(((EnterINT0_CNT==26)&&((IRcode_Type==IRcode_TypeRCA)))||((EnterINT0_CNT==34)&&((IRcode_Type==IRcode_TypeNEC8))))//RCA碼加頭碼25,NEC碼加頭碼33位,解碼進(jìn)入中斷次數(shù)分別為26和34
  119.                 {
  120.                         TR0=0;//解碼完畢關(guān)閉定時(shí)器
  121.                         EnterINT0_CNT=0;
  122.                         IRdataReceive_Flag=IRdataReceive_Success;
  123.                         Rev_State = Rev_Header;//準(zhǔn)備下一次接收
  124.                  }
  125.          }
  126. }
  127. /**********************************************
  128. 函數(shù):void TIME1_Handler(void);
  129. 功能:定時(shí)器1中斷處理函數(shù);
  130. ***********************************************/
  131. void TIME1_Handler(void) interrupt 3
  132. {
  133. }

  134. /**********************************************
  135. 函數(shù):void USART_Handler(void);
  136. 功能:串口中斷處理函數(shù);
  137. ***********************************************/
  138. void USART_Handler(void) interrupt 4
  139. {

  140. }

  141. /**********************************************
  142. 函數(shù):void TIME2_Handler(void);
  143. 功能:定時(shí)器2中斷處理函數(shù);
  144. ***********************************************/
  145. void TIME2_Handler(void) interrupt 5
  146. {
  147.          
  148. }
復(fù)制代碼




評(píng)分

參與人數(shù) 1黑幣 +2 收起 理由
tstzyk + 2

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:79544 發(fā)表于 2018-3-28 17:08 | 只看該作者
沒有試驗(yàn)不知道好用不。還得感謝分享!!贊
回復(fù)

使用道具 舉報(bào)

板凳
ID:299539 發(fā)表于 2018-3-30 17:11 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

地板
ID:342790 發(fā)表于 2018-6-13 20:21 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

5#
ID:791490 發(fā)表于 2020-6-28 16:53 | 只看該作者
這個(gè)有帶仿真原理圖嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 超碰免费观看 | 免费在线观看黄色av | 成人午夜激情 | 国产精品一区二区三级 | 日韩福利片 | 精品欧美一区免费观看α√ | 中文字幕在线观看视频网站 | 久操av在线 | 国产玖玖| 亚洲 中文 欧美 日韩 在线观看 | 黄色av网站在线观看 | 国产成人精品久久二区二区91 | 美女人人操 | 日韩精品免费在线观看 | 国产精品一区二区无线 | 国产精品国产三级国产aⅴ中文 | 国产成人精品综合 | 成人在线观看免费爱爱 | 国产一区二区三区在线看 | 亚洲精品欧美 | 色吊丝2288sds中文字幕 | 一级毛片播放 | 超碰在线国产 | 国产一区| 搞黄网站在线观看 | 日韩精品一区二区三区视频播放 | 中文字幕亚洲欧美日韩在线不卡 | 亚洲视频免费观看 | 一区二区影院 | 国产精品2 | 日韩欧美精品在线 | 日本在线视 | 午夜精品久久久 | 欧美性猛交一区二区三区精品 | 日本精品一区二区三区在线观看视频 | 五月综合激情在线 | 日韩av第一页 | 91久久精品日日躁夜夜躁国产 | 中文在线亚洲 | 亚洲美女一区 | 久久精品亚洲精品 |