AVR單片機教程新h_第1頁
AVR單片機教程新h_第2頁
AVR單片機教程新h_第3頁
AVR單片機教程新h_第4頁
AVR單片機教程新h_第5頁
已閱讀5頁,還剩86頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1第2章 avr單片機的基本結(jié)構(gòu)2.1 單片機的基本組成單片機的基本組成 2.2 atmega16單片機的組成單片機的組成 2.3 atmega16單片機的內(nèi)部結(jié)構(gòu)單片機的內(nèi)部結(jié)構(gòu) 2.4 存儲器結(jié)構(gòu)和地址空間存儲器結(jié)構(gòu)和地址空間 2.5 通用寄存器組與通用寄存器組與i/o寄存器寄存器2.6 atmega16單片機的工作狀態(tài)單片機的工作狀態(tài) 2 介紹單片機的基本結(jié)構(gòu)和組成,使大家對單片機芯片的介紹單片機的基本結(jié)構(gòu)和組成,使大家對單片機芯片的內(nèi)部硬件有基本了解和認識。掌握單片機的基本結(jié)構(gòu)和組成,內(nèi)部硬件有基本了解和認識。掌握單片機的基本結(jié)構(gòu)和組成,對學習、了解任何一種類型單片機的工作原理,編寫單

2、片機對學習、了解任何一種類型單片機的工作原理,編寫單片機的系統(tǒng)軟件以及設計外圍電路都是非常重要的。的系統(tǒng)軟件以及設計外圍電路都是非常重要的。 以以atmega16atmega16為主線,介紹和講述為主線,介紹和講述avravr單片機內(nèi)核的基單片機內(nèi)核的基本結(jié)構(gòu)、引腳功能、工作方式等。本結(jié)構(gòu)、引腳功能、工作方式等。 32.1 2.1 單片機的基本組成單片機的基本組成 外部時鐘源外部事件計數(shù)振蕩器和時序電路cpu中斷控制程序存儲器數(shù)據(jù)存儲器定時器計數(shù)器總 線 擴展控制器并行i/o接口內(nèi)部中斷串行i/o接口外部中斷外部數(shù)據(jù)/地址總線操作管理寄存器內(nèi)部總線圖圖2-1 2-1 典型單片機的基本組成結(jié)構(gòu)典

3、型單片機的基本組成結(jié)構(gòu)42.2 atmega162.2 atmega16單片機的組成單片機的組成 由由atmelatmel公司挪威設計中心的公司挪威設計中心的a a先生與先生與v v先生,先生,于于19971997年設計出一款使用年設計出一款使用risc(reducedrisc(reduced instruction set cpu-instruction set cpu-精簡指令集精簡指令集cpu)cpu)指令指令集的集的8 8位單片機,起名為位單片機,起名為avravr。52.2 atmega16單片機的組成單片機的組成 80518051結(jié)構(gòu)的單片機采用復雜指令系結(jié)構(gòu)的單片機采用復雜指令系

4、統(tǒng)統(tǒng)cisc(complexcisc(complex instruction set instruction set computer)computer)體系。由于體系。由于cisccisc結(jié)構(gòu)存在指令結(jié)構(gòu)存在指令系統(tǒng)不等長,指令數(shù)多,系統(tǒng)不等長,指令數(shù)多,cpucpu利用效率低,利用效率低,執(zhí)行速度慢等缺陷,已不能滿足和適應執(zhí)行速度慢等缺陷,已不能滿足和適應設計中高檔電子產(chǎn)品和嵌入式系統(tǒng)應用設計中高檔電子產(chǎn)品和嵌入式系統(tǒng)應用的需要。的需要。 62.2 atmega16單片機的組成單片機的組成 精簡指令集精簡指令集 riscrisc結(jié)構(gòu)是結(jié)構(gòu)是2020世紀世紀9090年代開年代開發(fā)出來的一種綜

5、合了半導體集成技術(shù)和發(fā)出來的一種綜合了半導體集成技術(shù)和提高軟件性能的新結(jié)構(gòu),是為了提高提高軟件性能的新結(jié)構(gòu),是為了提高cpucpu運行的速度而設計的芯片體系。它的關(guān)運行的速度而設計的芯片體系。它的關(guān)鍵技術(shù)在于采用流水線操作和等長指令鍵技術(shù)在于采用流水線操作和等長指令體系結(jié)構(gòu),使一條指令可以在一個單獨體系結(jié)構(gòu),使一條指令可以在一個單獨操作中完成,操作中完成,從而實現(xiàn)在一個時鐘周期從而實現(xiàn)在一個時鐘周期里完成一條或多條指令。里完成一條或多條指令。72.2 atmega16單片機的組成單片機的組成 流水線操作流水線操作avr采用流水線技術(shù),在前一條指令執(zhí)采用流水線技術(shù),在前一條指令執(zhí)行的時候,就取出

6、現(xiàn)行的指令,然后以行的時候,就取出現(xiàn)行的指令,然后以一個周期執(zhí)行指令。大大提高了一個周期執(zhí)行指令。大大提高了cpu的的運行速度。運行速度。82.2 atmega16單片機的組成單片機的組成 同時同時risc體系還采用了通用快速寄體系還采用了通用快速寄存器組的結(jié)構(gòu),大量使用寄存器之間的存器組的結(jié)構(gòu),大量使用寄存器之間的操作,簡化了操作,簡化了cpu中央處理器、控制器中央處理器、控制器和其它功能單元的設計。因此,和其它功能單元的設計。因此,risc的的特點就是通過簡化特點就是通過簡化cpu的指令功能,使的指令功能,使指令的平均執(zhí)行時間減少,從而提高指令的平均執(zhí)行時間減少,從而提高cpu的性能和速度

7、。的性能和速度。92.2 atmega16單片機的組成單片機的組成 avr單片機系列齊全單片機系列齊全,可適用于各種可適用于各種不同場合的要求。不同場合的要求。avr單片機有單片機有3個檔次:個檔次: 低檔低檔tiny系列系列avr單片機單片機: 主要有主要有tiny11/12/13/15/26/28等;等; 中檔中檔at90s系列系列avr 單片機單片機: 主要有主要有at90s1200/2313/8515/8535等;等; (正在淘正在淘汰或轉(zhuǎn)型到汰或轉(zhuǎn)型到mega中中)102.2 atmega16單片機的組成單片機的組成 高檔高檔atmegaatmega系列系列avravr單片機單片機:

