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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 16241|回復(fù): 29
收起左側(cè)

基于RS485總線的溫濕度監(jiān)控網(wǎng)絡(luò)設(shè)計(jì) 帶上位機(jī) 下位機(jī)

  [復(fù)制鏈接]
ID:137190 發(fā)表于 2016-9-8 15:36 | 顯示全部樓層 |閱讀模式
   忙活了好久終于做出了溫濕度采集和485的多機(jī)通信,還有上位機(jī)。本系統(tǒng)完成的功能有:各個(gè)從機(jī)采集數(shù)據(jù)傳送給主機(jī)再由主機(jī)傳送到上位機(jī),下位機(jī)同時(shí)可以接受上位機(jī)的控制,來改變溫濕度。找了好久發(fā)現(xiàn)網(wǎng)上這方面的資料很不全,而且大部分不能用,現(xiàn)將資料全部共享,方便大家學(xué)習(xí)交流,有不足之處,還請各位多提意見建議。
先上幾張作品圖,預(yù)覽預(yù)覽,呵呵···

    傳感器是 奧松 的,型號為AM2301(又名DHT21),挺好用的,傳輸距離可達(dá)到20米,本人已通過實(shí)地驗(yàn)證。上位機(jī)是用VC做的,版本為VC6.0,界面做了簡單的美化,用到了不少控件,按鍵類、Edit類、圖表類等等。
上位機(jī)、下位程序、以及用到的芯片及參考資料現(xiàn)打包上傳

0.png


0.png 0.png


參考資料.zip

1.26 MB, 下載次數(shù): 363, 下載積分: 黑幣 -5

程序.7z

5.49 MB, 下載次數(shù): 426, 下載積分: 黑幣 -5

電路圖.zip

523.85 KB, 下載次數(shù): 361, 下載積分: 黑幣 -5

評分

