色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

CC2530 ADC配置步驟

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

第一章 A/D轉(zhuǎn)換的基本工作原理

A/D轉(zhuǎn)換(Analog-to-Digital Conversion)是將模擬信號轉(zhuǎn)換為數(shù)字信號的過程。在各種電子系統(tǒng)中廣泛應(yīng)用,包括微控制器、數(shù)據(jù)采集系統(tǒng)、傳感器接口等。

A/D轉(zhuǎn)換器的基本工作原理如下:

(1)采樣(Sampling):A/D轉(zhuǎn)換開始時,模擬輸入信號被以固定時間間隔采樣。采樣是指在一段時間內(nèi)測量并記錄模擬輸入信號的電壓值或電流值。采樣速率決定了每秒對信號進(jìn)行采樣的次數(shù),也稱為采樣頻率。

(2)量化(Quantization):采樣后,模擬信號的幅度需要被量化為離散的數(shù)字值。這個過程將連續(xù)的模擬信號劃分為有限數(shù)量的離散級別,它決定了數(shù)字表示的精度。量化過程涉及將每個采樣值映射到最接近的離散級別上。

(3)編碼(Encoding):量化后,所得到的離散級別需要被編碼為二進(jìn)制數(shù)字。在大多數(shù)情況下,使用二進(jìn)制編碼來表示每個離散級別。編碼的位數(shù)決定了A/D轉(zhuǎn)換器的分辨率和所能表示的數(shù)字范圍。

(4)樣本保持(Sample and Hold):在進(jìn)行A/D轉(zhuǎn)換的過程中,模擬信號的值需要保持不變,以便進(jìn)行準(zhǔn)確的量化和編碼。為了實現(xiàn)這一點,樣本保持電路用于在樣本期間“凍結(jié)”輸入信號,直到轉(zhuǎn)換完成。

(5)轉(zhuǎn)換速率(Conversion Rate):A/D轉(zhuǎn)換器的轉(zhuǎn)換速率指的是它可以執(zhí)行的轉(zhuǎn)換操作的頻率。轉(zhuǎn)換速率取決于A/D轉(zhuǎn)換器的性能和應(yīng)用需求。較高的轉(zhuǎn)換速率對于需要實時數(shù)據(jù)獲取和高速處理的應(yīng)用是重要的。

A/D轉(zhuǎn)換的基本工作原理包括采樣、量化、編碼和樣本保持等步驟。通過這些步驟,模擬信號被轉(zhuǎn)換為離散的數(shù)字表示,從而使得數(shù)字系統(tǒng)能夠處理和分析這些信號。A/D轉(zhuǎn)換器在許多應(yīng)用中都扮演著至關(guān)重要的角色,例如傳感器數(shù)據(jù)采集、音頻處理、儀器測量等。

img

第二章 CC2530的A/D轉(zhuǎn)換模塊

CC2530的ADC模塊支持最高14位二進(jìn)制的模擬數(shù)字轉(zhuǎn)換,具有12位的有效數(shù)據(jù)位,它包括一個模擬多路轉(zhuǎn)換器,具有8個各自可配置的通道,以及一個參考電壓發(fā)生器。

img

ADC模塊有如下主要特征:

<1> 可選取的抽取率,設(shè)置分辨率(7~12位)。

<2> 8個獨立的輸入通道,可接收單端或差分信號。

<3> 參考電壓可選為內(nèi)部單端、外部單端、外部差分或AVDD5。

<4> 單通道轉(zhuǎn)換結(jié)束可產(chǎn)生中斷請求。

<5> 序列轉(zhuǎn)換結(jié)束可發(fā)出DMA觸發(fā)。

<6> 可將片內(nèi)溫度傳感器作為輸入。

<7> 電池電壓測量功能。

第三章 ADC模塊的信號輸入

端口0引腳可以配置為ADC輸入端,依次為AIN0~AIN7:

<1> 可以把輸入配置為單端輸入或差分輸入。

<2> 差分輸入對:AIN0AIN1、AIN2AIN3、AIN4AIN5、AIN6AIN7。

<3> 片上溫度傳感器的輸出也可以作為ADC的輸入用于測量芯片的溫度。

<4> 可以將一個對應(yīng)AVDD5/3的電壓作為ADC輸入,實現(xiàn)電池電壓監(jiān)測。

