亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_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號

回到頂部

主站蜘蛛池模板: 久操色 | 日日摸夜夜爽夜夜爽出水 | 一区二区三区免费视频观看 | 久艾草国产成人综合在线视频 | 久久成年人 | 麻豆视频免费版 | 欧美日穴| 毛片视频在线免费观看 | 99re热这里只有精品视频 | 日韩亚洲欧美日本精品va | 黄色大片毛片 | 国产美女久久久久久久久久久 | 久久国产精品1区2区3区网页 | 欧美xxxx三人交性视频 | 激情图片 激情小说 | 国产香蕉久久精品综合网 | 久久青草免费91线频观看不卡 | 九九热视频在线 | 国产色综合天天综合网 | 乱人伦中文字幕 | 起碰起在线视频公开免费 | 99视频在线看 | 毛片爱爱 | 欧美一区欧美二区 | 美女午夜色视频在线观看 | 亚洲亚洲人成网站在线观看 | 国产精品久久久久9999高清 | 在线亚洲成人 | 激情小说 激情图片 | 两个人www免费高清视频 | 清除唯美第一区二区三区 | 美女福利视频一区二区 | 欧美男女网站 | 精品亚洲欧美中文字幕在线看 | 人人揉人人爽五月天视频 | 日本成年x片免费观看网站 日本成年免费网站 | 婷婷麻豆| 噜噜噜天天躁狠狠躁夜夜精品 | 2017天天干夜夜操 | 青青久久精品 | 啪啪网址大全 |