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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機溫度采集系統整套完整資料下載 PCB 原理圖 程序 適合新手學習

  [復制鏈接]
跳轉到指定樓層
樓主
里面是一整套,系統由單片機STC89C52、液晶顯示模塊LCD1602、溫度檢測模塊、按鍵模塊、報警模塊、加熱模塊、冷卻模塊所組成。系統能完成以下功能,系統采用DS18B20對溫度進行檢測,并且能在LCD1602上實時顯示溫度。用戶可以通過按鍵設置上限和下限溫度,當溫度超過上限溫度時,系統通過繼電器使冷卻器件導通工作,當溫度低于下限溫度時,系統通過繼電器使加熱器件工作。當溫度在上限和下限之間時維持原狀態。


PPT模板(非本設計僅供參考)
仿真(使用PROTEUS軟件打開文件里面后綴為DSN的文件)
元件清單
原理圖和PCB(使用PROTEL軟件打開文件里面后綴為SCH和PCB的文件)
外文翻譯
程序(使用KEIL軟件打開文件里面后綴為uvproj的文件)
系統簡介
芯片資料



仿真(使用PROTEUS軟件打開文件里面后綴為DSN的文件)
1.雙擊圖中間的單片機會出現以下界面


2.點擊ProgramFile一欄的文件夾圖標。找到跟仿真文件同一個文件夾里面的”仿真中需要加載的程序.hex”,并點擊打開按鍵。


3點擊下面第一個按鈕便可運行成功。


  
題目名稱
  
基于單片機的溫度控制系統






  
一、選題的目的和意義:
  
溫度控制無論是在工業生產過程中,還是在日常生活中都起著非常重要的作用,過低的溫度或過高的溫度都會使資源失去應有的作用,從而造成資源的巨大浪費。特別是在當前全球資源極度缺乏的情況下,我們更應該掌握好對溫度的控制,把身邊的資源好好地利用起來。
  
在計算機沒有發明之前,這些控制都是我們難以想象的。而當今,隨著電子行業的迅猛發展,計算機技術和傳感器技術的不斷改進,而且計算機和傳感器的價格也日益降低,可靠性逐步提高,用信息技術來實現溫度控制并提高控制的精確度不僅是可以達到的而且是可以實現的,用高新技術解決生活用電問題,實施對溫度控制已經成為我們電子行業的任務,以此來加強工業化建設,提高人民的生活水平。
  
溫度控制在實際生活中有一定的實際意義,在工業生產中有著較為廣泛的應用,用單片機實現自適應控制,彌補了傳統  PID控制結構在特定場合下性能下降的不足,設計了一套實用的溫度測控系統,使它在不同時間常數下均可以達到技術指標。此外還有效減少了輸出繼電器的開關次數,適用于環境參數經常變化的小型溫度控制系統。例如:在冶金工業、化工生產、電力工程、造紙行業、機械制造和食品加工等諸多領域中,人們都需要對各類加熱爐、熱處理爐、反應爐和鍋爐中的溫度進行檢測和控制。雖然溫度控制系統的制作方案有很多,但是經過對比各個方案的優劣,還是采用單片機更好,因為采用單片機來對溫度進行控制,不僅具有控制方便、組態簡單和靈活性大等優點,而且可以大幅度提高被控溫度的技術指標,從而能夠大大提高產品的質量和數量
  
  
二、研究概況及發展趨勢綜述
  
國內現狀:
  
我國對于溫度控制技術的研究較晚,始于20世紀80年代。我國工程技術人員在吸收發達國家溫度控制技術的基礎上,才掌握了溫度室內微機控制技術,該技術僅限于對溫度的單項環境因子的控制。溫度控制設施計算機應用,在總體上正從消化吸收、簡單應用階段向實用化、綜合性應用階段過渡和發展。在技術上,以單片機控制的單參數單回路系統居多,尚無真正意義上的多參數綜合控制系統,與發達國家相比,存在較大差距。我國溫度控制控制現狀還遠遠沒有達到工廠化的程度,生產實際中仍然有許多問題困擾著我們,如軟硬件資源不能共享和可靠性比較差。
  
國外現狀:
  