8、 : 主要有主要有atmega8/16/32/64/128atmega8/16/32/64/128( 存儲容量為存儲容量為8/16/32/64/128 kb8/16/32/64/128 kb)以及)以及atmega8515/8535atmega8515/8535。 還有還有 atmega48/88/168 (atmega48/88/168 (存儲容量為存儲容量為4/8/16k) 4/8/16k) 等。等。 avravr器件引腳從器件引腳從8 8腳到腳到100100腳腳, , 還有各種還有各種不同封裝供選擇。價格從幾元到幾十元。不同封裝供選擇。價格從幾元到幾十元。112.2 atmega16單片

9、機的組成單片機的組成 2006年,愛特梅爾推出了 avr32的新型專利32位架構(gòu)處理器。avr32 32位risc處理器內(nèi)核是專門針對同時要求高性能和低功耗的現(xiàn)代化應用而開發(fā)的。122.2.1 avr單片機的內(nèi)核結(jié)構(gòu)單片機的內(nèi)核結(jié)構(gòu) 圖圖 2-2 avr2-2 avr單片機的內(nèi)核結(jié)構(gòu)示意圖單片機的內(nèi)核結(jié)構(gòu)示意圖間接尋址間接尋址直接尋址直接尋址132.2.1 avr單片機的內(nèi)核結(jié)構(gòu)單片機的內(nèi)核結(jié)構(gòu)圖圖 2-2 avr2-2 avr單片機的內(nèi)核結(jié)構(gòu)示意圖單片機的內(nèi)核結(jié)構(gòu)示意圖14 32個個8位通用工作寄存器中,有位通用工作寄存器中,有6個寄存器可個寄存器可以合并成為以合并成為3個個16位的,用于對

10、數(shù)據(jù)存儲器空間進位的,用于對數(shù)據(jù)存儲器空間進行間接尋址的間接地址寄存器(存放地址指針),行間接尋址的間接地址寄存器(存放地址指針),以實現(xiàn)高效的地址計算。這以實現(xiàn)高效的地址計算。這3個個16位的間接地址寄位的間接地址寄存器稱為:存器稱為:x寄存器寄存器,y寄存器和寄存器和z寄存器寄存器。其中。其中z寄存器還能作為間接尋址程序存儲器空間的地寄存器還能作為間接尋址程序存儲器空間的地址寄存器,用于在址寄存器,用于在flash程序存儲器空間進行查表程序存儲器空間進行查表等操作。等操作。 2.2.1 avr2.2.1 avr單片機的內(nèi)核結(jié)構(gòu)單片機的內(nèi)核結(jié)構(gòu) 152.2.2 atmega16的特點的特點(

11、1)采用先進)采用先進risc結(jié)構(gòu)的結(jié)構(gòu)的avr內(nèi)核內(nèi)核 131條指令,且大多數(shù)指令的執(zhí)行時間為條指令,且大多數(shù)指令的執(zhí)行時間為單個系統(tǒng)時鐘周期;單個系統(tǒng)時鐘周期; 32個個8位通用工作寄存器;位通用工作寄存器; 工作在工作在16mhz時具有時具有16mips(million instructions per second)的性能。的性能。 配備只需要配備只需要2個時鐘周期的硬件乘法器。個時鐘周期的硬件乘法器。162.2.2 atmega16的特點的特點(2)片內(nèi)含有較大容量的非易失性的程序)片內(nèi)含有較大容量的非易失性的程序和數(shù)據(jù)存儲器和數(shù)據(jù)存儲器 16k字節(jié)在線可編程(字節(jié)在線可編程(isp

12、 in-system programming )flash程序存儲器(擦除程序存儲器(擦除次數(shù)次數(shù)1萬次);萬次); 1k字節(jié)的片內(nèi)字節(jié)的片內(nèi)sram數(shù)據(jù)存儲器數(shù)據(jù)存儲器; 512個字節(jié)片內(nèi)在線可編程個字節(jié)片內(nèi)在線可編程eeprom數(shù)數(shù)據(jù)存儲器(擦寫次數(shù)據(jù)存儲器(擦寫次數(shù)10萬次萬次 ););172.2.2 atmega16的特點的特點(3)片內(nèi)含)片內(nèi)含jtag接口接口 支持符合支持符合jtag(joint test action group聯(lián)合測試行動小組)標準的邊界聯(lián)合測試行動小組)標準的邊界掃描功能用于芯片檢測;掃描功能用于芯片檢測; 支持擴展的片內(nèi)在線調(diào)試功能;支持擴展的片內(nèi)在線調(diào)試

13、功能; 可通過可通過jtag口對片內(nèi)的口對片內(nèi)的flash、eeprom、配置熔絲位和鎖定加密位實、配置熔絲位和鎖定加密位實現(xiàn)下載編程;現(xiàn)下載編程; 182.2.2 atmega16的特點的特點 jtag(jointjtag(joint test action group- test action group-聯(lián)合測試行動小組聯(lián)合測試行動小組) )是一種國際標準測試是一種國際標準測試協(xié)議,主要用于芯片內(nèi)部測試。協(xié)議,主要用于芯片內(nèi)部測試?,F(xiàn)在,現(xiàn)在,jtagjtag接口還常用于實現(xiàn)接口還常用于實現(xiàn)ispisp(in-system in-system programmable-programma

14、ble-在線編程),對在線編程),對flashflash等等器件進行編程。器件進行編程。 192.2.2 atmega16的特點的特點(4)外圍接口)外圍接口 2個帶有分別獨立并可設置預分頻器的個帶有分別獨立并可設置預分頻器的8位定時位定時器器/計數(shù)器;計數(shù)器; 1個帶有可設置預分頻器、具有比較、捕捉功個帶有可設置預分頻器、具有比較、捕捉功能的能的16位定時器位定時器/計數(shù)器;計數(shù)器; 片內(nèi)含獨立振蕩器的實時時鐘片內(nèi)含獨立振蕩器的實時時鐘rtc (real time clock) ; 4路路pwm通道;通道; 8路路10位位adc;20 面向字節(jié)的兩線面向字節(jié)的兩線串行串行接口接口twi(tw

15、o-wire serial interface); 1個可編程、增強型全雙工,支持同步個可編程、增強型全雙工,支持同步/異異步通信的串行接口步通信的串行接口usart(universaluniversal synchronous/asynchronous synchronous/asynchronous receiver/transmitter-receiver/transmitter-通用同步通用同步/ /異步串異步串行接收行接收/ /發(fā)送器發(fā)送器) ) ;2.2.2 atmega162.2.2 atmega16的特點的特點212.2.2 atmega16的特點的特點 1個可工作于主機個可工