參與人數(shù) 2黑幣 +45 收起 理由
luliang02003 + 15 贊一個(gè)!
INVIO + 30 贊一個(gè)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:137190 發(fā)表于 2016-9-8 15:38 | 顯示全部樓層
下面是下位機(jī)的主機(jī)源代碼:
  1. /***************************************************************************
  2. 函數(shù)名稱: AM2301多機(jī)通信主機(jī)部分
  3. 主控芯片: STC12C5A60S2,晶振11.0592MHz
  4. 功          能: 和從機(jī)及上位機(jī)通信,接收從機(jī)發(fā)送過來的溫濕度,用1620顯示出來并
  5.                    將數(shù)據(jù)傳送到上位機(jī)
  6. 創(chuàng)建日期: 2011.5.22
  7. 修改日志: 無
  8. ****************************************************************************/                                                                          
  9. //#include <reg52.h>
  10. #include <STC12C5A.h>
  11. #include <intrins.h>
  12. #include "LCD1602.h"

  13. #define uchar unsigned char
  14. #define uint  unsigned int
  15. #define _Nop() _nop_()

  16. sbit  RDE =P3^2;         //        485控制輸入輸出控制(與從機(jī))
  17. sbit  RDE2=P1^4;        //485控制輸入輸出控制(與上位機(jī))
  18. #define SlaveNum 2   //從機(jī)數(shù)量

  19. uchar code dis1[]={"H:     % T:    C"} ;
  20. uchar code dis2[]={"h:     % t:    c"} ;
  21. #define num 8  //緩沖數(shù)據(jù)的長度
  22. char Revdata[num];//接收到的數(shù)據(jù)緩存
  23. uchar SLAVE_ID = 1;//從機(jī)地址
  24. uchar  rc;//串口1接收到和數(shù)據(jù)緩存
  25. uchar Rev;//串口2接收數(shù)據(jù)
  26. //----------------------------------------
  27. uchar state = 0;//狀態(tài)標(biāo)志位。1-進(jìn)入等待從機(jī)回應(yīng),2-更新顯示數(shù)據(jù)
  28. uchar recv_length = 0;
  29. bit recving_flag = 0;
  30. bit recfinish=0;
  31. bit recflag=0;
  32. bit minusflag=0,addflag=0,stopflag=0;
  33. //----------------------------------------
  34. ////////////////////////////////////////////////////////////////////////
  35. //////////////////延時(shí)函數(shù)///////////////////////////////////////
  36. ////////////////////////////////////////////////////////////////////////
  37. void Delay(unsigned int t)
  38. {

  39. while(t--);

  40. }
  41. /////////////////////////////////
  42. void Delay_10us(unsigned int us)
  43. {
  44.   do{
  45.          _nop_();
  46.          _nop_();
  47.          _nop_();
  48.          _nop_();
  49.          _nop_();
  50.         }while(--us);
  51. }
  52. //////////////////////////////////
  53. void Delay_ms(unsigned int ms)
  54. {
  55.   do Delay_10us(131);
  56.         while(--ms);
  57. }
  58. ////////////////////////////////////////////////////////////////////////
  59. //////////////////////串口1發(fā)送地址函數(shù)//////////////////////////////
  60. ////////////////////////////////////////////////////////////////////////
  61. void senda(unsigned char adra) //發(fā)送地址
  62. {

  63.         TB8 = 1;//發(fā)送地址幀
  64.     RDE = 1;//允許發(fā)送
  65.         Delay_10us(50);
  66.         ES=0;  //關(guān)串1口中斷
  67.     TI  = 0; //清標(biāo)志位
  68.         SBUF = adra;
  69.         while(!TI);
  70.         TI  = 0;//等待發(fā)送完畢
  71.         ES=1;  //開串口1中斷
  72.         RDE = 0;//485允許接收         
  73.         Delay_10us(50);
  74. }
  75. ////////////////////////////////////////////////////////////////////////
  76. //////////////////////串口1發(fā)送數(shù)據(jù)函數(shù)//////////////////////////////
  77. //////////////////////////////////////////////////////////////////////
  78. /**/
  79. void sendata(unsigned char tdata) //發(fā)送地址
  80. {

  81.         TB8=0;//發(fā)送數(shù)據(jù)幀
  82.     RDE = 1;//允許發(fā)送
  83.     TI = 0;
  84.         SBUF = tdata;
  85.         while(!TI);
  86.         TI=0;
  87.         RDE = 0;//485允許接收         

  88. }
  89. //////////////////////////////////////////////////////////////////////
  90. //////////////////////串口2發(fā)送數(shù)據(jù)函數(shù)///////////////////////////////
  91. //////////////////////////////////////////////////////////////////////
  92. void Uart2_senbyte(uchar val)
  93. {
  94.   RDE2=1;//485發(fā)送狀態(tài)
  95. // Delay(50);
  96.   IE2=0x00;//關(guān)串口2中斷
  97.   S2BUF=val;
  98.   while ((S2CON & 0x02) == 0);   //等待發(fā)送完畢
  99.                   S2CON &= 0xFD;  //清標(biāo)志位(S2TI=0)
  100.   IE2=0x01;//開串口2中斷
  101.   RDE2=0;
  102. //  Delay(50);
  103. }

  104. ////////////////////////////////////////////////////////////////////////
  105. ///////////////////////////////顯示函數(shù)/////////////////////////////////
  106. ////////////////////////////////////////////////////////////////////////

  107. ///////////顯示字符///////
  108. void showchar()
  109. { uchar string;
  110. //====顯示字符1======
  111.         string=0;
  112.   writecmd(0x80);  
  113.     while(dis1[string] != '\0')//顯示字符
  114.      {                        
  115.        writedata(dis1[string]) ;
  116.        string++ ;
  117.      }string = 0 ;         
  118. //=====顯示字符2=====
  119.   writecmd(0xc0);  
  120.     while(dis2[string] != '\0')//顯示字符
  121.      {                        
  122.        writedata(dis2[string]) ;
  123.        string++ ;
  124.      }string = 0 ;
  125. }
  126. //////////////顯示數(shù)據(jù)/////////////
  127. void showdata()
  128. {
  129. if(SLAVE_ID==1)
  130.    {
  131.    //=====顯示濕度=====
  132.     writecmd(0x82);  
  133.     writedata(Revdata[1]+0x30);
  134.     writedata(Revdata[2]+0x30);
  135.     writedata('.');
  136.     writedata(Revdata[3]+0x30);
  137.    //=====顯示溫度=====
  138.         writecmd(0x8b);
  139.     writedata(Revdata[4]+0x30);
  140.     writedata(Revdata[5]+0x30);
  141.     writedata('.');
  142.     writedata(Revdata[6]+0x30);
  143.     Delay_ms(400);
  144.    }
  145. if(SLAVE_ID==2)
  146.   {
  147.    //=====顯示濕度=====
  148.     writecmd(0xc2);
  149.     writedata(Revdata[1]+0x30);
  150.     writedata(Revdata[2]+0x30);
  151.     writedata('.');
  152.     writedata(Revdata[3]+0x30);
  153.    //=====顯示溫度=====
  154.         writecmd(0xcb);
  155.     writedata(Revdata[4]+0x30);
  156.     writedata(Revdata[5]+0x30);
  157.     writedata('.');
  158.     writedata(Revdata[6]+0x30);
  159.     Delay_ms(1000);
  160.   }
  161.        
  162. }
  163. ////////////////////////////////////////////////////////////////////////
  164. ///////////////////串口初始化函數(shù)////////////////////////////////
  165. ////////////////////////////////////////////////////////////////////////
  166. void UARTinit()
  167. {     
  168.    //串口1初始化/////////
  169.    TMOD|=0x21;//定時(shí)器1工作在方式2,定時(shí)器0工作在方式1
  170.    TH1=0xfa;TL1=0xfa; //波特率9600   
  171.    SCON=0x50;//SCON:SM0,SM1,SM2,REN,TB8,RB8,TI,RI
  172.    PCON|=0x80;//波特率倍增
  173.    TR1=1;//開定時(shí)器1
  174.    EA=1;//開總中斷
  175.    ES=1;//串口1中斷
  176.    //--------------------//       
  177.    //串口2初始化///////////
  178.    BRT  = 0XDC; //設(shè)置獨(dú)立的波特率發(fā)生器的重載數(shù)值,此數(shù)值的波特率為9600
  179.    AUXR = 0X14; //設(shè)置波特率的發(fā)生方式(允許波特率發(fā)生器運(yùn)行,波特率不加倍,每個(gè)時(shí)鐘計(jì)數(shù)一次)
  180.    S2CON|=0x50;//串口2,方式1,允許接收
  181.    IE2|=0X01;//允許串口2中斷
  182.    EA=1;//開總中斷
  183.    //--------------------//
  184.    Delay(10000);  //熱機(jī)時(shí)間
  185.    init_LCD(); //初始化液晶
  186. }
  187. //==========================================
  188. ////////////////////////////////////////////////////////////////////////

  189. ///////////////////////////////主函數(shù)///////////////////////////////////

  190. ////////////////////////////////////////////////////////////////////////
  191. void main()
  192. {
  193. //   uchar i;
  194.      UARTinit();//串口初始化
  195.      Delay(40000);//熱機(jī)
  196.        

  197.       while(1)
  198.       {
  199.                  WDT_CONTR=0x3c;//啟動看門狗,超過該時(shí)間未能喂狗則系統(tǒng)復(fù)位,
  200.                 //0011.1011---WDT_FLAG=0,EN_WDT=1,CLR_WDT=1,IDLE_WDT=0,PS2=1,PS1=1,PS0=0
  201.                 //IDLE_WDT=1時(shí),"空閑模式"計(jì)數(shù),IDLE_WDT=0時(shí)"空閑模式"不計(jì)數(shù)
  202.                  //0x38-71.1ms,0x39-142.2ms, 0x3a-284.4ms, 0x3b-568.8ms,
  203.                  //0x3c-1.1377s,0x3d-2.2755s,0x3e-4.5511s,0x3f-9.1022s
  204.               showchar();//顯示字符       
  205.          if(state == 0)
  206.           {
  207.                        
  208.                         senda(SLAVE_ID++);
  209.                         if(SLAVE_ID>SlaveNum)SLAVE_ID = 1;

  210.                         if(addflag==1&&SLAVE_ID==1){sendata(0xf1);addflag=0;}//發(fā)送指令給從機(jī)1
  211.                         if(minusflag==1&&SLAVE_ID==2){sendata(0xf2);minusflag=0;}//發(fā)送指令給從機(jī)2
  212.                         if((stopflag==1&&SLAVE_ID==1)||(stopflag==1&&SLAVE_ID==2))
  213.                                 {stopflag=0,sendata(0xf0);}   // 發(fā)哦能夠停止指令給從機(jī)1、2         
  214.                        
  215.                          Delay_ms(30);

  216.                          state = 1;// 狀態(tài)轉(zhuǎn)為等待從機(jī)應(yīng)答,在串口中斷
  217. /*                if(recfinish==1)
  218.                         {        recfinish=0;
  219.                                
  220.                                
  221.                                  if(recflag == 0)
  222.                                 {//   recflag =0;
  223.                                 //        senda(SLAVE_ID);
  224.                                 senda(SLAVE_ID++);        Delay_ms(4000);
  225.                                   if(SLAVE_ID>SlaveNum)
  226.                                         {
  227.                                          SLAVE_ID = 1;
  228.                                          senda(SLAVE_ID);
  229.                                          Delay_ms(4000);
  230.                                          }
  231.                
  232.                                 }//end of recving_flag =0
  233.                         }//end of recfinish=1
  234.         */                 



  235.          }  //end of state=0      
  236.      


  237.           if(state == 2)   // 狀態(tài) 轉(zhuǎn)為 顯示         
  238.          {
  239.           showdata();//更新數(shù)據(jù)顯示
  240.                   Delay_ms(800);

  241.                   //發(fā)送數(shù)據(jù)到上位機(jī)
  242.                   Uart2_senbyte('R');//上位機(jī)識別濕度的標(biāo)志
  243.                   Uart2_senbyte(Revdata[1]+0x30);//                  
  244.                   Uart2_senbyte(Revdata[2]+0x30);
  245.                   Uart2_senbyte('.');
  246.                   Uart2_senbyte(Revdata[3]+0x30);
  247.                   Uart2_senbyte('T');//上位機(jī)識別溫度的標(biāo)志
  248.                   Uart2_senbyte(Revdata[4]+0x30);
  249.                   Uart2_senbyte(Revdata[5]+0x30);
  250.                   Uart2_senbyte('.');
  251.                   Uart2_senbyte(Revdata[6]+0x30);
  252.                   if(SLAVE_ID==1)Uart2_senbyte('A');//上位機(jī)識別從機(jī)的標(biāo)志
  253.                   if(SLAVE_ID==2)Uart2_senbyte('B');

  254. /*               ////////////////////////////////////////////////////////////////
  255.           for(i = 1; i<num-1; i++)
  256.             {
  257.                           
  258.                  
  259.                           senda(Revdata[i]); //把收到的數(shù)據(jù)往PC機(jī)回送(串口助手調(diào)試用)
  260.                     Delay_ms(20);                  
  261.             }
  262. */                        ////////////////////////////////////////////////////////////////
  263.            Delay_ms(20);               
  264.            state = 0;    // 狀態(tài)轉(zhuǎn)為0,重新查詢從機(jī)         
  265.           }//end of state=2

  266.                 WDT_CONTR=0x3c;//喂狗,若超過時(shí)間不喂狗,則系統(tǒng)復(fù)位

  267.      }//end of while(1)
  268.        
  269.           
  270. }//end of main()

  271. ////////////////////////////////////////////////////////////////////////

  272. ///////////////////串口 1接收 中斷 函數(shù)//////////////////////////////////

  273. ////////////////////////////////////////////////////////////////////////
  274. void Recv_int(void)interrupt 4 //using 2               
  275. {

  276.         RDE=0;
  277.         if(RI)
  278.         {  
  279.        RI=0;
  280.        rc=SBUF;
  281.           
  282.          if(state==1)
  283.                 {
  284.                        
  285.            if((recv_length == 0)&&(rc == 0xf7 )  ) //這里判斷發(fā)送的第一個(gè)字節(jié)
  286.            {
  287.               recving_flag = 1;
  288.                           recflag=1;
  289.            }
  290.            
  291.            if(recving_flag == 1)
  292.            {
  293.               Revdata[recv_length++] = rc;
  294.                             if(rc == 0xf3)//判斷結(jié)束幀
  295.               {
  296.                recv_length = 0;
  297.                recving_flag = 0;
  298.                            recfinish=1;
  299.                 state = 2;   //接收完畢,置標(biāo)志位,準(zhǔn)備顯示

  300.               }//end of rc=0xf3              
  301.               
  302.             }//end of recving_flag = 1
  303.                  
  304.                  }//end of state=1

  305.    
  306.      }//end of RI
  307.       
  308. }//end of interrupt

  309. //////////////////串口2中斷服務(wù)子程序////////////////////////////
  310. void Uart2() interrupt 8 //using 1
  311. {
  312.         RDE2=0;//485保持為接收狀態(tài)
  313.    if (S2CON & S2RI)
  314.     {
  315.         S2CON &= ~S2RI; //清除接收完成標(biāo)志
  316.         Rev = S2BUF;   
  317.         switch(Rev)
  318.                         {
  319.                         case 'a':  //加大濕度
  320.                                 addflag=1;
  321.                                 break;
  322.                         case 'm':  //降低濕度
  323.                                 minusflag=1;
  324.                                 break;
  325.                         case 's':  //停止
  326.                                 stopflag=1;
  327.                                 break;       
  328.                         default:
  329.                                 break;
  330.                         }//end of swtich  
  331.         } //end of if                  
  332.                
  333.     RDE2=1;//485允許發(fā)送       
  334.    
  335. }


  336. ////////////////////////////////End/////////////////////////////////////
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:96326 發(fā)表于 2017-2-14 10:47 | 顯示全部樓層
學(xué)習(xí)了,謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:167870 發(fā)表于 2017-3-3 15:13 | 顯示全部樓層
學(xué)習(xí)了,謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:166122 發(fā)表于 2017-3-3 16:21 | 顯示全部樓層
學(xué)習(xí)了,謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:186708 發(fā)表于 2017-4-21 15:40 | 顯示全部樓層
下載了三次都是內(nèi)部服務(wù)器有問題,白白扣金幣,不能下載還要扣金幣

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:186708 發(fā)表于 2017-4-21 15:55 | 顯示全部樓層
就是那個(gè)參考資料不能下載,程序可以下載
回復(fù)

