在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于51單片機(jī)設(shè)計(jì)的數(shù)字溫度計(jì)設(shè)計(jì)

DS小龍哥-嵌入式技術(shù) ? 來源: DS小龍哥-嵌入式技術(shù) ? 作者: DS小龍哥-嵌入式技 ? 2023-06-14 09:04 ? 次閱讀

一、項(xiàng)目介紹

數(shù)字溫度計(jì)是一種廣泛應(yīng)用于日常生活和工業(yè)領(lǐng)域中的電子測(cè)量?jī)x器,用于檢測(cè)環(huán)境溫度并將其轉(zhuǎn)換為數(shù)字信號(hào)進(jìn)行顯示。隨著現(xiàn)代科技的發(fā)展,數(shù)字溫度計(jì)逐漸取代了傳統(tǒng)的水銀溫度計(jì)等方式,具有快速響應(yīng)、高精度、便攜式等優(yōu)點(diǎn)。

基于51單片機(jī)設(shè)計(jì)的數(shù)字溫度計(jì)具體應(yīng)用于制造業(yè)中的溫度檢測(cè),例如溫度控制器、烤箱溫度控制、食品加工、工業(yè)爐等領(lǐng)域。通過DS18B20這種數(shù)字溫度傳感器來進(jìn)行溫度采集,使用STC89C52這種常用的單片機(jī)控制芯片,配合4位共陽數(shù)碼管實(shí)現(xiàn)溫度數(shù)據(jù)顯示,并通過按鍵設(shè)置溫度上限閥值,一旦溫度超過閥值,系統(tǒng)會(huì)觸發(fā)蜂鳴器進(jìn)行報(bào)警提示,從而保證了溫度的精準(zhǔn)控制和安全性。

DS18B20是一種數(shù)字溫度傳感器,由Maxim Integrated公司生產(chǎn)。采用1-Wire總線接口,只需要一個(gè)數(shù)據(jù)線就可以同時(shí)實(shí)現(xiàn)數(shù)據(jù)傳輸和供電。主要特點(diǎn)是精度高、響應(yīng)速度快、體積小、價(jià)格低廉,被廣泛應(yīng)用于各種溫度測(cè)量場(chǎng)合。

DS18B20可以測(cè)量的溫度范圍為-55℃~+125℃,精度為±0.5℃(在-10℃~+85℃范圍內(nèi))。內(nèi)部集成了溫度傳感器、A/D轉(zhuǎn)換器和數(shù)字信號(hào)處理電路,可以直接輸出數(shù)字溫度值。

DS18B20的工作原理是利用溫度對(duì)半導(dǎo)體材料電阻值的影響,將溫度轉(zhuǎn)化為電阻值,再通過A/D轉(zhuǎn)換器將電阻值轉(zhuǎn)化為數(shù)字信號(hào)輸出。1-Wire總線接口可以實(shí)現(xiàn)多個(gè)DS18B20傳感器的串聯(lián),只需要一個(gè)控制器就可以同時(shí)讀取多個(gè)傳感器的溫度數(shù)據(jù)。

在熱敏電阻測(cè)溫系統(tǒng)中,可以使用DS18B20傳感器來測(cè)量環(huán)境溫度,并將溫度值傳輸?shù)娇刂破髦羞M(jìn)行處理和顯示。

下面是仿真圖:

image-20230607175253647

二、設(shè)計(jì)思路

2.1 系統(tǒng)架構(gòu)

系統(tǒng)硬件主要由單片機(jī)控制模塊、溫度傳感器模塊、數(shù)碼管顯示模塊、按鍵模塊、蜂鳴器模塊組成。其中單片機(jī)控制模塊采用STC89C52作為主控芯片,通過連接數(shù)碼管、按鍵、蜂鳴器、溫度傳感器等外圍電路實(shí)現(xiàn)溫度檢測(cè)、控制和報(bào)警功能。

2.2 技術(shù)方案