<5> 負(fù)電壓和大于VDD的電壓都不能用于這些引腳。

<6> 單端電壓輸入AIN0AIN7,以通道號碼07表示;四個差分輸入對則以 通道號碼8~11表示;溫度傳感器的通道號碼為14;AVDD5/3電壓輸入的通道號碼為15。

第四章 ADC相關(guān)的幾個概念

<1> 序列ADC轉(zhuǎn)換:可以按序列進(jìn)行多通道的ADC轉(zhuǎn)換,并把結(jié)果通過DMA傳送到存儲器,而不需要CPU任何參與。

<2> 單通道ADC轉(zhuǎn)換:在程序設(shè)計中,通過寫ADCCON3寄存器觸發(fā)單通道ADC轉(zhuǎn)換,一旦寄存器被寫入,轉(zhuǎn)換立即開始。

<3> 參考電壓:內(nèi)部生成的電壓、AVDD5引腳、適用于AIN7輸入引腳的外部電壓,或者 適用于AIN6~AIN7輸入引腳的差分電壓。

<4> 轉(zhuǎn)換結(jié)果:數(shù)字轉(zhuǎn)換結(jié)果以2的補碼形式表示。對于單端,結(jié)果總是正的。對于差分配置,兩個引腳之間的差分被轉(zhuǎn)換,可以是負(fù)數(shù)。 當(dāng)ADCCON1.EOC設(shè)置為1時,數(shù)字轉(zhuǎn)換結(jié)果可以獲得,且結(jié)果總是駐留在ADCH和ADCL寄存器組合的MSB段中。

<5> 中斷請求:通過寫ADCCON3觸發(fā)一個單通道轉(zhuǎn)換完成時,將產(chǎn)生一個中斷,而完成 一個序列轉(zhuǎn)換時,是不產(chǎn)生中斷的。當(dāng)每完成一個序列轉(zhuǎn)換,ADC將產(chǎn)生 一個DMA觸發(fā)。

<6> 寄存器:ADC有兩個數(shù)據(jù)寄存器:ADCL和ADCH;三個控制寄存器:ADCCON1、ADCCON2、ADCCON3;分別用來配置ADC并返回轉(zhuǎn)換結(jié)果。

第五章 ADC配置步驟

【1】配置APCFG寄存器

當(dāng)使用ADC時,端口0的引腳必須配置為ADC模擬輸入。要配置一個端口0引腳為一個ADC輸入,APCFG寄存器中相應(yīng)的位必須設(shè)置為1。這個寄存器的默認(rèn)值是0,選擇端口0為非模擬輸入,即作為數(shù)字I/O端口。

注意:寄存器的設(shè)置將覆蓋P0SEL的設(shè)置。

img

【2】配置ADCCON3寄存器

單通道的ADC轉(zhuǎn)換,只需將控制字寫入ADCCON3寄存器即可。

img

img

【3】ADC初始化

主要對端口的功能進(jìn)行選擇,設(shè)置其傳輸方向,并將端口設(shè)置為模擬輸入。

【4】ADC數(shù)據(jù)采集

首先將ADCIF標(biāo)志位清0,接著對ADCCON3寄存器設(shè)置,該寄存器一旦被寫入,轉(zhuǎn)換立即開啟;然后等待ADCIF置1,這時候轉(zhuǎn)換完成,讀取數(shù)據(jù)即可。

第六章 源代碼

【1】內(nèi)置溫度采集

