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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6210|回復: 0
收起左側

MSP430 LaunchPAD學習筆記

[復制鏈接]
ID:302552 發表于 2018-4-5 22:15 | 顯示全部樓層 |閱讀模式
一:端口配置
   1:P1DIR   設置為1,相應管腳為輸出。設置為0.相應管腳                              為輸入狀態。
   2:P1IE      設置為1,相應管腳具有中斷功能。設置為0,                            相應管腳沒有中斷功能。
   3:P1IES   設置為1,選擇下降沿觸發方式,設置為0,選                            擇上升沿觸發方式。
   4:P1IFG    P1端口的中斷標志寄存器,如果P1端口當某                            個管腳設置成中斷管腳,當有中斷觸發時,想應比特為1 ;                              如果沒有中斷觸發,相應比特為0.
5: P1IN   P1端口輸入寄存器,在輸入模式下,讀取該寄                            存器相應管腳上的數據。
6: P1OUT   P1端口的輸出去寄存器,在輸出模式下,如                            果該寄存器相應比特設置為1時,相應管腳輸出高電平;                            如果該寄存器相應比特為0時,相應管腳輸出低電平。
7: P1SEL寄存器  P1端口功能選擇寄存器,該寄存器主要                            控制P1端口的I/O管腳作為一般I/O還是外圍模塊的功能                            端口,該寄存器的相應比特為1時候,相應管腳為外圍功能                           模塊,當該寄存器為0時,相應管腳為一般I/O管腳。
二  LaunchPad 寫程序的必要頭文件和格式:
/*===================================================
#include"msp430g2553.h"
Void main()
{
    WDTCTL=WDTPW+WDTHOLD;//關閉看門狗。
    //WDTPW 是看門狗的密碼,寫錯了會導致系統復位。
   **(程序)
}
=====================================================*/
三  點亮LED
  僅僅是對IO 口的輸入輸出操作。與51 很不相同。
P1DIR|=BIT0;//設置P1.0 為輸出方向。===P1DIR|=0x01;
//{P1DIR=BIT0;是設置P1.0 為輸出,其他全部為輸入方向。}
//注意:LaunchPad 中很多操作是與,或,非等操作組成,時刻注意。
P1OUT|=BIT0;//這條指令就是設置P1.0 輸出為高電平。
這樣,就點亮了LED(接在P1.0 上的LED);
具體程序:
#include"msp430g2553.h"
Void main()
{
WDTCTL=WDTPW+WDTHOLD;
P1DIR|=BIT0;
P1OUT|=BIT0;
While(1);
}
四: 閃爍LED
LaunchPad 上面自帶有2 個LED,一個接在P1.0 上,一個接在P1.6 上。
我們用2 個交替閃爍。
#include"msp430g2553.h"
Void main();第一個字母大寫
{
WDTCTL=WDTPW+WDTHOLD;
P1DIR|=BIT0+BIT6;//設置P1.0 和P1.6 為輸出
P1OUT|=BIT0;//線讓LED0 亮。
While(1)
{
Unsigned int i=50000;
While(i--);
P1OUT^=0x41;//對P1.0 和P1.6 取反,所以LED0 和LED1 會交替閃爍。
}
}
五:中斷系統
LaunchPad 的中斷系統功能相當強大,51 只有5 個中斷源,2 個定時,2 個外部,
一個串行口。但是LaunchPad 的中斷源幾乎是所有的引腳和所用的定時器。
在這里,最重要的就是中斷向量的判斷了。
定時器一般都是:
vector=TIMER0_A0_VECTOR
vector=TIMER0_A1_VECTOR
vector=TIMER1_A0_VECTOR
vector=TIMER1_A1_VECTOR
引腳中斷的向量:
vector=PORT1_VECTOR;    P1 口的中斷向量。
判斷是哪個引腳的話,有2 種辦法:
舉例子:P1.3 和P1.4 都是中斷的輸入引腳。現在進了中斷,我如何判斷是那個引
腳引起的呢?
第一種方法:
vector=PORT1_VECTOR
__interruput void Port1 (void)
{
If(P1IFG&BIT3);判斷的是P1.3 產生的中斷。
{
;要執行的函數。
P1IFG=0x00;//清0 中斷標志位。
}
If(P1IFG&BIT4)
{
;P1.4 產生的中端,執行相應的函數。
P1IFG=0x00;
}
}
第二種方法:
vector=PORT1_VECTOR
__interruput void Port1 (void)
{
P1IFG&=BIT3+BIT4;//因為只用到了P1.0 和P1.4,其他的中斷標志全部清零。
(或者:P1IFG=P1IFG&0x18)
Switch(P1IFG)
{
Case 0x08: vector=3;break; //P1.3 產生的中斷
Case 0x10:vector=4;break;//P1.4 產生的中斷
}
}
切記:進入中斷函數后要做的第一件事是,清除中斷標志。
例程:
#include<msp430g2553.h>
Void main(void)
{
  WDTCTL=WDTPW+WDTHOLD;
  P1DIR|=BIT0;  //                            設置P1.0輸出
  P1IES |=BIT3;  //     設置從高到底跳變觸發
  P1IFG&=~BIT3//                清除中斷標志位
  P1IE |=BIT3   //                   使P1.3能中斷
  _BIS_SR(LPM_bits+GIE);//              啟動LMP4節能模式
}
#proagma vector=PORT1_VECTOR
_interrupt  void Port_1(void)
{
   If(P1IFG&BIT3)
  {
P1OUT^=BIT0;   
P1IFG&=~BIT3;
  }
}
程序一開始
1   WDTCTL=WDTPW+WDTHOLD;  HOLD住看門狗
2   P1DIR|=BIT0;將P1.0              設置為輸出口。lunchpad上的P1.O接有一個LED.
3. 接下來到P1IES |= BIT3; 在上一節中已經介紹了,P1IES 寄存器是中斷沿選擇寄存器。這里是選擇位下降沿觸發中斷。
4. P1IFG &= ~BIT3; 為清除中斷標志,保證程序正常運行,當然此句可以不寫,這里只是做為例子
5. P1IE |= BIT3; 在上一節中已經介紹了,P1IE寄存器是使能中斷事件發生的寄存器。
  • _BIS_SR(LPM4_bits + GIE);這里使程序進入最低功耗(LPM4)狀態。靠中斷來觸發喚醒CPU,在文章開始已經介紹有,假如在中斷函數中沒有寫有退出低功耗狀態的指令,程序會在進入低功耗的下一句中卡死,不再運行下去。另外_BIS_SR(GIE); 為打開總中斷的意思。
  • 接下來到中斷函數的編寫。以此為例,詳細介紹中斷函數的編寫。如上所示,中斷函數編寫的規則為