使用道具 舉報(bào)

ID:207132 發(fā)表于 2017-6-2 16:28 | 顯示全部樓層
學(xué)習(xí)了,謝謝樓主!!
回復(fù)

使用道具 舉報(bào)

ID:109053 發(fā)表于 2017-6-15 11:55 | 顯示全部樓層
是那個(gè)參考資料不能下載,程序可以下載
回復(fù)

使用道具 舉報(bào)

ID:321960 發(fā)表于 2018-5-4 11:46 | 顯示全部樓層
學(xué)習(xí)中
回復(fù)

使用道具 舉報(bào)

ID:334782 發(fā)表于 2018-5-21 12:28 | 顯示全部樓層
支持樓主,歇息
回復(fù)

使用道具 舉報(bào)

ID:323951 發(fā)表于 2018-5-21 14:28 | 顯示全部樓層
謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:337273 發(fā)表于 2018-5-24 16:50 | 顯示全部樓層
謝謝樓主分享出來
回復(fù)

使用道具 舉報(bào)

ID:349444 發(fā)表于 2018-7-28 11:59 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:92810 發(fā)表于 2018-11-12 15:30 | 顯示全部樓層
謝謝分享了,學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:210375 發(fā)表于 2018-11-14 21:50 | 顯示全部樓層
最近正好在學(xué)這個(gè),樓主的分享給了我很大的啟發(fā),謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:373813 發(fā)表于 2018-11-25 12:09 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:53978 發(fā)表于 2018-12-14 21:35 | 顯示全部樓層
好東西 謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:509877 發(fā)表于 2019-5-23 11:05 來自手機(jī) | 顯示全部樓層
單片機(jī)只有一個(gè)串口怎么同時(shí)接受兩個(gè)采集的物理量
回復(fù)

