日韩在线免费播放-日韩在线免费av-日韩在线免费-日韩在线毛片-国产高清不卡视频-国产高清不卡

當前位置:首頁 > 嵌入式培訓 > 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的堆棧是向上增長的,即進棧操作時棧頂指針的數據將增加),所以盡管原則上堆?梢栽赟RAM的任何區域中,但通常初始化時將SP的指針設在SRAM最高處。

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

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

當執行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號

回到頂部

主站蜘蛛池模板: 烽火流金电视剧全集免费观看| 青春派电视剧免费完整版在线观看 | 我的兴趣爱好| 杨紫琼所有的电影大全| 欧美日韩欧美日韩在线观看视频| 男人天堂视频| 白浩| 鬼迷心窍1994| 日本电车系列| 梁山伯与祝英台电影| karina hart| 阿娇老公| 湖南金鹰卡通节目表| 转正意见评语| 李修蒙出生年月| 初恋50次 电影| 铠甲勇士第六部| 电子元器件基础知识| 小涛讲电影| 张志文| 食人鱼电影| 大海中的船原唱歌词| 戴安·梅尔| 乡村女教师 电影| 好妻子电视剧54集剧情| 失落之城电影| 2016年出生人口数量| 我家来了个怪男人| 踩女人肚子练腹肌视频| 美女网站在线观看| 爱在一起麻辣烫| 变形金刚1普通话版| 麻豆视频免费在线观看| 红色高棉电影| 古灵精探演员表| 帕瓦德奥特曼| 闪婚后傅先生马甲藏不住了免费播放| 太原教育电视台| 姐妹电影| 熊汝霖| cctv16体育节目表今天目表|