wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4243|回復: 1
收起左側

單片機+溫度檢測+空氣檢測+PM2.5檢測

[復制鏈接]
ID:821815 發表于 2021-4-19 21:07 | 顯示全部樓層 |閱讀模式
基于51單片機的空氣質量監測系統
原理圖:
G@VDRW@D8~K3P23N@CW2~U0.png


程序如下:
#include <reg52.h>
#include <intrins.h>
#include <absacc.h>
#include <math.h>
#include "0832.h"

#define uchar unsigned char
#define uint unsigned int



//定義LCD1602端口
sbit E=P2^6;                //1602使能引腳
sbit RS=P2^7;                //1602數據/命令選擇引腳
sbit RW=P2^5;

sbit LED_RED=P2^2;
sbit LED_YELLOW=P2^1;
sbit LED_GREEN=P2^0;


sbit SET_KEY=P3^4;
sbit ADD_KEY=P3^5;
sbit SUB_KEY=P3^6;


sbit BUZZ=P3^7;
sbit jdq=P2^4;

                       
                       
volatile unsigned char BEEP_Cnt = 0;
                       
unsigned char PM_Waring = 50;
unsigned char Temp_Waring = 20;
unsigned char Smok_Waring = 50;


unsigned char Smok_Value = 125;

unsigned char PM_Waring;
unsigned char PM_Value;





bit FlagStartRH=0;
bit flag_BJ=0;

unsigned char a1,a2,a3;




extern volatile unsigned char KEY_Value;
#define KEY_NOP         0
#define KEY_SET                     1
#define KEY_UP                      2
#define KEY_DOWN                           3




void Delay_1ms(unsigned int n)                //@11.0592MHz
{
       
        unsigned char i, j;
        while(n--)
        {
                _nop_();
                i = 2;
                j = 199;
                do
                {
                        while (--j);
                } while (--i);
        }
}



volatile unsigned char KEY_Value = KEY_NOP;



void Key_Scan(void)        //按鍵檢測
{
       
        static volatile unsigned char Trg = 0;
        static volatile unsigned char Cnt = 0;
        unsigned char KeyRead = 0;
       
        KeyRead = ((P3>>4) & 0X07) ^ 0X07;
        Trg = KeyRead ^ (KeyRead & Cnt);
  Cnt =        KeyRead;
       
        if(Trg)
        {
                switch(Trg)
                {
                        case 0x01: KEY_Value = KEY_SET; break;
                        case 0x02: KEY_Value = KEY_UP; break;
                        case 0x04: KEY_Value = KEY_DOWN; break;
                       
                        default:   KEY_Value = KEY_NOP;break;

                       
                }
               
               
        }
       
}









unsigned char Temp_Value = 0; //溫度

/*********************************端口定義**********************************/
sbit DQ=P1^6;                                   //數據傳輸線接單片機的相應的引腳




/*********************************定義全局變量******************************/
bit TemperatureLessZero;
unsigned int Temperature = 850;           //溫度值(整型變量)182表示18.2C
/****************************************************************************
函數功能:延時子程序
入口參數:k
出口參數:
****************************************************************************/
void DS18_delay(unsigned char useconds)                  //延遲17US.根據晶振調節
{
        unsigned char i;
        while(--useconds)
        {
                i = 3;
                while (--i);
        }
}

/***************************************************************************
函數功能:DS18B20初始化子程序
入口參數:
出口參數:
****************************************************************************/
unsigned char Init_DS18B20(void)
{
        unsigned char x=0;

          DQ=0;                             //發送復位脈沖
          DS18_delay(29);                         //延時(>480us)
          DQ=1;                                  //拉高數據線
          DS18_delay(3);                       //等待(15~60us) 等待存在脈沖
    x=DQ;  //獲得存在信號(用于判斷是否有器件)
    DS18_delay(25);  // 等待時間隙結束
    return(x);  //返回存在信號,0 = 器件存在, 1 = 無器件
}