使用道具 舉報(bào)

ID:92810 發(fā)表于 2019-10-28 11:31 | 顯示全部樓層
學(xué)習(xí)了,謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:632444 發(fā)表于 2019-11-3 08:57 | 顯示全部樓層
雖然現(xiàn)在還沒接觸到,還是要謝謝樓主的無私奉獻(xiàn),挺好的,給于初學(xué)著幫助,一個(gè)方向。
回復(fù)

使用道具 舉報(bào)

ID:639650 發(fā)表于 2019-11-12 09:57 | 顯示全部樓層
上位機(jī)與下位機(jī)的RS485的通訊程序能粘貼出來嗎?
回復(fù)

使用道具 舉報(bào)

ID:411700 發(fā)表于 2020-1-8 10:20 | 顯示全部樓層
請問怎么打開上位機(jī)程序丫
回復(fù)

使用道具 舉報(bào)

ID:214276 發(fā)表于 2020-3-18 17:20 | 顯示全部樓層
利害!不愧為高手!
回復(fù)

使用道具 舉報(bào)

ID:283908 發(fā)表于 2020-3-19 16:28 | 顯示全部樓層
下載學(xué)習(xí)了,謝謝樓主。
回復(fù)

使用道具 舉報(bào)

ID:704585 發(fā)表于 2020-4-28 15:49 | 顯示全部樓層
學(xué)習(xí)中,感謝樓主
回復(fù)