16、作于主機/從機模式的從機模式的spi(serial peripheral interface-串行外設串行外設接口接口)串行接口(支持串行接口(支持isp程序下載);程序下載); 片內(nèi)模擬比較器;片內(nèi)模擬比較器; 內(nèi)含可編程的,具有獨立片內(nèi)振蕩器的內(nèi)含可編程的,具有獨立片內(nèi)振蕩器的看門狗定時器看門狗定時器wdt(watchdog timer) ;222.2.2 atmega16的特點的特點(5 5)其它的特點)其它的特點 片內(nèi)含上電復位電路以及可編程的掉電檢測復片內(nèi)含上電復位電路以及可編程的掉電檢測復位電路位電路bod(brownbod(brown-out detection )-out de

17、tection ); 片內(nèi)含有片內(nèi)含有1m/2m/4m/8mhz1m/2m/4m/8mhz經(jīng)過標定的、可校正經(jīng)過標定的、可校正的的rcrc振蕩器,可作為系統(tǒng)時鐘使用;振蕩器,可作為系統(tǒng)時鐘使用; 多達多達2121個各種類型的內(nèi)外部中斷源;個各種類型的內(nèi)外部中斷源; 有有6 6種休眠模式支持省電方式工作;種休眠模式支持省電方式工作; 232.2.2 atmega16的特點的特點(6)寬電壓、高速度、低功耗)寬電壓、高速度、低功耗 工作電壓范圍寬:工作電壓范圍寬:atmega16l 2.75.5v,atmega16 4.55.5v; 運行速度:運行速度:atmega16l 為為08mhz,atme

18、ga16 為為016mhz; 低功耗:低功耗:atmega16l工作在工作在1mhz、3v、25度度時的典型功耗為:正常工作模式時的典型功耗為:正常工作模式 1.1ma,空閑,空閑工作模式工作模式 0.35ma,掉電工作模式,掉電工作模式 1ua。242.2.3 外部引腳與封裝外部引腳與封裝 atmega16atmega16單片機有單片機有3 3種形式的封裝:種形式的封裝:4040腳腳雙列直插雙列直插pdippdip、4444腳方形的腳方形的tqfptqfp和和mlfmlf形形式(貼片形式)。其外部引腳封裝如圖式(貼片形式)。其外部引腳封裝如圖2-32-3所示。所示。 252.2.3 外部引腳

19、與封裝外部引腳與封裝圖圖2-3 atmage16 2-3 atmage16 外部引腳與封裝示意圖外部引腳與封裝示意圖262.2.3 外部引腳與封裝外部引腳與封裝各個引腳的功能如下各個引腳的功能如下:1)電源、系統(tǒng)晶振、芯片復位引腳電源、系統(tǒng)晶振、芯片復位引腳 vcc: 芯片供電(片內(nèi)數(shù)字電路電源)輸芯片供電(片內(nèi)數(shù)字電路電源)輸入引腳,使用時連接到電源正極。入引腳,使用時連接到電源正極。 avcc:端口:端口a和片內(nèi)和片內(nèi)adc模擬電路電源模擬電路電源輸入引腳。不使用輸入引腳。不使用adc時,直接連接到時,直接連接到電源正極。電源正極。272.2.3 外部引腳與封裝外部引腳與封裝 aref:使

20、用:使用adc時,可作為外部時,可作為外部adc參考源參考源的輸入引腳。的輸入引腳。 gnd: 芯片接地引腳,使用時接地。芯片接地引腳,使用時接地。 xtal2:片內(nèi)反相振蕩放大器的輸出端。:片內(nèi)反相振蕩放大器的輸出端。 xtal1:片內(nèi)反相振蕩放大器和內(nèi)部時鐘操作:片內(nèi)反相振蕩放大器和內(nèi)部時鐘操作電路的輸入端。電路的輸入端。 reset:為芯片復位輸入引腳。在該引腳上施:為芯片復位輸入引腳。在該引腳上施加(拉低)一個最小脈沖寬度為加(拉低)一個最小脈沖寬度為1.5us的低電平的低電平,將引起芯片的硬件復位(外部復位)。將引起芯片的硬件復位(外部復位)。282.2.3 外部引腳與封裝外部引腳與

21、封裝32根根i/o引腳,分成引腳,分成pa、pb、pc和和pd四個四個8位端口,它們?nèi)渴强删幊炭刂莆欢丝?,它們?nèi)渴强删幊炭刂频碾p(多)功能復用的的雙(多)功能復用的i/o引腳(口)。引腳(口)。 如果如果avr的的i/o口設置為輸出方式口設置為輸出方式工作,當其輸出高電平時,能夠輸出工作,當其輸出高電平時,能夠輸出20ma的電流,而當其輸出低電平時,的電流,而當其輸出低電平時,可以吸收可以吸收40ma的電流。因此的電流。因此avr的的i/o口驅(qū)動能力非常強,能夠直接驅(qū)動口驅(qū)動能力非常強,能夠直接驅(qū)動led發(fā)光二極管、數(shù)碼管等發(fā)光二極管、數(shù)碼管等 292.3 atmega162.3 atme