/******************************************************************************
 CC2530模塊AD測試程序
 通過內(nèi)置溫度傳感器實現(xiàn)溫度采集
 ******************************************************************************/
 #include < ioCC2530.h >
 #include < stdio.h >
 ?
 #define uint unsigned int
 // Data
 typedef unsigned char       BYTE;
 ?
 // Unsigned numbers
 typedef unsigned char       UINT8;
 typedef unsigned char       INT8U;
 typedef unsigned short      UINT16;
 typedef unsigned short      INT16U;
 typedef unsigned long       UINT32;
 typedef unsigned long       INT32U;
 ?
 // Signed numbers
 typedef signed char         INT8;
 typedef signed short        INT16;
 typedef signed long         INT32;
 ?
 #define ADC_REF_1_25_V      0x00
 #define ADC_14_BIT          0x30
 #define ADC_TEMP_SENS       0x0E
 ?
 #define DISABLE_ALL_INTERRUPTS() (IEN0 = IEN1 = IEN2 = 0x00)
 ?
 #define ADC_SINGLE_CONVERSION(settings) \\
    do{ ADCCON3 = (settings); }while(0)
 ?
 #define ADC_SAMPLE_SINGLE() \\
   do { ADC_STOP(); ADCCON1 |= 0x40;  } while (0)
 ?
 #define ADC_SAMPLE_READY()  (ADCCON1 & 0x80)
 ?
 #define ADC_STOP() \\
   do { ADCCON1 |= 0x30; } while (0)
 ?
 #define ADC14_TO_CELSIUS(ADC_VALUE)    ( ((ADC_VALUE) > > 4) - 335)
 ?
 /**************************
 系統(tǒng)時鐘 不分頻
 計數(shù)時鐘 32分頻
 **************************/
 void InitClock(void)
 {
     CLKCONCMD = 0x28;           //時器計數(shù)時鐘設(shè)定為1M Hz,  系統(tǒng)時鐘設(shè)定為32 MHz 
     while(CLKCONSTA & 0x40);    //等晶振穩(wěn)定
 }
 ?
 /*****************************************
  串口初始化函數(shù):初始化串口 UART0        
 *****************************************/
 void InitUART0(void)
 {
     PERCFG = 0x00;               //位置1 P0口
     P0SEL = 0x3c;                //P0用作串口
     
     P2DIR &= ~0XC0;                           //P0優(yōu)先作為UART0    
     U0CSR |= 0x80;                        //串口設(shè)置為UART方式
     U0GCR |= 9;             
     U0BAUD |= 59;                         //波特率設(shè)為19200
 ?
     UTX0IF = 1;                               //UART0 TX中斷標(biāo)志初始置位1  
     U0CSR |= 0X40;                //允許接收
     IEN0 |= 0x84;                 //開總中斷,接收中斷
 }
 ?
 /****************************************************************
    串口發(fā)送字符串函數(shù)                        
 ****************************************************************/
 void UartTX_Send_String(char *Data,int len)
 {
   int j;
   for(j=0;j< len;j++)
   {
     U0DBUF = *Data++;
     while(UTX0IF == 0);
     UTX0IF = 0;
   }
    U0DBUF = 0x0A;        //換行
    while(UTX0IF == 0);
    UTX0IF = 0;
 }
 ?
 /****************************************************************
   延時函數(shù)              
 ****************************************************************/
 void Delay(uint n)
 {
     uint i;
     for(i=0;i< n;i++);
     for(i=0;i< n;i++);
     for(i=0;i< n;i++);
     for(i=0;i< n;i++);
     for(i=0;i< n;i++);
 }
 ?
 INT16 AvgTemp;
 ?
 /****************************************************************
 溫度傳感器初始化函數(shù)                      
 ****************************************************************/
 void initTempSensor(void)
 {
    DISABLE_ALL_INTERRUPTS();            //關(guān)閉所有中斷
    InitClock();                         //設(shè)置系統(tǒng)主時鐘為32M
    *((BYTE __xdata*) 0x624B) = 0x01;    //開啟溫度傳感器
    *((BYTE __xdata*) 0x61BD) = 0x01;    //將溫度傳感器與ADC連接起來
 }
 ?
 /****************************************************************
 讀取溫度傳感器AD值函數(shù)                        
 ****************************************************************/
 INT8 getTemperature(void)
 {
   UINT8   i;
   UINT16  AdcValue;
   UINT16  value;
 ?
   AdcValue = 0;
   for( i = 0; i < 4; i++ )
   {
     ADC_SINGLE_CONVERSION(ADC_REF_1_25_V | ADC_14_BIT | ADC_TEMP_SENS);    // 使用1.25V內(nèi)部電壓,12位分辨率,AD源為:溫度傳感器
     ADC_SAMPLE_SINGLE();                                                   //開啟單通道ADC
     while(!ADC_SAMPLE_READY());                 //等待AD轉(zhuǎn)換完成
     value =  ADCL > > 2;                         //ADCL寄存器低2位無效
     value |= (((UINT16)ADCH) < < 6);    
     AdcValue += value;                          //AdcValue被賦值為4次AD值之和
   }
   value = AdcValue > > 2;                        //累加除以4,得到平均值
   return ADC14_TO_CELSIUS(value);               //根據(jù)AD值,計算出實際的溫度
 }
 ?
 /****************************************************************
 主函數(shù) 
 ****************************************************************/
 void main(void)
 {   
       char i;
       char TempValue[10]; 
       InitUART0();                                    //初始化串口
       initTempSensor();                               //初始化ADC
       while(1)
       {
         AvgTemp = 0;
         for(i = 0 ; i < 64 ; i++)
         {
           AvgTemp += getTemperature();              
           AvgTemp > >= 1;                              //每次累加后除2.
         }
          sprintf(TempValue, (char *)"%d ℃", (INT8)AvgTemp);
          UartTX_Send_String(TempValue,4);           
          Delay(50000);
       }
 }
 ?