國外對溫度控制技術研究較早,始于20世紀70年代。先是采用模擬式的組合儀表,采集現場信息并進行指示、記錄和控制。80年代末出現了分布式控制系統。目前正開發和研制計算機數據采集控制系統的多因子綜合控制系統。現在世界各國的溫度控制技術發展很快,一些國家在實現自動化的基礎上正向著完全自動化、無人化的方向發展。
  
隨著科學技術的飛速發展,帶動社會生產的發展,自動控制系統在各個領域尤其是工業領域中有著及其廣泛的應用,溫度控制是控制系統中最為常見的控制類型之一。隨著單片機技術的飛速發展,通過單片機對被控對象進行控制日益成為今后自動控制領域的一個重要發展方向,電流、電壓、溫度、壓力、流量、流速和開關量都是常用的主要被控參數
  
  
三、研究目標、研究內容和擬解決的關鍵問題
  
研究目標
  
本設計主要采用MCS-51系列單片機作為主控芯片,能夠實現溫度控制,數據顯示,參數設置等功能。
  
研究內容:
  
根據以上設計需要,系統擬采用以下技術方案,系統的結構框圖如下圖所示。

圖1 系統結構框圖
  
系統由單片機STC89C52、液晶顯示模塊LCD1602、溫度檢測模塊、按鍵模塊、報警模塊、加熱模塊、冷卻模塊所組成。系統能完成以下功能,系統采用DS18B20對溫度進行檢測,并且能在LCD1602上實時顯示溫度。用戶可以通過按鍵設置上限和下限溫度,當溫度超過上限溫度時,系統通過繼電器使冷卻器件導通工作,當溫度低于下限溫度時,系統通過繼電器使加熱器件工作。當溫度在上限和下限之間時維持原狀態。
  
擬解決的關鍵問題:
  
1、完成鍵盤的設計,分配好各個按鍵輸入對應單片機各口的控制信息;
  
2、完成LCD顯示電路的設計,實現具體的控制、提示信息的顯示;
  
3、完成溫度檢測電路的設計,使其能夠準確溫度值;
  
  
四、研究的基本思路和方法、技術路線、實驗方案及可行性分析
  
研究的基本思路和方法:
  
1、確定硬件系統的設計方案:
  
(1)、根據系統的功能要求確定選用的元器件;
  
(2)、分配單片機各個P口地址,以連接對應的元器件,方便控制;
  
(3)、利用protel軟件構建系統的硬件圖;
  
2、確定軟件部分的設計方案:
  
(1)、確定各部分模塊對應要實現的功能,并根據連接圖寫出對應程序中對應的控制信息,便于軟件編寫;
  
(2)、用keil軟件編寫程序,對應各模塊功能模塊化編寫,便于程序的檢查和調試;
  
3、利用keil軟件生成hex文件,用PROTEL軟件繪制電路圖
  
4、依照電路圖,在電路板上焊接各元件,完成系統實物設計;
  
5、將焊好的電路板反復進行硬件調試和系統整體調試,直到實現系統要求的預定功能。
  
技術路線、實驗方案及可行性分析:
  
1、設計用到的設備和軟件:
  
主要設備:電腦、單片機燒寫器
  
軟件:Protel仿真軟件、keil軟件
  
2、利用學習過的模擬電子技術、數字電路技術、單片機原理與應用等知識,了解溫度控制的原理,并選用合適的元器件和系統設計方案。
  
   
  

