日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

AVR单片机及其开发环境

發布時間:2024/1/1 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AVR单片机及其开发环境 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

內容包括AVRStudio及WinAVR介紹,軟件下載地址,編譯環境設置,IAR for AVR的使用,AVR單片機的介紹。紫色文字是超鏈接,點擊自動跳轉至相關博文。持續更新,原創不易!

目錄:

一、AVRStudio及WinAVR簡介

1、使用AVR GCC做為編譯器

2、選擇仿真調試平臺

3、選擇Device,設置Frequency,代碼優化選項Optimization,輸出hex文件

4、設置包含文件(頭文件)路徑

5、設置庫文件路徑

6、設置工具鏈路徑(不使用AVR Toolchain)

二、Avr Studio和Winavr最新版下載地址

三、Avr Studio和Winavr編譯環境設置

四、IAR for AVR的使用(CC2530開發套件zigbee開發板)

1、出現“IAR AVR unknown or ambiguous symbol.main”?

2、處于調試狀態,但是不能在C語言上單步運行,也不能設置斷點

3、IAR For AVR軟件的精確延時

4、IAR中加入編譯所需庫的頭文件

五、AVR JTAG ICE MKII仿真器

六、AVR寄存器定義

七、AVR移位算法詳細解釋(1<<X)

------------------------------------------------------------------------------------------------------

一、AVRStudio及WinAVR簡介

AVRStudio 是ATMEL 官方針對AVR 系列單片機推出的集成開發環境,它集開發調試于一體,有很好的用戶界面,很好的穩定性。AVRSdudio 是免費的。AVRStudio 本身可以開發匯編程序,如果希望使用C語言開發,則需要安裝C編譯器(WinAVR 等)。
WinAVR 是GNU 組織推出的AVR 單片機的gcc 編譯器,該編譯器的編譯效率極高。gcc 編譯器是開源的,是免費的。使用gcc 編譯器,可以掌握標準c 的語法等,為學習Linux 等奠定基礎。

------------------------------------------------------------------------------------------------------

二、Avr Studio和Winavr最新版下載地址

AVRStudio 最新版本的官方下載地址:Smart | Connected | Secure | Microchip Technology?

WinAVR 最新版本的官方下載地址:WinAVR - Browse Files at SourceForge.net

------------------------------------------------------------------------------------------------------

三、Avr Studio和Winavr編譯環境設置

1、使用AVR GCC做為編譯器

---------------------------------------

2、選擇仿真調試平臺?

---------------------------------------

3、選擇Device,設置Frequency,代碼優化選項Optimization,輸出hex文件?

---------------------------------------

4、設置包含文件(頭文件)路徑?

---------------------------------------

5、設置庫文件路徑?

---------------------------------------

6、設置工具鏈路徑(不使用AVR Toolchain)? 如此便可使用winavr作為c編譯器,不會出現avr-objcopy: '****.elf': No such file的錯誤。 ------------------------------------------------------------------------------------------------------ 四、IAR for AVR的使用(CC2530開發套件zigbee開發板)

1、出現“IAR AVR unknown or ambiguous symbol.main”?

project==>options==>linker,format設置成debug。?

IAR下必須進入DEBUG模式才能進行調試,如果不連接開發工具的話,斷點也是不行的

---------------------------------------

2、處于調試狀態,但是不能在C語言上單步運行,也不能設置斷點

project==>options==>C/C++Compiler,將Generate debug information打上勾。

---------------------------------------

3、IAR For AVR軟件的精確延時

不浪費中斷的情況下的精確延時當然是軟件自帶的單周期的空操作,比如_nop_();

在IAR for AVR中的庫函數#include"intrinsics.h"里面有個單周期的延時函數__delay_cycles();(相當于_nop_();),

如果__delay_cycles(100)就是100個mclk的周期延時。

然后就是下面的操作了:

#ifndef __delay_h
#define __delay_h
#include"intrinsics.h"
#define xtal??8???????//這里就是你要使用的晶振的頻率(單位NHZ)
#define delay_us(x) __delay_cycles((unsigned??long)(x*xtal))
#define delay_ms(x) __delay_cycles((unsigned??long)(x*xtal*1000))
#define delay_s(x)??__delay_cycles((unsigned??long)(x*xtal*1000000))
#endif

3)就是在你用到延時的函數里面調用#include"Delay.h"(這里是不區分大小寫的,哈,不用擔心這個)

這就在不浪費中斷情況下的軟件延時,當然你要非得精確,那非得定時計數器不可了

補充一下:

我用的是IAR for AVR,別的軟件什么的似乎也有延時函數,如果沒有可以用下面的這個延時(聽說也是相當準的,在8MHZ晶振下,不管是外接還是內部晶振,哈都一樣):