/****************************************************************************
函數功能:向DS18B20讀一字節數據
入口參數:
出口參數:dat
****************************************************************************/
ReadOneChar(void)                         
{
        unsigned char i=0;                
        unsigned char dat=0;
    for (i=8;i>0;i--)                 
                {
                        DQ=1;
                           DS18_delay(1);
                    DQ=0;      
                    dat>>=1;//復合賦值運算,等效dat=dat>>1(dat=dat右移一位后的值)
                           DQ=1;
                    if(DQ)
                           dat|=0x80;
                    DS18_delay(4);
                }
    return(dat);
}

/****************************************************************************
函數功能:向DS18B20寫一字節數據
入口參數:dat
出口參數:
****************************************************************************/
void WriteOneChar(unsigned char dat)//有參函數,功能是"寫",而寫的內容就是括號內的參數
{
        unsigned char i=0;                
        for(i=8;i>0;i--)         
        {
                DQ=0;           
                DQ=dat&0x01;
                DS18_delay(4);
                DQ=1;
                dat>>=1;//復合賦值運算,等效dat=dat>>1(dat=dat右移一位后的值)
        }
//        DS18_delay(4);
}
                       
/****************************************************************************
函數功能:向DS18B20讀溫度值
入口參數:
出口參數:temperature
****************************************************************************/
void ReadTemperature(void)
{  
        unsigned char tempL=0;                         //臨時變量低位(無符號字符變量)
        unsigned char tempH=0;                        //臨時變量高位
        bit flag = 0;
        EA = 0;
        Init_DS18B20();                                 //初始化,調用初始化函數
        WriteOneChar(0xcc);                  //跳過讀序列號的操作,調用寫函數,寫0xcc指令碼(跳過讀序列號)
        WriteOneChar(0x44);                 //啟動溫度轉換,調用寫函數,寫0x44指令碼(啟動溫度轉換)

//  Time = get_time();
//        DS18_delay(125);                           //轉換需要一點時間,延時
        Init_DS18B20();                         //初始化,調用初始化函數
        WriteOneChar(0xcc);                  //跳過讀序列號的操作,調用寫函數,寫0xcc指令碼(跳過讀序列號?
        WriteOneChar(0xbe);                 //調用寫函數,寫0xbe指令碼,讀溫度寄存器(頭兩個值分別為溫度的低位和高位)
        tempL=ReadOneChar();                 //讀出溫度的低位LSB
        tempH=ReadOneChar();                 //讀出溫度的高位MSB  
        TemperatureLessZero = (bit)(tempH&0x80);
  Temperature=((((tempH&0x7F)<<8)+tempL)*10)>>4;  //溫度轉換,把高低位做相應的運算轉化為實際溫度,使用DS18B20溫度傳感器手冊規定的公式,結果是十進制數值
                                                  //這里使用*0.0625,直接增加500+字節代碼
       
        EA = 1;
        Temp_Value = Temperature/10;
       
        if(Temp_Value > 125) Temp_Value =125;
        if(TemperatureLessZero)Temp_Value = 0;

//        DS18_delay(20);
//        return(tempa);//運算結果返回到函數 :ReadTemperature()調用時需要采用i=ReadTemperature(),然后再對i(任意uchar型變量)進行操作
}






void L1602_string(uchar hang,uchar lie,uchar *p);

//定時器0初始化
void Timer0_Init()
{
        //AUXR &= 0x7F;                //定時器時鐘12T模式
        TMOD &= 0xF0;                //設置定時器模式
        TMOD |= 0x01;                //設置定時器模式
        TL0 = 0xB0;                //設置定時初值
        TH0 = 0x3C;                //設置定時初值
        TF0 = 0;                //清除TF0標志
        TR0 = 1;                //定時器0開始計時
        ET0 = 1;
}

bit Time0_300ms_Flag = 1;


