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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

哪位大神可以教教我該如何接線

[復制鏈接]
跳轉到指定樓層
樓主
ID:262337 發表于 2017-12-16 13:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include < reg52.h >
  2. #include < intrins.h >
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit LEDB=P1^0; //---LED藍燈
  6. sbit LEDR=P1^1;  //LED紅燈
  7. sbit LEDG=P1^2; //LED綠色
  8. sbit LEDC=P1^3;//白的燈泡
  9. bit ledjc=0;//led檢測 ,
  10. sbit k1=P1^4;  //---按鍵1
  11. sbit k2=P1^5;  //---按鍵2
  12. sbit k3=P1^6;  //---按鍵3
  13. sbit stop=P1^7;  //---按鍵4
  14. sbit DQ1 = P2^0;    //溫度顯示
  15. sbit E=P2^7;        //1602使能引腳
  16. sbit RW=P2^6;       //1602讀寫引腳  
  17. sbit RS=P2^5;       //1602數據/命令選擇引腳
  18. ucharrcount,bCount,yCount,rZKB,bZKB,yZKB,temp;
  19. uchar TempBuffer[5],temp_value,play,wendu;
  20. uchar ge,shi,bai,num,wendu,play,mode;
  21. uint PWM_LOW=0;//定義周期并賦值
  22. uint bCYCLE=900,rCYCLE=700,gCYCLE=600;
  23. void inti();
  24. void keyscan();
  25. void display();
  26. void display1();
  27. void display2();
  28. void fuction();
  29. void delayms(uint z);
  30. void Delay(unsigned int t); //函數聲明
  31. void show_temperture();
  32. uchar key();
  33. void Delay(uint t);
  34. /********************************************************************
  35. * 名稱 :delay()
  36. * 功能 : 延時,延時時間大概為5US。
  37. * 輸入 : 無
  38. * 輸出 : 無
  39. ***********************************************************************/
  40. void delay()
  41. {
  42.     _nop_();
  43.     _nop_();
  44.     _nop_();
  45.     _nop_();
  46.     _nop_();
  47. }     
  48. void delayms(uint z)
  49. {
  50. uint x,y;
  51. for(x=z;x>0;x--)
  52. for(y=110;y>0;y--);
  53. }
  54. /********************************************************************
  55. * 名稱 : bitBusy(void)
  56. * 功能 : 這個是一個讀狀態函數,讀出函數是否處在忙狀態
  57. * 輸入 : 輸入的命令值
  58. * 輸出 : 無
  59. ***********************************************************************/
  60. bit Busy(void)
  61. {
  62.     bitbusy_flag = 0;
  63.     RS= 0;
  64.     RW= 1;
  65.     E= 1;
  66.     delay();
  67.     busy_flag= (bit)(P0 & 0x80);
  68.     E= 0;
  69.     returnbusy_flag;
  70. }
  71. /********************************************************************
  72. * 名稱 :wcmd(uchar del)
  73. * 功能 : 1602命令函數
  74. * 輸入 : 輸入的命令值
  75. * 輸出 : 無
  76. ***********************************************************************/
  77. void wcmd(uchar del)
  78. {
  79.     while(Busy());
  80.     RS= 0;
  81.     RW= 0;
  82.     E= 0;
  83.     delay();
  84.     P0= del;
  85.     delay();
  86.     E= 1;
  87.     delay();
  88.     E= 0;
  89. }
  90. /********************************************************************
  91. * 名稱 :wdata(uchar del)
  92. * 功能 : 1602寫數據函數
  93. * 輸入 : 需要寫入1602的數據
  94. * 輸出 : 無
  95. ***********************************************************************/
  96. void wdata(uchar del)
  97. { while(Busy());
  98.     RS= 1;
  99.     RW= 0;
  100.     E= 0;
  101.     delay();
  102.     P0= del;
  103.    delay();
  104.     E= 1;
  105.     delay();
  106.     E= 0;
  107. }
  108. /********************************************************************
  109. * 名稱 :L1602_init()
  110. * 功能 : 1602初始化,請參考1602的資料
  111. * 輸入 : 無
  112. * 輸出 : 無
  113. ***********************************************************************/
  114. void L1602_init(void)
  115. {
  116.     wcmd(0x38);
  117.     delay();
  118.     wcmd(0x38);
  119.     delay();
  120.     wcmd(0x38);
  121.     delay();
  122.     wcmd(0x38);
  123.     delay();
  124.     wcmd(0x0c);
  125.     wcmd(0x06);
  126.     delay();
  127.     wcmd(0x01);
  128. }
  129. /********************************************************************
  130. * 名稱 :L1602_char(uchar hang,uchar lie,char sign)
  131. * 功能 : 改變液晶中某位的值,如果要讓第一行,第五個字符顯示"b" ,調用該函數如下
  132.          L1602_char(1,5,'b')
  133. * 輸入 : 行,列,需要輸入1602的數據
  134. * 輸出 : 無
  135. ***********************************************************************/
  136. void L1602_char(uchar hang,ucharlie,uchar sign)
  137. {  
  138.    uchar a;
  139.     if(hang== 1) a = 0x80;
  140.     if(hang== 2) a = 0xc0;
  141.     a= a + lie - 1;
  142.     wcmd(a);
  143.     wdata(0x30+sign);
  144. }
  145. /********************************************************************
  146. * 名稱 :L1602_string(uchar hang,uchar lie,uchar *p)
  147. * 功能 : 改變液晶中某位的值,如果要讓第一行,第五個字符開始顯示"ab cd ef" ,調用該函數如下
  148.          L1602_string(1,5,"ab cd ef;")
  149. * 輸入 : 行,列,需要輸入1602的數據
  150. * 輸出 : 無
  151. ***********************************************************************/
  152. void L1602_string(uchar hang,ucharlie,uchar *p)
  153. {
  154.     uchara,b=0;
  155.     if(hang== 1) a = 0x80;
  156.     if(hang== 2) a = 0xc0;
  157.     a= a + lie - 1;
  158.     while(1)
  159.     {
  160.         wcmd(a++);
  161.         b++;
  162.         if((*p == '\0')||(b==16)) break;
  163.         wdata(*p);
  164.         p++;
  165.     }
  166. }
  167. /**********************************************************/
  168. // 定時器 0中斷服務程序.
  169. /*********************************************************/
  170. void timer0() interrupt 1  
  171. {  
  172.    TH0=(65536-10)/256;//裝入初值,定時50ms;
  173.    TL0=(65536-10)%256;
  174.     rcount++;
  175.     bCount++;
  176.     yCount++;
  177.    if(rcount>599) rcount=0;
  178.     if(bCount>599)bCount=0;
  179.     if(yCount>599)yCount=0;
  180. if (rcount>=rZKB)
  181. {LEDG=1;}
  182. else
  183. {LEDG=0;}
  184. if (yCount>=yZKB)
  185. {LEDR=1;}
  186. else
  187. {LEDR=0;}
  188. if (bCount>=bZKB)
  189. {LEDB=1;}
  190. else
  191. {LEDB=0;}
  192. }
  193. void w1()
  194. {   rZKB++;
  195.          if(rZKB>=600&&rZKB<600)
  196.        rZKB=599;
  197.        if(rZKB>=600)   
  198.        rZKB = 0;
  199.         //num=0;
  200.         }
  201. void w2()
  202. {
  203.    bZKB ++;
  204.          if(bZKB>=600&&bZKB<600)
  205.        bZKB=599;
  206.        if(bZKB>=600)   
  207.        bZKB = 0;
  208.         //num=0;
  209. }
  210. void w3()
  211. {  delay();
  212.        yZKB ++;
  213.          if(yZKB>=600&&yZKB<600)
  214.        yZKB=599;
  215.        if(yZKB>=600)   
  216.        yZKB = 0;
  217.         //num=0;
  218. }
  219.           //啟動輸出
  220. void w4()
  221. {
  222.      if((rZKB<=600)&&(0==ledjc))
  223.      {
  224.        rZKB+=8;
  225.        if(rZKB>600)   
  226.        {
  227.        ledjc=1;
  228.        rZKB=600;
  229.        }
  230.        }
  231.        if((rZKB>=0)&&(1==ledjc))
  232.      {
  233.        rZKB-=8;
  234.        if(rZKB<0)     
  235.        {
  236.        ledjc=0;
  237.        rZKB=0;
  238.        }
  239.         num=0;
  240. }
  241. }
  242. void w5()
  243. {
  244.    bZKB +=8;
  245.          if(bZKB>=600&&bZKB<600)
  246.        bZKB=599;
  247.        if(bZKB>=600)   
  248.        bZKB = 0;
  249.         num=0;
  250. }
  251.   void w6()
  252. {        
  253.         //delay();
  254.           yZKB +=8;
  255.          if(yZKB>=600&&yZKB<600)
  256.        yZKB=599;
  257.        if(yZKB>=600)   
  258.        yZKB = 0;
  259.         num=0;
  260. }
  261. /*********************************************************/
  262. // 定時器初始化
  263. /*********************************************************/
  264. void inti()
  265.   {
  266.    TMOD=0x1;//T0方式1工作
  267.    IE=0x82;//EA=1;允許所有中斷,ET0==1;允許T0中斷
  268.     TH0=(65536-8)/256;//裝入初值,定時50ms;
  269.    TL0=(65536-8)%256;
  270.    TR0=1;//啟動定時器
  271.   }
  272. /*******************************************************
  273. //LCD1602占空比顯示程序
  274. *******************************************************/
  275. void display()
  276. {
  277.     L1602_string(1,1,"B");
  278.      bai=(uchar)rZKB/100;
  279.      shi=(uchar)rZKB%100/10;
  280.        ge=(uchar)rZKB%10;
  281.         delay();
  282.        L1602_char(1,2,bai);
  283.         L1602_char(1,3,shi);
  284.         L1602_string(1,4,".");
  285.         L1602_char(1,5,ge);
  286.        L1602_string(1,6,"%");
  287.     }
  288. void display1()
  289. {
  290.    L1602_string(1,8,"R");
  291.      bai=(uchar)bZKB/100;
  292.      shi=(uchar)bZKB%100/10;
  293.        ge=(uchar)bZKB%10;
  294.         delay();
  295.        L1602_char(1,9,bai);
  296.         L1602_char(1,10,shi);
  297.         L1602_string(1,11,".");
  298.         L1602_char(1,12,ge);
  299.         L1602_string(1,13,"%");  
  300. }
  301. void display2()
  302. {
  303.   
  304.         L1602_string(2,1,"G");
  305.         bai=(uchar)yZKB/100;
  306.         shi=(uchar)yZKB%100/10;
  307.        ge=(uchar)yZKB%10;
  308.         delay();
  309.        L1602_char(2,2,bai);
  310.         L1602_char(2,3,shi);
  311.         L1602_string(2,4,".");
  312.         L1602_char(2,5,ge);
  313.        L1602_string(2,6,"%");
  314.         }
  315. /*------------------------------------------------
  316. 延時函數,含有輸入參數 unsigned int t,無返回值
  317. unsigned int 是定義無符號整形變量,其值的范圍是
  318. 0~65535
  319. ------------------------------------------------*/
  320. void Delay(uint t)
  321. {
  322. while(--t);
  323. }
  324. /*------------------------------------------------
  325.                     自動播放
  326. ------------------------------------------------*/
  327. void display3 ()
  328. {
  329. while (1)         //主循環
  330. {
  331.   show_temperture();
  332.      LEDB=1;
  333. Delay(60000);        //特意加延時,可以看到熄滅的過程
  334. for(PWM_LOW=1;PWM_LOW<bCYCLE;PWM_LOW++)
  335. {//PWM_LOW表示低
  336. //電平時間,這個循環中低電平時長從1累加到CYCLE(周期)的值,即600次
  337.        LEDB=0;        //點亮LED  
  338.        Delay(PWM_LOW);//延時長度,600次循環中從1加至599
  339.        LEDB=1;        //熄滅LED
  340.         Delay(bCYCLE-PWM_LOW);//延時長度,600次循環中從599減至1      
  341.   }
  342. LEDB=0;         
  343. for(PWM_LOW=bCYCLE-1;PWM_LOW>0;PWM_LOW--)
  344. {//與逐漸變亮相反的過程
  345.         LEDB=0;
  346.        Delay(PWM_LOW);
  347.        LEDB=1;
  348.         Delay(bCYCLE-PWM_LOW);
  349.                  }
  350. /********************************************
  351. //紅燈
  352. *****************************************/
  353.     LEDR=1;
  354. Delay(60000);        //特意加延時,可以看到熄滅的過程
  355.   for(PWM_LOW=1;PWM_LOW<rCYCLE;PWM_LOW++)
  356. {//PWM_LOW表示低
  357. //電平時間,這個循環中低電平時長從1累加到CYCLE(周期)的值,即600次
  358.         LEDR=0;        //點亮LED  
  359.        Delay(PWM_LOW);//延時長度,600次循環中從1加至599
  360.        LEDR=1;        //熄滅LED
  361.         Delay(rCYCLE-PWM_LOW);//延時長度,600次循環中從599減至1     
  362.   }
  363.    LEDR=0;
  364. for(PWM_LOW=rCYCLE-1;PWM_LOW>0;PWM_LOW--)
  365. {//與逐漸變亮相反的過程
  366.         LEDR=0;
  367.        Delay(PWM_LOW);
  368.        LEDR=1;
  369.         Delay(rCYCLE-PWM_LOW);
  370.         }
  371. /********************************************
  372. //綠燈燈
  373. *****************************************/
  374. LEDG=1;
  375. Delay(60000);        //特意加延時,可以看到熄滅的過程
  376. for(PWM_LOW=1;PWM_LOW<bCYCLE;PWM_LOW++)
  377. {//PWM_LOW表示低
  378. //電平時間,這個循環中低電平時長從1累加到CYCLE(周期)的值,即600次
  379.         LEDG=0;        //點亮LED  
  380.        Delay(PWM_LOW);//延時長度,600次循環中從1加至599
  381.        LEDG=1;        //熄滅LED
  382.         Delay(bCYCLE-PWM_LOW);//延時長度,600次循環中從599減至1
  383.   }
  384.   LEDB=0;
  385.   for(PWM_LOW=bCYCLE-1;PWM_LOW>0;PWM_LOW--)
  386. {//與逐漸變亮相反的過程
  387.         LEDG=0;
  388.        Delay(PWM_LOW);
  389.        LEDG=1;
  390.         Delay(bCYCLE-PWM_LOW);
  391.    }
  392.    if(stop==1);
  393.     break;                //主循環中添加其他需要一直工作的程序
  394. }
  395.     }
  396.      
  397. /*********************************************************/
  398. // 鍵盤掃描
  399. /*********************************************************/
  400. void keyscan()
  401. {  
  402.    inti();
  403.        if(k1==0)
  404.        w1();
  405.        if(k2==0)  
  406.        w2();
  407.         if(k3==0)
  408.         w3();
  409.         }         
  410. /****************************************************
  411. //矩陣鍵盤調用
  412. *****************************************************/
  413. uchar key()
  414. {
  415.     P3=0xfe;
  416.     temp=P3;
  417.     temp=temp&0xf0;
  418.     while(temp!=0xf0)
  419.     {
  420.         delayms(5);
  421.         temp=P3;
  422.         temp=temp&0xf0;
  423.         while(temp!=0xf0)
  424.         {   temp=P3;
  425.             switch(temp)
  426.             {
  427.                 case 0xee:num=1;
  428.                 break;
  429.                 case 0xde:num=2;
  430.                 break;
  431.                 case 0xbe:num=3;
  432.                 break;
  433.                 case 0x7e:num=4;
  434.                 break;
  435.                 }
  436.             while(temp!=0xf0)
  437.             {
  438.                 temp=P3;
  439.                 temp=temp&0xf0;
  440.                 }
  441.               }
  442.               }
  443.         P3=0xfd;
  444.     temp=P3;
  445.     temp=temp&0xf0;
  446.     while(temp!=0xf0)
  447.     {
  448.         delayms(5);
  449.         temp=P3;
  450.         temp=temp&0xf0;
  451.         while(temp!=0xf0)
  452.         {   temp=P3;
  453.             switch(temp)
  454.             {
  455.                 case 0xed:num=5;
  456.                 break;
  457.                 case 0xdd:num=6;
  458.                 break;
  459.                 case 0xbd:num=7;
  460.                 break;
  461.                 case 0x7d:num=8;
  462.                 break;
  463.                 }
  464.             while(temp!=0xf0)
  465.             {
  466.                 temp=P3;
  467.                 temp=temp&0xf0;
  468.                 }
  469.               }
  470.               }
  471.             P3=0xfb;
  472.     temp=P3;
  473.     temp=temp&0xf0;
  474.     while(temp!=0xf0)
  475.     {
  476.         delayms(5);
  477.         temp=P3;
  478.         temp=temp&0xf0;
  479.         while(temp!=0xf0)
  480.         {   temp=P3;
  481.             switch(temp)
  482.             {
  483.                 case 0xeb:num=9;
  484.                 break;
  485.                 case 0xdb:num=10;
  486.                 break;
  487.                 case 0xbb:num=11;
  488.                 break;
  489.                 case 0x7b:num=12;
  490.                 break;
  491.                 }
  492.             while(temp!=0xf0)
  493.             {
  494.                 temp=P3;
  495.                 temp=temp&0xf0;
  496.                 }
  497.               }
  498.               }
  499.          P3=0xf7;
  500.     temp=P3;
  501.     temp=temp&0xf0;
  502.     while(temp!=0xf0)
  503.     {
  504.         delayms(5);
  505.         temp=P3;
  506.         temp=temp&0xf0;
  507.         while(temp!=0xf0)
  508.         {   temp=P3;
  509.             switch(temp)
  510.             {
  511.                 case 0xe7:num=13;
  512.                 break;
  513.                 case 0xd7:num=14;
  514.                 break;
  515.                 case 0xb7:num=15;
  516.                 break;
  517.                 case 0x77:num=16;
  518.                 break;
  519.                 }
  520.             while(temp!=0xf0)
  521.             {
  522.                 temp=P3;
  523.                 temp=temp&0xf0;
  524.                 }
  525.               }
  526.               }
  527.         return num;
  528.         }
  529. /***********ds18b20子程序*************************/
  530. /***********ds18b20延遲子函數(晶振12MHz )*******/
  531. void delay_18B20(unsigned int i)
  532. {
  533.     while(i--);
  534. }
  535. /**********ds18b20初始化函數**********************/
  536. void Init_DS18B20(void)
  537. {
  538.      unsigned char x=0;
  539.      DQ1 = 1;          //DQ復位
  540.      delay_18B20(8);  //稍做延時
  541.      DQ1 = 0;         //單片機將DQ拉低
  542.      delay_18B20(80); //精確延時 大于 480us
  543.      DQ1 = 1;          //拉高總線
  544.      delay_18B20(14);
  545.      x=DQ1;            //稍做延時后 如果x=0則初始化成功 x=1則初始
  546.      delay_18B20(20);
  547. }
  548. /***********ds18b20讀一個字節**************/
  549. unsigned char ReadOneChar(void)
  550. {
  551.     uchari=0;
  552.     uchardat = 0;
  553.     for(i=8;i>0;i--)
  554.      {
  555.           DQ1= 0; // 給脈沖信號
  556.          dat>>=1;
  557.           DQ1= 1; // 給脈沖信號
  558.          if(DQ1)
  559.          dat|=0x80;
  560.          delay_18B20(4);
  561.      }
  562.     return(dat);
  563. }
  564. /*************ds18b20寫一個字節****************/
  565. void WriteOneChar(uchar dat)
  566. {
  567.     unsigned char i=0;
  568.     for (i=8; i>0; i--)
  569.     {
  570.         DQ1 =0;
  571.         DQ1= dat&0x01;
  572.     delay_18B20(5);
  573.         DQ1= 1;
  574.     dat>>=1;
  575. }
  576. }
  577. /**************讀取ds18b20當前溫度************/
  578. void ReadTemp(void)
  579. {   unsignedchar a=0;
  580.     unsignedchar b=0;
  581.     unsignedchar t=0;
  582.     Init_DS18B20();
  583.     WriteOneChar(0xCC);      // 跳過讀序號列號的操作
  584.     WriteOneChar(0x44); // 啟動溫度轉換
  585.     delay_18B20(100);       // this message is Very important
  586.     Init_DS18B20();
  587.     WriteOneChar(0xCC); //跳過讀序號列號的操作
  588.     WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個寄存器)
  589.     delay_18B20(100);
  590.     a=ReadOneChar();     //讀取溫度值低位
  591.     b=ReadOneChar();        //讀取溫度值高位
  592.     temp_value=b<<4;
  593.     temp_value+=(a&0xf0)>>4;               
  594. }
  595. void temp_to_str()   //溫度數據轉換成液晶字符顯示
  596. {
  597. TempBuffer[0]=temp_value/10+'0'; //十位
  598. TempBuffer[1]=temp_value%10+'0'; //個位
  599. TempBuffer[2]=0xdf;   //溫度符號
  600. TempBuffer[3]='C';
  601. TempBuffer[4]='\0';
  602. }
  603. void show_temperture()   //液晶顯示程序
  604. {
  605.   ReadTemp();                    //開啟溫度采集程序
  606. temp_to_str();            //溫度數據轉換成液晶字符
  607. L1602_string(2,7,"temp1:");
  608. L1602_string(2,13,TempBuffer);            //顯示溫度
  609. }
  610. voidTEM_INIT()
  611. {
  612.         Init_DS18B20( );      //DS18B20初始化
  613. }
  614. void fuction()
  615. {       if(key()==1)
  616.        w4();
  617.       if(key()==2)        
  618.        w5();
  619.     if(key()==3)   
  620.         w6();      
  621. }
  622. /*************************************************
  623.   //主函數
  624.     ***************************************************/
  625.     voidmain()
  626. {
  627.   //inti();
  628.    LEDC=0;
  629.   L1602_string(1,1,"Instructor ZHF");
  630.   L1602_string(2,1,"Produced by MZM");
  631.   delayms(500);
  632.   L1602_init();
  633.   TEM_INIT();
  634.   display3 ();
  635. while(1)
  636. {      //display3 ();
  637.      //keyscan ();
  638.          keyscan ();
  639.        fuction  ();
  640.         display ();
  641.         display1 ();
  642.     display2 ();
  643.         //display3 ();
  644.                      }
  645.             }
  646.   
  647.    