//------------------------------------------------------------------------------
//延時函數
void??delay_ms(uint k)
{
??uint??i,j;
??for(i=0;i
????for(j=0;j<1140;j++);
}

還有一個:差點忘記(這個不知道是那個哥們想到的,也可以改變晶振的~~~都貼出來,反正沒事干):

//------------------------------------------------------------------------------
//延時1ms的函數,沒有參數傳遞
void??delay_1ms()
{
??uint i;
??for(i=1;i<(uint)(xtal*143-2);i++)
????;
}
//------------------------------------------------------------------------------
//延時nms的函數,有參數傳遞
void??delay_nms(uint n)
{
??uint i=0;
??while(i
??{
????delay_1ms();
????i++;
??}
}

---------------------------------------

4、IAR中加入編譯所需庫的頭文件

工程名右擊->options->C/C++?compiler->Preprocessor中填入頭文件所在的目錄即可,$PROJ_DIR$表示工程所在目錄,\..\工程所在目錄的上一層目錄。設置后詳見圖片。

------------------------------------------------------------------------------------------------------

五、AVR JTAG ICE MKII仿真器

注意:此處的VTref需要接VCC。

------------------------------------------------------------------------------------------------------

六、AVR寄存器定義

#include "iom16v.h"

#include "macros.h"

void initialize()
{
? ? // DDRx端口方向寄存器,PORTx數據寄存器,PINx輸入引腳寄存器
? ? // DDRxn相應位為1,引腳為輸出否則為輸入
? ? // PORTxn為1時,上拉電阻使能
? ? DDRA = 0x00;
}

void init_adc()
{
? ? // ADMUX
? ? // -----------------------------------------------------------------
? ? // | REFS1 | REFS0 | ADLAR |??MUX4 |??MUX3 |??MUX2 |??MUX1 |??MUX0 |
? ? // -----------------------------------------------------------------
? ? // REFS1 REFS0: 00,使用AREF,內部參考電壓關閉
? ? //? ?? ?? ?? ???01,AVCC、AREF引腳外加濾波電容
? ? //? ?? ?? ?? ?? ???10,保留
? ? //? ?? ?? ?? ?? ???11,2.56V片內基準電壓,AREF引腳外加濾波電容
? ? // ADLAR: ADC轉換結果左對齊
? ? //??MUX4 ~??MUX0? ?單端輸入??正差分輸入? ?負差分輸入? ?增益
? ? // 00000 ~ 00111??ADC0~ADC7
? ? //? ?01000? ?? ?? ?? ?? ?? ? ADC0? ?? ?? ?ADC0? ?? ?? ?10x
? ? //? ?01001? ?? ?? ?? ?? ?? ? ADC1? ?? ?? ?ADC0? ?? ?? ?10x
? ? //? ?01010? ?? ?? ?? ?? ?? ? ADC0? ?? ?? ?ADC0? ?? ???200x? ?? ?? ?? ?? ?? ?
? ? //? ?01011? ?? ?? ?? ?? ?? ? ADC1? ?? ?? ?ADC0? ?? ???200x
? ? //? ?01100? ?? ?? ?? ?? ?? ? ADC2? ?? ?? ?ADC2? ?? ?? ?10x
? ? //? ?01101? ?? ?? ?? ?? ?? ? ADC3? ?? ?? ?ADC2? ?? ?? ?10x
? ? //? ?01110? ?? ?? ?? ?? ?? ? ADC2? ?? ?? ?ADC2? ?? ???200x
? ? //? ?01111? ?? ?? ?? ?? ?? ? ADC3? ?? ?? ?ADC2? ?? ???200x
? ? //? ?10000? ?? ?? ?? ?? ?? ? ADC0? ?? ?? ?ADC1? ?? ?? ? 1x
? ? //? ?10001? ?? ?? ?? ?? ?? ? ADC1? ?? ?? ?ADC1? ?? ?? ? 1x
? ? //? ?10010? ?? ?? ?? ?? ?? ? ADC2? ?? ?? ?ADC1? ?? ?? ? 1x
? ? //? ?10011? ?? ?? ?? ?? ?? ? ADC3? ?? ?? ?ADC1? ?? ?? ? 1x
? ? //? ?10100? ?? ?? ?? ?? ?? ? ADC4? ?? ?? ?ADC1? ?? ?? ? 1x
? ? //? ?10101? ?? ?? ?? ?? ?? ? ADC5? ?? ?? ?ADC1? ?? ?? ? 1x
? ? //? ?10110? ?? ?? ?? ?? ?? ? ADC6? ?? ?? ?ADC1? ?? ?? ? 1x
? ? //? ?10111? ?? ?? ?? ?? ?? ? ADC7? ?? ?? ?ADC1? ?? ?? ? 1x
? ? //? ?11000? ?? ?? ?? ?? ?? ? ADC0? ?? ?? ?ADC2? ?? ?? ? 1x
? ? //? ?11001? ?? ?? ?? ?? ?? ? ADC1? ?? ?? ?ADC2? ?? ?? ? 1x
? ? //? ?11010? ?? ?? ?? ?? ?? ? ADC2? ?? ?? ?ADC2? ?? ?? ? 1x
? ? //? ?11011? ?? ?? ?? ?? ?? ? ADC3? ?? ?? ?ADC2? ?? ?? ? 1x
? ? //? ?11100? ?? ?? ?? ?? ?? ? ADC4? ?? ?? ?ADC2? ?? ?? ? 1x
? ? //? ?11101? ?? ?? ?? ?? ?? ? ADC5? ?? ?? ?ADC2? ?? ?? ? 1x
? ? //? ?11110? ?? ? 1.23V(VBG)
? ? //? ?11111? ?? ???0V(GND)? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ???ADMUX = 0;

? ? // ADCSRA
? ? // -----------------------------------------------------------------
? ? // |??ADEN |??ADSC |??ADFR |??ADIF |??ADIE | ADPS2 | ADPS1 | ADPS0 |
? ? // -----------------------------------------------------------------
? ? // ADEN:ADC使能,轉換過程中禁止ADC則立即中止轉換。
? ? // ADSC:ADC開始轉換。在轉換過程中ADSC為1直到轉換結束。
? ? // ADFR:是否工作在連續模式,該位寫0,停止連續轉換模式。
? ? // ADIF:ADC中斷標志。中斷服務硬件清零。
? ? // ADIE:ADC中斷使能
? ? // ADSP2 ~ ADSP0:ADC預分頻選擇??000:2分頻,001到111為2到128分頻
? ? //? ?? ?? ?? ?? ?ADC在50~200KHz時鐘時能獲得最大精度
? ? ADCSRA = 0;

? ? // ADCC & ADCH
? ? // ADC轉換結果寄存器,差分通道結果以2的補碼形式表示,ADC數據必須讀過
? ? // ADCH后才可進行數據更新。對于精度小于8位的左對齊數據可只讀ADCH。
? ? // 數據右對齊(ADLAR = 0)
? ? // ADCH-------------------------------------------------------------
? ? // |? ?-? ?|? ?-? ?|? ?-? ?|? ?-? ?|? ?-? ?|? ?-? ?|??ADC9 |??ADC8 |
? ? // -----------------------------------------------------------------
? ? // ADCL-------------------------------------------------------------
? ? // |??ADC7 |??ADC6 |??ADC5 |??ADC4 |??ADC3 |??ADC2 |??ADC1 |??ADC0 |
? ? // -----------------------------------------------------------------
? ? //
}

void init_timer()
{
? ? //SFIOR
? ? // -----------------------------------------------------------------
? ? // |??TSM??|? ?-? ?|? ?-? ?|? ?-? ?|??ACME |??PUD??|??PSR0 | PSR321|
? ? // -----------------------------------------------------------------
? ? // TSM: T/C同步模式。置位時,PSR0和PSR321保持其數據直到被更新或TSM被清零
? ? // PSR0:T/C0預分頻器復位,置位時使預頻器復位,直到為0時表示復位完成
? ? // PSR321: T/C3、2、1預分頻繁器復位,此位讀總為0
? ? // ACME: 模擬比較器使能
? ? // PUD:所有端口上拉電阻禁止,置1為禁止
? ? SFIOR = 0;
}
void init_timer0()
{
? ? //TCCR0 T/C0控制寄存器
? ? // -----------------------------------------------------------------
? ? // |??FOC0 | WGM00 | COM01 | COM00 | WGM01 |??CS02 |??CS01 |??CS00 |
? ? // -----------------------------------------------------------------
? ? // FOC0:強制輸出比較啟動
? ? // WGM01, WGM00: 工作模式選擇
? ? //? ?? ?? ?? ???00:普通模式,01:PWM相位修正,
? ? //? ?? ?? ?? ???10:比較匹配時清除計數器模式(CTC模式),11:快速PWM
? ? // COM01, COM00:比較匹配時的輸出模式
? ? //? ?? ?? ? WGMxx為普通模式或CTC模式時
? ? //? ?? ?? ?? ???00:OC0未連接,
? ? //? ?? ?? ?? ???01:OC0取反,
? ? //? ?? ?? ?? ???10:OC0清零,
? ? //? ?? ?? ?? ???11:OC0置位
? ? //? ?? ?? ? WGMxx為相位修正PWM模式
? ? //? ?? ?? ?? ???00:OC0未連接,
? ? //? ?? ?? ?? ???01:保留,
? ? //? ?? ?? ?? ???10:升序匹配時清零OC0;降序匹配時置位OC0,
? ? //? ?? ?? ?? ???11:升序匹配時置位OC0;降序匹配時清零OC0
? ? //? ?? ?? ? WGMxx為快速PWM模式
? ? //? ?? ?? ?? ???00:OC0未連接
? ? //? ?? ?? ?? ???01:保留
? ? //? ?? ?? ?? ???10:匹配時OC0清零;計數到TOP時OC0置位
? ? //? ?? ?? ?? ???11:匹配時OC0置位;計數到TOP時OC0清零
? ? // CS02,CS01,CS00:T/C0時鐘預分頻選擇
? ? //? ?? ?? ?? ???000:無時鐘,T/C不工作? ???001:1/1
? ? //? ?? ?? ?? ???010:1/8? ???011:1/32? ???100:1/64
? ? //? ?? ?? ?? ???101:1/128? ?110:1/256? ? 111:1/1024
? ? TCCR0 = 0;

? ? //TCNT0 T/C0計數寄存器,8位
? ? //OCR0 輸出比較寄存器,8位

? ? //TIMSK T/C中斷屏蔽寄存器
? ? // -----------------------------------------------------------------
? ? // | OCIE2 | TOIE2 | TICIE1| OCIE1A| OCIE1B| TOIE1 | OCIE0 | TOIE0 |
? ? // -----------------------------------------------------------------
? ? // OCIE2:T/C2輸出比較匹配中斷使能
? ? // TOIE2:T/C2溢出中斷使能
? ? // TICIE1:T/C1輸入捕捉中斷使能
? ? // OCIE1A:T/C1輸出比較A匹配中斷使能
? ? // OCIE1B:T/C1輸出比較B匹配中斷使能
? ? // TOIE1:T/C1溢出中斷使能
? ? // OCIE0:T/C0輸出比較匹配中斷使能
? ? // TOIE0:T/C0溢出中斷使能
? ? TIMSK = 0;

? ? //ETIMSK T/C擴展中斷屏蔽寄存器
? ? // -----------------------------------------------------------------
? ? // |? ?-? ?|? ?-? ?| TICIE3| OCIE3A| OCIE3B| TOIE3 | OCIE3C| OCIE1C|
? ? // -----------------------------------------------------------------
? ? // TICIE3:T/C3輸入捕捉中斷使能
? ? // OCIE3A:T/C3輸出比較A匹配中斷使能
? ? // OCIE3B:T/C3輸出比較B匹配中斷使能
? ? // TOIE3:T/C3溢出中斷使能
? ? // OCIE3C:T/C3輸出比較C匹配中斷使能
? ? // OCIE1C:T/C1輸出比較C匹配中斷使能
? ? ETIMSK = 0;
? ?
? ? //TIFR T/C中斷標志寄存器
? ? // -----------------------------------------------------------------
? ? // |??OCF2 |??TOV2 |??ICF1 | OCF1A | OCF1B |??TOV1 |??OCF0 |??TOV0 |
? ? // -----------------------------------------------------------------
? ? // OCF2:T/C2輸出比較匹配標志
? ? // TOV2:T/C2溢出標志
? ? // ICF1:T/C1輸入捕捉標志位
? ? // OCF1A:T/C1輸出比較A匹配標志位
? ? // OCF1B:T/C1輸出比較B匹配標志位
? ? // TOV1:T/C1溢出標志
? ? // OCF0:T/C0輸出比較匹配標志
? ? // TOV0:T/C0溢出標志

? ? //ETIFR 擴展的T/C中斷標志寄存器
? ? // -----------------------------------------------------------------
? ? // |? ?-? ?|? ?-? ?|??ICF3 | OCF3A | OCF3B |??TOV3 | OCF3C | OCF1C |
? ? // -----------------------------------------------------------------
? ? // ICF3:T/C3輸入捕捉匹配標志位
? ? // OCF3A:T/C3輸出比較A匹配標志位
? ? // OCF3B:T/C3輸出比較B匹配標志位
? ? // TOV3:T/C3溢出標志位
? ? // OCF3C:T/C3輸出比較C匹配標志位
? ? // OCF1C:T/C1輸出比較C匹配標志位

? ? //ASSR T/C0異步狀態寄存器
? ? // -----------------------------------------------------------------
? ? // |? ?-? ?|? ?-? ?|? ?-? ?|? ?-? ?|??AS0??| TCN0UB| OCR0UB| TCR0UB|
? ? // -----------------------------------------------------------------
? ? // AS0:T/C0使用外部時鐘
? ? // TCN0UB:TCNT0更新中,寫TCNT0時將置位,為0時表明TCNT0可以寫入新值
? ? // OCR0UB:OCR0更新中,寫OCR0時將置位,為0表明OCR0可以寫入新值
? ? // TCR0UB:TCCR0更新中,寫TCCR0時將置位,為0表明TCCR0可以寫入新值
? ? ASSR = 0;
}

void init_timer2()
{? ?
? ? //TCCR2 T/C2控制寄存器
? ? // -----------------------------------------------------------------
? ? // |??FOC2 | WGM20 | COM21 | COM20 | WGM21 |??CS22 |??CS21 |??CS20 |
? ? // -----------------------------------------------------------------
? ? // FOC2:強制輸出比較啟動
? ? // WGM21, WGM20: 工作模式選擇
? ? //? ?? ?? ?? ???00:普通模式,01:PWM相位修正,
? ? //? ?? ?? ?? ???10:比較匹配時清除計數器模式(CTC模式),11:快速PWM
? ? // COM21, COM20:比較匹配時的輸出模式
? ? //? ?? ?? ? WGMxx為普通模式或CTC模式時
? ? //? ?? ?? ?? ???00:OC0未連接,
? ? //? ?? ?? ?? ???01:OC0取反,
? ? //? ?? ?? ?? ???10:OC0清零,
? ? //? ?? ?? ?? ???11:OC0置位
? ? //? ?? ?? ? WGMxx為相位修正PWM模式
? ? //? ?? ?? ?? ???00:OC0未連接,
? ? //? ?? ?? ?? ???01:保留,
? ? //? ?? ?? ?? ???10:升序匹配時清零OC0;降序匹配時置位OC0,
? ? //? ?? ?? ?? ???11:升序匹配時置位OC0;降序匹配時清零OC0
? ? //? ?? ?? ? WGMxx為快速PWM模式
? ? //? ?? ?? ?? ???00:OC0未連接
? ? //? ?? ?? ?? ???01:保留
? ? //? ?? ?? ?? ???10:匹配時OC0清零;計數到TOP時OC0置位
? ? //? ?? ?? ?? ???11:匹配時OC0置位;計數到TOP時OC0清零
? ? // CS22,CS21,CS20:T/C0時鐘預分頻選擇
? ? //? ?? ?? ?? ???000:無時鐘,T/C不工作? ???001:1/1
? ? //? ?? ?? ?? ???010:1/8? ???011:1/32? ???100:1/64
? ? //? ?? ?? ?? ???101:1/128? ?110:1/256? ? 111:1/1024
? ? TCCR2 = 0;

? ? //TCNT2 T/C2計數寄存器,8位
? ? //OCR2 T/C2比較寄存器,8位
}

void init_timer1()
{
? ? //TCCR1A T/C1控制寄存器A
? ? // -----------------------------------------------------------------
? ? // | COM1A1| COM1A0| COM1B1| COM1B0| COM1C1| COM1C0| WGM11 | WGM10 |
? ? // -----------------------------------------------------------------
? ? //TCCR1B T/C1控制寄存器B
? ? // -----------------------------------------------------------------
? ? // | ICNC1 | ICES1 |? ?-? ?| WGM13 | WGM12 |??CS12 |??CS11 |??CS10 |
? ? // -----------------------------------------------------------------
? ? //TCCR1C T/C1控制寄存器C
? ? // -----------------------------------------------------------------
? ? // | FOC1A | FOC1B | FOC1C |? ?-? ?|? ?-? ?|? ?-? ?|? ?-? ?|? ?-? ?|
? ? // -----------------------------------------------------------------
? ? // COM1A1,COM1A0:通道A的比較輸出模式
? ? // COM1B1,COM1B0:通道B的比較輸出模式
? ? // COM1C1,COM1C0:通道C的比較輸出模式
? ? // WGM13,WGM12,WGM11,WGM10:波型發生模式:
? ? //? ?? ?? ?? ???比較輸出模式(CTC模式),非PWM
? ? //? ?? ?? ?? ?? ?? ?00??普通端口操作,OC1A/OC1B/OC1C未連接
? ? //? ?? ?? ?? ?? ?? ?01??比較匹配時OC1A/OC1B/OC1C電平取反
? ? //? ?? ?? ?? ?? ?? ?10??比較匹配時清零OC1A/OC1B/OC1C(輸出低電平)
? ? //? ?? ?? ?? ?? ?? ?11??比較匹配時置位OC1A/OC1B/OC1C(輸出高電平)
? ? //? ?? ?? ?? ???比較輸出模式(CTC模式),快速PWM
? ? //? ?? ?? ?? ?? ?? ?00??普通端口操作,OC1A/OC1B/OC1C未連接
? ? //? ?? ?? ?? ?? ?? ?01??WGM13為0時同上,為1時比較匹配時 OC1A電平取反,OC1B/OC1C保留
? ? //? ?? ?? ?? ?? ?? ?10??比較匹配時OC1A/OC1B/OC1C清零,在TOP時OC1A/OC1B/OC1C置位
? ? //? ?? ?? ?? ?? ?? ?11??比較匹配時OC1A/OC1B/OC1C置位,在TOP時OC1A/OC1B/OC1C清零
? ? //? ?? ?? ?? ???比較輸出模式(CTC模式),相位修正及相頻修正PWM
? ? //? ?? ?? ?? ?? ?? ?00??普通端口操作,OC1A/OC1B/OC1C未連接
? ? //? ?? ?? ?? ?? ?? ?01??WGM13為0:同上,為1時比較匹配時 OC1A電平取反,OC1B/OC1C保留
? ? //? ?? ?? ?? ?? ?? ?10??升序計數匹配時將OC1A/OC1B/OC1C清零,降序計數匹配時將OC1A/OC1B/OC1C置位
? ? //? ?? ?? ?? ?? ?? ?11??升序計數匹配時將OC1A/OC1B/OC1C置位,降序計數匹配時將OC1A/OC1B/OC1C清零
? ? //
? ? //? ?模式 WGM1x? ?工作模式說明? ???TOP? ?OCR1x更新時刻??TOVn置位時刻
? ? //? ???0? ?0000? ?? ? 普通模式? ? 0xFFFF? ?? ???立即? ?? ?? ?? ?MAX
? ? //? ???1? ?0001? ?8位相位修正PWM??0x00FF? ?? ?? ?TOP? ?? ?? ?BOTTOM
? ? //? ???2? ?0010? ?9位相位修正PWM??0x01FF? ?? ?? ?TOP? ?? ?? ?BOTTOM
? ? //? ???3? ?0011??10位相位修正PWM??0x03FF? ?? ?? ?TOP? ?? ?? ?BOTTOM
? ? //? ???4? ?0100? ?? ?? ?? ???CTC? ?OCRnA? ?? ???立即? ?? ?? ?? ?MAX
? ? //? ???5? ?0101? ?? ? 8位快速PWM??0x00FF? ?? ?? ?TOP? ?? ?? ?? ?TOP
? ? //? ???6? ?0110? ?? ? 9位快速PWM??0x01FF? ?? ?? ?TOP? ?? ?? ?? ?TOP
? ? //? ???7? ?0111? ?? ?10位快速PWM??0x03FF? ?? ?? ?TOP? ?? ?? ?? ?TOP
? ? //? ???8? ?1000??相位頻率修正PWM? ? ICRn? ?? ?BOTTOM? ?? ?? ?BOTTOM
? ? //? ???9? ?1001??相位頻率修正PWM? ?OCRnA? ?? ?BOTTOM? ?? ?? ?BOTTOM
? ? //? ? 10? ?1010? ?? ?相位修正PWM? ? ICRn? ?? ?? ?TOP? ?? ?? ?BOTTOM
? ? //? ? 11? ?1011? ?? ?相位修正PWM? ?OCRnA? ?? ?? ?TOP? ?? ?? ?BOTTOM
? ? //? ? 12? ?1100? ?? ?? ?? ???CTC? ? ICRn? ?? ???立即? ?? ?? ?? ?MAX
? ? //? ? 13? ?1101? ?? ?? ?? ? 保留? ?? ?-? ?? ?? ? -? ?? ?? ?? ?? ?-
? ? //? ? 14? ?1110? ?? ?? ? 快速PWM? ? ICRn? ?? ?? ?TOP? ?? ?? ?? ?TOP
? ? //? ? 15? ?1111? ?? ?? ? 快速PWM? ?OCRnA? ?? ?? ?TOP? ?? ?? ?? ?TOP
? ? // ICNC1:使能/禁止輸入捕捉噪聲抑制器
? ? // ICES1:輸入捕獲觸發沿選擇,0為下降沿觸發,1為上升沿觸發
? ? // CS12,CS11,CS10:T/C0時鐘預分頻選擇
? ? //? ?? ?? ?? ???000:無時鐘,T/C不工作? ???001:1/1
? ? //? ?? ?? ?? ???010:1/8? ???011:1/64? ???100:1/256
? ? //? ?? ?? ?? ???101:1/1024??110:外部T1腳下降沿驅動? ? 111:外部T1腳上升沿驅動
? ? // FOC1A,FOC1B,FOC1C:強制輸出比較通道A,B,C
? ? TCCR1A = TCCR1B = TCCR1C = 0;

? ? //TCNT1H,TCNT1L 定時/計數器1
? ? //OCR1AH,OCR1AL 輸出比較寄存器1A
? ? //OCR1BH,OCR1BL 輸出比較寄存器1B
? ? //OCR1CH,OCR1CL 輸出比較寄存器1C

? ? //ICR1H,ICR1L 輸入捕捉寄存器1
}

void init_timer3()
{
? ? //TCCR3A T/C3控制寄存器A
? ? // -----------------------------------------------------------------
? ? // | COM3A1| COM3A0| COM3B1| COM3B0| COM3C1| COM3C0| WGM31 | WGM30 |
? ? // -----------------------------------------------------------------
? ? //TCCR3B T/C3控制寄存器B
? ? // -----------------------------------------------------------------
? ? // | ICNC3 | ICES3 |? ?-? ?| WGM33 | WGM32 |??CS32 |??CS31 |??CS30 |
? ? // -----------------------------------------------------------------
? ? //TCCR3C T/C3控制寄存器C
? ? // -----------------------------------------------------------------
? ? // | FOC3A | FOC3B | FOC3C |? ?-? ?|? ?-? ?|? ?-? ?|? ?-? ?|? ?-? ?|
? ? // -----------------------------------------------------------------
? ? // COM3A1,COM3A0:通道A的比較輸出模式
? ? // COM3B1,COM3B0:通道B的比較輸出模式
? ? // COM3C1,COM3C0:通道C的比較輸出模式
? ? // WGM33,WGM32,WGM31,WGM30:波型發生模式:
? ? //? ?? ?? ?? ???比較輸出模式(CTC模式),非PWM
? ? //? ?? ?? ?? ?? ?? ?00??普通端口操作,OC3A/OC3B/OC3C未連接
? ? //? ?? ?? ?? ?? ?? ?01??比較匹配時OC3A/OC3B/OC3C電平取反
? ? //? ?? ?? ?? ?? ?? ?10??比較匹配時清零OC3A/OC3B/OC3C(輸出低電平)
? ? //? ?? ?? ?? ?? ?? ?11??比較匹配時置位OC3A/OC3B/OC3C(輸出高電平)
? ? //? ?? ?? ?? ???比較輸出模式(CTC模式),快速PWM
? ? //? ?? ?? ?? ?? ?? ?00??普通端口操作,OC3A/OC3B/OC3C未連接
? ? //? ?? ?? ?? ?? ?? ?01??WGM13為0時同上,為1時比較匹配時 OC3A電平取反,OC3B/OC3C保留
? ? //? ?? ?? ?? ?? ?? ?10??比較匹配時OC3A/OC3B/OC3C清零,在TOP時OC3A/OC3B/OC3C置位
? ? //? ?? ?? ?? ?? ?? ?11??比較匹配時OC3A/OC3B/OC3C置位,在TOP時OC3A/OC3B/OC3C清零
? ? //? ?? ?? ?? ???比較輸出模式(CTC模式),相位修正及相頻修正PWM
? ? //? ?? ?? ?? ?? ?? ?00??普通端口操作,OC3A/OC3B/OC3C未連接
? ? //? ?? ?? ?? ?? ?? ?01??WGM13為0:同上,為1時比較匹配時 OC3A電平取反,OC3B/OC3C保留
? ? //? ?? ?? ?? ?? ?? ?10??升序計數匹配時將OC3A/OC3B/OC3C清零,降序計數匹配時將OC3A/OC3B/OC3C置位
? ? //? ?? ?? ?? ?? ?? ?11??升序計數匹配時將OC3A/OC3B/OC3C置位,降序計數匹配時將OC3A/OC3B/OC3C清零
? ? //
? ? //? ?模式 WGM3x? ?工作模式說明? ???TOP? ?OCR1x更新時刻??TOVn置位時刻
? ? //? ???0? ?0000? ?? ? 普通模式? ? 0xFFFF? ?? ???立即? ?? ?? ?? ?MAX
? ? //? ???1? ?0001? ?8位相位修正PWM??0x00FF? ?? ?? ?TOP? ?? ?? ?BOTTOM
? ? //? ???2? ?0010? ?9位相位修正PWM??0x01FF? ?? ?? ?TOP? ?? ?? ?BOTTOM
? ? //? ???3? ?0011??10位相位修正PWM??0x03FF? ?? ?? ?TOP? ?? ?? ?BOTTOM
? ? //? ???4? ?0100? ?? ?? ?? ???CTC? ?OCRnA? ?? ???立即? ?? ?? ?? ?MAX
? ? //? ???5? ?0101? ?? ? 8位快速PWM??0x00FF? ?? ?? ?TOP? ?? ?? ?? ?TOP
? ? //? ???6? ?0110? ?? ? 9位快速PWM??0x01FF? ?? ?? ?TOP? ?? ?? ?? ?TOP
? ? //? ???7? ?0111? ?? ?10位快速PWM??0x03FF? ?? ?? ?TOP? ?? ?? ?? ?TOP
? ? //? ???8? ?1000??相位頻率修正PWM? ? ICRn? ?? ?BOTTOM? ?? ?? ?BOTTOM
? ? //? ???9? ?1001??相位頻率修正PWM? ?OCRnA? ?? ?BOTTOM? ?? ?? ?BOTTOM
? ? //? ? 10? ?1010? ?? ?相位修正PWM? ? ICRn? ?? ?? ?TOP? ?? ?? ?BOTTOM
? ? //? ? 11? ?1011? ?? ?相位修正PWM? ?OCRnA? ?? ?? ?TOP? ?? ?? ?BOTTOM
? ? //? ? 12? ?1100? ?? ?? ?? ???CTC? ? ICRn? ?? ???立即? ?? ?? ?? ?MAX
? ? //? ? 13? ?1101? ?? ?? ?? ? 保留? ?? ?-? ?? ?? ? -? ?? ?? ?? ?? ?-
? ? //? ? 14? ?1110? ?? ?? ? 快速PWM? ? ICRn? ?? ?? ?TOP? ?? ?? ?? ?TOP
? ? //? ? 15? ?1111? ?? ?? ? 快速PWM? ?OCRnA? ?? ?? ?TOP? ?? ?? ?? ?TOP
? ? // ICNC3:使能/禁止輸入捕捉噪聲抑制器
? ? // ICES3:輸入捕獲觸發沿選擇,0為下降沿觸發,1為上升沿觸發
? ? // CS32,CS31,CS30:T/C0時鐘預分頻選擇
? ? //? ?? ?? ?? ???000:無時鐘,T/C不工作? ???001:1/1
? ? //? ?? ?? ?? ???010:1/8? ???011:1/64? ???100:1/256
? ? //? ?? ?? ?? ???101:1/1024??110:外部T1腳下降沿驅動? ? 111:外部T1腳上升沿驅動
? ? // FOC3A,FOC3B,FOC3C:強制輸出比較通道A,B,C
? ? TCCR3A = TCCR3B = TCCR3C = 0;

? ? //TCNT3H,TCNT3L 定時/計數器3

? ? //OCR3AH,OCR3AL 輸出比較寄存器3A
? ? //OCR3BH,OCR3BL 輸出比較寄存器3B
? ? //OCR3CH,OCR3CL 輸出比較寄存器3C

? ? //ICR3H,ICR3L 輸入捕捉寄存器3
}

void init_uart(void)
{
? ? //UDRn USART I/O數據寄存器, 不可用讀修改寫命令操作, 否則會改變FIFO狀態

? ? //UCSRnA USART控制和狀態寄存器A
? ? // -----------------------------------------------------------------
? ? // |??RXCn |??TXCn | UDREn |??FEn??|??DORn |??UPEn |??U2Xn | MPCMn |
? ? // -----------------------------------------------------------------
? ? // RXCn:USART接收結束標志
? ? // TXCn:USART發送結束標志,寫1可清除
? ? // UDREn:USART數據寄存器為空標志,只有該標志為1才數據才可寫入UDR0
? ? // FEn:幀錯誤,未正確收到停止位
? ? // DORn:數據過速
? ? // UPEn:奇偶效驗錯誤
? ? // U2Xn:倍速發送,僅對異步操作有影響
? ? // MPCMn:多處理器通訊模式

? ? //UCSRnB USART控制和狀態寄存器B
? ? // -----------------------------------------------------------------
? ? // | RXCIEn| TXCIEn| UDRIEn| RXENn | TXENn | UCSZn2| RXB8n | TXB8n |
? ? // -----------------------------------------------------------------
? ? // RXCIEn:接收結束中斷使能
? ? // TXCIEn:發送結束中斷使能
? ? // UDRIEn:USART數據寄存器空中使能
? ? // RXENn:接收使能
? ? // TXENn:發送使能
? ? // UCSZn2:字符長度,具體見下面
? ? // RXB8n:接收數據位8
? ? // TXB8n:發送數據位8

? ? //UCSRxC USART控制和狀態寄存器C
? ? // -----------------------------------------------------------------
? ? // |? ?-? ?| UMSELn| UPMn1 | UPMn0 | USBSn | UCSZn1| UCXZn0| UCPOLn|
? ? // -----------------------------------------------------------------
? ? // UMSELn:模式選擇,0為異步操作,1為同步操作
? ? // UPMn1,UPMn0:奇偶效驗模式,00禁止,01保留,10偶效驗,11奇校驗
? ? // USBSn:停止位選擇,0為1位停止位,1為2位停止位
? ? // UCSZn2,UCSZn0:字符長度,000為5位, 001為 6位,010為7位, 011為8位
? ? //? ?? ?? ?? ?? ?? ?? ?? ? 100為保留,101為保留,110為保留,111為9位
? ? // UCPOLn:時鐘極性,(異步模式應清零)
? ? //? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?UCPOL0? ?發送數據位置? ?接收數據位置
? ? //? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0? ?? ???XCK0上升沿? ? XCK0下降沿
? ? //? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???1? ?? ???XCK0下降沿? ? XCK0上升沿

? ? //UBRRnL和UBRRnH USART波特率寄存器, UBRRnH15:12為保留位:
? ? // -----------------------------------------------------------------
? ? // |? ?-? ?|? ?-? ?|? ?-? ?|? ?-? ?| BIT11 | BIT10 | BIT09 | BIT08 |
? ? // -----------------------------------------------------------------
? ? // -----------------------------------------------------------------
? ? // | BIT07 | BIT06 | BIT05 | BIT04 | BIT03 | BIT02 | BIT01 | BIT00 |
? ? // -----------------------------------------------------------------

}? ?

void init_spi(void)
{
? ? //SPCR SPI控制寄存器
? ? // -----------------------------------------------------------------
? ? // |??SPIE |??SPE??|??DORD |??MSTR |??CPOL |??CPHA |??SPR1 | SPR0??|
? ? // -----------------------------------------------------------------
? ? // SPIE:SPI中斷使能
? ? // SPE:SPI使能
? ? // DORD:數據次序,為1時LSB先發送
? ? // MSTR:是否主機模式,若為主機模式,SS引腳配置為輸入,但被拉低則MSTR被清零
? ? // SPSR的SPIF位置位。用戶必須重新設置MSTR位進入主機模式。
? ? // CPOL:時鐘極性,為1時表示空閑時SCK為高電平,否則為低電平。
? ? // CPHA:時鐘相位,為0時為時鐘的起始沿采樣數據,否則為終止沿采樣數據
? ? // SPR1,SPR0:SPI時鐘速率選擇:00??1/4, 01??1/16, 10??1/64, 11??1/128

? ? //SPSR SPI狀態寄存器
? ? // -----------------------------------------------------------------
? ? // |??SPIF |??WCOL |? ?-? ?|? ?-? ?|? ?-? ?|? ?-? ?|? ?-? ?| SPI2X |
? ? // -----------------------------------------------------------------
? ? // SPIF:SPI中斷標志,串行發送結束后此位置位,對于查詢方式,可先讀SPSR,緊著
? ? //? ?? ? 訪問SPDR來對SPIF位清零。
? ? // WCOL:寫沖突標志,可通過先讀SPSR,緊接著訪問SPDR來清零。
? ? // SPI2X:SPI倍速,若為主機,SCK最高頻率可達CPU頻率一半,從機則只能保證為1/4
? ?
? ? //SPDR SPI數據寄存器
? ? // -----------------------------------------------------------------
? ? // |??MSB??|? ?? ? |? ?? ? |? ?? ? |? ?? ? |? ?? ? |? ?? ? |??LSB??|
? ? // -----------------------------------------------------------------
? ? // SPDR為可讀寫寄存器,寫則將啟動數據傳輸,讀則讀取接收緩沖器
}? ?

void init_twi(void)
{
? ? //TWBR TWI比特率寄存器
? ? // -----------------------------------------------------------------
? ? // |??BIT7 |??BIT6 |??BIT5 |??BIT4 |??BIT3 |??BIT2 |??BIT1 |??BIT0 |
? ? // -----------------------------------------------------------------
? ? // SCL頻率 = CUP時鐘頻率/(16 + 2 * TWBR * 4 ^ TWPS)
? ? // TWBR值應該不小于10, TWPS為預分頻值

? ? //TWCR TWI控制寄存器
? ? // -----------------------------------------------------------------
? ? // | TWINT |??TWEA | TWSTA | TWSTO |??TWWC |??TWEN |? ?-? ?|??TWIE |
? ? // -----------------------------------------------------------------
? ? // TWINT:TWI中斷標志,TWINT標志必須由軟件寫1清除, 即使在中斷服務程序中硬件也不會自動清除
? ? //? ?? ???在清除TWI標志前一定要首先完成對TWAR TWSR TWDR的訪問, 此位清零后TWI立即開始工作。
? ? // TWEA:使能TWI應答,此位控制應答脈沖的產生。
? ? // TWSTA:START狀態位,自己想成為主機時置此位,發送START后軟件必須清零TWSTA。
? ? // TWSTO:STOP狀態位。主模式下,置此位將在總線上產生STOP狀態,后TWSTO自動清零;從機模式下
? ? //? ?? ???置此位可使接口從錯誤狀態恢復到未被尋址的狀態,此時總線上不會產生STOP狀態。
? ? // TWWC:TWI寫沖突標志。每次寫TWDR時都將更新此標志。
? ? // TWEN:TWI使能位。置1時TWI引腳將從IO引腳切換到SCL和SDA引腳。
? ? // TWIE:TWI中斷使能。
? ?
? ? //TWSR TWI狀態寄存器
? ? // -----------------------------------------------------------------
? ? // |??TWS7 |??TWS6 |??TWS5 |??TWS4 |??TWS3 |? ?-? ?| TWPS1 | TWPS0 |
? ? // -----------------------------------------------------------------
? ? // TWS7~TWS3:TWI狀態
? ? // TWPS1~TWPS0:TWI預分頻值。00:1; 01:1/4; 10:1/16; 11:1/64。
? ?
? ? //TWDR TWI數據寄存器
? ? // -----------------------------------------------------------------
? ? // |??BIT7 |??BIT6 |??BIT5 |??BIT4 |??BIT3 |??BIT2 |??BIT1 |??BIT0 |
? ? // -----------------------------------------------------------------
? ? // 發送模式,TWDR中包含了要發送的字節,接收模式TWDR包含了接收到的數據。
? ? // 只要TWINT置位,TWDR的數據就是穩定的。

? ? //TWAR TWI從機地址寄存器
? ? // -----------------------------------------------------------------
? ? // |??TWA6 |??TWA5 |??TWA4 |??TWA3 |??TWA2 |??TWA1 |??TWA0 | TWGCE |
? ? // -----------------------------------------------------------------
? ? // TWA6~TWA0:TWI從機地址寄存器
? ? // TWGCE:使能TWI廣播識別
}

? ? //GICR 通用中斷控制寄存器
? ? // -----------------------------------------------------------------
? ? // |??INT1 |??INT0 |??INT2 |? ?-? ?|? ?-? ?|? ?-? ?| IVSEL |??IVCE |
? ? // -----------------------------------------------------------------
? ? // INT1:使能外部中斷1請求
? ? // INT0:使能外部中斷0請求
? ? // INT2:使能外部中斷2請求
? ? // IVSEL:中斷向量選擇,為0時中斷向量位于FLASH起始地址,為1時位于BOOT區起始地址
? ? // IVCE:中斷向量修改使能。改變IVSEL時IVCE必須置位。

? ? //MCUCR MCU控制寄存器
? ? // -----------------------------------------------------------------
? ? // |??SM2??|? ?SE??|??SM1??|??SM0??| ISC11 | ISC10 | ISC01 | ISC00 |
? ? // -----------------------------------------------------------------
? ? // SM2, SM1, SM0:000:空閑模式??
? ? //? ?? ?? ?? ?? ? 001:ADC噪聲抑制模式
? ? //? ?? ?? ?? ?? ? 010:掉電模式
? ? //? ?? ?? ?? ?? ? 011:省電模式
? ? //? ?? ?? ?? ?? ? 100:保留
? ? //? ?? ?? ?? ?? ? 101:保留
? ? //? ?? ?? ?? ?? ? 110:Standby模式
? ? //? ?? ?? ?? ?? ? 111:擴展Standby模式
? ? //SE:休眠使能
? ? //ISC11, ISC10: 00:INT1為低電平時產生中斷請求
? ? //? ?? ?? ?? ?? ?01:INT1引腳上任意的邏輯電平變化都將引發中斷
? ? //? ?? ?? ?? ?? ?10:INT1的下降沿產生異步中斷請求
? ? //? ?? ?? ?? ?? ?11:INT1的上升沿產生異步中斷請求
? ? //ISC01, ISC00:??00:INT0為低電平時產生中斷請求
? ? //? ?? ?? ?? ?? ?01:INT0引腳上任意的邏輯電平變化都將引發中斷
? ? //? ?? ?? ?? ?? ?10:INT0的下降沿產生異步中斷請求
? ? //? ?? ?? ?? ?? ?11:INT0的上升沿產生異步中斷請求

? ? //MCUCSR MCU控制和狀態寄存器
? ? // -----------------------------------------------------------------
? ? // |??JTD??|? ?-? ?|? ?-? ?|??JTRF |??WDRF |??BORF | FXTRF |??PORF |
? ? // -----------------------------------------------------------------
? ? // JTD:
? ? // JTRF:JTAG復位標志
? ? // WDRF:看門狗復位標志
? ? // BORF:掉電檢測復位標志
? ? // EXTRF:外部復位標志
? ? // PORF:上電復位標志

? ? //WDTCR 看門狗定時器控制寄存器
? ? // -----------------------------------------------------------------
? ? // |? ?-? ?|? ?-? ?|? ?-? ?|??WDCE |??WDE??|??WDP2 |??WDP1 |??WDP0 |
? ? // -----------------------------------------------------------------
? ? // WDCE:看門狗修改使能,清零WDE位時必須先置位WDCE位,否則不能禁止看門狗
? ? // WDE:看門狗使能,只有WDCE為1時WDE才能清零
? ? // WDP2~WDP0:看門狗定時器預分頻值? ?WDT振蕩周期??VCC=3V時溢出時間??VCC=5V時溢出時間
? ? //? ?? ?? ?? ?? ?? ?? ?? ?? ? 000:? ???16K? ?? ?? ?? ?14.8ms? ?? ?? ?? ?14.0ms
? ? //? ?? ?? ?? ?? ?? ?? ?? ?? ? 001:? ???32K? ?? ?? ?? ?29.6ms? ?? ?? ?? ?28.1ms
? ? //? ?? ?? ?? ?? ?? ?? ?? ?? ? 010:? ???64K? ?? ?? ?? ?59.1ms? ?? ?? ?? ?56.2ms
? ? //? ?? ?? ?? ?? ?? ?? ?? ?? ? 011:? ? 128K? ?? ?? ?? ? 0.12s? ?? ?? ?? ? 0.11s
? ? //? ?? ?? ?? ?? ?? ?? ?? ?? ? 100:? ? 256K? ?? ?? ?? ? 0.24s? ?? ?? ?? ? 0.22s
? ? //? ?? ?? ?? ?? ?? ?? ?? ?? ? 101:? ? 512K? ?? ?? ?? ? 0.47s? ?? ?? ?? ? 0.45s
? ? //? ?? ?? ?? ?? ?? ?? ?? ?? ? 110:? ?1024K? ?? ?? ?? ? 0.95s? ?? ?? ?? ? 0.9s
? ? //? ?? ?? ?? ?? ?? ?? ?? ?? ? 111:? ?2048K? ?? ?? ?? ? 1.9s? ?? ?? ?? ???1.8s

? ? //EEARH/EEARL EEPROM地址寄存器
? ? //EEARH
? ? // -----------------------------------------------------------------
? ? // |? ?-? ?|? ?-? ?|? ?-? ?|? ?-? ?| EEAR11| EEAR10| EEAR9 | EEAR8 |
? ? // -----------------------------------------------------------------
? ? //EEARL
? ? // -----------------------------------------------------------------
? ? // | EEAR7 | EEAR6 | EEAR5 | EEAR4 | EEAR3 | EEAR2 | EEAR1 | EEAR0 |
? ? // -----------------------------------------------------------------
? ? //EEPROM地址,在訪問EEPROM前必須為其賦予正確的數據

? ? //EEDR EEPROM數據寄存器? ?
? ? // -----------------------------------------------------------------
? ? // |??MSB??|??...??|??...??|??...??|??...??|??...??|??...??|??LSB??|
? ? // -----------------------------------------------------------------
? ?
? ? //EECR EEPROM控制寄存器
? ? // -----------------------------------------------------------------
? ? // |? ?-? ?|? ?-? ?|? ?-? ?|? ?-? ?| EERIE | EEMWE |??EEWE |??EERE |
? ? // -----------------------------------------------------------------
? ? //EERIE:EEPROM就緒中斷使能
? ? //EEMWE:EEPROM主機寫使能,當此位為1時,在4個時鐘內EEWE置位,數據將寫入EEPROM
? ? //? ?? ?? ? EEMWE置位4個時鐘后硬件將其清零
? ? //EEWE:EEPROM寫使能
? ? //EERE:EEPROM讀使能。當EEPROM地址設置好后,需置位EERE以便將數據讀入EEAR
? ? //EEPROM寫時序:
? ? //a等待EEWE位為0
? ? //b等待SPMCSR的SPMEN位為0,此步只在軟件包含引導程序,且允許CPU對Flash編程時才有用
? ? //c將新的EEPROM地址寫入EEAR
? ? //d將新的EEPROM數據寫入EEDR
? ? //e對EECR的EEMWE位寫1,同時清零EEWE位
? ? //f在置位EEMWE位的4個周期內置位EEWE位

------------------------------------------------------------------------------------------------------

七、AVR移位算法詳細解釋(1<<X)

很多初學者都會被移位算法迷惑,移位算法形如(1<<X)這樣的形式,高手寫程序時,習慣用移位算法來寫出各個寄存器的使用。比如下面一段是AVR 的USART 的初始化代碼。

UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);

UCSR0B = (1<<RXCIE)|(1<<TXCIE)|(1<<RXEN)|(1<<TXEN);?// RXCIE=1;TXCIE=1;UDREIE=0;RXEN=1;TXEN=1

這樣的寫法對高手是福,這些代碼里面說明了操作了寄存器的哪些位,能夠看出它的操作的意義;對新手確是禍害,因為新手看不懂這樣的程序。


回到開始的地方,解釋一下,什么是移位算法:

如:A = (1<<2),1寫成二進制就是0000 0001,這個一左移2位就是0000 0100,所以得到的數A為0000 0100,即0x04。

再如:B = (2<<4),2寫成二進制就是0000 0010,這個一左移4位就是0010 0000,所以得到的數B為0010 0000,即0x20。

上面兩個移位算法都是正確的,第一種寫法,表示第三位為1其余都是0的數,數的時候是從0數起的,再比如(1<<0)表示的是0000 0001,(1<<7)表示的是1000 0000,但是第二種寫法沒有沒有這種意義,移位也用于乘除法,左移一位乘以2,右移移位除以2,上面的第二種寫法2左移四位得到的數是2×2×2×2×2=32,也就是上面的0x20。


我們再來看上面的這句話:UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);