22、ga16單片機的內(nèi)部結(jié)構(gòu)單片機的內(nèi)部結(jié)構(gòu) 圖圖2-4 atmage16 2-4 atmage16 的結(jié)構(gòu)框圖的結(jié)構(gòu)框圖3031322.3 atmega16單片機的內(nèi)部結(jié)構(gòu)單片機的內(nèi)部結(jié)構(gòu) atmega16內(nèi)部的主要構(gòu)成部分有:avr cpu部分; 程序存儲器flash; 數(shù)據(jù)存儲器ram和eeprom; 各種功能的外圍接口、i/o口,以及與它們相關(guān)的數(shù)據(jù)、控制、狀態(tài)寄存器等。332.3.1 中央處理器中央處理器cpu avr cpu部分; 包括:alu運算邏輯單元、32個8位快速訪問通用寄存器組、程序計數(shù)器pc、指令寄存器、指令譯碼器。34圖圖2-5 2-5 通用工作寄存器組在通用工作寄存器組

23、在ramram空間的地址分配圖空間的地址分配圖 352.3.2 2.3.2 系統(tǒng)時鐘部件系統(tǒng)時鐘部件 atmega16atmega16的片內(nèi)含有的片內(nèi)含有4 4種頻率種頻率(1/2/4/8mhz1/2/4/8mhz)的)的rcrc振蕩源,可直接振蕩源,可直接作為系統(tǒng)的工作時鐘使用。作為系統(tǒng)的工作時鐘使用。 為為atmega16atmega16提供系統(tǒng)時鐘源時,提供系統(tǒng)時鐘源時,有三種主要的選擇:有三種主要的選擇: (1 1)直接使用片內(nèi)的)直接使用片內(nèi)的1/2/4/8mhz1/2/4/8mhz的的rcrc振蕩源;振蕩源; 362.3.2 系統(tǒng)時鐘部件系統(tǒng)時鐘部件 (2)在引腳)在引腳xtal1

24、和和xtal2上外上外接由石英晶體和電容組成的諧振回路接由石英晶體和電容組成的諧振回路,配合片內(nèi)的配合片內(nèi)的osc(oscillator)振蕩電)振蕩電路構(gòu)成的振蕩源路構(gòu)成的振蕩源,見圖見圖2-6(a) ; (3)直接使用外部的時鐘源輸出)直接使用外部的時鐘源輸出的脈沖信號的脈沖信號,見圖見圖2-6(b).372.3.2 系統(tǒng)時鐘部件系統(tǒng)時鐘部件圖圖2-6(a)2-6(a)外部接晶體的時鐘電路外部接晶體的時鐘電路 圖圖2-6(b)2-6(b)直接使用外部時鐘源直接使用外部時鐘源 382.3.3 存儲器存儲器 avr單片機在片內(nèi)集成了單片機在片內(nèi)集成了flash程序存程序存儲器、儲器、sram數(shù)

25、據(jù)存儲器和數(shù)據(jù)存儲器和eeprom數(shù)據(jù)數(shù)據(jù)存儲器。存儲器。 三個存儲器空間互相獨立,物理結(jié)構(gòu)三個存儲器空間互相獨立,物理結(jié)構(gòu)也不同。也不同。 程序存儲器程序存儲器為閃存存儲器為閃存存儲器flash,以,以16位(字)為一個存儲單元,作為數(shù)據(jù)讀取位(字)為一個存儲單元,作為數(shù)據(jù)讀取時,以字節(jié)為單位,而擦除、寫入則是以時,以字節(jié)為單位,而擦除、寫入則是以頁為單位的(不同型號頁為單位的(不同型號avr單片機單片機,1頁的頁的大小也不同)。大小也不同)。 392.3.3 存儲器存儲器 sram數(shù)據(jù)存儲器數(shù)據(jù)存儲器是以是以8位(字位(字節(jié))為一個存儲單元,編址方式采用節(jié))為一個存儲單元,編址方式采用與工

26、作寄存器組、與工作寄存器組、i/o寄存器和寄存器和sram統(tǒng)一尋址的方式統(tǒng)一尋址的方式 eeprom數(shù)據(jù)存儲器數(shù)據(jù)存儲器是以是以8位位(字節(jié))為一個存儲單元,對其的讀(字節(jié))為一個存儲單元,對其的讀寫操作都以字節(jié)為單位。寫操作都以字節(jié)為單位。 402.3.4 i/o端口端口 atmega16有四個有四個8位的雙向位的雙向i/o端口端口pa、pb、pc、pd,它們對外對應,它們對外對應32個個i/o引腳,每一位都可以獨立地用于邏輯引腳,每一位都可以獨立地用于邏輯信號的輸入和輸出。信號的輸入和輸出。 輸出時輸出時, ,每個引腳可供出達每個引腳可供出達20ma20ma的驅(qū)的驅(qū)動電流。輸入時,每個引腳

27、可吸納最大動電流。輸入時,每個引腳可吸納最大為為40ma40ma的電流??芍苯域?qū)動發(fā)光二極管的電流??芍苯域?qū)動發(fā)光二極管ledled(一般(一般ledled的驅(qū)動電流為的驅(qū)動電流為10ma10ma左右)左右)和小型繼電器。和小型繼電器。 412.3.4 i/o端口端口 avr大部分的大部分的i/o端口都具備雙端口都具備雙重功能,分別同片內(nèi)的各種不同功重功能,分別同片內(nèi)的各種不同功能的外圍接口電路組合成一些可以能的外圍接口電路組合成一些可以完成特殊功能的完成特殊功能的i/o 口,如口,如定時器、定時器、計數(shù)器、串行接口、模擬比較器、計數(shù)器、串行接口、模擬比較器、捕捉器捕捉器等。等。 42 2.4

28、 存儲器結(jié)構(gòu)和地址空間存儲器結(jié)構(gòu)和地址空間 2.4.1 支持支持isp的的flash程序存儲器程序存儲器 avravr單片機包括單片機包括1k1k256k256k字節(jié)的片內(nèi)字節(jié)的片內(nèi)支持支持ispisp的的flashflash程序存儲器,程序存儲器, flashflash存儲存儲器的使用壽命最少為器的使用壽命最少為1 1萬次寫萬次寫/ /擦循環(huán)。擦循環(huán)。 atmega16atmega16單片機的程序存儲器為單片機的程序存儲器為8k 8k 1616(16k16k8 8),程序計數(shù)器),程序計數(shù)器pcpc寬為寬為1313位,位,以此來對以此來對8k8k字程序存儲器地址進行尋址。字程序存儲器地址進行