#pragma vector= 中斷向量源
__interrupt void 函數名(void)

摁住“Ctrl  +  左鍵”點擊PORT1_VECTOR即可查看到所有的“中斷向量”
在上面的中斷向量中,加黑的位中斷向量源,寫入中斷函數編寫語法規則里面即可。而函數名則可以任意編寫。比如我要編寫一個有定時器1,CCR0寄存器溢出產生的中斷,則可以這樣編寫
#pragma vector= TIMER1_A0_VECTOR
__interrupt void T1A0Int(void)
{
//程序代碼。。。
}
假如是多IO輸入中斷,則如下所寫。
vector=PORT1_VECTOR
__interrupt void Port1()
{

//以下為參考處理程序,不使用的端口應當刪除其對于中斷源的判斷。
if((P1IFG&BIT0) == BIT0)
{
P2OUT&=~BIT0; //處理P1IN.0中斷
P1IFG &= ~BIT0; //清除中斷標志
//以下填充用戶代碼
}
else if((P1IFG&BIT1) ==BIT1)
{
P2OUT&=~BIT1; //處理P1IN.1中斷
P1IFG &= ~BIT1; //清除中斷標志
//以下填充用戶代碼
}
else if((P1IFG&BIT2) ==BIT2)
{
P2OUT&=~BIT2; //處理P1IN.2中斷
P1IFG &= ~BIT2; //清除中斷標志
//以下填充用戶代碼
}
else if((P1IFG&BIT3) ==BIT3)
{
//處理P1IN.3中斷
P1IFG &= ~BIT3; //清除中斷標志
//以下填充用戶代碼
}
else if((P1IFG&BIT4) ==BIT4)
{
P2OUT&=~BIT4; //處理P1IN.4中斷
P1IFG &= ~BIT4; //清除中斷標志
//以下填充用戶代碼
}
else if((P1IFG&BIT5) ==BIT5)
{
//處理P1IN.5中斷
P1IFG &= ~BIT5; //清除中斷標志
//以下填充用戶代碼
}
else if((P1IFG&BIT6) ==BIT6)
{
//處理P1IN.6中斷
P1IFG &= ~BIT6; //清除中斷標志
//以下填充用戶代碼
}
else
{
//處理P1IN.7中斷
P1IFG &= ~BIT7; //清除中斷標志
//以下填充用戶代碼
}
LPM3_EXIT; //退出中斷后退出低功耗模式。若退出中斷后要保留低功耗模式,將本句屏蔽
}
六   定時器模塊
文先,介紹幾個英文縮寫的意思以及一些注意的地方。
1. Timer0/1 定時器0/1,在User's Guide中用的是TimerA/B,所指的也是Timer0/1 。G2553Datasheet中用的是Timer0/1 ,本文以G2553Datasheet為準。全文以Timer0為例,Timer1類同。
2. TAxR(x = 0/1)定時器x對應的計數器,這是一個只讀寄存器。硬件自動驅動計數。
  • EQUyy = 0/1/2)計數事件發生寄存器,當TAxR  =  TAxCCRyEQUy1