使用道具 舉報(bào)

ID:755119 發(fā)表于 2020-5-26 18:25 | 顯示全部樓層
樓主,你這還有詳細(xì)的代碼嗎?這個(gè)不好用啊,謝謝
回復(fù)

使用道具 舉報(bào)

ID:941205 發(fā)表于 2022-4-13 15:20 | 顯示全部樓層
太感謝樓主了,連參考資料都有。
回復(fù)

使用道具 舉報(bào)

ID:19250 發(fā)表于 2023-4-12 13:09 | 顯示全部樓層
連參考資料都有
回復(fù)

使用道具 舉報(bào)

ID:65956 發(fā)表于 2023-4-13 08:37 | 顯示全部樓層
上位機(jī)在哪個(gè)下載,分這么多,要花好多米
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品免费一区二区三区四区 | 日韩欧美三区 | 日本久久综合网 | 欧美日韩成人在线 | 国产这里只有精品 | 日韩精品在线一区 | 久久免费看 | 免费中文字幕 | 男女羞羞视频在线观看 | 欧美视频在线播放 | 亚洲国产在 | 岛国av一区二区三区 | av手机在线播放 | 国产午夜精品理论片a大结局 | 亚州av| 玖玖精品 | 中文在线а√在线8 | 香蕉视频91 | 亚洲www啪成人一区二区 | 久久蜜桃av一区二区天堂 | 久久久久久一区 | 人人爽人人草 | 欧美成人h版在线观看 | 国产一区二区三区免费视频 | 国产午夜精品一区二区三区在线观看 | 欧美一级全黄 | 久草在线在线精品观看 | 粉嫩在线| 亚洲日本三级 | 天堂一区二区三区四区 | 久久久久久久久久久久久久av | 成人国产免费视频 | 亚洲第一天堂 | 日本特黄a级高清免费大片 国产精品久久性 | 精品一级毛片 | 中文字幕国产精品 | 亚洲视频免费在线观看 | av中文字幕网站 | 国产视频二区在线观看 | 天天看夜夜 | 中文字幕在线视频网站 |