29、尋址。 地址空間從地址空間從$000$000開始。開始。 432.4.2. 數(shù)據(jù)存儲器數(shù)據(jù)存儲器sram空間空間 圖圖2-7 atmega162-7 atmega16存儲器結(jié)構(gòu)存儲器結(jié)構(gòu)442.4.2. 數(shù)據(jù)存儲器數(shù)據(jù)存儲器sram空間空間 全部共全部共1120個數(shù)據(jù)存儲器地址為線性編址個數(shù)據(jù)存儲器地址為線性編址,前前96個地址為寄存器組(個地址為寄存器組(32個個8位通用寄存位通用寄存器),器),i/o寄存器(寄存器(64個個8位位i/o寄存器寄存器). 32個個8位通用寄存器位通用寄存器: sram數(shù)據(jù)地址空間數(shù)據(jù)地址空間$0000$001f 。 i/o寄存器(寄存器(64個個8位位i/o

30、寄存器),寄存器),分配在分配在sram數(shù)據(jù)地址空間的數(shù)據(jù)地址空間的$0020$005f。 1024個地址是片內(nèi)數(shù)據(jù)個地址是片內(nèi)數(shù)據(jù)sram,地址空間占用,地址空間占用$0060$045f。452.4.3 內(nèi)部內(nèi)部eeprom存儲器存儲器 avr系列單片機還包括系列單片機還包括64b4k字節(jié)的字節(jié)的eeprom數(shù)據(jù)存儲器。它們被組織在一個獨數(shù)據(jù)存儲器。它們被組織在一個獨立的數(shù)據(jù)空間中。這個數(shù)據(jù)空間采用單字節(jié)立的數(shù)據(jù)空間中。這個數(shù)據(jù)空間采用單字節(jié)讀寫方式。讀寫方式。eeprom 的使用壽命至少為的使用壽命至少為 10萬次寫萬次寫/擦循環(huán)。擦循環(huán)。 atmega16的的eeprom容量是容量是51

31、2字節(jié),字節(jié),地址范圍為地址范圍為$0000$01ff。eeprom數(shù)據(jù)數(shù)據(jù)存儲器可用于存放一些需要掉電保護,而且存儲器可用于存放一些需要掉電保護,而且比較固定的系統(tǒng)參數(shù)、表格等。比較固定的系統(tǒng)參數(shù)、表格等。462.5 通用寄存器組與通用寄存器組與i/o寄存器寄存器 2.5.1 通用寄存器組通用寄存器組 圖圖2-8 2-8 通用寄存器組結(jié)構(gòu)圖通用寄存器組結(jié)構(gòu)圖47 150x寄存器寄存器 7 07 0r27($001b)r26($001a)150y寄存器寄存器 7 07 0r29($001d)r28($001c)150z寄存器寄存器 7 07 0r31($001f)r30($001e)圖圖2-9

32、 x、y、z寄存器寄存器482.5.1 通用寄存器組通用寄存器組 avr寄存器組最后的寄存器組最后的6個寄存器個寄存器r26r31具有特殊的功能,這些寄存具有特殊的功能,這些寄存器每兩個合并成一個器每兩個合并成一個16位的寄存器,位的寄存器,作為對數(shù)據(jù)存儲器空間(使用作為對數(shù)據(jù)存儲器空間(使用x、y、z)以及程序存儲器空間(僅使用)以及程序存儲器空間(僅使用z寄寄存器)間接尋址的地址指針寄存器。存器)間接尋址的地址指針寄存器。 492.5.2 i/o寄存器寄存器 505152 532.5.2 i/o寄存器寄存器 括號外為括號外為i/o寄存器空間地址,括寄存器空間地址,括號內(nèi)為在數(shù)據(jù)存儲器空間的

33、映射地址。號內(nèi)為在數(shù)據(jù)存儲器空間的映射地址。 avr系列單片機所有系列單片機所有i/o口及外圍口及外圍接口的功能和配置均通過接口的功能和配置均通過i/o寄存器進寄存器進行設置和使用。行設置和使用。542.5.3 狀態(tài)寄存器和堆棧指針寄存器狀態(tài)寄存器和堆棧指針寄存器 1狀態(tài)寄存器狀態(tài)寄存器sreg2堆棧指針寄存器堆棧指針寄存器sp通常初始化時將通常初始化時將sp的指針設在的指針設在sram最高處最高處 552.5.3 狀態(tài)寄存器和堆棧指針寄存器狀態(tài)寄存器和堆棧指針寄存器 狀態(tài)寄存器狀態(tài)寄存器sreg位位7i: 全局中斷使能全局中斷使能位位 該標志位為該標志位為avr中斷總控制開關(guān),當中斷總控制開

34、關(guān),當i位位置位(置位(“1”)時,表示)時,表示cpu可以響應中可以響應中斷請求,而當斷請求,而當i位清位清0時,則所有的中斷時,則所有的中斷被禁止,被禁止,cpu不響應任何的中斷請求。不響應任何的中斷請求。562.5.3 狀態(tài)寄存器和堆棧指針寄存器狀態(tài)寄存器和堆棧指針寄存器 avr的的sp堆棧指針寄存器指示了在數(shù)據(jù)堆棧指針寄存器指示了在數(shù)據(jù)sram中堆棧區(qū)域的棧頂?shù)刂?,一些臨中堆棧區(qū)域的棧頂?shù)刂罚恍┡R時數(shù)據(jù)、局部變量,以及子程序返回地時數(shù)據(jù)、局部變量,以及子程序返回地址和中斷返回地址將被放置在堆棧區(qū)域址和中斷返回地址將被放置在堆棧區(qū)域中。在數(shù)據(jù)中。在數(shù)據(jù)sram中,該堆??臻g的頂中,該堆