定時器簡介
MSPG2553共有兩個定時器,Timer0、Timer1,他們都是十六位的定時、計數器,內含三個捕獲、比較寄存器。兩個定時器均支持多個捕獲、PWM輸出、間歇性計時,定時器包含多個中斷源,可以是計數溢出中斷、捕獲中斷等等。
定時器包含:
同步十六位定時,計數器運行模式。
時鐘源從MCLK、SMCLK、ACLK任意選擇
三個比較,捕獲寄存器。
中斷向量寄存器能快速解碼的所有定時器中斷
Timer0組成框圖
下面簡要介紹一下該硬件框圖的意思,從左上角看,首先是一個時鐘源選擇寄存器TASSELx,通過該寄存器選擇定時器的時鐘源,選擇了時鐘源后有一個分頻器Divider,相應的設置寄存器是IDx,再過來就到一個定時器的核心部分,一個16位的定時器TAR。其右側有一個定時器的計數模塊,MCx寄存器用來設置計數模式。接下來,TAR正下方有三個橫線,右側標有CCR0、CCR1、CCR2,意思是CCR1、CCR0的框圖和下方CCR2的框圖是一樣的。此處省略不寫。在CCR中,左上角為一個捕獲源選擇寄存器。可以從CCI2A、CCI2B、GND或者VCC選擇捕獲源,選擇捕獲源后有一個選擇捕獲模式寄存器Capture Mode,然后過來有一個捕獲溢出狀態寄存器COV,SCS同步/異步捕獲模式選擇位,然后連接到捕獲比較寄存器。下方為模式選擇寄存器,具體設置可以查看相應的寄存器設置。
這里僅是大概介紹一下Timer0的寄存器,具體的設置使用還看參考相應的寄存器并結合例程慢慢學習理解。
定時器運行方式
下面簡要重點介紹定時器計數模塊的四種模式以及7種輸出模式。
Timer0有一個在不斷計數的只讀寄存器TA0R。計數器的計數模式共有四種,
停止模式(Stop mode)、連續增計數模式(Up mode)、遞增計數模式(continuous mode)、增減計數模式(Up/down mode)。由上圖可知,這四種模式可以通過MCx寄存器進行設置。
以上四種模式可以由下圖可以很好理解。
1. Stop模式計數器不工作。
2. 連續計數模式為計數器從零開始連續增計數一直到0xFFFF即65535,然后又重新從零開始計數。
3. 遞增計數模式與連續計數模式僅有一點點區別,遞增模式為計數器連續增加到TA0CCR0(即圖中的CCR0)中的值后又重新從零開始計數。TA0CCR0的值時可以在程序中直接賦值的。
4. 遞增遞減模式也很好理解,計數器從零開始計數到CCR0后又自動減數,到零后又增計數,就像三角波一樣。
每一個捕獲比較模塊都有一個輸出單元,這個輸出單元專門用來產生以下如PWM的波形信號,每一個輸出單元都可以通過配置OUTMOD寄存器的值來設定八種信號輸出模式,
接下來再介紹一下定時器的捕獲/比較功能,具體應查看技術手冊。
捕獲模式
捕獲模式可以用來速度計算或時間測量.CCIxA ,CCIxB的捕獲源可以連接到外部引腳或者內部信號,可以設定CCIDx,CMx,位讓寄存器捕獲上升,下降,或者兩個信號的邊緣.輸入信號的電平可以通過CCI位的讀取.
當設置寄存器CAP=1時,使能捕獲模塊.
比較模式
比較模式設置CAP = 0的情況向,比較模式用于產生PWM信號。或者在指定時間里輸出終端信號,當TAxR計數到TACCRx時
建立起CCIFG位
中斷事件發生標志位EQUx=1
EQUx的隱含改變將影響輸出模式
輸入信號CCI被鎖上SCCI
  • 增計數模式下的輸出
   

2. 遞增計數模式下的輸出
*
  • 第增/第減計數模式下的輸出
**************************************************************** /
  / ******************************************************************
   *                    TACTL寄存器,Timer_A 控制寄存器
   * TASSEL_x:TA時鐘源選擇寄存器
   *     00 TACLK
   *     01 ACLK
   *     10 SMCLK
   *     11 INCLK
   * IDx:     時鐘源分頻寄存器。為輸入時鐘分頻選擇
   *       00  /1
   *       01  /2
   *       10  /4
   *       11  /8
   *  * ************************************************************** /
   *              定時計數模塊 =四中模式+7種輸出方式