//定時器0中斷
void Timer0_ISR (void) interrupt 1 using 0
{
        static uchar RHCounter;
        static uchar Time0_300ms_Cnt;
       
        TR0 = 0;
        TL0 = 0xb0;
        TH0 = 0x3c;     //定時器賦予初值
        TR0 = 1;
       
       
        Key_Scan();
       
        if(++Time0_300ms_Cnt>= 6)
        {
                Time0_300ms_Cnt = 0;
                Time0_300ms_Flag = 1;
        }

    if(++RHCounter >= 20)
    {
                         RHCounter = 0;
                       
       FlagStartRH = 1;
                       
    }
               
        if(BEEP_Cnt)
        {
                BEEP_Cnt--;
                BUZZ = 0;
        }
        else
        {       
                BUZZ = 1;
        }
}


/********************************************************************
* 文件名  : 液晶1602顯示.c
* 描述    :  該程序實現了對液晶1602的控制。
***********************************************************************/


/********************************************************************
* 名稱 : delay()
* 功能 : 延時,延時時間大概為140US。
* 輸入 : 無
* 輸出 : 無
***********************************************************************/

void delay()
{
        int i,j;
        for(i=0; i<=10; i++)
        for(j=0; j<=2; j++);
}

void delay_ms(uint ms)
{
        uint i,j;
        for(i=0;i<ms;i++)
        for(j=0;j<110;j++);
}           
       
/********************************************************************
* 名稱 : enable(uchar del)
* 功能 : 1602命令函數
* 輸入 : 輸入的命令值
* 輸出 : 無
***********************************************************************/

void enable(uchar del)
{
        P0 = del;
        RS = 0;
        E = 1;
        delay();
        E = 0;
        delay();
}

/********************************************************************
* 名稱 : write(uchar del)
* 功能 : 1602寫數據函數
* 輸入 : 需要寫入1602的數據
* 輸出 : 無
***********************************************************************/

void write(uchar del)
{
        P0 = del;
        RS = 1;
        E = 1;
        delay();
        E = 0;
        delay();
}

/********************************************************************
* 名稱 : L1602_init()
* 功能 : 1602初始化,請參考1602的資料
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
void L1602_init(void)
{
        RW=0;
        enable(0x38);
        enable(0x0c);
        enable(0x06);
        enable(0x01); //清屏要放在最后
        enable(0x80);
        L1602_string(1,1," PM2.5:   0ug/m3");
        enable(0xc0+0x02);
        write(0xdf);
        L1602_string(2,4,"C");
        L1602_string(2,5," Smok:");
}

/********************************************************************
* 名稱 : L1602_char(uchar hang,uchar lie,char sign)
* 功能 : 改變液晶中某位的值,如果要讓第一行,第五個字符顯示"b" ,調用該函數如下
                 L1602_char(1,5,'b')
* 輸入 : 行,列,需要輸入1602的數據
* 輸出 : 無
***********************************************************************/
void L1602_char(uchar hang,uchar lie,char sign)
{
        uchar a;
        if(hang == 1) a = 0x80;
        if(hang == 2) a = 0xc0;
        a = a + lie - 1;
        enable(a);
        write(sign);
}

/********************************************************************
* 名稱 : L1602_string(uchar hang,uchar lie,uchar *p)
* 功能 : 改變液晶中某位的值,如果要讓第一行,第五個字符開始顯示"ab cd ef" ,調用該函數如下
                  L1602_string(1,5,"ab cd ef;")
* 輸入 : 行,列,需要輸入1602的數據
* 輸出 : 無
***********************************************************************/
void L1602_string(uchar hang,uchar lie,uchar *p)
{
        uchar a;
        if(hang == 1) a = 0x80;
        if(hang == 2) a = 0xc0;
        a = a + lie - 1;
        enable(a);
        while(1)
        {
                if(*p == '\0') break;
                write(*p);
                p++;
        }
}