復制代碼


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

使用道具 舉報

沙發
ID:242623 發表于 2017-12-16 22:09 | 只看該作者
sbit LEDB=P1^0; //---LED藍燈
sbit LEDR=P1^1;  //LED紅燈
sbit LEDG=P1^2; //LED綠色
sbit LEDC=P1^3;//白的燈泡
bit ledjc=0;//led檢測 ,
sbit k1=P1^4;  //---按鍵1
sbit k2=P1^5;  //---按鍵2
sbit k3=P1^6;  //---按鍵3
sbit stop=P1^7;  //---按鍵4
sbit DQ1 = P2^0;    //溫度顯示
sbit E=P2^7;        //1602使能引腳
sbit RW=P2^6;       //1602讀寫引腳  
sbit RS=P2^5;       //1602數據/命令選擇引腳   定義了引腳呀
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久51| 中文在线播放 | 国产精品视频播放 | 粉嫩粉嫩芽的虎白女18在线视频 | 黄色一级大片在线免费看产 | 日韩精品视频在线观看一区二区三区 | 一级黄色毛片子 | 日韩成人在线免费视频 | 中文字幕免费视频 | 日韩二区 | 亚洲成人av | 日韩高清国产一区在线 | 韩日av片| a级片在线 | 91视频大全 | 精品国产一区二区三区性色av | 国产亚洲精品综合一区 | 一级黄色片网站 | 天堂av在线影院 | 涩涩视频在线观看 | 日韩久久网 | 欧美成人一区二免费视频软件 | 成人在线免费观看 | 亚洲国产欧美精品 | 日本aaa视频| 欧美亚洲视频在线观看 | 99视频免费在线观看 | 精品成人在线观看 | 久久久久久久久一区 | 成人在线视频一区 | 午夜天堂精品久久久久 | 国产女人与拘做视频免费 | 日本黄色免费大片 | 午夜精品导航 | 另类一区 | 亚洲国产一区二区三区在线观看 | 99精品视频一区二区三区 | 日韩精品一区在线观看 | 欧洲一级毛片 | 久久国产精99精产国高潮 | 亚洲自拍偷拍av |