/ *****************************************************************
   *
   * MCx:    計數模式寄存器   模式控制,當TA不用于節省功耗時,將MCx=00h
   *     00  停止模式:定時器停止
   *     01  增模式  :定時器計數到TACCR0
   *     10  連續模式:定時器計數到0FFFFh
   *     11  增減模式:定時器計數到TACCR0 然后減到000h
   *
   * TACLR:  定時器清零。置位時會復位TAR,時鐘分頻和計數方向。
   *     TACLR位會自動復位并讀出值為零。
   *
   * TAIE:   TA中斷允許。改為允許TAIFG中斷請求
   *     0 中斷禁止
   *     1 中斷允許
   * TAIFG:  TA中斷標志位
   *     0 無中斷掛起
   *     1 中斷掛起
   * ************************************************************** /
/ *****************************************************************
*
*
   *             TACCTLx,捕獲比較控制寄存器
   * CMx:  捕獲模式
   *   00 不捕獲
   *   01 上升沿捕獲
   *   10 下降沿捕獲
   *   11 上升和下降同時捕
   * CCISx: 捕獲比較選擇,改為選擇TACCRx的輸入信號
   *   00 CCIxA
   *   01 CCIxB
   *   10 GND
   *   11 VCC
   * SCS:  同步捕獲源,改為用于將捕獲通信和同步時鐘
   *   0 異步捕獲
   *   1 同步捕獲
   * SCCI:同步的捕獲/比較輸入,所選擇的輸入信號由EQUx信號所存,
   *   并可通過該位讀取
   * CAP:  捕獲模式
   *   0 比較模式
   *   1 捕獲模式
   *OUTMODx:輸出模式位,對TACCR0無效
   *         000 OUT 位的值
   *         001 置位
   *         010 翻轉/復位
   *         011 復位/復位
   *         100 翻轉
   *         101 復位
   *         110 翻轉/置位
   *         111 復位/置位
   * CCIE: 捕獲比較中斷允許位
   *   0 中斷禁止
   *   1 中斷允許
   * CCI:  捕獲比較輸入
   * OUT:  對于輸出模式0,該位直接控制輸出狀態
   * COV:  捕獲溢出位。該位表示一個捕獲溢出發生,由軟件復位
   * CCIFG:捕獲比較中斷標志位
   *   0 沒有中斷掛起
   *   1 有中斷掛起
   * ***************************************************************/
#include <msp430g2553.h>
unsigned  int A=10,  B=20 ;  void main (void)
{
  WDTCTL = WDTPW + WDTHOLD;
  TACTL|=TASSEL_2+TACLR+MC_1+ID_3;  // SMCLK時鐘 ;定時器清零;增模式   8分頻
  CCTL0=CCIE;                       //捕獲中斷允許
  CCR0=B;                         //TACCR0 裝載值
  CCTL1=OUTMOD_7;                   //輸出模式復位
  CCR1=A;
// BCSCTL1
  P1DIR=BIT6;
  P1SEL=BIT6;
// _EINT();                          //使能所有中斷
  while(1);
}
/*#pragma vector=TIMER0_A0_VECTOR
__interrupt void  ta0_isr(void)
{
  unsigned  int i;
  for(i=0;i<num;i++)
    pwm=i;
}*/

定時器中斷
這里以定時器0為例,定時器1同。
定時器的中斷可有定時器TA0CCR0溢出產生,也可由TA0CCRx(x =1/2)溢出產生、捕獲/比較事件發生引起的中斷,前者有一個專用的中斷向量,TIMER0_A0_VECTOR,而后者用的TIMER0_A1_VECTOR,至于是哪一個中斷時間發生,還要根據標志位來判斷。
下面以官方例程LaunchPad Lab2為例介紹定時器A的操作。
例一
#include <msp430g2553.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)
{
while(1); // If calibration constants erased, trap CPU!!
}
BCSCTL1 = CALBC1_1MHZ; // Set range
DCOCTL = CALDCO_1MHZ; // Set DCO step + modulation
BCSCTL3 |= LFXT1S_2; // LFXT1 = VLO
P1DIR = 0x40; // P1.6 output (green LED)
P1OUT = 0; // LED off
IFG1 &= ~OFIFG; // Clear OSCFault flag
BCSCTL1 |= DIVA_3; // ACLK = VLO/8
BCSCTL2 |= SELM_3 + DIVM_3 + DIVS_3; // MCLK = DCO/8, SMCLK = DCO/8
// Configure TimerA
TACTL = TASSEL_1 + MC_1 + TAIE; // Source: ACLK, UP mode
CCR0 = 5100; //Timer count 5100
CCR1 = 2000; //Timer count 100
CCTL0 = CCIE; //CCR0 interrupt enabled
CCTL1 = CCIE; //CCR1 interrupt enabled
_BIS_SR(GIE);
for(;;);
}
// Timer A0 interrupt service routine
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A0 (void)
{
P1OUT |= BIT6; // P1.6 output High
}
// Timer A1 Interrupt Vector (TA0IV) handler
#pragma vector=TIMER0_A1_VECTOR
__interrupt void Timer_A1(void)
{
switch( TA0IV )
{
case 2: P1OUT &= ~BIT6; // P1.6 output Low
break;
case 10:
break;
}
}
程序一開始關閉看門狗,if語句作為時鐘校準的范例,可以刪去。BCSCTL3 |= LFXT1S_2; 選擇超低頻時鐘源。然后設定輸出口,清除中斷標志,時鐘源分頻設定,接下里組建定時器A,即定時器0,在詳細介紹代碼之前,首先看頭文件關于定時器相關寄存器的設定。
例二
  下面舉一個無需中斷服務函數、硬件自動實現產生兩路PWM的例子。