35、棧空間的頂部地址必須在系統(tǒng)程序初始化時由初始部地址必須在系統(tǒng)程序初始化時由初始化程序定義和設置?;绦蚨x和設置。572.5.3 狀態(tài)寄存器和堆棧指針寄存器狀態(tài)寄存器和堆棧指針寄存器 由于由于avr的堆棧是向下增長的,即新數(shù)的堆棧是向下增長的,即新數(shù)據(jù)進入堆棧時棧頂指針的數(shù)據(jù)將減小據(jù)進入堆棧時棧頂指針的數(shù)據(jù)將減?。ㄗ⒁猓哼@里與(注意:這里與51不同,不同,51的堆棧是向的堆棧是向上增長的,即進棧操作時棧頂指針的數(shù)上增長的,即進棧操作時棧頂指針的數(shù)據(jù)將增加),所以盡管原則上堆棧可以據(jù)將增加),所以盡管原則上堆棧可以在在sram的任何區(qū)域中,但通常初始化的任何區(qū)域中,但通常初始化時將時將sp的指針

36、設在的指針設在sram最高處。最高處。 582.5.3 狀態(tài)寄存器和堆棧指針寄存器狀態(tài)寄存器和堆棧指針寄存器 當執(zhí)行當執(zhí)行push指令,一個字節(jié)的數(shù)據(jù)被壓指令,一個字節(jié)的數(shù)據(jù)被壓入堆棧,堆棧指針(入堆棧,堆棧指針(sp中的數(shù)據(jù))將自動減中的數(shù)據(jù))將自動減1;當執(zhí)行子程序調(diào)用指令當執(zhí)行子程序調(diào)用指令call或或cpu響應中斷響應中斷時,硬件會自動把返回地址(時,硬件會自動把返回地址(16位數(shù)據(jù))壓入位數(shù)據(jù))壓入堆棧中,同時將堆棧指針自動減堆棧中,同時將堆棧指針自動減2。反之,當。反之,當執(zhí)行執(zhí)行pop指令,從堆棧頂部彈出一個字節(jié)的數(shù)指令,從堆棧頂部彈出一個字節(jié)的數(shù)據(jù),堆棧指針將自動加據(jù),堆棧指針

37、將自動加1;當執(zhí)行從子程序;當執(zhí)行從子程序ret返回或從中斷返回或從中斷reti返回指令時,返回地返回指令時,返回地址將從堆棧頂部彈出,堆棧指針自動加址將從堆棧頂部彈出,堆棧指針自動加2592.6 atmega16單片機的工作狀態(tài)單片機的工作狀態(tài) avravr單片機的工作狀態(tài)通常包括:單片機的工作狀態(tài)通常包括: 復位狀態(tài)復位狀態(tài) 正常程序執(zhí)行工作狀態(tài)正常程序執(zhí)行工作狀態(tài) 休眠節(jié)電工作狀態(tài)休眠節(jié)電工作狀態(tài) 程序運行代碼下載程序運行代碼下載 熔絲位的配置。熔絲位的配置。 602.6.1 avr單片機最小系統(tǒng)單片機最小系統(tǒng) 圖圖2-10 atmega162-10 atmega16最小系統(tǒng)電路圖最小系

38、統(tǒng)電路圖612.6.1 avr單片機最小系統(tǒng)單片機最小系統(tǒng) 采用了在采用了在atmega16引腳引腳xtal1和和xtal2上外接由石英晶體和電容組成的諧振回路,并上外接由石英晶體和電容組成的諧振回路,并配合片內(nèi)的配合片內(nèi)的osc(oscillator)振蕩電路構(gòu)成的)振蕩電路構(gòu)成的振蕩源作為系統(tǒng)時鐘源振蕩源作為系統(tǒng)時鐘源。 更簡單的電路是直接使用片內(nèi)的更簡單的電路是直接使用片內(nèi)的4mhz的的rc振蕩源,這樣就可以將振蕩源,這樣就可以將c1、c2、r2和和4mhz晶體省掉,引腳晶體省掉,引腳xtal1和和xtal2懸空。懸空。 622.6.2 avr的復位源和復位方式的復位源和復位方式 atm

39、ega16單片機共有單片機共有5個復位源,它們是個復位源,它們是:1. 上電復位。上電復位。2. 外部復位外部復位。 當外部引腳當外部引腳reset為低電平,且低為低電平,且低電平持續(xù)時間大于電平持續(xù)時間大于1.5us時,時,mcu復位。復位。3. 掉電檢測(掉電檢測(bod)復位。)復位。 bod使能時,且電源電壓低于掉電使能時,且電源電壓低于掉電檢測復位門限(檢測復位門限(4.0v或或2.7v)時,)時,mcu復位。復位。632.6.2 avr的復位源和復位方式的復位源和復位方式4. 看門狗復位。看門狗復位。 wdt使能時,并且使能時,并且wdt超時溢超時溢出時,出時,mcu復位。復位。5

40、.jtag avr復位。復位。 當使用當使用jtag接口時,可由接口時,可由jtag口控制口控制mcu復位。復位。641上電復位上電復位avr內(nèi)部含有上電復位內(nèi)部含有上電復位por(power_on reset)電路電路.圖圖2-11 mcu2-11 mcu上電復位啟動,上電復位啟動,resetreset連到連到vccvcc651上電復位上電復位圖圖2-12 mcu2-12 mcu上電復位啟動,上電復位啟動,resetreset由外部控制由外部控制661上電復位上電復位 一旦一旦vcc超過門限電壓超過門限電壓vpot,而,而reset引腳上的電壓也達到引腳上的電壓也達到vrst時,將時,將啟動

41、芯片內(nèi)部的一個可設置的延時計數(shù)啟動芯片內(nèi)部的一個可設置的延時計數(shù)器。在延時計數(shù)器溢出之前,器件一直器。在延時計數(shù)器溢出之前,器件一直保持復位狀態(tài)(保持復位狀態(tài)(internal reset保持高電保持高電平)。經(jīng)過平)。經(jīng)過ttout時間后,延時計數(shù)器溢時間后,延時計數(shù)器溢出,將內(nèi)部復位信號(出,將內(nèi)部復位信號(internal reset)拉低,拉低,cpu才開始正式工作。才開始正式工作。672外部復位外部復位 外部復位是由外加在外部復位是由外加在reset引腳上引腳上的低電平產(chǎn)生的。當?shù)牡碗娖疆a(chǎn)生的。當reset引腳被拉低引腳被拉低至至vrst的時間大于的時間大于1.5s時,即觸發(fā)復位時,