void LCD1602_Write_String(bit x,unsigned char y,unsigned char *P)
{
       
        if(x)
        {
                enable(0x80 + 0x40 + y);
        }
        else
        {
                enable(0x80 + y);
        }
       
        while(*P)
        {
                write(*P++);
        }
       
}




void LCD1602_Write_8bit(unsigned int x,unsigned char SIZE)
{
        switch(SIZE)
        {
               
                case 3:
               
                                        write(0x30 + ((x/100)%10));
                                        write(0x30 + ((x/10)%10));
                                        write(0x30 + ((x)%10));
               
                                        break;
                case 4:
                       
                        break;
               
               
                default:  break;
               
        }
}



void display()
{

        if(PM_Value%10000/1000!=0)
        L1602_char(1,8,PM_Value%10000/1000+0x30);
        else
        L1602_char(1,8,' ');
        if(PM_Value%10000/100!=0)
        L1602_char(1,9,PM_Value%1000/100+0x30);
        else
        L1602_char(1,9,' ');
        if(PM_Value%10000/10!=0)
        L1602_char(1,10,PM_Value%100/10+0x30);
        else
        L1602_char(1,10,' ');
        L1602_char(1,11,PM_Value%10+0x30);
       

        a1=(Temp_Value/10)%10;
        a3=Temp_Value%10;

        L1602_char(2,1,a1+0x30);
        L1602_char(2,2,a3+0x30);
       
       
        L1602_string(2,5," Smok:");
       
        LCD1602_Write_8bit(Smok_Value,3);
       
        BUZZ=1;         //蜂鳴器關
}



void ALARM()
{
       
        if((PM_Value >= PM_Waring)||(Smok_Value >= Smok_Waring)||(Temp_Value >= Temp_Waring))
        {
                BEEP_Cnt = 20;
               
                LED_RED=0;
                LED_YELLOW=1;
                LED_GREEN=1;
                jdq=0;
        }
        else
        {
                if((PM_Value < PM_Waring)  &&  (PM_Value >= PM_Waring/2) && (Smok_Value < Smok_Waring)&& (Temp_Value < Temp_Waring))
                {
                        LED_RED=1;
                        LED_YELLOW=0;
                        LED_GREEN=1;
                        jdq=1;
                }
                else
                {
                        LED_RED=1;
                        LED_YELLOW=1;
                        LED_GREEN=0;
                        jdq=1;
                }

        }
}





bit LCD1602_Enable = 1;

volatile unsigned char Menu_States = 0;



void KEY_Processing(void)
{
       
        if(KEY_SET == KEY_Value)       
        {
                KEY_Value = KEY_NOP;

                Menu_States = ++Menu_States % 4;
               
                enable(0x01);
                if(Menu_States == 0)
                {
                        L1602_init();
                }       
               
                LCD1602_Enable = 1;
        }
       
       
        if(KEY_UP==KEY_Value)        //下限加
        {
                KEY_Value = KEY_NOP;
                LCD1602_Enable = 1;
                switch(Menu_States)
                {
                        case 1:if(PM_Waring   < 255)PM_Waring++;   enable(0x01);  break;
                        case 2:if(Temp_Waring < 125)Temp_Waring++; enable(0x01); break;
                        case 3:if(Smok_Waring < 100)Smok_Waring++; enable(0x01); break;
                }
        }
       
       
        if(KEY_DOWN ==KEY_Value)        //上限減
        {
                KEY_Value = KEY_NOP;
                LCD1602_Enable = 1;
                switch(Menu_States)
                {
                        case 1:if(PM_Waring   > 0)PM_Waring--;   enable(0x01); break;
                        case 2:if(Temp_Waring > 0)Temp_Waring--; enable(0x01); break;
                        case 3:if(Smok_Waring > 0)Smok_Waring--; enable(0x01); break;
                       
                }
        }

       
       
       
}





