国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當前位置:首頁 > 嵌入式培訓 > IT培訓問題庫 > avr單片機編程入門精品,新手學習必看(有典型實例哦)

avr單片機編程入門精品,新手學習必看(有典型實例哦) 時間:2018-07-23      來源:未知

單片機分為很多種,有什么avr單片機,stm32單片機等,隨著單片機被廣泛的使用,這些都是在單片機學習中需要接觸的,有很多人問我:對于avr單片機編程來說,學習這個的時候很是迷茫,死活入不了門,到底avr單片機編程如何入門,這里就讓我這個老鳥教會你。

首先要知道,avr單片機是什么?不然不了解這個,那接下來的學習也是白瞎,AVR單片機是1997年由ATMEL公司研發(fā)出的增強型內置Flash的RISC(Reduced Instruction Set CPU) 精簡指令集高速8位單片機。可以廣泛應用于計算機外部設備、工業(yè)實時控制、儀器儀表、通訊設備、家用電器等各個領域。

AVR單片機特點(ATmega16):

1、131條機器指令,且大多數(shù)指令的執(zhí)行時間為單個系統(tǒng)時鐘周期;

2、32個8位通用工作寄存器;

3、工作在16MHz時具有16MIPS的性能;

4、配備只需要2個時鐘周期的硬件乘法器。

AVR單片機優(yōu)勢:

AVR單片機是Atmel公司推出的較為新穎的單片機,其顯著的特點為高性能、高速度、低功耗。它取消機器周期,以時鐘周期為指令周期,實行流水作 業(yè)。AVR單片機指令以字為單位,且大部分指令都為單周期指令。而單周期既可執(zhí)行本指令功能,同時完成下一條指令的讀取。通常時鐘頻率用4~8MHz,故 最短指令執(zhí)行時間為250~125ns。

了解了這些,那接下來就通過一系列的實例,讓你對avr單片機了解透徹

系統(tǒng)時鐘:

ATmega16的片內含有4種頻率(1/2/4/8M)的RC振蕩源,可直接作為系統(tǒng)的工作時鐘使用。同時片內還設有一個由反向放大器所構成的OSC(Oscillator)振蕩電路,外圍引腳XTAL1和XTAL2分別為OSC振蕩電路的輸入端和輸出端,用于外接石英晶體等,構成高精度的或其它標稱頻率的系統(tǒng)時鐘系統(tǒng)。

為ATmega16提供系統(tǒng)時鐘源時,有三種主要的選擇:(1)直接使用片內的1/2/4/8M的RC振蕩源;(2)在引腳XTAL1和XTAL2上外接由石英晶體和電容組成的諧振回路,配合片內的OSC(Oscillator)振蕩電路構成的振蕩源;(3)直接使用外部的時鐘源輸出的脈沖信號。方式2和方式3的電路連接見圖2-6(a)和2-6(b)。

avr單片機

內部看門狗:

在AVR片內還集成了一個1MHz獨立的時鐘電路,它僅供片內的看門狗定時器(WDT)使用。因此,AVR片內的WDT是獨立硬件形式的看門狗,使用AVR可以省掉外部的WDT芯片。使用WDT可以有效的提高系統(tǒng)的可靠行。

avr單片機的工作流程:

AVR CPU的工作是由系統(tǒng)時鐘直接驅動的,在片內不再進行分頻。圖2-7所示為Harvard結構和快速訪問寄存器組的并行指令存取和指令執(zhí)行時序。CPU在啟動后第一個時鐘周期T1取出第一條指令,在T2周期便執(zhí)行取出的指令,并同時又取出第二條指令,依次進行。這種基于流水線形式的取指方式,使AVR可以以非常高的速度執(zhí)行指令,獲得高達1MIPS/MHz的效率。

存儲器:

所有的I/O寄存器可以通過IN(I/O口輸入)和OUT(輸出到I/O口)指令訪問,這些指令是在32個通用寄存器與I/O寄存器空間之間傳輸交換數(shù)據(jù),指令周期為1個時鐘周期。此外,I/O寄存器地址范圍在$00-$1F之間的寄存器(前32個)還可通過指令實現(xiàn)bit位操作和bit位判斷跳轉。SBI(I/O寄存器中指定位置1)和CBI(I/O寄存器中指定位清零)指令可直接對I/O寄存器中的每一位進行位操作。使用SBIS(I/O寄存器中指定位為1跳行)和SBIC(I/O寄存器中指定位為0跳行)指令能夠對這些I/O寄存器中的每一位的值進行檢驗判斷,實現(xiàn)跳過一條指令執(zhí)行下一條指令的跳轉。