42、即觸發(fā)復位過程。過程。 圖圖2-13 2-13 外部外部resetreset復位復位682外部復位外部復位 當當reset引腳電平高于引腳電平高于vrst 時,將時,將啟動內(nèi)部可設置的延時計數(shù)器。在延時啟動內(nèi)部可設置的延時計數(shù)器。在延時計數(shù)器溢出之前,器件一直保持復位狀計數(shù)器溢出之前,器件一直保持復位狀態(tài)(態(tài)(internal reset保持高電平)。經(jīng)過保持高電平)。經(jīng)過ttout 時間后,延時計數(shù)器溢出,將內(nèi)部時間后,延時計數(shù)器溢出,將內(nèi)部復位信號(復位信號(internal reset)拉低,)拉低,cpu才開始正式工作。才開始正式工作。 693掉電檢測(掉電檢測(bod)復位)復位 a

43、tmega16有一個片內(nèi)的有一個片內(nèi)的bod( brown-out detection)電源檢測電路,用于在系統(tǒng)運行時對系統(tǒng)電)電源檢測電路,用于在系統(tǒng)運行時對系統(tǒng)電壓壓vcc的檢測,并與一個固定的閾值電壓相比較。的檢測,并與一個固定的閾值電壓相比較。bod檢測閾值電壓可以通過檢測閾值電壓可以通過bodlevel熔絲位設定為熔絲位設定為2.7v或或4.0v。bod檢測閾值電壓有遲滯效應,以避免系統(tǒng)檢測閾值電壓有遲滯效應,以避免系統(tǒng)電源的尖峰毛刺誤觸發(fā)電源的尖峰毛刺誤觸發(fā)bod檢測器。檢測器。圖圖2-14 2-14 掉電檢測掉電檢測bodbod復位復位703掉電檢測(掉電檢測(bod)復位)復位

44、 bod檢測電路可以通過編程檢測電路可以通過編程boden熔絲位來設置成有效或者無效。當熔絲位來設置成有效或者無效。當bod被設置成有效且被設置成有效且vcc電壓跌到下閾值電壓電壓跌到下閾值電壓vbot-以下時,即觸發(fā)復位過程,以下時,即觸發(fā)復位過程,cpu進進入復位狀態(tài)。當入復位狀態(tài)。當vcc回升,而且超過上閾回升,而且超過上閾值電壓值電壓vbot+ 后,再經(jīng)過設定的啟動延時后,再經(jīng)過設定的啟動延時時間,時間,cpu重新啟動運行。重新啟動運行。714看門狗復位看門狗復位 atmega16片內(nèi)還集成一個獨立的看片內(nèi)還集成一個獨立的看門狗定時器門狗定時器wdt。該。該wdt由片內(nèi)獨立的由片內(nèi)獨立

45、的1mhz振蕩器提供時鐘信號,并且可用專振蕩器提供時鐘信號,并且可用專用的熔絲位或由用戶通過指令控制用的熔絲位或由用戶通過指令控制wdt的的啟動和關(guān)閉,以及設置和清零計數(shù)值。當啟動和關(guān)閉,以及設置和清零計數(shù)值。當wdt啟動計數(shù)后,一旦發(fā)生計數(shù)溢出,它啟動計數(shù)后,一旦發(fā)生計數(shù)溢出,它將觸發(fā)產(chǎn)生一個時鐘周期寬度的復位脈沖。將觸發(fā)產(chǎn)生一個時鐘周期寬度的復位脈沖。724看門狗復位看門狗復位 脈沖的上升沿將使器件進入復位狀態(tài),脈沖的上升沿將使器件進入復位狀態(tài),脈沖的下降沿啟動延時計數(shù)器計數(shù),經(jīng)脈沖的下降沿啟動延時計數(shù)器計數(shù),經(jīng)過設定的啟動延時時間,過設定的啟動延時時間,cpu重新開始重新開始運行。使用運

46、行。使用wdt功能,可以防止系統(tǒng)受功能,可以防止系統(tǒng)受到干擾而引起的程序運行紊亂和跑飛,到干擾而引起的程序運行紊亂和跑飛,提高了系統(tǒng)的可靠性提高了系統(tǒng)的可靠性 。734看門狗復位看門狗復位圖圖2-15 wdt2-15 wdt溢出復位溢出復位742.6.3 對對avr的編程下載的編程下載 對單片機的編程操作對單片機的編程操作,通常也稱為程序下載通常也稱為程序下載,是指以是指以特殊手段和軟硬件工具特殊手段和軟硬件工具,對單片機進行特殊的操作,以對單片機進行特殊的操作,以實現(xiàn)下面的實現(xiàn)下面的3種功能:種功能:(1) 將在將在pc機上生成的該單片機系統(tǒng)程序的運行代碼機上生成的該單片機系統(tǒng)程序的運行代碼

47、寫入單片機的程序存儲器中。寫入單片機的程序存儲器中。(2) 用于對片內(nèi)的用于對片內(nèi)的flash、eeprom進行擦除、數(shù)據(jù)進行擦除、數(shù)據(jù)的寫入(包括運行代碼)、和數(shù)據(jù)的讀出。的寫入(包括運行代碼)、和數(shù)據(jù)的讀出。(3) 實現(xiàn)對實現(xiàn)對avr配置熔絲位的設置;芯片型號的讀?。慌渲萌劢z位的設置;芯片型號的讀取;加密位的鎖定等。加密位的鎖定等。752.6.3 對對avr的編程下載的編程下載avr單片機支持多種形式的編程下載方式:單片機支持多種形式的編程下載方式: 高壓并行編程方式高壓并行編程方式這種編程方式需要占用芯片眾多的引腳和這種編程方式需要占用芯片眾多的引腳和12v12v的電壓,的電壓,所以必須