【2】ADC通道0模擬數(shù)據(jù)采集

#include "ioCC2530.h"
 /*===============定時器1初始化函數(shù)==================*/
 void Init_Timer1()
 {
   T1CC0L = 0xd4;        //設(shè)置最大計數(shù)值的低8位
   T1CC0H = 0x30;        //設(shè)置最大計數(shù)值的高8位
   T1CCTL0 |= 0x04;      //開啟通道0的輸出比較模式
   T1IE = 1;             //使能定時器1中斷
   T1OVFIM = 1;          //使能定時器1溢出中斷
   EA = 1;               //使能總中斷
   T1CTL = 0x0e;         //分頻系數(shù)是128,模模式
 }
 unsigned char count = 0;
 unsigned char F_time = 0;
 /*================定時器1服務(wù)函數(shù)====================*/
 #pragma vector = T1_VECTOR
 __interrupt void Timer1_Sevice()
 {
   T1STAT &= ~0x01;      //清除定時器1通道0中斷標(biāo)志
   count++;
   if(count == 10)       //定時1秒到
   {
     F_time = 1;
     count = 0;
   }
 }
 /*===================UR0初始化函數(shù)====================*/
 void Init_Uart0()
 {
   PERCFG = 0x00;    //串口0的引腳映射到位置1,即P0_2和P0_3
   P0SEL = 0x0C;     //將P0_2和P0_3端口設(shè)置成外設(shè)功能
   U0BAUD = 59;      //16MHz的系統(tǒng)時鐘產(chǎn)生9600BPS的波特率
   U0GCR = 9;
   U0UCR |= 0x80;    //禁止流控,8位數(shù)據(jù),清除緩沖器
   U0CSR |= 0xC0;    //選擇UART模式,使能接收器
   UTX0IF = 0;       //清除TX發(fā)送中斷標(biāo)志
   URX0IF = 0;       //清除RX接收中斷標(biāo)志
   URX0IE = 1;       //使能URAT0的接收中斷
   EA = 1;           //使能總中斷
 }
 unsigned char dat[4];
 /*===================UR0發(fā)送字符串函數(shù)==================*/
 void UR0SendString(unsigned char *str, unsigned char count)
 {
   while(count--)       
   {
     U0DBUF = *str++;    //將要發(fā)送的1字節(jié)數(shù)據(jù)寫入U0DBUF
     while(!UTX0IF);     //等待TX中斷標(biāo)志,即數(shù)據(jù)發(fā)送完成
     UTX0IF = 0;  
   }
 }
 /*===================ADC初始化函數(shù)====================*/
 void Init_ADC0()
 {
   P0SEL |= 0x01;      //P0_0端口設(shè)置為外設(shè)功能
   P0DIR &= ~0x01;     //P0_0端口設(shè)置為輸入端口
   APCFG |= 0x01;      //P0_0作為模擬I/O使用
 }
 /*===================讀取ADC的數(shù)據(jù)====================*/
 void Get_ADC0_Value()
 {
   ADCIF = 0;
   //參考電壓選擇AVDD5引腳,256抽取率,AIN0通道0
   ADCCON3 = (0x80 | 0x10 | 0x00);
   while(!ADCIF);      //等待A/D轉(zhuǎn)換完成,
   dat[0] = 0xaf;
   dat[1] = ADCH;      //讀取ADC數(shù)據(jù)低位寄存器
   dat[2] = ADCL;      //讀取ADC數(shù)據(jù)高位寄存器
   dat[3] = 0xfa;
 }
 /*=======================主函數(shù)======================*/
 void main()
 {
   Init_Uart0();
   Init_Timer1();
   Init_ADC0();
   while(1)
   {
     if(F_time == 1)           //定時1秒時間到
     {
       Get_ADC0_Value();       //進(jìn)行A/D轉(zhuǎn)換并讀取數(shù)據(jù)
       UR0SendString(dat,4);   //向上位機(jī)發(fā)送數(shù)據(jù)
       F_time = 0;             //定時1秒標(biāo)志清0
     }
   }
 }
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    27

    文章

    8742

    瀏覽量

    147935
  • adc
    adc
    +關(guān)注

    關(guān)注

    99

    文章

    6533

    瀏覽量

    545646
  • 模擬信號
    +關(guān)注

    關(guān)注

    8

    文章

    1142

    瀏覽量

    52619
  • 數(shù)字信號
    +關(guān)注

    關(guān)注

    2

    文章

    982

    瀏覽量

    47653
  • CC2530
    +關(guān)注

    關(guān)注

    19

    文章

    221

    瀏覽量

    58202