avr單片機

在I/O寄存器專用指令IN、OUT、SBI、CBI、SBIS和SBIC中使用I/O寄存器地址$OO~$3F。

當以SRAM方式尋址I/0寄存器時,必須將該其地址加上$0020,映射成在數(shù)據(jù)存儲器空間的地址。

兩個重要的寄存器:狀態(tài)寄存器SREG和堆棧指針寄存器SP

堆棧是數(shù)據(jù)結構中所使用的專用名詞,它是由一塊連續(xù)的SRAM空間和一個堆棧指針寄存器組成,主要應用于快速便捷的保存臨時數(shù)據(jù)、局部變量和中斷調用或子程序調用的返回地址。堆棧在系統(tǒng)程序的設計和運行中起者非常重要的作用,只要程序中使用了中斷和子程序調用,就必須正確的設置堆棧指針寄存器SP,在SRAM空間建立堆棧區(qū)。

處在I/O地址空間的$3E($005E)和$3D($005D)的兩個8位寄存器構成了AVR單片機的16位堆棧指針寄存器SP。AVR單片機復位后堆棧寄存器的初始值為SPH=$00、SPL=$00,因此建議用戶程序必須首先對堆棧指針寄存器SP進行初始化設置。

AVR的堆棧區(qū)是建立在SRAM空間的,16位的SP寄存器可以尋址的空間為64K。

由于AVR的堆棧是向下增長的,即新數(shù)據(jù)進入堆棧時棧頂指針的數(shù)據(jù)將減小(注意:這里與51不同,51的堆棧是向上增長的,即進棧操作時棧頂指針的數(shù)據(jù)將增加),所以盡管原則上堆棧可以在SRAM的任何區(qū)域中,但通常初始化時將SP的指針設在SRAM最高處。

對于具體的ATmega16芯片,堆棧指針必須指向高于$0060的SRAM 地址空間,因為低于$0060的區(qū)域為寄存器空間。ATmega16片內集成有1K的SRAM,不支持外部擴展SRAM,所以堆棧指針寄存器SP的初始值應設在SRAM的最高端:$045F處。

根據(jù)上面所講述,AVR的SP堆棧指針寄存器指示了在數(shù)據(jù)SRAM中堆棧區(qū)域的棧頂?shù)刂,一些臨時數(shù)據(jù)、局部變量,以及子程序返回地址和中斷返回地址將被放置在堆棧區(qū)域中。在數(shù)據(jù)SRAM中,該堆棧空間的頂部地址必須在系統(tǒng)程序初始化時由初始化程序定義和設置。

當執(zhí)行PUSH指令,一個字節(jié)的數(shù)據(jù)被壓入堆棧,堆棧指針(SP中的數(shù)據(jù))將自動減1;當執(zhí)行子程序調用指令CALL或CPU響應中斷時,硬件會自動把返回地址(16位數(shù)據(jù))壓入堆棧中,同時將堆棧指針自動減2。反之,當執(zhí)行POP指令,從堆棧頂部彈出一個字節(jié)的數(shù)據(jù),堆棧指針將自動加1;當執(zhí)行從子程序RET返回或從中斷RETI返回指令時,返回地址將從堆棧頂部彈出,堆棧指針自動加2。

通過這些原理及實例,你是否對avr單片機編程有了更深入的了解呢,其實avr單片機學習并不難,只要你認真去學,把每一步每一個流程都掌握透徹,那你就在avr單片機編程方面就已經(jīng)入門了,這些你是否get到了呢?

上一篇:arm嵌入式系統(tǒng)發(fā)展趨勢?這些你不得不知道

下一篇:嵌入式工程師簡歷如何寫?讓你“一投就中”

熱點文章推薦
華清學員就業(yè)榜單
高薪學員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5,京公海網(wǎng)安備11010802025203號

回到頂部