(1)溫度傳感器模塊 本項(xiàng)目采用DS18B20數(shù)字式溫度傳感器進(jìn)行溫度檢測(cè),該傳感器具有精度高、響應(yīng)快、可靠性強(qiáng)等優(yōu)點(diǎn)。通過將其與單片機(jī)進(jìn)行串口通信,實(shí)現(xiàn)溫度數(shù)據(jù)的采集。

(2)數(shù)碼管顯示模塊 本項(xiàng)目采用4位共陽數(shù)碼管進(jìn)行溫度數(shù)據(jù)的顯示,通過設(shè)置單片機(jī)控制IO口實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)掃描和顯示。

(3)按鍵模塊 本項(xiàng)目通過設(shè)置按鍵模塊實(shí)現(xiàn)對(duì)溫度上限閥值的設(shè)定,采用矩陣按鍵實(shí)現(xiàn)多個(gè)按鍵功能。

(4)蜂鳴器模塊 本項(xiàng)目采用蜂鳴器作為報(bào)警提示器,當(dāng)溫度超過上限閥值時(shí),觸發(fā)單片機(jī)控制后,蜂鳴器會(huì)發(fā)出一定頻率的報(bào)警信號(hào)

2.3 系統(tǒng)實(shí)現(xiàn)流程

(1)主程序初始化:設(shè)置IO口模式、串口配置、定時(shí)器中斷等參數(shù)

(2)溫度檢測(cè):通過DS18B20進(jìn)行溫度采集,并將采集到的數(shù)據(jù)解析為實(shí)際溫度值。

(3)數(shù)碼管顯示:將溫度值通過數(shù)碼管進(jìn)行數(shù)據(jù)的顯示。

(4)上限閥值設(shè)置:通過按鍵設(shè)置溫度上限閥值,將閥值存儲(chǔ)在單片機(jī)內(nèi)部的EEPROM中。

(5)報(bào)警提示:當(dāng)溫度值超過閥值時(shí),觸發(fā)蜂鳴器發(fā)出報(bào)警信號(hào)。

三、代碼實(shí)現(xiàn)

3.1 4位共陽極數(shù)碼管顯示代碼

下面是控制STC89C52通過P1口控制4位共陽極數(shù)碼管顯示數(shù)字1234的實(shí)現(xiàn)代碼:

#include < reg52.h >
 ?
 // 定義數(shù)碼管端口連接的IO口
 sbit Dig1 = P1^0;
 sbit Dig2 = P1^1;
 sbit Dig3 = P1^2;
 sbit Dig4 = P1^3;
 ?
 // 定義數(shù)碼管段碼
 unsigned char code SegCode[] = {
     0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F
 };
 ?
 void main()
 {
     unsigned int num = 1234;  // 要顯示的數(shù)字
     unsigned char i, j, k, l;  // 分別表示千位、百位、十位和個(gè)位
 ?
     while (1) {
         // 將數(shù)字分解為千位、百位、十位和個(gè)位
         i = num / 1000;
         j = num % 1000 / 100;
         k = num % 100 / 10;
         l = num % 10;
 ?
         // 顯示千位
         Dig1 = 1;
         P0 = SegCode[i];
         Dig1 = 0;
 ?
         // 顯示百位
         Dig2 = 1;
         P0 = SegCode[j];
         Dig2 = 0;
 ?
         // 顯示十位
         Dig3 = 1;
         P0 = SegCode[k];
         Dig3 = 0;
 ?
         // 顯示個(gè)位
         Dig4 = 1;
         P0 = SegCode[l];
         Dig4 = 0;
     }
 }

這段代碼中,定義了數(shù)碼管端口連接的IO口,然后定義了數(shù)碼管段碼。在main函數(shù)中,將要顯示的數(shù)字1234分解為千位、百位、十位和個(gè)位,并通過控制P1口的四個(gè)IO口,依次顯示出來。這里使用共陽極數(shù)碼管,需要將對(duì)應(yīng)位的IO口置為0才能點(diǎn)亮數(shù)碼管。