收藏 人收藏

    評論

    相關(guān)推薦

    CC2530 GPIO口輸入配置配置步驟

    介紹CC2530 GPIO口輸入配置配置
    的頭像 發(fā)表于 07-06 14:40 ?2833次閱讀
    <b class='flag-5'>CC2530</b> GPIO口輸入<b class='flag-5'>配置</b><b class='flag-5'>配置</b><b class='flag-5'>步驟</b>

    CC2530 外部中斷配置步驟

    介紹CC2530 外部中斷配置步驟
    的頭像 發(fā)表于 07-06 14:41 ?3349次閱讀
    <b class='flag-5'>CC2530</b> 外部中斷<b class='flag-5'>配置</b><b class='flag-5'>步驟</b>

    Cc2530

    CC2530
    三分溫柔
    發(fā)布于 :2022年05月31日 21:12:52

    實現(xiàn)CC2530ADC采集外部電壓

    實現(xiàn)CC2530ADC采集外部電壓要在zigbee的組網(wǎng)中加入煙霧傳感器的模塊,所以需要用到CC2530ADC對傳感器輸出的模擬信號進(jìn)行采樣。下面是自己對實現(xiàn)用
    發(fā)表于 04-14 15:51

    CC2530 ADC問題

    CC2530 內(nèi)部ADC是12位的還是14位的,如果是12位的,為何寄存器是14位的。
    發(fā)表于 06-24 06:23

    CC2530應(yīng)用電路

    CC2530應(yīng)用電路 Component Description Va
    發(fā)表于 06-29 08:09 ?5583次閱讀
    <b class='flag-5'>CC2530</b>應(yīng)用電路

    基于CC2530的SDHC卡讀寫設(shè)計

    提出了將SDHC卡作為CC2530的外部存儲設(shè)備實現(xiàn)數(shù)據(jù)存儲的方法。SDHC卡具有體積小、存儲容量大的特點,通過CC2530組建的無線傳感網(wǎng)絡(luò)適用于工業(yè)監(jiān)測,而將SDHC卡與CC2530相結(jié)合
    發(fā)表于 05-02 14:28 ?3630次閱讀
    基于<b class='flag-5'>CC2530</b>的SDHC卡讀寫設(shè)計

    cc2530底板

    CC2530的核心板原理圖和詳細(xì)底板的PCB,包括重要外設(shè)的PCB
    發(fā)表于 06-20 17:48 ?0次下載

    cc2530的PWM實現(xiàn)

    CC2530 結(jié)合了領(lǐng)先的RF 收發(fā)器的優(yōu)良性能,業(yè)界標(biāo)準(zhǔn)的增強(qiáng)型8051 CPU,系統(tǒng)內(nèi)可編程閃存,8-KB RAM 和許多其它強(qiáng)大的功能。CC2530 有四種不同的閃存版本:CC2530F32/64/128/256,分別具有
    發(fā)表于 11-07 18:43 ?4044次閱讀
    <b class='flag-5'>cc2530</b>的PWM實現(xiàn)

    cc2530 adc測外部電壓

    CC2530 是用于2.4-GHz IEEE 802.15.4、ZigBee 和RF4CE 應(yīng)用的一個真正的片上系統(tǒng)(SoC)解決方案。它能夠以非常低的總的材料成本建立強(qiáng)大的網(wǎng)絡(luò)節(jié)點。要在zigbee的組網(wǎng)中加入煙霧傳感器的模塊,所以需要用到cc2530
    發(fā)表于 11-07 18:53 ?5685次閱讀
    <b class='flag-5'>cc2530</b> <b class='flag-5'>adc</b>測外部電壓

    CC2530英文數(shù)據(jù)手冊

    CC2530英文數(shù)據(jù)手冊
    發(fā)表于 12-02 11:06 ?29次下載
    <b class='flag-5'>CC2530</b>英文數(shù)據(jù)手冊

    CC2530芯片的基本特性和CC2530無線模塊的設(shè)計

    本文介紹了CC2530芯片的基本特性,論述了以CC2530芯片為核心的無線通信模塊的硬件設(shè)計和調(diào)試軟件設(shè)計,在介紹設(shè)計規(guī)范和模塊結(jié)構(gòu)的基礎(chǔ)上,采用TI公司的CC2530芯片作為主控制芯片設(shè)計出具
    發(fā)表于 02-11 08:00 ?97次下載
    <b class='flag-5'>CC2530</b>芯片的基本特性和<b class='flag-5'>CC2530</b>無線模塊的設(shè)計

    CC2530控制LED閃爍

    CC2530控制LED閃爍CC2530 控制LED閃爍電路圖知識點CC2530有兩個高頻時鐘輸入輸出配置程序及注釋CC2530 控制LED閃
    發(fā)表于 11-29 18:51 ?15次下載
    <b class='flag-5'>CC2530</b>控制LED閃爍

    CC2530授課筆記】⑩ ADC 數(shù)模轉(zhuǎn)換,信號采集,光敏電阻

    CC2530授課筆記】⑩ ADC 數(shù)模轉(zhuǎn)換,信號采集,光敏電阻
    發(fā)表于 11-30 09:36 ?26次下載
    【<b class='flag-5'>CC2530</b>授課筆記】⑩ <b class='flag-5'>ADC</b> 數(shù)模轉(zhuǎn)換,信號采集,光敏電阻

    cc2530繼電器模塊使用

    CC2530繼電器模塊是一款基于TI公司的低功耗無線通信芯片CC2530的繼電器應(yīng)用模塊。它能實現(xiàn)物聯(lián)網(wǎng)設(shè)備之間的遠(yuǎn)程控制,廣泛應(yīng)用于家庭自動化、工業(yè)控制、智能農(nóng)業(yè)等領(lǐng)域。本文將詳細(xì)介紹CC2530
    的頭像 發(fā)表于 12-21 14:47 ?1667次閱讀
    主站蜘蛛池模板: 午夜影视不充值观看 | 伊人网综合网 | 男女性杂交内射妇女BBWXZ | 国产精品久久久久久52AVAV | 欧美乱码卡一卡二卡四卡免费 | 李丽莎与土豪50分钟在线观看 | 免费国产足恋网站 | 亚洲欭美日韩颜射在线二 | 丰满少妇发泄14p | 草莓AV福利网站导航 | 5278欧美一区二区三区 | 国产中文欧美日韩在线 | 伊人国产视频 | 日韩欧美精品有码在线播放 | 午夜伦理yy44008影院 | 国产在线精品一区二区在线看 | 福利啪啪吧 | 诱咪youmiss | 国产在线亚洲v天堂a | 欧美精品九九99久久在观看 | 国产亚洲欧美在线观看三区 | 美女脱了内裤张开腿让男人桶到爽 | 美女扒开腿让男生桶爽免费APP | 无止侵犯高H1V3无止侵犯 | H揉捏娇喘乳叫床NP调教视频 | 成人在线高清不卡免费视频 | a亚洲在线观看不卡高清 | 久久xxxx | 人妻换人妻AA视频 | 老师好爽你下面水好多视频 | 亚久久伊人精品青青草原2020 | 纵欲(高H) | 美女扒开尿口直播 | 永久免费在线看mv | 亚洲三级黄色 | 一级做a爰片久久毛片免费 一级做a爰片久久毛片潮喷动漫 | 人人在线碰碰视频免费 | 国产欧美国日产在线播放 | 亚洲免费精品视频 | 日本高清免费一本在线观看 | 草莓视频在线免费观看 |