代碼很簡單,初始化一下即可。
#include<msp430g2553.h>
void Set_TimerB_PWM(void)
{
//使用系統初始化時的默認時鐘1MHz,定時器B專門用于產生PWM 波形。
TA1CTL = TASSEL_2 + MC_1 + TACLR;//使用系統次主機SMCKL、增計數模式、清楚定時器B時鐘
TA1CCR0 = 5001 - 1;//在1MHz的主頻率下,1*10^6/5000=200Hz的中斷頻率
TA1CCR1 = 3751 - 2;//當寄存器TACCR1的值小于3750時,輸出口保持高電平。5000*3/4=3750,此路產生3:1的PWM波形。
TA1CCR2 = 1251 - 2;//當寄存器TACCR1的值小于1250時,輸出口保持高電平。5000*1/4=1250,產生1:3的PWM波
TA1CCTL1 = OUTMOD_7;//輸出模式7,計數器計數到5000計數器自動置位,無需中斷服務子函數。
TA1CCTL2 = OUTMOD_7;//輸出模式7,計數器計數到5000計數器自動置位,無需中斷服務子函數。
P2SEL |= BIT1 + BIT5;//只有這兩路可選(為什么是這兩路?在G2553Datasheet中有特別指明)。做第二功能使用(PWM輸出)
P1DIR |= BIT6; //電機控制口CTL//這里與本例無關
P1OUT &= ~BIT6; //start with 0 -->IN2,4為1,滅//這里與本例無關
}
  初始化時鐘后直接調用該函數即可。
我這里使用的是定時器B(即Timer1)。詳細的介紹見以上備注。  
七  時鐘配置
  時鐘源:

     外部晶體振蕩器
     超低頻率振蕩器(VLO)
     數字控制振蕩器(DCO)

  時鐘信號:


     ACLK :Auxiliary clock.輔助時鐘。
     MCLK :Master clock主時鐘。
     SMCLK :Second Master clock次主機時鐘。
內部晶體振蕩器產生時鐘后經過DCOR、SCG0、RSELx、DCO等各個寄存器為MCLK、SMCLK提供時鐘源
內部時鐘還有一個超低頻率內置晶體振蕩器(VLO)在上圖的最上方。可作為低頻時鐘源。
另外一個部分是系統的外部時鐘,外部晶振經過LFXT等各個寄存器設置后可以為MCLK、ACLK提供時鐘源。
上圖中SELM、SELS為時鐘源選擇寄存器。
上圖中DIVA、DIVM、DIVS都是分頻器,時鐘源可以經過1/2/4/8分頻后為CPU提供時鐘,以降低功耗。
   



ADC10的時鐘部分框圖



Timer_A的結構框圖
     Timer_A不能選擇MCLK作為Timer_A的時鐘


CPU是處理器的核心部分,它使用的時鐘始終是MCLK。
上電后,系統默認使用的主系統時鐘MCLK和子系統時鐘SMCLK是同為DCOCLK產生的1MHz時鐘,而輔助時鐘ACLK則為內部VLOCLK產生的12KHz時鐘
MSP430低功耗模式
    單片機中,功耗最低的單片機要MSP430單片機,這是做手持設備最優選擇,MSP430中,用到5種低功耗,LPM0,LPM1,LPM2,LPM3,LPM4,這五種低功耗各種解釋如下 :