void LCD1602_Processing(void)
{
       
        if(Time0_300ms_Flag || LCD1602_Enable)
        {
                Time0_300ms_Flag = 0;
                LCD1602_Enable = 0;
                switch(Menu_States)
                {
                        case 0:
                                                        display();
                                                        break;
                       
                        case 1:
                                                        enable(0x0c);  //不顯示光標
                                                        LCD1602_Write_String(0,0,"PM_Waring:");
                       
                                                        enable(0xC0+4);
                                                        LCD1602_Write_8bit(PM_Waring,3);
                               
                                                        enable(0xC0+6);
                                                        enable(0x0F);  //顯示光標
                       
                                                break;
                       
                        case 2:
                                                        enable(0x0c);  //不顯示光標
                                                        LCD1602_Write_String(0,0,"Temp_Waring:");
                                                        enable(0xC0+4);
                                                        LCD1602_Write_8bit(Temp_Waring,3);
                               
                                                        enable(0xC0+6);
                                                        enable(0x0F);  //顯示光標
                       
                                                break;
                       
                        case 3:
                                                        enable(0x0c);  //不顯示光標
                                                        LCD1602_Write_String(0,0,"Smok_Waring:");
                       
                                                        enable(0xC0+4);
                                                        LCD1602_Write_8bit(Smok_Waring,3);
                                                        enable(0xC0+6);
                                                        enable(0x0F);  //顯示光標
                                                break;
                       
                       
                        default:  break;
                       
                }                       
        }
}



/********************************************************************
* 名稱 : Main()
* 功能 : 主函數
***********************************************************************/
void main()
{
        static bit CH;
        Timer0_Init();  //定時器0初始化
       

        L1602_init();
       
        ReadTemperature();
        ReadTemperature();
        Delay_1ms(1000);
        ReadTemperature();
        Delay_1ms(1000);
  ReadTemperature();
        Delay_1ms(1000);
        ReadTemperature();
        Delay_1ms(1000);
        ReadTemperature();
       
        PM_Value = ADC0832_Read(0);
       
        Smok_Value = ADC0832_Read(1)/2.56;
       
        EA = 1;
        while(1)
        {
                if(FlagStartRH )         //溫濕度轉換標志檢查
                {
                        FlagStartRH = 0;
                                 
                        CH = ~CH;
                       
                        if(CH)
                        {
                                PM_Value = ADC0832_Read(0);
                        }
                        else
                        {
                                Smok_Value = ADC0832_Read(1)/2.56;
                        }
               
                        ReadTemperature();

                }
               
                LCD1602_Processing();
               
                KEY_Processing();
               
                ALARM();
        }
}


回復

使用道具 舉報