3.2 數(shù)字溫度計(jì)實(shí)現(xiàn)代碼

下面是數(shù)字溫度計(jì)完整的代碼。

#include < reg52.h >
 ?
 // 定義溫度傳感器引腳
 sbit DQ = P3^7;
 // 定義數(shù)碼管引腳
 sbit DIG_1 = P2^0;
 sbit DIG_2 = P2^1;
 sbit DIG_3 = P2^2;
 sbit DIG_4 = P2^3;
 sbit SEG_A = P1^0;
 sbit SEG_B = P1^1;
 sbit SEG_C = P1^2;
 sbit SEG_D = P1^3;
 sbit SEG_E = P1^4;
 sbit SEG_F = P1^5;
 sbit SEG_G = P1^6;
 sbit SEG_DP = P1^7;
 // 定義按鍵引腳
 sbit KEY_SET = P0^0;
 sbit KEY_ADD = P0^1;
 sbit KEY_SUB = P0^2;
 ?
 // 定義全局變量
 unsigned char code DisplayChar[] = {
     0xc0, 0xf9, 0xa4, 0xb0, 0x99,
     0x92, 0x82, 0xf8, 0x80, 0x90}; // 數(shù)碼管顯示字符編碼
 unsigned char TempData[4] = {0, 0, 0, 0}; // 顯示溫度值的數(shù)組
 unsigned char SetTemp = 25; // 設(shè)定溫度上限閥值
 unsigned char LastKeyStatus = 0x07; // 按鍵狀態(tài)
 unsigned char Count = 0; // 數(shù)碼管掃描計(jì)數(shù)器
 bit IsAlarm = 0; // 報(bào)警狀態(tài)
 ?
 // 定時(shí)器中斷服務(wù)函數(shù)
 void Timer0_ISR() interrupt 1 {
     TH0 = 0xfc;
     TL0 = 0x67;
 ?
     DIG_1 = DIG_2 = DIG_3 = DIG_4 = 1; // 關(guān)閉所有數(shù)碼管
     Count++; // 數(shù)碼管掃描計(jì)數(shù)器加1
 ?
     switch (Count) {
         case 1: // 掃描第1位數(shù)碼管
             DIG_1 = 0;
             P0 = TempData[3];
             break;
         case 2: // 掃描第2位數(shù)碼管
             DIG_2 = 0;
             P0 = TempData[2];
             break;
         case 3: // 掃描第3位數(shù)碼管
             DIG_3 = 0;
             P0 = TempData[1];
             break;
         case 4: // 掃描第4位數(shù)碼管
             DIG_4 = 0;
             P0 = TempData[0];
             break;
         default:
             Count = 0;
             break;
     }
 }
 ?
 // 延時(shí)函數(shù)
 void Delay(unsigned int n) {
     unsigned int i, j;
 ?
     for(i=0; i< n; i++) {
         for(j=0; j< 125; j++);
     }
 }
 ?
 // 數(shù)字溫度計(jì)初始化函數(shù)
 void Init() {
     TMOD |= 0x01; // 定時(shí)器0工作在模式1
     TH0 = 0xfc; // 定時(shí)器0初始值
     TL0 = 0x67;
     ET0 = 1; // 允許定時(shí)器0中斷
     TR0 = 1; // 啟動(dòng)定時(shí)器0
 ?
     EA = 1; // 允許中斷
 }
 ?
 // DS18B20復(fù)位函數(shù)
 bit Reset() {
     bit res;
 ?
     DQ = 0;
     Delay(480);
     DQ = 1;
     Delay(60);
     res = DQ;
     Delay(420);
 ?
     return res;
 }
 ?
 // DS18B20寫字節(jié)函數(shù)
 void WriteByte(unsigned char dat) {
     unsigned char i;
 ?
     for(i=0; i< 8; i++) {
         DQ = 0;
         Delay(2);
         DQ = dat & 0x01;
         Delay(60);
         DQ = 1;
         Delay(2);
         dat > >= 1;
     }
 }
 ?
 // DS18B20讀字節(jié)函數(shù)
 unsigned char ReadByte() {
     unsigned char i, j, dat = 0;
 ?
     for(i=0; i< 8; i++) {
         DQ = 0;
         Delay(2);
         DQ = 1;
         Delay(2);
         j = DQ;
         Delay(60);
         dat |= (j < < i);
     }
 ?
     return dat;
 }
 ?
 // DS18B20溫度轉(zhuǎn)換函數(shù)
 void TempConv() {
     if(!Reset()) {
         WriteByte(0xCC); // 跳過ROM操作,直接訪問DS18B20
         WriteByte(0x44); // 發(fā)送溫度轉(zhuǎn)換命令
     }
 }
 ?
 // DS18B20讀取溫度函數(shù)
 void ReadTemp() {
     unsigned char TL, TH;
 ?
     if(!Reset()) {
         WriteByte(0xCC); // 跳過ROM操作,直接訪問DS18B20
         WriteByte(0xBE); // 發(fā)送讀取溫度命令
         TL = ReadByte(); // 讀取溫度值低8位
         TH = ReadByte(); // 讀取溫度值高8位
 ?
         if(TH > 7) { // 溫度值為負(fù)數(shù),進(jìn)行補(bǔ)碼轉(zhuǎn)換
             TH = ~TH;
             TL = ~TL;
             TempData[0] = ((unsigned short)(TH < < 8) | TL) * -0.0625 * 10 + 0.5; // 計(jì)算溫度值并保存
             TempData[1] = DisplayChar[10]; // 顯示字符“-”
         } else { // 溫度值為正數(shù)
             TempData[0] = ((unsigned short)(TH < < 8) | TL) * 0.0625 * 10 + 0.5; // 計(jì)算溫度值并保存
             TempData[1] = DisplayChar[TempData[0] / 10]; // 顯示整數(shù)部分
         }
 ?
         TempData[2] = DisplayChar[TempData[0] % 10]; // 顯示小數(shù)部分
     }
 }
 ?
 // 按鍵檢測(cè)函數(shù)
 void KeyCheck() {
     unsigned char key_status = 0;
 ?
     if(KEY_SET == 0) { // 設(shè)定按鍵被按下
         key_status |= 0x01;
     }
     if(KEY_ADD == 0) { // 加溫按鍵被按下
         key_status |= 0x02;
     }
     if(KEY_SUB == 0) { // 減溫按鍵被按下
         key_status |= 0x04;
     }
 ?
     if(key_status != LastKeyStatus) { // 判斷是否有按鍵事件發(fā)生
         Delay(10); // 延時(shí)去抖
         if(key_status != LastKeyStatus) { // 再次判斷是否有按鍵事件發(fā)生
             switch(key_status) {
                 case 0x01: // 設(shè)定按鍵被按下
                     SetTemp++; // 溫度上限閥值加1
                     if(SetTemp > 50) { // 上限閥值不能超過50℃
                         SetTemp = 50;
                     }
                     break;
                 case 0x02: // 加溫按鍵被按下
                     break;
                 case 0x04: // 減溫按鍵被按下
                     break;
                 default:
                     break;
             }
         }
         LastKeyStatus = key_status; // 保存當(dāng)前按鍵狀態(tài)
     }
 }
 ?
 // 報(bào)警函數(shù)
 void Alarm() {
     if(TempData[0] > SetTemp * 10 && !IsAlarm) { // 當(dāng)溫度超過設(shè)定的閥值且沒有報(bào)警時(shí)觸發(fā)報(bào)警
         IsAlarm = 1; // 設(shè)置報(bào)警標(biāo)志
         while(TempData[0] > SetTemp * 10) { // 循環(huán)等待
             P1 = 0xff; // 關(guān)閉數(shù)碼管
             P0 = 0x00; // 關(guān)閉蜂鳴器
             Delay(500); // 延時(shí)
             P1 = 0x00; // 打開數(shù)碼管
             P0 = 0xff; // 打開蜂鳴器
             Delay(500); // 延時(shí)
         }
     } else if(TempData[0] <= SetTemp * 10) { // 當(dāng)溫度低于等于設(shè)定的閥值時(shí),取消報(bào)警
         IsAlarm = 0; // 清除報(bào)警標(biāo)志
     }
 }
 ?
 // 主函數(shù)
 void main() {
     Init(); // 初始化數(shù)字溫度計(jì)
 ?
     while(1) {
         TempConv(); // 溫度轉(zhuǎn)換
         ReadTemp(); // 讀取溫度值
         KeyCheck(); // 按鍵檢測(cè)
         Alarm(); // 報(bào)警處理
     }
 }