LPM0:CPU停止工作,MCLK時鐘停止,SMCLK、ACLK時鐘還在工作。
LPM1:CPU停止工作,MCLK時鐘停止,在活動模式如果DCO沒有作為MCLK和SMCLK時鐘時,則直流發生器被禁止,否則就保持活動狀態,SMCLK、ACLK時鐘依然還在工作。
LPM2:CPU停止工作,MCLK、SMCLK時鐘停止工作,如果DCO沒有作為MCLK、SMCLK,自動被禁止直流發生器保持有效,ACLK還處于工作中。
LPM3:CPU停止工作,MCLK、SMCLK時鐘停止工作,DCO時鐘也停止工作,僅ACLK時鐘還處于工作狀態。
LPM4:CPU停止工作,MCLK、SMCLK時鐘停止工作,DCO時鐘也停止工作,ACLK也停止工作。此時功耗最低。
一般情況下,處理器進入低功耗模式后,由中斷來喚醒,外部中斷或內部中斷。
如果想進入低功耗1,則程序可以為:_BIS_SR(LPM1_bits + GIE);退出低功耗1,則程序可以為:LPM1_EXIT; 進入其他低功耗和退出低功耗一樣。
低功耗執行的一個過程:程序從main函數入口開始執行程序,當遇到進入低功耗程序時,如:_BIS_SR(LPM1_bits + GIE);此時相當于下面的程序處于停止狀態不再執行,當有一個中斷來到,則會進入中斷處理程序,自動退出低功耗,如果在中斷中沒有沒有退出低功耗,當中斷服務程序執行完成后,又會重新進入低功耗。

完整的Word格式文檔51黑下載地址:
MSP430學習筆記 .doc (488 KB, 下載次數: 152)