ID:910466 發表于 2021-4-25 20:06 | 顯示全部樓層
#include "0832.h"
這個文件是什么啊?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
欧美激情综合五月色丁香小说| 色小说视频一区| 在线观看视频免费| 亚洲av无码不卡| 免费网站在线观看黄| 欧美日韩大片一区二区三区| 福利一区视频在线观看| 免费高清成人在线| 伊人久久大香线蕉综合网蜜芽| 日本网站在线免费观看视频| 免费看黄色网址| 国产哺乳奶水91在线播放| 欧美人妻一区二区三区| 国产日韩一区二区在线观看| 国产一区二区三区视频免费| 香蕉乱码成人久久天堂爱免费| 国产精品一区二区不卡| 久久国产精品成人免费观看的软件| 伊人久久综合一区二区| 欧美6699| 国产日韩欧美中文字幕| 久久久精品999| 精品国产31久久久久久| 日韩午夜在线| 国产精品1luya在线播放| 蜜桃视频中文字幕| 亚洲 欧美 中文字幕| 国产福利在线观看视频| 92看片淫黄大片一级| 日韩av影视| 成人性生交xxxxx网站| 欧美xxxx14xxxxx性爽| 欧美一区在线视频| 不卡的av在线播放| 美日韩黄色大片| 中文在线а√天堂| 免费观看的av网站| 最新福利小视频在线播放| 国产三级自拍视频| 秋霞精品一区二区三区| 顶臀精品视频www| 97香蕉碰碰人妻国产欧美| 88av.com| 少妇高潮毛片色欲ava片| 亚洲国产成人不卡| 国产精品一区二| 91精品国产综合久久香蕉| 色综合久久久久综合| 日本一区二区三区免费乱视频| 国产一区二区导航在线播放| 日韩精品亚洲专区| 亚洲三级视频| 日韩一区二区三区高清在线观看| wwwwxxxx在线观看| 国产美女av在线| 欧美成熟毛茸茸| 午夜黄色一级片| 加勒比一区二区三区| 成年人三级网站| 免费看污网站| 交videos老少配com| 夜夜操com| 天堂网.www在线资源| 免费在线观看视频a| 欧美一区二区三区在线播放| 国产精品9999久久久久仙踪林| 国产精品一区二区在线| 国产精品影院在线观看| 国产精品69av| 国产精品狼人色视频一区| 国产精品成人播放| 国产精品专区h在线观看| 国产精品国产三级国产aⅴ9色| 欧美综合国产精品久久丁香| 日韩av电影中文字幕| 国产成人久久久精品一区| 日本久久91av| 成人av在线天堂| 99在线观看视频| 91精品91久久久久久| 日韩精品欧美国产精品忘忧草| 精品久久一区二区| 欧美性色黄大片| 中文在线一区二区| 国产精品高潮久久久久无| 久久色视频免费观看| 欧美国产视频在线| 亚洲最大成人综合| 婷婷中文字幕综合| 欧美日韩一区二区三区在线| 日韩一区二区三区av| 亚洲国产中文字幕久久网| 亚洲色在线视频| 久久99精品久久久久久噜噜| 日本精品视频在线| 91入口在线观看| 国产精品一区电影| 风间由美久久久| 四虎影院一区二区三区| 一级性生活视频| 久久9精品区-无套内射无码| 国内国产精品天干天干| 日韩欧美国产免费| 在线观看免费的av| 亚洲自拍偷拍一区二区| 欧美日韩在线视频免费| 特级西西444www高清大视频| 午夜av免费在线观看| 国产成人精品免费视频大全软件| 又黄又爽毛片免费观看| 精品久久久久久久久久久久久久久久| www日本高清| www.国产麻豆| 国产成人精品一区二区免费视频| 在线久久视频| 91精品国产黑色瑜伽裤| 国产一区二区三区亚洲| 日韩一级在线| 国产视频一区二区在线观看| 在线免费观看成人短视频| 在线免费一区三区| 国产一区二区黄| 国产精品人人做人人爽| 亚洲精品乱码视频| www.夜夜爽| 欧美成人免费观看视频| 色丁香婷婷综合久久| 插菊花综合1| 男女在线观看视频| 欧美挤奶吃奶水xxxxx| 日韩成人免费电影| 亚洲男人电影天堂| 日韩精品在线免费观看视频| 欧美中文字幕在线播放| 三区精品视频| 91欧美一区二区三区| 国产精品第二十页| 最近中文字幕mv免费高清视频8| japanese日本护士撒尿| 麻豆影视在线观看_| 中文字幕乱在线伦视频乱在线伦视频| eeuss影院www免费视频| 日本大臀精品| 黄色在线免费观看网站| 午夜视频一区二区在线观看| 中文字幕免费一区二区| 日韩黄色在线| 韩日精品在线| 香蕉久久久久久久av网站| 成人免费视频app| 午夜不卡在线视频| 亚洲欧美日韩精品久久奇米色影视| 77777少妇光屁股久久一区| 久久久久久欧美精品色一二三四| 不卡中文字幕在线观看| 久久艹精品视频| 国产真人做爰毛片视频直播| 精品视频站长推荐| 亚洲高清视频免费观看| 999sesese| h片在线免费观看| 久久久久影视| 美国毛片一区二区| 亚洲第一搞黄网站| 久久久噜噜噜久久久| 久久草视频在线看| 欧美午夜精品理论片| 精品在线免费观看视频| 国产又黄又粗又猛又爽的| 香蕉久久国产av一区二区| 九色蝌蚪av新入口| 69av成人| 欧美.日韩.国产.一区.二区| 欧美一区在线看| 亚洲靠逼com| 亚洲欧美另类中文字幕| 91九色蝌蚪成人| 亚洲无吗一区二区三区| 日本免费网站视频| 性xxxxx| 成人欧美在线| 日韩黄色大片| 久久久久久黄色| 欧美一区2区视频在线观看| 91精品在线观看视频| 成人一级片网站| 日本少妇吞精囗交| 日皮视频免费观看| 日韩美女一级视频| 成人vr资源| 国产日韩精品视频一区| 亚洲第一精品夜夜躁人人躁| 成人深夜直播免费观看| 制服.丝袜.亚洲.中文.综合懂| 中文字幕欧美人妻精品一区蜜臀| 夜夜操天天干| 免费一区二区三区四区| 欧美aaa在线| 欧美日韩激情在线| 国产日韩中文字幕| 91小视频在线播放| 高h调教冰块play男男双性文| 三级国产在线观看| 精品99久久| 中文欧美字幕免费| 久久超碰97人人做人人爱| 欧美日韩免费一区二区三区| 国产精品一区二区久久久久| 尤蜜粉嫩av国产一区二区三区| 无码人妻精品一区二区50| 黄色网址网站| 国产伦精品一区二区三区在线播放| 国产精品一区在线观看乱码| 日韩视频免费观看高清在线视频| 97人人干人人| 肉色超薄丝袜脚交69xx图片| 小小的日本在线观看免费色网| 日本在线播放一二三区| 国产精久久久| 国产suv精品一区二区三区| 亚洲第一页中文字幕| 美女三级99| 国产精品 欧美激情| 五月婷婷丁香六月| h片在线免费观看| 麻豆精品网站| 欧美一区二区三区在线| 国产欧美日韩伦理| 狠狠人妻久久久久久综合蜜桃| 尤物视频在线观看视频| 成人深夜福利| 99精品视频在线观看免费| 亚洲国产精品久久久久秋霞蜜臀| 老司机激情视频| 五月天中文字幕| 自拍视频在线免费观看| 亚洲一级高清| 国产丝袜一区二区| www成人免费| 日韩a一级欧美一级| 在线观看精品自拍视频| 日本不卡免费高清视频在线| 鲁大师成人一区二区三区| 宅男噜噜噜66一区二区66| 欧美精品人人做人人爱视频| 波多野结衣一二区| 1024国产在线| 麻豆视频一区二区| 一区二区在线视频| 亚洲成a人片在线www| 91精品国产福利尤物| 亚洲国产欧美国产第一区| 综合网在线视频| 91黄色小视频| 亚洲精品成人三区| 久久久久久在线观看| 国产主播福利在线| 国产成人ay| 欧美喷水一区二区| 一区二区冒白浆视频| 2018日日夜夜| av网站在线免费看| 高清在线视频不卡| 国产在线视频一区二区| 久久在线免费观看视频| www激情五月| 本道综合精品| 99久久夜色精品国产亚洲狼 | 亚洲视频一起| 一区二区三区在线影院| aa成人免费视频| 免费观看一级视频| 午夜视频在线免费观看| 国产资源在线一区| 欧美国产视频一区二区| 亚洲中文字幕无码一区| 女人被狂躁到高潮的免费| 亚洲天堂黄色| 亚洲女人天堂av| 一级黄色大片儿| 国产精品yjizz视频网一二区| 日韩精品欧美| 精品久久久久一区二区国产| aaa毛片在线观看| 先锋影音中文字幕| 清纯唯美日韩| 亚洲精品乱码久久久久久按摩观| 黄色三级视频片| 精品推荐国产麻豆剧传媒| 欧美精品一区二区三区久久久竹菊| 亚洲国产小视频在线观看| 超碰影院在线观看| 国产在线视频你懂| 热久久一区二区| 97在线精品国自产拍中文| 99热99这里只有精品| 电影k8一区二区三区久久 | 中文字幕亚洲欧美日韩高清| 亚洲天堂av网站| 国产黄色在线| 99久久精品情趣| 国产不卡一区二区在线观看 | 亚洲一区在线视频观看| 欧美乱偷一区二区三区在线| 国内老熟妇对白hdxxxx| 国产精品久久免费视频 | 麻豆一区二区三| 欧美又大又粗又长| 久草中文在线视频| 17videosex性欧美| 日本黄色一区二区| 成人午夜视频免费在线观看| 国产尤物在线播放| 日本天堂在线观看| 亚洲一线二线三线视频| www国产无套内射com| 国产欧美日韩专区| 天堂日韩电影| 日韩在线中文字幕| 欧美另类videoxo高潮| 超碰caoporn久久| 久久精品亚洲麻豆av一区二区| 一区二区三区在线观看www| 欧美色图俺去了| 国一区二区在线观看| 久久久99久久精品女同性| www.国产成人| 欧美不卡在线观看| 精品久久久久久久久久久久久久久久久| 久久精品国产露脸对白| 深夜福利视频在线免费观看| 91色九色蝌蚪| 日本在线观看不卡| 免费黄色小网站| 精品综合免费视频观看| 7777精品久久久大香线蕉小说| 国产乱色精品成人免费视频| 91精品国产麻豆国产在线观看 | 黄色小视频大全| www.超级碰| 国产乱码精品一区二区三区av| 日本成人三级| 夜夜狂射影院| 国产美女精品在线| 999视频在线观看| 国产精品久久久精品a级小说| 久久不射中文字幕| 91久久国产综合久久蜜月精品 | 欧洲成人午夜精品无码区久久| 日本在线视频网址| 欧美亚洲一区二区在线| 熟妇女人妻丰满少妇中文字幕| 亚洲人成小说| 色94色欧美sute亚洲13| 男人女人拔萝卜视频| 少妇视频在线| 亚洲精品国产品国语在线| 加勒比婷婷色综合久久| 精品欧美视频| 亚洲热线99精品视频| 国产精品国产三级国产专区52| 日韩精品免费一区二区夜夜嗨 | 欧美日韩国产精品专区| 久久久精品三级| 丰乳肥臀在线| 日韩一二三区不卡| 多男操一女视频| 日本aⅴ写真网站免费| 国产视频一区在线播放| 午夜精品久久久内射近拍高清| 黄色网在线看| 欧美日韩午夜影院| a资源在线观看| 欧美精品三级在线| 国产69久久精品成人| 午夜在线视频观看| 麻豆一区二区三| 久在线观看视频| 国产网站在线播放| 欧洲一区二区av| 亚洲天堂av中文字幕| 中文字幕一区二区三区日韩精品| 日韩在线视频网站| 国产精品日韩无码| 激情图片小说一区| 狠狠干视频网站| 国产爆初菊在线观看免费视频网站| 正在播放亚洲一区| 全程偷拍露脸中年夫妇| 最新亚洲精品| 91久热免费在线视频| 玖玖精品国产| 播五月开心婷婷综合| 蜜桃网站在线观看| 黄污视频在线观看| 亚洲精品大尺度| 亚洲中文一区二区三区| 国产专区欧美精品| 久久国产精品网| 性爱视频在线播放|