48、采用專用的編程器單獨對芯片操作。這樣所以必須采用專用的編程器單獨對芯片操作。這樣avravr芯片必須從芯片必須從pcbpcb板上取下來,不可以實現(xiàn)芯片在板上取下來,不可以實現(xiàn)芯片在線(板)的編程操作,因此這種方式不適合系統(tǒng)調(diào)線(板)的編程操作,因此這種方式不適合系統(tǒng)調(diào)試過程以及產(chǎn)品的批量生產(chǎn)需要。試過程以及產(chǎn)品的批量生產(chǎn)需要。76串行編程方式(串行編程方式(isp) 串行編程方式是通過串行編程方式是通過avr芯片本身的芯片本身的spi或或jtag串行口實現(xiàn)的,由于編程時只需要占用比串行口實現(xiàn)的,由于編程時只需要占用比較少的外圍引腳,所以可以實現(xiàn)芯片的在線編較少的外圍引腳,所以可以實現(xiàn)芯片的在線

49、編程(程(in system programmable),不需要將芯),不需要將芯片從片從pcb板上取下來,所以串行編程方式也是板上取下來,所以串行編程方式也是最方便和最常用的編程方式。最方便和最常用的編程方式。2.6.3 2.6.3 對對avravr的編程下載的編程下載 77串行編程方式還細分成串行編程方式還細分成spi、jtag方方式式: 前者表示通過芯片的前者表示通過芯片的spi串口實串口實現(xiàn)對現(xiàn)對avr芯片的編程操作,后者則是芯片的編程操作,后者則是通過通過jtag串口來實現(xiàn)的。串口來實現(xiàn)的。 avr的許多芯片都同時集成有的許多芯片都同時集成有spi和和jtag兩種串口,因此可以同時兩

50、種串口,因此可以同時支持支持spi和和jtag的編程。的編程。782.6.3 對對avr的編程下載的編程下載 使用使用jtag方式編程的優(yōu)點方式編程的優(yōu)點: 通過通過jtag口還可以實現(xiàn)系統(tǒng)的在片實時口還可以實現(xiàn)系統(tǒng)的在片實時仿真調(diào)試(仿真調(diào)試(on chip debug),缺點是需要占),缺點是需要占用用avr的的4個個i/o引腳。引腳。 采用采用spi方式編程,只需要一跟簡單的編方式編程,只需要一跟簡單的編程電纜,同時可以方便地實現(xiàn)程電纜,同時可以方便地實現(xiàn)i/o口的共用,口的共用,因此是最常使用的方式。其不足之處是不能實因此是最常使用的方式。其不足之處是不能實現(xiàn)系統(tǒng)的在片實時仿真調(diào)試?,F(xiàn)

51、系統(tǒng)的在片實時仿真調(diào)試。 79其它編程方式其它編程方式 一些型號的一些型號的avr還支持串行高壓編程方式和還支持串行高壓編程方式和iap(in application programmable)在運行編程方式。在運行編程方式。 串行高壓編程串行高壓編程是替代并行高壓編程的一種方式,是替代并行高壓編程的一種方式,主要針對主要針對8個引腳的個引腳的tiny系列的系列的avr使用。使用。 iap在運行編程方式在運行編程方式則是采用了則是采用了atmel稱為自稱為自引導加載(引導加載(boot load)技術(shù)實現(xiàn)的,往往在一些需)技術(shù)實現(xiàn)的,往往在一些需要進行遠程修改、更新系統(tǒng)程序,或動態(tài)改變系統(tǒng)程要

52、進行遠程修改、更新系統(tǒng)程序,或動態(tài)改變系統(tǒng)程序的應用中才采用。序的應用中才采用。 802.6.3 對對avr的編程下載的編程下載 atmega16片內(nèi)集成了片內(nèi)集成了16k字節(jié)的支持系統(tǒng)在線可字節(jié)的支持系統(tǒng)在線可編程(編程(isp)和在應用可編程()和在應用可編程(iap)的)的flash程序存儲程序存儲器,以及器,以及512個字節(jié)的個字節(jié)的eeprom數(shù)據(jù)存儲器。另外在數(shù)據(jù)存儲器。另外在它的內(nèi)部,還有一些專用的可編程單元熔絲位,用它的內(nèi)部,還有一些專用的可編程單元熔絲位,用于加密鎖定和對芯片的配置等。對于加密鎖定和對芯片的配置等。對atmega16編程下載編程下載操作,就是在片外對上述的存儲

53、器和熔絲單元進行讀操作,就是在片外對上述的存儲器和熔絲單元進行讀/寫(燒入)以及擦除的操作。寫(燒入)以及擦除的操作。812.6.4 avr單片機的工作狀態(tài)單片機的工作狀態(tài)復位狀態(tài)、常規(guī)工作狀態(tài)、編程狀態(tài)復位狀態(tài)、常規(guī)工作狀態(tài)、編程狀態(tài)1. resetreset引腳電平為高引腳電平為高 avravr處在常規(guī)工作狀態(tài)時,有兩種處在常規(guī)工作狀態(tài)時,有兩種工作方式:正常程序執(zhí)行工作方式和工作方式:正常程序執(zhí)行工作方式和休眠節(jié)電工作方式。休眠節(jié)電工作方式。1)1)正常程序執(zhí)行工作方式正常程序執(zhí)行工作方式822.6.4 avr單片機的工作狀態(tài)單片機的工作狀態(tài) 正常程序執(zhí)行工作方式是單片機的基本工作方正常程序執(zhí)行工作方式是單片機的基本工作方式。由于硬件的復位操作將程序計數(shù)器置為零式。由于硬件的復位操作將程序計數(shù)器置為零(pc=$0000),因此程序的執(zhí)行總是從),因此程序的執(zhí)行總是從flash地地址的址的$0000開始的。開始的。 對于對于atmega16來講,來講,flash地址的地址的$0002到到$0028是中斷向量區(qū)是中斷向量區(qū),所以真正實際要開始運行的程序所以真正實際要開始運行的程序代碼一般放

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論