回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
日本三级亚洲精品| 精品剧情在线观看| 性色一区二区三区| 99热这里有精品| 一级片免费在线| 免费一区二区三区视频狠狠| 久久国产精品国语对白| 日本中文字幕网址| 国产精品国产三级国产专区53| 一区二区三区视频观看| 欧美性猛交xxxx乱大交| 成人av中文字幕| 欧美激情综合| 高清日韩欧美| 国产乱码精品一区二三赶尸艳谈| 国产私人影院| 欧美野外多人交3| 中文字幕人成人乱码亚洲电影| 永久免费成人代码| www.日本xxxx| 国产日韩第一页| 91久久精品一区二区别| 欧美高清一级大片| 亚洲激情自拍图| 欧美性猛交xxx| 亚洲国产精品v| 国产麻豆成人传媒免费观看| 自拍偷拍欧美专区| 老牛精品亚洲成av人片| 99riav视频在线观看| 成全视频全集| 国产精品久久久久久久牛牛| www.蜜桃av.com| 欧美日韩中文视频| 国产精品无码一区二区三区| 免费在线观看的毛片| 欧美一区二区视频在线| 久久久久久噜噜噜久久久精品| 在线综合+亚洲+欧美中文字幕| 亚洲欧美激情一区二区| av综合在线播放| 免费视频一区二区| 午夜精品久久| 欧美精美视频| 亚洲一区二区三区久久久| 青春草免费在线视频| 九色免费视频| 全免费a级毛片| 神马久久久久久久久| 怡红院男人的天堂| 欧美色图亚洲天堂| 精品少妇人妻一区二区黑料社区| 欧美伦理片在线观看| 一区高清视频| 久久本道综合色狠狠五月| 国产精品久久一区主播| 欧美久久久精品| 日韩成人激情在线| 欧美一级日韩一级| 欧美日韩亚洲国产综合| 成人免费在线视频| 久久久91精品国产一区二区精品| 国产一区999| 麻豆一区二区三区| 日韩主播视频在线| 国产精品丝袜xxxxxxx| 91精品国产成人观看| 久久视频在线观看| 精品国产美女a久久9999| 1769在线观看| 日本大片在线观看| 特黄特色特刺激视频免费播放| 国产va在线| 国产激情三区| canopen超线视频网线的应用| 影音先锋2020色资源网| 欧美三级午夜理伦三级| 无颜之月在线看| 97精品国产97久久久久久粉红| 麻豆av一区二区三区久久| 2014亚洲精品| av电影成人| 国产精品日韩欧美一区二区三区 | 欧美日产一区二区三区在线观看| 成人欧美一区二区三区视频 | 青青青青在线| 亚洲热app| 中文字幕网站视频在线| 一级在线免费观看| 欧美日韩在线中文字幕| 四虎在线视频| 国产露出视频在线观看| av在线资源网| 男男h黄动漫啪啪无遮挡软件| 亚洲av成人无码久久精品老人 | 在线观看网站黄不卡| 欧美色视频在线| 精品美女在线观看| 亚洲人成在线观看网站高清| 久久视频免费观看| 国产999精品久久久| 51蜜桃传媒精品一区二区| 国产精品一区二区你懂得| 日韩亚洲一区在线播放| 国产精彩视频一区二区| 在线黄色免费看| 熟女少妇一区二区三区| 久久久www成人免费毛片| 亚洲大片免费观看| 蜜臀av中文字幕| 性xxxxx| 777视频在线观看| 三级av在线播放| 黄色激情在线播放| youjizzjizz亚洲| 亚洲久久久久| 狠狠色综合日日| 教室别恋欧美无删减版| 久久久久久影院| 青娱乐精品在线视频| 波多野结衣中文一区| 一区二区三区在线看| 欧美日韩国产一级片| 一区二区三区四区精品| 国产精品av电影| 日本在线观看一区二区三区| 免费av网址在线| 特大黑人巨人吊xxxx| 免费观看一区二区三区毛片| 午夜av免费观看| 成人三级av| 麻豆网站在线观看| 日韩在线成人| 亚洲国产午夜| 91免费小视频| 欧美午夜精品免费| 久久精品国产亚洲| 91色p视频在线| 亚洲午夜影视影院在线观看| 欧美日韩一区二区三区四区| 日韩在线观看成人| 成人在线免费网站| 已婚少妇美妙人妻系列| www.com.av| 性感美女一级片| 116美女写真午夜一级久久| 91资源在线观看| 日本一区二区免费高清| 国产一区二区三区日韩| 偷拍一区二区三区| 色小说视频一区| 精品视频在线观看| 日韩高清第一页| 18精品爽视频在线观看| 欧美日韩在线精品成人综合网| 天堂а在线中文在线无限看推荐| 精品69视频一区二区三区| 狠狠久久婷婷| 亚洲天堂2016| 中文字幕av一区中文字幕天堂| 粉嫩av一区二区三区免费观看| 久久国产色av免费观看| 99久久婷婷国产综合| 亚洲天堂电影在线观看| 视频二区在线| 爽爽窝窝午夜精品一区二区| 国产成人99久久亚洲综合精品| 欧美性xxxxxxxx| 亚洲91精品在线观看| 国产精品无码乱伦| 懂色av粉嫩av浪潮av| 亚洲一级爰片777777| 久久久久久久久亚洲精品| 一区二区亚洲视频| 国产精品一区在线观看你懂的| 在线免费亚洲电影| 国产第一区电影| 无码无遮挡又大又爽又黄的视频| 日本三级午夜理伦三级三| 欧美日韩一区二区三区视视频| 国产精品无码2021在线观看| 91大神精品| 国产精品一区二区无线| 欧美亚洲综合一区| 国产成人高潮免费观看精品| 男女啪啪免费观看| 日本 欧美 国产| 欧美日韩看片| 日韩精品分区| 欧美日本三区| 性做久久久久久免费观看欧美| 中文字幕久热精品在线视频| 日本一区二区三区www| 最近中文字幕免费| 偷拍精品一区二区三区| av免费在线一区二区三区| 国产成人三级| 国产精品伦一区二区三级视频| 国产一区二区三区在线观看视频 | 亚洲视频一区二区在线| 亚洲精品永久免费| 亚洲精品乱码视频| 糖心vlog免费在线观看| 国产伦精品一区二区三区视频小说| 黄网站在线免费看| 国产精品videosex极品| 亚洲精品视频一区二区| 欧美激情一区二区三区高清视频| 91制片厂免费观看| 少妇高潮在线观看| 91深夜福利| 日韩一区二区三区免费| 国产一区二区精品久久| 欧美精品一区二区三区很污很色的 | 久久男女视频| 欧美日韩久久一区| 国产精品久久久久av福利动漫| 成人在线视频免费播放| 天堂中文在线www| 秋霞在线午夜| 肉色丝袜一区二区| 亚洲成人激情视频| 久久riav二区三区| 欧美成人免费观看视频| 黄页在线观看| 999国产精品永久免费视频app| 亚洲精品中文在线影院| 日本高清不卡在线| 日本国产一级片| 一区二区三区激情| 天天综合网天天| 黄网站免费久久| 一区二区三区久久精品| 91免费黄视频| 丰满少妇高潮在线观看| h片在线观看| 丰满亚洲少妇av| 久久成人这里只有精品| 国产精品久久久久久久99| 国产精品亚洲综合久久小说| 欧美日韩国产一区二区在线观看| 中文字幕免费不卡在线| 国产精品视频区1| 日本污视频网站| 原千岁中文字幕| 99亚洲一区二区| 亚洲人成电影网站| 中文字幕在线观看第三页| 亚洲欧美色图区| 国产一区二区久久久久| 亚洲激情图片小说视频| 国产精品亚洲综合| 99成人精品视频| 毛片电影在线| 亚洲国产精品二十页| 成人春色激情网| 91久久国产综合| 成人18在线| 激情综合网av| 午夜精品蜜臀一区二区三区免费 | 黑人巨大国产9丨视频| 亚洲国产精品国自产拍久久| 欧美日韩五区| 一区二区不卡在线播放| 美日韩免费视频| 国产在成人精品线拍偷自揄拍| 华人av在线| 亚洲欧美一区二区三区孕妇| 狠狠色伊人亚洲综合网站色| 中国a一片一级一片| 国产777精品精品热热热一区二区| 国产三级一区二区| 成人av电影免费| 中文字幕+乱码+中文乱码www| jizz内谢中国亚洲jizz| 亚洲一区二区视频在线观看| 天天综合狠狠精品| 粉嫩av一区二区夜夜嗨| av激情网站| 丝瓜av网站精品一区二区| 欧美乱大交xxxxx另类电影| 亚洲精品理论片| 精品久久久久一区二区三区 | 久久免费国产视频| 丁香激情五月少妇| yiren22亚洲综合伊人22| 99久久99久久免费精品蜜臀| 91最新国产视频| 亚洲无码精品在线播放| 97久久中文字幕| 精品污污网站免费看| 粉嫩虎白女毛片人体| 天天综合网天天做天天受| 久久青草久久| 国产精品久久久久久久久影视| 国产午夜视频在线播放| 亚洲电影有码| 欧美私模裸体表演在线观看| 成年人黄色片视频| 九七伦理97伦理手机| 黄一区二区三区| 99国产超薄肉色丝袜交足的后果| 日韩第一页在线观看| 日韩在线视频观看免费| 精品久久美女| 亚洲一区av在线播放| 夜夜春很很躁夜夜躁| av大大超碰在线| 亚洲一区二区五区| 久色视频在线播放| 成年人免费网站| 国产suv精品一区二区三区| 国产精品免费一区二区三区| 五月婷婷六月丁香| 日韩精品一区二区三区免费观看| 视频直播国产精品| 欧美性猛交xxxxx少妇| 美女的胸无遮挡在线观看 | 欧美顶级xxxxbbbb| 一区免费视频| 国产精品久久久久高潮| 99久久精品国产一区色| 日韩一区亚洲二区| 欧美国产极速在线| 香蕉影院在线观看| 久久精品亚洲成在人线av网址| 亚洲欧美一区二区三区四区| 国产福利视频网站| 日本欧美在线| 亚洲成人免费网站| 亚洲精品一区二区三区在线播放| 校园春色亚洲色图| 亚洲国产91精品在线观看| 国精产品一区一区二区三区mba| 在线精品亚洲欧美日韩国产| 欧美一区二区视频在线观看2022 | 免费污污网站| 国产在线不卡视频| 久久久水蜜桃| 免费毛片大全| 99久久国产综合精品色伊| 26uuu成人| 友田真希在线| 一区二区免费看| 婷婷中文字幕在线观看| 久久亚洲天堂| 欧美三级日本三级少妇99| 女~淫辱の触手3d动漫| 无人区在线高清完整免费版 一区二| 精品久久久久久亚洲综合网| 久久久久久久麻豆| 成人搞黄视频| 久久久在线观看| www.日韩高清| 老司机午夜精品视频| 日本免费高清一区| 羞羞免费视频| 亚洲日本丝袜连裤袜办公室| 中文字幕色网站| 特黄毛片在线观看| 亚洲欧美日韩在线高清直播| 精品不卡一区二区| 一级毛片免费高清中文字幕久久网| 国产精品扒开腿做爽爽爽男男| 一区二区在线观看视频在线 | 国产一区二区三区四区福利| 亚洲天堂男人av| 亚洲乱码电影| 国产精品永久入口久久久| 很黄很色网站| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美黄色一区二区三区| 综合伊思人在钱三区| 日韩av大片在线| 麻豆视频国产| xf在线a精品一区二区视频网站| 日韩在线一级片| 成人性生交大片免费看在线播放| 亚洲黄一区二区| 亚洲熟女乱色一区二区三区久久久| 激情综合中文娱乐网| 日本不卡免费新一二三区| 免费观看羞羞视频网站| 欧美视频在线免费看| 国产在线观看免费视频软件| 免费精品国产| av成人在线电影| 美女的尿口免费视频| 欧美性欧美巨大黑白大战| 日日噜噜夜夜狠狠久久波多野| 精品成人影院| 国产乱码精品一区二区三区日韩精品| 8x8x视频在线| 色综合天天综合色综合av| 污污的视频在线免费观看| 国产精品99一区二区三区| 欧美成人在线免费观看| 精品成人一区二区三区免费视频| 欧美精品亚洲一区二区在线播放| 日韩xxxxxxxxx|