UCSRC是一個和串口通訊有關的一個八位寄存器,他的每一位都有特殊的定義,我們通過查數據手冊可以看到,如下的內容。

我們在程序中包含的頭文件iom16v.h類似的文件會有#define URSEL 7 這樣的定義,1<<URSEL即是位7,1<<UCSZ1選擇位2,1<<UCSZ0選擇位1,整句話UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);的效果就是讓UCSRC的位七,位二,位一為高,其他都為低,然后在數據手冊里面你可以看到各個位的作用。UCSRC = (1<<7)|(1<<2)|(1<<1) 即UCSRC = 1000 0110。

------------------------------------------------------------------------------------------------------

總結

以上是生活随笔為你收集整理的AVR单片机及其开发环境的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

亚洲视频观看 | 91日韩精品视频 | 亚洲成人午夜av | 国产成人一区二区三区在线观看 | 成人av电影网址 | 久久精品在线视频 | 国模视频一区二区三区 | 91伊人久久大香线蕉蜜芽人口 | 婷婷六月网 | 亚洲成av人片一区二区梦乃 | 九九久久影院 | 日韩在线观看 | 精品一区在线 | 2024av| 成人在线免费看视频 | 久久国产精彩视频 | 亚洲a免费| 国产中文字幕第一页 | 国产免费作爱视频 | 这里有精品在线视频 | 久久另类小说 | 天天骚夜夜操 | 91精品免费在线观看 | 99视屏| av在线在线 | 日韩激情三级 | 国产黄色看片 | 久草在线观看资源 | 日韩三级成人 | 婷婷久久亚洲 | 亚洲国产成人久久综合 | 久久视频在线观看免费 | 91中文字幕永久在线 | 狠狠色丁婷婷日日 | 奇米影视777四色米奇影院 | 91精品国产91热久久久做人人 | 欧美性生活久久 | 国产看片免费 | 成人a视频在线观看 | 99视频精品在线 | 成人免费视频网址 | 国内久久久久 | 毛片基地黄久久久久久天堂 | 国产欧美精品在线观看 | 在线观看黄网站 | 麻豆一区在线观看 | 一本色道久久综合亚洲二区三区 | 欧女人精69xxxxxx | 成人国产精品一区二区 | 中文字幕a∨在线乱码免费看 | 久久综合狠狠综合久久激情 | 久产久精国产品 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 人人插人人搞 | 我爱av激情网 | 久久精品久久精品久久39 | 国产在线观看a | www.色五月.com| 国产精品资源在线观看 | 一区二区视频欧美 | 亚洲一区免费在线 | 国产做aⅴ在线视频播放 | 91在线观看视频 | 国产精品永久在线观看 | 中文字幕日本电影 | 亚洲 成人 一区 | aⅴ视频在线 | 精品在线亚洲视频 | 在线观看国产中文字幕 | 国产亚洲精品久久久久动 | 国产高清亚洲 | 久久免费国产精品 | 日韩黄色在线观看 | 久久久 精品| 成人h视频在线播放 | 国产一二三四在线视频 | 国产精品伦一区二区三区视频 | 中文字幕.av.在线 | 日本系列中文字幕 | 久久草网站 | 国产成人av电影 | 日韩大片在线观看 | 国产麻豆精品95视频 | 91av在线免费视频 | 久久99精品一区二区三区三区 | 日韩在线观看免费 | 成人综合婷婷国产精品久久免费 | 蜜臀久久99精品久久久无需会员 | 国产精品一区二区三区99 | 日日射天天射 | 草免费视频| 日本性xxxxx 亚洲精品午夜久久久 | 免费a v在线 | 99久久精品午夜一区二区小说 | av在线观 | 91免费网| 欧美一区二区三区特黄 | 国产一区二区精品久久91 | 亚洲乱码中文字幕综合 | 亚洲高清视频在线 | 五月婷婷六月丁香 | 中文字幕日韩国产 | 永久免费毛片在线观看 | 日韩激情视频在线 | 日韩精品资源 | 亚洲综合小说电影qvod | 午夜国产福利在线观看 | 色www免费视频 | 99久久久免费视频 | 天天射天天射 | 久久av网 | 中文字幕在 | 色九九影院 | 青青久草在线视频 | 日韩中文字幕亚洲一区二区va在线 | 天天曰夜夜爽 | 天天干亚洲 | 日批视频在线观看免费 | 国产精品久久久久久久妇 | 激情小说网站亚洲综合网 | 黄色成人av| www.黄色片网站 | 色婷婷狠狠操 | 亚洲国产日韩欧美 | 9999在线 | 久久久久一区二区三区四区 | 五月开心激情网 | 天天插综合 | 国产亚洲精品bv在线观看 | 狠狠干成人综合网 | www.夜夜操.com | 中文字幕中文字幕中文字幕 | 91污视频在线观看 | 成人影视片 | 久青草电影 | 亚洲成人精品在线 | 最近中文字幕在线中文高清版 | 久久久观看 | 久久精品99国产精品亚洲最刺激 | 玖玖玖在线 | 一级黄色片毛片 | 成年人免费观看国产 | 国产中文在线观看 | 91插插插网站 | 国产精品免费久久久久久久久久中文 | 精品麻豆| 国产亚洲视频中文字幕视频 | 日韩剧情| 欧美日韩免费观看一区二区三区 | 免费成人黄色 | 精品少妇一区二区三区在线 | av一区二区三区在线观看 | 天天艹日日干 | 麻花豆传媒一二三产区 | 国产一级在线免费观看 | 狂野欧美激情性xxxx欧美 | 成人高清av在线 | 欧美日韩a视频 | 久久99精品国产麻豆宅宅 | 婷婷四房综合激情五月 | 人人舔人人爱 | 国产精品久久久久永久免费看 | 久草精品网 | a级片网站 | 国产精品久久久久久久毛片 | 500部大龄熟乱视频 欧美日本三级 | 麻豆传媒视频观看 | 日韩在线免费视频 | 91成人精品一区在线播放69 | 亚洲精品视频大全 | 日韩精品视| 久久专区 | 久久精品国产免费观看 | 91看成人 | 在线观看久久久久久 | 久久撸在线视频 | 日韩一二三区不卡 | 视频一区久久 | 国产精品观看在线亚洲人成网 | 在线观看av不卡 | 国产99久久九九精品免费 | 精品亚洲一区二区三区 | 中文字幕视频播放 | 国产福利免费在线观看 | 右手影院亚洲欧美 | 国产视频一区二区三区在线 | 夜夜躁狠狠躁日日躁视频黑人 | 国产一二区视频 | 国产精品va在线播放 | 国产欧美综合在线观看 | 久久高清精品 | 亚洲精品在线国产 | 91麻豆免费视频 | 永久av免费在线观看 | 最近中文字幕视频完整版 | 蜜臀一区二区三区精品免费视频 | 久久久免费精品 | 天天综合网在线 | 亚洲va综合va国产va中文 | 亚洲伊人网在线观看 | 天天操综合 | a久久免费视频 | 久久av影院| 日韩三级.com | 成人免费观看视频网站 | 久久国产精品久久w女人spa | 国产亚洲精品久久久久久 | 天天综合天天综合 | 视频一区亚洲 | 97视频免费在线 | 免费一级特黄录像 | 欧美最猛性xxxxx(亚洲精品) | 九色琪琪久久综合网天天 | 韩国av一区二区三区在线观看 | 青青射| 美女视频久久久 | 亚洲一区二区高潮无套美女 | 最新av在线播放 | 欧美大片www | 成人一级在线观看 | 国产成人一区二区啪在线观看 | 美女精品在线 | va视频在线 | 成人在线视频观看 | 狠狠狠狠狠狠 | 亚洲精品资源在线观看 | 三级a视频 | 日韩国产高清在线 | 免费在线成人 | 91视频高清| 国产精品久久久久久模特 | 色在线国产 | 日本三级吹潮在线 | 97理论电影 | 婷婷综合久久 | 免费网站观看www在线观看 | 国产免费不卡av | 成人动漫一区二区 | 国内综合精品午夜久久资源 | 日韩国产精品久久久久久亚洲 | 欧美xxxxx在线视频 | 久久夜夜夜 | 亚洲激情一区二区三区 | 久久久精选 | 黄色字幕网 | 亚洲精品tv久久久久久久久久 | 91视频在线网址 | 亚洲欧洲精品久久 | 国产一区二区三区在线免费观看 | 欧美激情视频免费看 | 欧美精品天堂 | 亚洲午夜av久久乱码 | 美女黄频 | 在线不卡a | 97福利在线观看 | 成年人视频免费在线播放 | 成人黄大片视频在线观看 | 婷婷色狠狠 | 亚洲国产精品成人综合 | 波多野结衣在线视频免费观看 | 人人插人人 | 丁香六月久久综合狠狠色 | 成人毛片100免费观看 | 精品一区电影国产 | 黄色一级在线观看 | 久久不射网站 | 国产一级在线播放 | 国产精品久久久久久久久久久久午 | 亚洲精品欧美视频 | 久久综合精品国产一区二区三区 | 在线精品观看国产 | 日韩影视在线 | 五月激情丁香图片 | 国产精品99免视看9 国产精品毛片一区视频 | 69夜色精品国产69乱 | 天天操天天干天天综合网 | 日韩欧美综合精品 | 亚洲欧美日本国产 | 成人a在线观看高清电影 | 久久国产区| 一区二区三区韩国免费中文网站 | 中文字幕在线视频网站 | 国产精品va最新国产精品视频 | 91理论电影 | 久久精品久久久久电影 | 国内精品久久久久久久影视麻豆 | 日韩精品免费一区二区 | 中文字幕在 | 久久久www成人免费精品 | 国产亚洲精品女人久久久久久 | 婷婷五月色综合 | 久久视频一区二区 | 人人干天天射 | 欧美激情视频一区二区三区免费 | 精品伊人久久久 | 亚洲精品国偷拍自产在线观看 | 中文字幕精品一区二区精品 | 亚洲天天| www日韩| 最新不卡av| 国产精品一区二区在线观看 | 日韩极品视频在线观看 | 久在线观看视频 | 精品一区二区三区在线播放 | 国产一区二区三区高清播放 | 久久情爱| 亚洲天天做 | 粉嫩av一区二区三区四区 | 中文字幕在线观看视频免费 | 热久久国产 | 综合网天天射 | 999久久久久 | 天天爽夜夜爽人人爽一区二区 | 久久人人爽人人爽 | 人人干网| 免费精品国产va自在自线 | www.黄色片网站 | 麻豆一二 | 91色视频 | 国产成人精品久久久 | 日韩激情小视频 | 人人插人人看 | 久草新在线 | 国产免费又黄又爽 | 国产在线 一区二区三区 | 亚洲乱码在线观看 | 91精品国产91久久久久 | 久久99亚洲网美利坚合众国 | www.久久婷婷 | 欧美成人999 | 伊人色**天天综合婷婷 | 国产精品无av码在线观看 | 日韩欧美在线视频一区二区 | 97超视频免费观看 | 午夜精品久久久99热福利 | 精品夜夜嗨av一区二区三区 | 日韩在线短视频 | 亚洲在线资源 | 中文字幕999 | 久久精品视频网址 | 911av视频| 久久噜噜少妇网站 | 91av在线免费 | 久久精品国产一区二区电影 | 91精品在线免费视频 | 久久免费久久 | 精品国产一区二区三区四区在线观看 | av电影一区二区三区 | 99久久超碰中文字幕伊人 | 日韩在线观看网址 | 久久国产露脸精品国产 | 精品国产精品久久一区免费式 | 波多野结衣在线播放视频 | 国产手机在线观看 | 亚洲欧美视频在线播放 | 操操操av | 国产主播大尺度精品福利免费 | 久久99爱视频| 欧美地下肉体性派对 | 成人h动漫在线看 | 日韩中文字幕电影 | 日韩久久精品一区二区 | 91九色porny蝌蚪主页 | 5月丁香婷婷综合 | 国产正在播放 | 99一级片| 中文字幕在线视频免费播放 | 精品在线观看免费 | 久久精品视频99 | 久草视频资源 | 中文字幕在线视频网站 | 国产区精品在线观看 | 五月丁婷婷 | 在线免费色视频 | 在线观看成人毛片 | 国产精品99久久免费观看 | 国产精品ssss在线亚洲 | 国产精品夜夜夜一区二区三区尤 | 国产精品一区电影 | 永久免费看av | 久久国产色 | 国产日韩欧美在线观看视频 | 日韩av电影中文字幕 | 日韩v在线91成人自拍 | 久久撸在线视频 | 日韩成人免费在线电影 | www.狠狠操 | 久青草电影 | 久免费视频 | 久久久精品在线观看 | 国产视频一区二区三区在线 | 永久免费的啪啪网站免费观看浪潮 | 午夜视频在线观看一区二区 | 久久国产热视频 | 婷婷丁香激情 | 狠狠色丁香婷婷综合久久片 | 精品久久久久久一区二区里番 | 国产精品综合久久 | 国产1区2 | 激情五月六月婷婷 | 免费裸体视频网 | 人人插人人 | 国产精品爽爽久久久久久蜜臀 | 91精品国产亚洲 | 欧美久久久一区二区三区 | 国产无套精品久久久久久 | 中文字幕在线免费 | 国产不卡在线视频 | 日日天天 | 国产麻豆精品在线观看 | 日韩a级免费视频 | 激情在线网 | 日韩激情三级 | 中文在线字幕免费观看 | 精品视频成人 | 99久久日韩精品免费热麻豆美女 | 国产xxxx做受性欧美88 | 波多野结衣精品在线 | 久久开心激情 | 欧美日韩免费在线视频 | 992tv在线观看| av成人免费在线看 | 国产精品美女www爽爽爽视频 | 色搞搞 | 亚洲国产精品一区二区久久hs | 国产麻豆果冻传媒在线观看 | 国产精品久久久久久久婷婷 | 伊人影院av | 欧美精品少妇xxxxx喷水 | 天天色天天射天天干 | 日韩中文字幕免费视频 | 99精品国自产在线 | 我要看黄色一级片 | avav99| 久久96国产精品久久99漫画 | 美女网站视频免费黄 | 亚洲国产日韩欧美在线 | 日韩av二区 | 久久久网址 | 少妇bbb| 中文字幕字幕中文 | 久久免费看a级毛毛片 | 97电影在线 | 二区三区在线 | 久久狠狠亚洲综合 | 亚洲第一av在线 | 国产精品美女免费 | 中日韩欧美精彩视频 | 黄色一级免费电影 | 97热视频| 日韩精品一区二区三区中文字幕 | 成人免费看片98欧美 | 热re99久久精品国产66热 | 日韩视频一区二区三区 | 国产精品久久久久av福利动漫 | 国产免费又粗又猛又爽 | 国产色综合天天综合网 | 一级免费黄视频 | 久久九九免费 | 麻豆视频在线看 | 又色又爽又黄高潮的免费视频 | 最新av网址在线 | 亚洲成人精品国产 | 国产精品成人在线 | 亚洲aⅴ久久精品 | 少妇精品久久久一区二区免费 | 欧美乱熟臀69xxxxxx | 免费日韩一级片 | 五月天婷亚洲天综合网精品偷 | 欧洲精品码一区二区三区免费看 | 亚洲免费av在线 | 自拍超碰在线 | 99精品欧美一区二区三区黑人哦 | 日韩免费在线视频观看 | 香蕉视频网址 | 看v片| 久草视频中文在线 | 狠狠色综合欧美激情 | 亚洲综合最新在线 | 欧美激情va永久在线播放 | 91九色免费视频 | 国产精品自产拍在线观看 | 在线视频精品 | 天天天天爽 | 久久伊人精品一区二区三区 | 欧美性做爰猛烈叫床潮 | 伊人久在线 | 91网页版在线观看 | 久久黄页 | www久草| 中文字幕 国产视频 | 在线观看日本高清mv视频 | 97超碰网| 国产资源在线播放 | 四虎在线观看视频 | 中文字幕丰满人伦在线 | 成人av影视| 人成免费网站 | 色资源在线 | 狠狠操.com| 国产精品一区二区美女视频免费看 | 免费观看一区二区三区视频 | 精品一区二区亚洲 | 美女久久一区 | 欧美精品v国产精品v日韩精品 | 国产婷婷精品av在线 | 久久久久久国产精品亚洲78 | 亚洲国产精久久久久久久 | 97成人精品区在线播放 | 一区二区三区在线免费播放 | 久久一区二区三区国产精品 | 中文字幕不卡在线88 | 字幕网在线观看 | 狠狠操91| 日本在线中文 | 99精品一区二区三区 | 天天操网址 | 色姑娘综合天天 | 久久久精品免费看 | 亚洲一区二区三区在线看 | 手机av在线网站 | 亚洲高清久久久 | 成人h动漫精品一区二 | 伊人久久av| 色网站免费在线观看 | 特级毛片爽www免费版 | 日韩一区二区久久 | av东方在线| 国产欧美精品在线观看 | 亚洲国产成人精品在线观看 | 亚洲2019精品| 国产精品 久久 | 欧美91av| 国产亚洲精品久久久网站好莱 | 免费看污片 | 狠狠干网站 | 欧美做受xxx | 国产精品久久久久久久电影 | 狠狠亚洲 | 麻豆一二 | 91视频中文字幕 | 国产精品中文字幕在线观看 | 国产伦精品一区二区三区在线 | 午夜久久久精品 | 91成品视频| 国产精品久久99综合免费观看尤物 | 午夜成人免费电影 | 中文字幕有码在线 | 色姑娘综合 | 亚洲激情网站免费观看 | 成人av免费在线观看 | 91色网址 | 一级精品视频在线观看宜春院 | 激情影院在线观看 | 亚洲精品理论 | 波多野结衣在线视频免费观看 | 国产一区二区三区免费观看视频 | 成人a在线观看高清电影 | 久久综合狠狠综合久久激情 | 96国产精品视频 | 在线精品观看国产 | 高清视频一区二区三区 | 久草在线免费在线观看 | 国产免费黄色 | 亚洲人成在线观看 | 九九热免费在线视频 | 久久精久久精 | 黄色在线成人 | 99精品欧美一区二区三区黑人哦 | 免费高清在线一区 | 国产成人在线免费观看 | av丝袜制服 | 欧美日韩在线视频一区二区 | 97精品电影院 | 精品一区二区免费在线观看 | 久久久午夜精品福利内容 | 999视频在线播放 | 91九色最新地址 | 久久久精品欧美一区二区免费 | 天天干天天射天天爽 | 久久久美女 | 西西444www | 91麻豆传媒 | 午夜三级影院 | 欧美色图一区 | 成 人 a v天堂 | 久久精品99国产精品酒店日本 | 亚洲精品视频免费在线 | www.天天成人国产电影 | av中文字幕av | 蜜桃久久久 | 97视频在线观看成人 | 亚洲激情五月 | 丁香六月色| 日本高清xxxx | 久草视频免费观 | 久久婷婷五月综合色丁香 | 四虎国产精品免费观看视频优播 | 五月天婷亚洲天综合网精品偷 | 亚洲天堂精品 | 中文字幕久久精品一区 | 亚洲a在线观看 | 久久国产日韩 | 日韩系列在线观看 | 久久只精品99品免费久23小说 | 精品伦理一区二区三区 | 亚洲最大在线视频 | 精品乱码一区二区三四区 | 久久99视频| 亚洲精品国偷拍自产在线观看蜜桃 | 中文资源在线观看 | 天天色天天搞 | 国产黄视频在线观看 | 天堂va在线观看 | 99精品偷拍视频一区二区三区 | 国产成人三级在线播放 | 久久久久久久精 | 亚洲aⅴ乱码精品成人区 | 国产欧美在线一区 | 激情综合色综合久久 | 五月婷婷中文 | 一区二区丝袜 | 九九热精品国产 | 久久av影视 | 97精品免费视频 | 午夜黄色大片 | 亚洲国产成人精品在线观看 | 超级碰视频 | 国产精品久久人 | 99re8这里有精品热视频免费 | 91视频啊啊啊 | 国产一区二区播放 | 亚洲片在线资源 | 久久夜色网 | 综合网五月天 | 色综合天天射 | 免费av在线网站 | 91精彩视频在线观看 | 人人草在线视频 | 久久高清免费观看 | 国产精品视频地址 | 1024手机基地在线观看 | 日日爽日日操 | 九九热精品视频在线播放 | 在线亚洲播放 | 91av视频网 | 欧美极品xxxx| 成人免费xyz网站 | 亚洲va在线va天堂 | 激情影院在线观看 | 欧美黄污视频 | 日韩精品中文字幕久久臀 | 99热在线国产精品 | 中文字幕高清视频 | www.黄色片网站 | 国产资源站 | 免费网站v | 亚洲综合视频在线观看 | 成人羞羞免费 | 国产精品 9999 | 69国产精品视频免费观看 | 免费av网址在线观看 | 国产在线色站 | 亚洲国产精品视频 | 中文字幕一区2区3区 | 国产成人精品一区二区三区网站观看 | 国产精品亚洲片在线播放 | 涩涩成人在线 | 欧美日韩精品影院 | 麻豆 videos | 麻豆va一区二区三区久久浪 | 五月激情婷婷丁香 | 成人网中文字幕 | 亚洲精品综合在线观看 | 成人免费视频在线观看 | 亚洲性少妇性猛交wwww乱大交 | 在线观看亚洲精品视频 | 97超碰人人 | 国产在线观看免费观看 | 亚洲精品国偷拍自产在线观看蜜桃 | av中文字幕日韩 | 国产精品 日本 | 色老板在线视频 | 在线观看日韩专区 | 日韩精品不卡在线观看 | 国产一区在线免费观看 | 国产手机av在线 | 亚洲视频免费 | 久色婷婷 | 日韩艹 | 午夜视频在线网站 | 黄色成人影视 | 最近高清中文字幕在线国语5 | 久久久久激情 | 久久国产亚洲精品 | 欧美影片| 久久不射影院 | 国产精品亚洲a | 亚洲乱码久久 | 九九色视频 | 国产成人免费在线 | 2018好看的中文在线观看 | 国产高清免费 | 成人免费在线视频 | 黄色免费网站大全 | 日韩精品一区二区三区不卡 | 国产成人a v电影 | 久草在线资源网 | 日日夜夜av| 日韩精品视频免费专区在线播放 | 亚洲区另类春色综合小说 | 亚洲成人av影片 | 日本中文字幕在线视频 | 成人亚洲综合 | 天天操天天射天天爽 | 操老逼免费视频 | 欧美日韩中文字幕在线视频 | 97超碰人人干 | www.久久久精品| 欧美激情另类 | 8x8x在线观看视频 | 99久久9| 欧美9999| 狠狠操在线 | 夜夜骑日日 | 91精品推荐| 亚洲精品在线观看网站 | 视频在线亚洲 | 久久免费视频8 | 亚洲国产精品va在线看黑人 | 免费av在线网 | 天天操天天射天天舔 | 国产亚州精品视频 | 瑞典xxxx性hd极品 | 久草视频视频在线播放 | 国产探花视频在线播放 | 久久99热国产 | a在线观看国产 | 亚洲激情在线 | 亚洲国产精品电影 | 亚洲国产三级 | 精品视频成人 | 97精品国产97久久久久久春色 | 欧美精品少妇xxxxx喷水 | 91一区二区三区久久久久国产乱 | 日韩丝袜 | 亚洲欧洲日韩在线观看 | 五月天国产 | 黄a网站| 精品一二三四在线 | 五月天视频网站 | 精品美女视频 | 日本黄色a级大片 | 亚洲精品免费在线视频 | 国产精品成人av电影 | 亚洲国产精品女人久久久 | 91爱爱视频| 中文字幕一区二区三区精华液 | 国产精品久久久毛片 | 久久久国产影视 | 超碰在线cao| 一级黄色片在线播放 | 日韩在线中文字幕视频 | 四虎成人精品永久免费av九九 | 在线看一区 | 91丨精品丨蝌蚪丨白丝jk | 国产精品久久艹 | av免费看av| 日韩网站在线观看 | 欧美日韩视频一区二区 | 日日日日日| 国产黄色片免费看 | 日韩免费大片 | 亚洲精品在线一区二区三区 | 91精品国产乱码久久桃 | 日韩在线播放欧美字幕 | 91高清完整版在线观看 | 天天天射 | 九九热视频在线播放 | 人人插人人澡 | 亚洲午夜精品久久久 | 久久大视频 | 日韩三级视频 | 国产精品乱码在线 | 99国产精品一区 | 欧美一级片免费在线观看 | 久久天| 婷婷色狠狠 | 日韩欧美精品在线视频 | 91毛片在线 | 黄色大片网 | 欧美日本在线视频 | 国产麻豆精品95视频 | 欧美精品一区二区三区四区在线 | 国产日产精品一区二区三区四区 | 久草在线视频在线观看 | 亚洲精品福利在线观看 | 日本韩国中文字幕 | 91精品爽啪蜜夜国产在线播放 | 国产91精品在线播放 | 国产精品一区在线观看你懂的 | 成人免费观看视频网站 | 日本婷婷色 | 射射射av| 色福利网站 | www.香蕉视频在线观看 | 国产黄免费 | 国产在线播放一区二区 | 激情久久小说 | 国产精久久久久久妇女av | 91天堂在线观看 | 亚洲成人黄色网址 | 国产网红在线 | 国产91综合一区在线观看 | 麻豆视频一区 | 久久精品视频在线免费观看 | 成人毛片100免费观看 | 亚洲成av人电影 | 天天摸天天舔 | 久久婷婷亚洲 | 久久久久久久久久久福利 | 国产精品自拍在线 | 视频 国产区 | 涩涩网站在线看 | 五月激情av | 色婷婷国产| 久草久草久草久草 | 精品一二三四视频 | 999久久国产 | 亚洲日韩欧美一区二区在线 | 久久久www成人免费精品 | 欧美激情综合色 | 精品国产一区二区三区不卡 | 99热最新 | 91试看| 免费色视频在线 | 欧美精品中文在线免费观看 | bbbb操bbbb | 99视频在线观看一区三区 | 国产精品人人做人人爽人人添 | 日韩精品一卡 | 亚洲综合欧美日韩狠狠色 | www..com毛片 | 亚洲午夜小视频 | 日韩欧美在线视频一区二区 | 人人干人人草 | 亚洲 欧美 变态 国产 另类 | 国产精品美女久久久 | 97免费在线观看视频 | 91久久丝袜国产露脸动漫 | 亚洲精品ww | 国产三级国产精品国产专区50 | 久久99国产精品二区护士 | av日韩av | 日韩sese| 亚洲婷婷伊人 | 国产精品69av | 九九热精品国产 | 九九精品久久 | 日韩在线观看中文 | 中文字幕国产 | 免费看污污视频的网站 | 久久综合久久八八 | 91丨九色丨高潮丰满 | 91高清视频 | 久久成人麻豆午夜电影 | 亚洲成av人影院 | 久久成熟| 欧美做受高潮电影o | 97麻豆视频 | 日韩久久网站 | 免费观看一级成人毛片 | 亚洲成人资源网 | 国产一区二区在线观看视频 | 操高跟美女| 国产精品手机在线观看 | 久热av | 91成人精品 | 日韩久久精品一区二区三区 | 国产免费久久久久 | 日韩激情av在线 | 国产99久久久国产精品成人免费 | 一级做a视频 | 九九久久久 | 亚洲在线视频免费观看 | 精品国内自产拍在线观看视频 | 日韩免费一级a毛片在线播放一级 | 国内精品久久久久影院男同志 | 亚洲视频 视频在线 | 91在线视频播放 | 欧美 国产 视频 | 色网站国产精品 | www.久久com | 久草免费在线视频 | 国产中文字幕在线 | 国产一级特黄电影 | 六月婷婷久香在线视频 | 中文字幕久久精品一区 | 国产视频资源 | 国产精品美女 | 成人免费一级片 | 日韩av免费在线看 | 欧美91片 | ww视频在线观看 | 日韩视频1区| 日韩在线视 | 欧美日本国产在线观看 | 国产一区二区免费看 | 久久精品中文视频 | 欧美日韩国产成人 | 国产精品18久久久久久首页狼 | 日韩丝袜| 亚洲精品乱码久久久久久 | 日女人免费视频 | 久久久精选 | 狠狠色狠狠色合久久伊人 | 超碰免费久久 | 亚洲综合一区二区精品导航 | 婷婷激情在线观看 | 欧美激情视频一区二区三区免费 | 久久国产精品免费一区二区三区 | 日韩黄在线观看 | 日本中文字幕在线看 | 国内丰满少妇猛烈精品播 | 国产亚洲精品久久久久久大师 | 午夜在线资源 | 女人18片| 午夜色性片 | 天天爽天天碰狠狠添 | 免费情缘 | 国产黄色片一级 | 伊人亚洲精品 | 日韩精品一区二区在线观看 | 久久久久久亚洲精品 | 久久九九久久精品 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 三级黄色网址 | 日韩免费不卡视频 | 国产精品美女久久久久久久久 | 国产精品免费一区二区三区 | 干干日日 | 国产成人免费高清 | 久久激情五月婷婷 | www免费在线观看 | 中文字幕免费高清在线观看 | 天天色影院| 超碰电影在线观看 | 亚洲国产理论片 | 日本在线视频网址 | 亚洲国产av精品毛片鲁大师 | 国产在线观看,日本 | 亚洲资源在线网 | 亚洲精品美女久久久久网站 | 久久人人爽人人人人片 | 黄色国产区 | 国产精品国产三级在线专区 | 天堂麻豆| 视频一区在线免费观看 | 久草视频在线新免费 | 国内三级在线观看 | 九九九九九九精品任你躁 | 在线视频成人 | 天天色天天射综合网 | 在线观看视频你懂的 | 午夜精品视频一区二区三区在线看 | 国产99久久久国产 | 久久久免费毛片 | 久久综合九色综合网站 | 欧美精品午夜 | 国产一区在线观看免费 | 日韩欧美一区二区三区黑寡妇 | 欧美精品一区二区三区四区在线 | 最新成人av | 成人av一区二区在线观看 | 中国精品少妇 | 999久久久久久| 国产成人91 | 色网站黄 | 麻豆视频一区二区 | 日韩精品免费在线 | 婷婷六月综合亚洲 | 亚洲日本va午夜在线影院 | 激情亚洲综合在线 | 久久精品国产精品亚洲精品 | 五月天六月色 | 日本高清中文字幕有码在线 | 一区二区在线电影 | 精品伦理一区二区三区 | 国产在线欧美在线 | 97天天干 | 手机色站| 日本 在线 视频 中文 有码 | 亚洲精品免费在线观看视频 | 欧美一级特黄aaaaaa大片在线观看 | 精品96久久久久久中文字幕无 | 在线视频国产区 | 成人av电影免费在线播放 | 国产精品99久久久久久久久久久久 |