色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

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

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

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

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

AVR單片機特點(ATmega16):

1、131條機器指令,且大多數指令的執行時間為單個系統時鐘周期;

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

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

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

AVR單片機優勢:

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

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

系統時鐘:

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

為ATmega16提供系統時鐘源時,有三種主要的選擇:(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可以有效的提高系統的可靠行。

avr單片機的工作流程:

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

存儲器:

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

avr單片機

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

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

兩個重要的寄存器:狀態寄存器SREG和堆棧指針寄存器SP

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

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

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

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

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

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

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

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

上一篇:arm嵌入式系統發展趨勢?這些你不得不知道

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

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

回到頂部

主站蜘蛛池模板: jiizz日本老师高潮喷水 | 免费的av不用播放器的 | 无码专区—VA亚洲V专区VR | 亚洲av无码专区国产乱码不卡 | A级一男一女牲交 | 日韩不卡1卡2卡三卡免费网站2021 | 国产白嫩漂亮美女在线观看 | 国产精品免费_区二区三区观看 | 日本大片免A费观看视频三区 | 亚洲成AV人片在WWW色猫咪 | 亚洲第一区在线视频 | 48沈阳熟女高潮嗷嗷叫 | 一区二区美女视频 | 亚洲精品欧美精品日韩精品 | 国产卡1卡2卡3 | 国产av福利第一精品 | 国产一二三四2021精字窝 | 亚洲中文字幕无码永久免弗 | 白浆一区二区 | 欧美亚洲日本国产综合在线美利坚 | 国产亚洲日韩一区二区三区 | 国产卡一卡二卡三无线乱码新区 | 蜜臀少妇人妻在线 | 免费久久网 | 久久婷婷色综合一区二区 | 久久精品国产99久久丝袜 | 人人澡视频 | 麻豆免费播放 | 狠狠噜天天噜日日噜AV | wwww黄 | 夜鲁鲁鲁夜夜综合视频欧美 | 久久久精品亚洲 | 99美国热 | 一区一区三区产品乱码亚洲 | 中文字幕av无码一区二区三区 | 亚洲欧美日韩国产综合精品二区 | 久亚洲精品 | 亚洲区激情区无码区日韩区 | 亚洲国产成人无码影片在线播放 | 噜妇插内射精品 | 久久精品亚洲中文字幕无码网站 |