這份代碼的設(shè)計(jì)主要分為4個(gè)模塊:

(1)數(shù)碼管顯示模塊:使用四位共陰數(shù)碼管進(jìn)行溫度值的顯示,采用定時(shí)中斷掃描四個(gè)數(shù)碼管的方式進(jìn)行顯示。

(2)DS18B20模塊:通過DS18B20溫度傳感器獲取當(dāng)前溫度值,并將溫度值保存到數(shù)組中,以便于數(shù)碼管顯示模塊進(jìn)行顯示。

(3)按鍵檢測(cè)模塊:通過檢測(cè)按鍵狀態(tài),實(shí)現(xiàn)設(shè)定溫度上限閥值、加溫和減溫等操作。

(4)報(bào)警模塊:當(dāng)當(dāng)前溫度超過設(shè)定的溫度上限閥值時(shí),觸發(fā)蜂鳴器報(bào)警。

代碼主要使用51單片機(jī)進(jìn)行設(shè)計(jì),其中主要包含了DS18B20溫度傳感器的讀取、按鍵檢測(cè)、數(shù)碼管顯示、蜂鳴器控制等多種功能。通過使用定時(shí)中斷和循環(huán)結(jié)構(gòu),實(shí)現(xiàn)了各個(gè)模塊之間的協(xié)作,從而一同完成數(shù)字溫度計(jì)的設(shè)計(jì)。
審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2553

    文章

    51400

    瀏覽量

    756612
  • 51單片機(jī)
    +關(guān)注

    關(guān)注

    274

    文章

    5705

    瀏覽量

    124303
  • 數(shù)字溫度計(jì)

    關(guān)注

    3

    文章

    109

    瀏覽量

    21832
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    數(shù)字溫度計(jì)

    `關(guān)于51單片機(jī)數(shù)字溫度計(jì)`
    發(fā)表于 11-18 15:33

    單片機(jī)數(shù)字溫度計(jì)

    求大神來一個(gè)單片機(jī)數(shù)字溫度計(jì)的程序和仿真圖
    發(fā)表于 11-26 20:31

    基于D的數(shù)字溫度計(jì)的設(shè)計(jì)

    基于D的數(shù)字溫度計(jì)的設(shè)計(jì):介紹了高分辨率數(shù)字溫度訃/恒溫器DSl626/DSl726的特點(diǎn)、功能和測(cè)溫原理,并以它為溫度傳感器,與89C
    發(fā)表于 09-14 09:49 ?68次下載

    單片機(jī)設(shè)計(jì)的超低功耗電子溫度計(jì)方案

    單片機(jī)設(shè)計(jì)的超低功耗電子溫度計(jì)方案 本文設(shè)計(jì)的超低功耗電子溫度計(jì)能夠通過溫度
    發(fā)表于 04-16 14:32 ?1599次閱讀
    <b class='flag-5'>單片機(jī)設(shè)</b>計(jì)的超低功耗電子<b class='flag-5'>溫度計(jì)</b>方案

    基于51單片機(jī)溫度計(jì)

    基于51單片機(jī)溫度計(jì),包括protues仿真,程序。
    發(fā)表于 04-28 09:49 ?59次下載

    51單片機(jī)與DS18B20的數(shù)字溫度計(jì)

    51單片機(jī)與DS18B20的數(shù)字溫度計(jì)
    發(fā)表于 05-19 15:32 ?117次下載

    基于單片機(jī)數(shù)字溫度計(jì)資料

    一款基于單片機(jī)設(shè)計(jì)的溫度計(jì),有興趣的朋友可以下來看看。
    發(fā)表于 12-17 16:18 ?6次下載

    基于單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)

    51單片機(jī),數(shù)字溫度計(jì)
    發(fā)表于 01-04 14:52 ?57次下載

    基于單片機(jī)數(shù)字溫度計(jì)的設(shè)計(jì)及顯示

    基于單片機(jī)數(shù)字溫度計(jì)的設(shè)計(jì)及顯示
    發(fā)表于 01-14 12:29 ?78次下載

    51單片機(jī)數(shù)字溫度計(jì)+燈光報(bào)警(仿真|+源程序)

    51單片機(jī)數(shù)字溫度計(jì)+燈光報(bào)警(仿真|+源程序)
    發(fā)表于 01-18 20:23 ?208次下載

    使用51單片機(jī)設(shè)計(jì)溫度計(jì)的程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)設(shè)計(jì)溫度計(jì)的程序免費(fèi)下載。通過溫度感應(yīng)元件 DS18B20 能感應(yīng)周圍的溫度,然后再通過數(shù)碼管顯示
    發(fā)表于 06-17 17:44 ?13次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)設(shè)</b>計(jì)<b class='flag-5'>溫度計(jì)</b>的程序免費(fèi)下載

    基于單片機(jī)溫度計(jì)設(shè)計(jì)

    文末下載完整資料摘要:隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),本文將介紹一種基于單片機(jī)控制的數(shù)字溫度計(jì),本
    發(fā)表于 11-04 12:21 ?39次下載
    基于<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>溫度計(jì)</b>設(shè)計(jì)

    基于單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)-零妖

    1,開發(fā)前規(guī)劃 基于單片機(jī)數(shù)字溫度計(jì)-開發(fā)前規(guī)劃 關(guān)鍵字 溫度計(jì)51
    發(fā)表于 11-05 12:51 ?46次下載
    基于<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>數(shù)字</b><b class='flag-5'>溫度計(jì)</b>設(shè)計(jì)-零妖

    基于51單片機(jī)的熱敏電阻數(shù)字溫度計(jì)設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的熱敏電阻數(shù)字溫度計(jì)設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-03 11:17 ?34次下載

    基于51單片機(jī)的熱敏電阻數(shù)字溫度計(jì)設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的熱敏電阻數(shù)字溫度計(jì)設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-12 09:32 ?27次下載
    主站蜘蛛池模板: 天天综合网天天综合色 | 九色视频在线播放 | 美女扒开尿口让男生添 漫画 | 日韩黄色免费 | 噜噜噜噜噜久久久久久91 | 中文字幕色综合久久 | 特级aaaaaaaaa毛片免费视频 | 色婷婷影视 | 免费看片免费播放 | 97色伦人人 | 神马影视午夜 | 2019天天爱天天做 | 亚欧精品一区二区三区 | 狠狠干干 | 又色又爽的视频 | 在线观看国产日本 | 羞羞答答xxdd影院欧美 | h网站在线 | 27pao强力打造高清免费高 | 国产精品特黄毛片 | 亚洲黄色成人 | 伊人婷婷色香五月综合缴激情 | 日本一区二区免费看 | 精品毛片视频 | 国产伦子系列视频6 | 夜夜操夜夜操 | 卡一卡二卡三国色天香永不失联 | 五月婷婷网址 | 高清国产在线 | 亚洲成人激情电影 | 婷婷综合 在线 | 伊人网网站 | 韩国三级观影久久 | 亚洲国产精品综合久久网络 | 可以直接看的黄色网址 | 久久综合色区 | 99久热| 成人女人a毛片在线看 | 色偷偷91久久综合噜噜噜 | videos另类重口tv | 九月丁香婷婷 |