單片機源程序:

  1. //-----------------------------------------------------------------------
  2. //功能說明:使用DS18B20測量室內溫度,并將它顯示在1602液晶上。 核心:AT89S52
  3. //連接框圖:       ___________________

  4. #include <reg52.h>

  5. //端口及函數聲明---------------------------------------------------------
  6. sbit   LCD_RS=P1^0;          //片選信號
  7. sbit   LCD_RW=P1^1;          //讀寫信號
  8. sbit   LCD_E=P1^2;           //使能信號
  9. sbit   DQ = P2^2;
  10. sbit   BEEP=P1^3;   //高電平亮燈,超過設定值
  11. sbit   RED = P2^0;
  12. sbit   GREEN = P2^1;
  13. sbit   Key_2 = P1^4;  //按一次出現H 30,可以進行上限溫度設置 按兩次出現L 20,可以進行下限溫度設置  按第三次恢復溫度顯示
  14. sbit   Key_3 = P1^5;  //增加鍵,可以對上限溫度或下限溫度進行增大調整
  15. sbit   Key_4 = P1^6;  //減小鍵,可以對下限溫度或下限溫度進行減小調整

  16. #define LCD_DB        P0        //LCD1602數據信號
  17. #define LocationX  0                //橫排的位置,即X得坐標值 取值范圍0~15
  18. #define LocationY  1                //豎排的位置,即Y得坐標值 取值范圍為 2,1

  19. unsigned char code dis_char[]={"Temperature is"};
  20. unsigned char code dis_char1[]={"Htemp=      C    "};
  21. unsigned char code dis_char2[]={"Ltemp=      C    "};

  22. //LCD1602函數定義
  23. void LCD_init(void);                                                   //LCD1602初始化函數   
  24. void LCD_write_command(unsigned char command);                         //LCD1602寫指令函數         
  25. void LCD_write_data(unsigned char dat);                                //LCD1602寫數據函數           
  26. void LCD_disp_char(unsigned char x,unsigned char y,unsigned char dat); //在某個屏幕位置上顯示一個字符,X(0-15),y(1-2)
  27. void delay_n40us(unsigned int n);                                      //延時函數         

  28. //DS18B20函數定義
  29. void delayms(unsigned int z);                    //延時(z)毫秒  
  30. void SetReset(void);                         //產生復位信號
  31. void CheckReply(void);                       //檢測器件應答信號
  32. bit MainReadBit(void);                       //從總線讀一個bit
  33. unsigned char MainReadByte(void);            //從總線讀一個字節  
  34. void MainWriteByte(unsigned char dat);       //向總線寫一個字節  
  35. void StartConvertTemperature(void);          //啟動一次溫度轉換  
  36. unsigned long int  ReadTemperature(void);         //讀取溫度數據

  37. unsigned char H_temp = 50,L_temp = 20;
  38. unsigned char flag_h=0,flag_l=0,count_key2 = 0;


  39. unsigned char TempBuffer[5];
  40. unsigned char temp_value;
  41. //--------------------------------------------------------------------***


  42. //子函數-----------------------------------------------------------------

  43. //----------------------------------------
  44. //LCD1602 延時函數
  45. void delay_n40us(unsigned int n)                 
  46. {
  47.         unsigned int i;
  48.         unsigned char j;            
  49.         for(i=n;i>0;i--)
  50.         for(j=0;j<2;j++);         
  51. }
  52. //----------------------------------------                                       
  53. //LCD1602液晶初始化函數
  54. void LCD_init(void)         
  55. {
  56.         LCD_write_command(0x38);//設置8位格式,2行,5x7
  57.         LCD_write_command(0x38);//設置8位格式,2行,5x7
  58.         LCD_write_command(0x38);//設置8位格式,2行,5x7         切記要寫三遍!!!!
  59.         LCD_write_command(0x0c);//整體顯示,關光標,不閃爍
  60.         LCD_write_command(0x06);//設定輸入方式,增量不移位
  61.         LCD_write_command(0x01);//清除屏幕顯示         
  62.         delay_n40us(100);       //清屏延時
  63. }
  64. //----------------------------------------
  65. //LCD1602寫命令函數
  66. void LCD_write_command(unsigned char dat)  
  67. {
  68.         LCD_DB=dat;
  69.         LCD_RS=0;//指令         
  70.         LCD_RW=0;//寫入         
  71.         LCD_E=1; //使能         
  72.         LCD_E=0;
  73.         delay_n40us(1);//寫命令延時   
  74. }         
  75. //----------------------------------------
  76. //LCD1602寫數據函數
  77. void LCD_write_data(unsigned char dat)         
  78. {
  79.         LCD_DB=dat;
  80.         LCD_RS=1;//數據         
  81.         LCD_RW=0;//寫入         
  82.         LCD_E=1;//使能  
  83.         LCD_E=0;
  84.         delay_n40us(1);         //寫數據延時
  85. }
  86. //----------------------------------------
  87. //LCD1602顯示一個字符  
  88. void LCD_disp_char(unsigned char x,unsigned char y,unsigned char dat)
  89. {
  90.         unsigned char address;
  91.         if(y==1)
  92.                  address=0x80+x;         //顯示在第一排的時候的x的地址
  93.         else
  94.                  address=0xc0+x;         //顯示在第二排的時候的x的地址
  95.         LCD_write_command(address);         //輸入地址
  96.         LCD_write_data(dat);                 //輸入數據
  97. }


  98. //*****************************************

  99. //----------------------------------------
  100. //毫秒延時函數
  101. void delayms(unsigned int z)
  102. {
  103.         unsigned int x,y;
  104.         for(x = z ; x>0 ; x--)
  105.                 for(y = 110; y>0 ; y--);
  106. }


  107. /***********ds18b20子程序*************************/

  108. /***********ds18b20延遲子函數(晶振12MHz )*******/

  109. void delay_18B20(unsigned int i)
  110. {
  111.         while(i--);
  112. }

  113. /**********ds18b20初始化函數**********************/

  114. void Init_DS18B20(void)
  115. {
  116.          unsigned char x=0;
  117.          DQ = 1;          //DQ復位
  118.          delay_18B20(8);  //稍做延時
  119.          DQ = 0;          //單片機將DQ拉低
  120.          delay_18B20(80); //精確延時 大于 480us
  121.          DQ = 1;          //拉高總線
  122.          delay_18B20(14);
  123.          x=DQ;            //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
  124.          delay_18B20(20);
  125. }

  126. /***********ds18b20讀一個字節**************/  

  127. unsigned char ReadOneChar(void)
  128. {
  129.         unsigned char i=0;
  130.         unsigned char dat = 0;
  131.         for (i=8;i>0;i--)
  132.          {
  133.                   DQ = 0; // 給脈沖信號
  134.                   dat>>=1;
  135.                   DQ = 1; // 給脈沖信號
  136.                   if(DQ)
  137.                   dat|=0x80;
  138.                   delay_18B20(4);
  139.          }
  140.          return(dat);
  141. }

  142. /*************ds18b20寫一個字節****************/  

  143. void WriteOneChar(unsigned char dat)
  144. {
  145.          unsigned char i=0;
  146.          for (i=8; i>0; i--)
  147.          {
  148.                   DQ = 0;
  149.                  DQ = dat&0x01;
  150.             delay_18B20(5);
  151.                  DQ = 1;
  152.             dat>>=1;
  153. }
  154. }

  155. /**************讀取ds18b20當前溫度************/

  156. void ReadTemp(void)
  157. {
  158.         unsigned char a=0;
  159.         unsigned char b=0;
  160.         unsigned char t=0;

  161.         Init_DS18B20();
  162.         WriteOneChar(0xCC);            // 跳過讀序號列號的操作
  163.         WriteOneChar(0x44);         // 啟動溫度轉換

  164.         delay_18B20(100);       // this message is wery important

  165.         Init_DS18B20();
  166.         WriteOneChar(0xCC);         //跳過讀序號列號的操作
  167.         WriteOneChar(0xBE);         //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度

  168.         delay_18B20(100);

  169.         a=ReadOneChar();            //讀取溫度值低位
  170.         b=ReadOneChar();                   //讀取溫度值高位
  171.         temp_value=b<<4;
  172.         temp_value+=(a&0xf0)>>4;               
  173. }
  174. void temp_to_str()   //溫度數據轉換成液晶字符顯示
  175. {
  176.   TempBuffer[0]=temp_value/10+'0';  //十位
  177.   TempBuffer[1]=temp_value%10+'0';  //個位
  178.   TempBuffer[2]=0xdf;   //溫度符號
  179.   TempBuffer[3]='C';
  180.   TempBuffer[4]='\0';
  181. }

  182. void display_1(void)
  183. {
  184.         unsigned char j =0,ge=0,shi=0,bai=0;
  185.         unsigned long int last = 0;
  186.         int temp=0;
  187.         for(j=0;j<14;j++)
  188.         {
  189.                 LCD_disp_char(j,1,dis_char[j]);
  190.         }        
  191.         ReadTemp();                    //開啟溫度采集程序
  192.     temp_to_str();                 //溫度數據轉換成液晶字符
  193. //  LCDDispString(0,1,TempBuffer);
  194.         temp = (TempBuffer[0]-'0')*10+(TempBuffer[1]-'0');
  195.         LCD_disp_char(5,2,(temp/10+48));
  196.         LCD_disp_char(6,2,(temp%10+48));

  197.         LCD_disp_char(8,2,0xdf);
  198.         LCD_disp_char(9,2,'C');

  199.         
  200.         if(temp >H_temp)
  201.         {
  202.                 BEEP = 0;
  203.                 RED=1;
  204.                 GREEN=0;
  205.         }
  206.         else if        ( temp < L_temp)
  207.         {
  208.                 BEEP=0;
  209.                 GREEN=1;
  210.                 RED=0;
  211.         }
  212.         else
  213.         {
  214.                 BEEP = 1;RED=1;
  215.                 GREEN=1;
  216.         }
  217. }

  218. void display_2(void)
  219. {
  220.           unsigned char j =0;unsigned char ge=0,shi=0;
  221.         for(j=0;j<16;j++)
  222.         {
  223.                 LCD_disp_char(j,1,dis_char1[j]);
  224.                 LCD_disp_char(j,2,dis_char2[j]);
  225.         }
  226.         LCD_disp_char(11,1,0xdf); LCD_disp_char(11,2,0xdf);
  227.         ge = H_temp%10;
  228.         shi = H_temp/10;
  229.     LCD_disp_char(7,1,(shi+48));  LCD_disp_char(8,1,(ge+48));

  230.         ge = L_temp%10;
  231.         shi = L_temp/10;
  232.     LCD_disp_char(7,2,(shi+48));  LCD_disp_char(8,2,(ge+48));

  233. }

  234. void key_scan(void)
  235. {
  236.         unsigned char ge=0,shi=0;
  237.         P1 |= 0x80;                                   //每次掃描前,先將接鍵盤的引腳口拉高
  238.         if(Key_2 == 0)                           //同上,判斷第二個按鍵情況
  239.         {
  240.                 delayms(10);
  241.                 if(Key_2 == 0)
  242.                 {
  243.                 //        display_2();
  244.                         count_key2++;
  245.                         if(count_key2 == 1)
  246.                         {
  247.                                 display_2();
  248.                                 flag_h = 1;
  249.                                 flag_l = 0;
  250.                                 LCD_disp_char(15,1,35);
  251.                         }
  252.                         else if(count_key2 == 2)
  253.                         {
  254.                                 display_2();
  255.                                 flag_l = 1;
  256.                                 flag_h = 0;
  257.                                 LCD_disp_char(15,2,35);        
  258.                         }
  259.                         else if(count_key2 == 3)
  260.                         {
  261.                                 flag_l = 0;
  262.                                 flag_h = 0;
  263.                                 LCD_init();
  264.                                 display_1();
  265.                                 count_key2=0;
  266.                         }
  267.                         while(!Key_2);
  268.                 }
  269.         }
  270.         if(Key_3 == 0)                           //增加鍵
  271.         {
  272.                 delayms(10);
  273.                 if(Key_3 == 0)
  274.                 {
  275.                         if(flag_h ==1)
  276.                         {
  277.                             H_temp++;
  278.                                 ge = H_temp%10;
  279.                                 shi = H_temp/10;
  280.                                 LCD_disp_char(7,1,(shi+48));
  281.                                 LCD_disp_char(8,1,(ge+48));
  282.                         }        
  283.                         else if(flag_l == 1)
  284.                         {
  285.                             L_temp++;
  286.                             ge = L_temp%10;
  287.                                 shi = L_temp/10;
  288.                                 LCD_disp_char(7,2,(shi+48));
  289.                                 LCD_disp_char(8,2,(ge+48));
  290.                         }
  291.                                 
  292.                         while(!Key_3);
  293.                 }
  294.         }
  295.         if(Key_4 == 0)                           //減少鍵
  296.         {
  297.                 delayms(10);
  298.                 if(Key_4 == 0)
  299.                 {
  300.                         if(flag_h ==1)
  301.                         {
  302.                                 H_temp--;
  303.                                   ge = H_temp%10;
  304.                                 shi = H_temp/10;
  305.                                 LCD_disp_char(7,1,(shi+48));
  306.                                 LCD_disp_char(8,1,(ge+48));
  307.                         }        
  308.                         else if(flag_l == 1)
  309.                         {
  310.                             L_temp--;
  311.                                 ge = L_temp%10;
  312.                                 shi = L_temp/10;
  313.                                 LCD_disp_char(7,2,(shi+48));
  314.                                 LCD_disp_char(8,2,(ge+48));
  315.                         }
  316.                                 
  317.                         while(!Key_4);
  318.                 }
  319.         }        
  320. }
  321. //--------------------------------------------------------------------***


  322. //主函數-----------------------------------------------------------------
  323. void main(void)
  324. {
  325.         unsigned int ge=0,shi=0,bai=0;
  326.         LCD_init();



  327. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料打包下載:
11基于單片機的溫度控制系統.rar (3.88 MB, 下載次數: 257)


評分

參與人數 1黑幣 +5 收起 理由
cddcad + 5 贊一個!

查看全部評分

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

使用道具 舉報

沙發
ID:1 發表于 2017-5-9 18:32 | 只看該作者
好資料,51黑有你更精彩。
回復

使用道具 舉報

板凳
ID:64138 發表于 2017-5-10 15:22 | 只看該作者
正在學習中。正在學習中
回復

使用道具 舉報

地板
ID:195280 發表于 2017-5-27 13:48 | 只看該作者
看起來不錯的樣子,學習一下
回復

使用道具 舉報

5#
ID:193061 發表于 2017-5-27 14:38 | 只看該作者
看著不錯的樣子,可惜下不到
回復

使用道具 舉報

6#
ID:193423 發表于 2017-5-28 15:48 | 只看該作者
適合新手學習
回復

使用道具 舉報

7#
ID:235869 發表于 2017-11-11 11:16 | 只看該作者
看起來不錯的樣子,學習一下看起來不錯的樣子,學習一下
回復

使用道具 舉報

8#
ID:248359 發表于 2017-11-15 12:05 | 只看該作者
樓主,我打開仿真軟件加入程序,運行以后,直接蜂鳴器一直響
回復

使用道具 舉報

9#
ID:358464 發表于 2018-9-21 13:44 | 只看該作者
十分詳細啊!
回復

使用道具 舉報

10#
ID:399426 發表于 2018-9-27 13:09 | 只看該作者
資料很全面,點贊~
回復

使用道具 舉報

11#
ID:322481 發表于 2018-10-29 07:41 | 只看該作者
寫的好
回復

使用道具 舉報

12#
ID:448755 發表于 2018-12-18 11:37 | 只看該作者
感謝發帖
回復

使用道具 舉報

13#
ID:486635 發表于 2019-3-8 03:10 | 只看該作者
很好,可以學習下
回復

使用道具 舉報

14#
ID:486635 發表于 2019-3-8 03:14 | 只看該作者
學習下
回復

使用道具 舉報

15#
ID:609834 發表于 2019-9-17 09:01 | 只看該作者
有幫助
回復

使用道具 舉報

16#
ID:630884 發表于 2019-10-27 14:21 | 只看該作者
還可以,目前正在學習這個
回復

使用道具 舉報

17#
ID:1110110 發表于 2024-1-25 19:14 | 只看該作者
請教一下怎么將8路溫度一起顯示在屏幕上
回復

使用道具 舉報

18#
ID:92810 發表于 2024-1-27 20:22 | 只看該作者
資料很全面,點贊~
回復

使用道具 舉報

19#
ID:907553 發表于 2024-1-30 17:25 | 只看該作者
好資料,51黑有你更精彩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本一区二区三区四区 | 久久精品国产a三级三级三级 | 91久久精品日日躁夜夜躁欧美 | 亚洲一区二区三区在线播放 | 欧美亚洲在线 | 精品中文在线 | 国产99热精品 | 成人性视频在线播放 | 精品久久久久久亚洲精品 | 免费国产精品久久久久久 | 国产精品高潮呻吟久久 | 91久久久久久久久 | 国产1区2区 | 亚洲欧美国产一区二区三区 | 人人看人人草 | 亚洲国产欧美在线人成 | 免费中文字幕 | 日本视频在线播放 | 中文字幕精品一区二区三区在线 | 午夜影院在线免费观看视频 | 一区二区高清在线观看 | 欧美精品一区在线 | 91大神在线资源观看无广告 | 欧美在线天堂 | 欧美最猛性xxxxx亚洲精品 | 国产精品一区二区免费看 | 综合久久网 | 国产激情视频在线免费观看 | 男女爱爱福利视频 | 欧美日韩亚洲一区二区 | 欧美性吧 | 在线视频一区二区三区 | 亚洲美女视频 | 国产高清免费视频 | 一本一道久久a久久精品蜜桃 | 伊人春色在线观看 | 国产精品揄拍一区二区 | 本道综合精品 | 久久精品综合网 | 国产电影一区二区在线观看 | 97国产精品 |