Jaký je princip fungování AVR?
Pokročilá verze mikroprocesoru je mikrokontrolér, který obsahuje CPU, řadič přerušení, RAM, ROM, I/O jednotku atd. Mikrokontrolér se používá hlavně pro provoz vysokorychlostního zpracování signálu ve vestavěném systému. Funguje tedy jako hlavní součást při navrhování vestavěného systému. K dispozici jsou různé druhy mikrokontrolérů, které se používají na základě požadavků, jako je 8051, PIC, AVR atd. Tento článek tedy poskytuje stručné informace o jednom z typů mikrokontrolérů, konkrétně o mikrokontrolér AVR.
Mikrokontrolér AVR byl vyroben společností Atmel Corporation v roce 1996 a jeho architekturu vyvinuli „Alf-Egil Bogen & Vegard Wollan. Název tohoto mikrokontroléru byl převzat od jeho vývojářů, jmenovitě mikrokontroléru Alf-Egil Bogen & Vegard Wollan RISC. První mikrokontrolér založený na architektuře AVR je AT90S8515 ale první komerční mikrokontrolér byl AT90S1200.
Atmel AVR je dnes jednou z nejpopulárnějších rodin mikrokontrolérů. Důvodem této obrovské popularity je relativní snadnost použití a nízká cena mikrokontrolérů, které lze zakoupit v 8kolíkových balíčcích v rozmezí od 1 do 10 dolarů.
Co je mikrokontrolér AVR?

Mikrokontroléry AVR jsou dostupné ve 3 kategoriích jako TinyAVR, MegaAVR & XmegaAVR.
- Mikrokontroléry TinyAVR jsou dostupné v malých velikostech, mají méně paměti a volí pouze jednodušší aplikace.
- Mikrokontroléry MegaAVR jsou velmi známé, protože mají až 256 KB paměti, obsahují maximální počet periferií a používají se v středně až složitých aplikacích.
- XmegaAVR se často používá pro komplexní aplikace, kde je vyžadována vysoká rychlost a velká programová paměť.
AVR akceptuje širokou škálu instrukční sady včetně původní instrukční sady THUMB od ATmel a také běžné instrukční sady ARM. Desky Arduino používají jako své mikrokontroléry řady ATMEL ATmega
Název série
Počet pinů Flash paměti
Zvláštnost
28 až 100 4 až 256 kB
Zahrnuje DMA a Event System.
Vlastnosti mikrokontroléru AVR
Mezi vlastnosti mikrokontroléru AVR patří následující.
- Flash paměť je 16KB. SRAM má 1KB.
- 10bitový •8kanálový ADC.
- EPROM je 512 bajtů.
- ISP nebo In-System Programmer.
- Sériový USART.
- DIP balíček.
- 16bitový časovač nebo čítač -1.
- 8bitové časovače nebo čítače -2.
- Digital to Analog Comparator.
- Hlavní nebo podřízené sériové rozhraní SPI.
- Rozhraní SPI.
- Je k dispozici ve 40pinovém provedení.
- PWM kanály -4.
- Programovatelný sériový USART.
- Programovatelný hlídací časovač včetně samostatného oscilátoru na čipu.
- CPU ARM
Typy mikrokontrolérů AVR
Mikrokontroléry AVR jsou dostupné ve čtyřech typech, jako jsou mikrokontroléry ATmega8, ATmega16, ATmega32 a ATmega328, kde každý mikrokontrolér a jeho funkce jsou popsány níže.
Mikrokontrolér Atmega8 AVR
Tento mikrokontrolér je 28kolíkový integrovaný obvod včetně interní SRAM-1KByte, flash paměti-8kb a podpory dvou externích přerušení. Tento mikrokontrolér je založen na architektuře RISC a je navržen společností Microchip. Tento mikrokontrolér je dostupný ve třech balíčcích PDIP, TQFP a MLF, kde první balíček obsahuje 28 pinů a zbývající dva balíčky budou k dispozici s 32 piny na každém modulu.

Atmega8
Programová paměť nebo flash paměť tohoto mikrokontroléru je 8KB, která se používá pro ukládání programovacího kódu a trvalých nastavení. Tento mikrokontrolér se používá k vytváření elektrických a elektronických projektů.
Mikrokontrolér Atmega16 AVR
Jedná se o vysoce výkonný 8bitový mikrokontrolér z rodiny Atmel Mega AVR. Tento mikrokontrolér obsahuje 40 pinů založených na vylepšené architektuře RISC včetně 131 výkonných instrukcí. Jedná se tedy o jeden z nejpoužívanějších a nejlevnějších mikrokontrolérů, protože má několik pinů a funkcí.

Má programovatelnou flash paměť – 16 KB, 1 KB statické RAM a 512 bajtů EEPROM. Tento typ mikrokontroléru obsahuje 32 univerzálních registrů a sadu instrukcí, které jsou připojeny přímo k ALU, a umožňuje přístup ke 2 samostatným registrům v rámci jediné instrukce, která se provádí v jediném cyklu CLK.
Cyklus výdrže flash paměti, stejně jako EEPROM, je přibližně 10 100 a 16. Většina instrukcí v tomto mikrokontroléru se provádí v jednom strojovém cyklu a může pracovat na maximální frekvenci XNUMX MHz.
Mikrokontrolér Atmega16 AVR se používá v komerčních produktech a malých průmyslových strojích. Tento mikrokontrolér lze také použít k měření pracovního cyklu a frekvence externího zařízení.
Mikrokontrolér Atmega32 AVR
Mikrokontrolér Atmega32 AVR je nízkoenergetický, vysoce výkonný mikrokontrolér na bázi RISC. Tento regulátor pracuje od 1.8 do 5.5 voltů.

Tento mikrokontrolér má různé funkce, například kombinuje 32 KB ISP flash paměť s 1 KB-EEPROM, 2 KB-SRAM, možnosti čtení při zápisu, univerzální vstupní/výstupní linky, univerzální pracovní registry-32, rozhraní JTAG pro ladění nebo programování na čipu, 3 flexibilní časovač/čítače včetně porovnávacích režimů, sériový programovatelný USART, sériový port SPI, interní a externí přerušení, USI (univerzální sériové rozhraní) s detektorem startovacích podmínek, programovatelným hlídacím časovačem včetně interního oscilátoru, 10bitovým 8kanálovým A/D převodníkem atd.
Mikrokontrolér Atmega32 AVR se používá v systémech řízení motoru, DSP, systémech periferního rozhraní, systémech řízení teploty, měření analogových signálů a různých vestavěných systémech, jako jsou prodejní automaty, kávovary atd.
Mikrokontrolér Atmega328 AVR
Mikrokontrolér Atmega328 AVR je vysoce výkonný a nízkoenergetický 8bitový mikročip založený na RISC, který jednoduše kombinuje 32 KB ISP Flash paměť s možností čtení a zápisu. Provozní napětí tohoto mikrokontroléru AVR se pohybuje od 1.8 do 5.5 voltů.

Mikrokontrolér Atmega328 AVR
Mezi hlavní vlastnosti mikrokontroléru Atmega328 AVR patří především EEPROM-1 KB, SRAM-2 KB, 32 univerzálních registrů, 23 univerzálních I/O linek, flexibilní časovač nebo čítače-3 včetně porovnávacích režimů, sériový programovatelný USART, interní & externí přerušení, sériový port SPI, 2vodičové sériové rozhraní, 10bitový 6kanálový A/D převodník, programovatelný časovač hlídacího obvodu včetně interní oscilátor a pět softwarově volitelných režimů úspory energie.
Aplikace mikrokontroléru Atmega328 AVR zahrnují především autonomní systémy a různé elektronické projekty, kde je vyžadován nízkoenergetický, jednoduchý a levný mikročip. Toto je nejoblíbenější AVR řadič, takže se používá ve vývojových platformách Arduino, jako jsou různé desky ARDUINO, jako jsou modely Arduino Uno, Arduino Nano a Arduino Pro Mini.
PinOut/PinDiagram mikrokontroléru AVR
Mikrokontrolér AVR Atmega 32 konfigurace pinů je zobrazen níže. Tento mikrokontrolér obsahuje čtyři porty port-A, port-B, port-C a port-D. Port-A obsahuje hlavně piny od PA7 do PA0, port-B zahrnuje PB7 až PB0, port-C zahrnuje od PC7 do PC0 a port-D zahrnuje od PD7 do PD0.

Konfigurace pinů mikrokontroléru AVR
Port-A (PA7-PA0)
Ve výše uvedeném mikrokontroléru AVR piny v portu-A zahrnují hlavně PA7 až PA0, který funguje jako 8bitový obousměrný I/O port, a také analogové vstupy do analogově digitálního převodníku, pokud tento A/D převodník se nepoužívá. Tyto piny poskytují vnitřní pull-up rezistory.
Výstup vyrovnávacích pamětí Port A zahrnuje hlavně symetrické charakteristiky měniče včetně vysoké kapacity sběrače a zdroje. Jakmile jsou piny portu A použity jako vstupy od PA0 do PA7, pak jsou externě staženy na nízkou úroveň, pak budou poskytovat proud, pokud jsou zapnuty vnitřní pull-up odpory. Piny v tomto portu jsou třístavové, jakmile se zapne stav reset, i když CLK neběží.
Port B (PB7-PB0) a Port D (PD7-PD0)
Piny v těchto dvou portech zahrnují hlavně PB7 až PB0 a PD7-PD0. Tyto porty jsou 8bitové obousměrné I/O porty včetně interních pull-up rezistorů. Výstup těchto dvou vyrovnávacích pamětí portů zahrnuje hlavně symetrické charakteristiky měniče včetně schopnosti vysokého sink a source. Stejně jako vstupy, piny tohoto portu, které jsou externě staženy nízko, budou poskytovat proud, pokud jsou aktivovány odpory. Piny v těchto dvou portech jsou trojfázové, kdykoli se aktivuje resetovací podmínka, i když CLK neběží.
Port C (PC7-PC0)
Piny v portu C zahrnují hlavně od PC7 do PC0 a je to 8bitový obousměrný I/O port. Pokud je povoleno rozhraní JTAG (Joint Test Action Group), pull-up rezistory na pinech jako PC3 (TMS), PC2 (TCK) a PC5 (TDI) se spustí, i když dojde k resetu.
Pin TD0 je třístavový, pokud TAP neuvádí, že jsou zadány údaje o posunutí. Port C také slouží funkcím rozhraní JTAG a dalším speciálním funkcím ATmega32.
VCC: Je to digitální napájecí kolík napětí.
GND: Je to GND kolík.
RESET
Je to pin RESET, který slouží k nastavení mikrokontroléru ATmega32 na jeho hlavní hodnotu. Během spouštění aplikace musí být tento kolík nastaven vysoko na dvě otáčky stroje.
XTAL1
Jedná se o vstupní kolík do zesilovače invertujícího oscilátoru a také do vnitřního provozního obvodu CLK.
XTAL2
Tento kolík je na výstupu ze zesilovače invertujícího oscilátoru.
AVCC
Toto je napájecí kolík pro port A a také A/D převodník. Připojení tohoto pinu musí být provedeno na VCC externě, i když není použit A/D převodník. Pokud je použit A/D převodník, pak musí být připojen k VCC s dolní propustí.
REF
Toto je analogový referenční kolík používaný pro analogově digitální převodník.
Architektura mikrokontroléru AVR
Architektura mikrokontrolérů AVR je založena na pokročilém RISC a zahrnuje 32 x 8-bitové univerzální registry. V jediném cyklu CLK může tento mikrokontrolér získat vstupy ze dvou registrů a připojit je k ALU pro požadovanou operaci a přesunout výsledek zpět do libovolného registru. Zde ALU provádí aritmetické a logické operace na vstupech z registru.
AVR může provádět provádění jednoho cyklu, což znamená, že tento mikrokontrolér může provádět 1 milion instrukcí za každou sekundu, pokud je frekvence cyklu 1 MHz. Je-li provozní frekvence regulátoru vyšší, bude vyšší rychlost jeho zpracování. Spotřeba energie se tedy musí optimalizovat s rychlostí zpracování a podle toho je třeba zvolit provozní frekvenci.
Architektura mikrokontroléru AVR obsahuje různé stavební bloky a každý blok je vysvětlen na níže uvedeném blokovém schématu mikrokontroléru AVR.

Architektura mikrokontroléru AVR
I / O porty
Mikrokontrolér AVR obsahuje čtyři 8bitové vstupně-výstupní porty jako PORT-A, PORT-B, PORT-C a PORT-D.
Interní kalibrovaný oscilátor
Mikrokontrolér AVR obsahuje interní oscilátor používaný pro řízení jeho CLK. Tento mikrokontrolér je nastaven tak, aby pracoval na interním kalibrovaném oscilátoru 1 MHz. Maximální frekvence vnitřního oscilátoru je tedy 8 MHz.
Rozhraní ADC
Tento mikrokontrolér obsahuje 8kanálový ADC s 10bitovým rozlišením. Hlavní funkcí tohoto ADC je čtení analogového vstupu.
Časovače/počítadla
Mikrokontrolér obsahuje dva 8bitové a jeden 16bitový časovač/počítač. Hlavní funkcí časovačů v tomto ovladači je generovat přesné akce, jako jsou časové prodlevy vytvořené mezi dvěma operacemi.
Watchdog Timer
V tomto mikrokontroléru je přítomen hlídací časovač s interním oscilátorem. Jeho hlavní funkcí je průběžně monitorovat a resetovat kontrolér, pokud dojde k zachycení kódu při provádění v definovaném časovém intervalu.
Přerušení
Tento mikrokontrolér obsahuje 21 přerušení, kde 16 přerušení je interních a zbývajících přerušení jsou externí. Zde interní přerušení podporují různá periferní zařízení jako ADC, USART, časovače atd.
USART
Termín USART znamená „Universal Synchronous and Asynchronous Receiver“ a rozhraní vysílače lze získat pro rozhraní s externím zařízením, které je schopné sériově komunikovat.
Registry pro všeobecné použití
Tento mikrokontrolér má 32 univerzálních registrů, kde jsou tyto registry spojeny přímo s ALU CPU.
Memory
Paměť tohoto mikrokontroléru obsahuje tři různé sekce
Flash EEPROM
Tento typ paměti je užitečný při ukládání programu uloženého uživatelem do mikrokontroléru AVR. Tento program lze jednoduše elektricky odstranit jako jeden celek. Tato paměť je energeticky nezávislá, což znamená, že pokud dojde k výpadku napájení, program se nevymaže. Tento mikrokontrolér obsahuje 16KB programovatelné paměti Flash EEPROM v systému.
Byte adresovatelná EEPROM
Byte adresovatelná EEPROM je energeticky nezávislá paměť, která se používá hlavně pro ukládání dat. Tento mikrokontrolér obsahuje EEPROM-512 bytů, takže tato paměť může být jednoduše užitečná při ukládání kódu zámku, pokud navrhujeme aplikaci elektronického dveřního zámku.
SRAM
SRAM je zkratka pro Static Random Access Memory, což je volatilní paměť mikrokontroléru AVR, takže po deaktivaci napájení budou data ztracena. Tento mikrokontrolér obsahuje 1KB – vnitřní paměti SRAM. Malá část paměti SRAM je vyhrazena pro obecné registry, které používá CPU a také některé další periferní subsystémy.
ISP
Tyto mikrokontroléry zahrnují In-System Programmable Flash Memory nebo ISP, které lze jednoduše naprogramovat bez odpojení čipu od obvodu; To umožňuje přeprogramování mikrokontroléru, když je v aplikačním obvodu.
SPI
Termín SPI znamená Serial Peripheral Interface, které se používá hlavně pro sériovou komunikaci mezi dvěma různými zařízeními na společném zdroji CLK. Rychlost přenosu dat SPI je ve srovnání s USART vysoká.
TWI
TWI je dvouvodičové rozhraní, které lze použít k připojení sítě pro zařízení, takže nad toto rozhraní lze jednoduše připojit několik zařízení a vytvořit tuto síť, takže přenos dat může být prováděn současně zařízeními s vlastní jedinečnou adresou.
DAC
DAC nebo digitálně-analogový převodník v mikrokontroléru se používá k provedení zpětné činnosti ADC. Tento převodník se jednoduše používá vždy, když je potřeba změnit signál z digitálního na analogový.
Výhody a nevýhody
Jedno výhody mikrokontroléru AVRr zahrnují následující.
- Tyto mikrokontroléry mají vysokou rychlost, vysoký výkon a nižší spotřebu energie.
- Zruší strojový cyklus, aby provedl operaci potrubí jak s cyklem CLK, tak s cyklem instrukcí.
- Velmi jednoduché použití a nižší náklady.
- Jeho výkon je rychlý.
- Menší hmotnost.
- Snadno dostupné na trhu.
- Snadné programování a nastavení.
Jedno nevýhody mikrokontroléru AVR zahrnout následující.
- Má jediný zdroj, takže je dostupný pouze od Atmelu.
- Tyto mikrokontroléry mají poměrně nízký výkon.
- Jeho maximální rychlost se blíží 20 MIPS.
- Výkon procesoru a paměť jsou omezené, takže není vyžadován pro každou aplikaci.
Aplikace
Jedno aplikace mikrokontroléru AVR zahrnout následující.
- Mikrokontrolér AVR se používá hlavně ve vestavěném systému pro provoz vysokorychlostního zpracování signálu.
- Tyto mikrokontroléry se používají v dotykových obrazovkách, domácí automatizaci, lékařských zařízeních, obraně, automobilech atd.
- Tento mikrokontrolér lze použít v mnoha typech projektů, jako je sběr dat, řízení pohybu, pro snímání signálu, rozhraní GPS, GSM, motory, displeje na LCD, vývoj bezpilotních letadel atd.
Na tomto odkazu naleznete MCQ mikrokontroléru AVR
Jaké projekty mohu vytvořit s mikrokontrolérem AVR?
Odpověď: S mikrokontrolérem AVR můžete vyrábět nejrůznější věci! Některé příklady zahrnují roboty, světelné meče, zvonky a další!
Co je to AVR?
A: AVR znamená Atmel Virtual microcontroller. Jedná se o řadu mikrokontrolérů vyvinutou společností Atmel, což je polovodičová společnost se sídlem ve Spojených státech. Společnost byla založena v roce 1984 a od té doby se stala jedním z největších výrobců mikrokontrolérů s více než 100 miliony prodaných produktů ročně. Jejich vlajkovou lodí je řada mikrokontrolérů AVR, které se používají ve všem, od domácích spotřebičů po spotřební elektroniku.
Proč používat mikrokontroléry AVR?
Hlavním důvodem, proč se používají mikrokontroléry AVR, je to, že jsou levné a snadno se používají. Lze je naprogramovat pomocí programovacího jazyka C, což usnadňuje jejich použití. Kromě toho jsou velmi malé, takže jsou velmi přenosné a lehké.
Jak programujete mikrokontrolér AVR?
Chcete-li naprogramovat mikrokontrolér AVR, musíte k němu připojit svůj počítač nebo notebook pomocí kabelu USB nebo modulu Bluetooth, abyste si do něj mohli stáhnout kód z počítače. Tento kód pak musíte nahrát do mikrokontroléru pomocí programovacího softwaru, jako je Atmel Studio nebo Arduino IDE.
Jaký je rozdíl mezi AVR a Arduinem?
Arduino je mikrokontrolér, zatímco AVR je rodina mikrokontrolérů. Oba jsou však založeny na stejné architektuře ARM a jsou vzájemně kompatibilní.
Další informace o ovladači DMA naleznete na tomto odkazu.
Další informace o projektech mikrokontrolérů 8051 naleznete na tomto odkazu.
Jedná se tedy o stručné informace o mikrokontroléru AVR – architektuře a práci s aplikacemi. Tento mikrokontrolér vykonává většinu instrukcí v rámci jednoho prováděcího cyklu. Tyto mikrokontroléry jsou čtyřikrát rychlejší ve srovnání s mikrokontroléry PIC, protože spotřebovávají nízkou spotřebu energie a také pracují v různých režimech úspory energie. Zde je pro vás otázka, co znamená AVR?
Než začnete studovat samostatná tvorba programů pro mikrokontroléry AVR, bylo by dobré vědět, jak se tyto stejné programy provádějí, tzn. zjistit více o zařízení (architektura) mikrokontroléru.
Jako krátký úvod bych rád poznamenal skutečnost, že Společnost Atmeljako většina výrobců mikrokontrolérů, vnitřní struktura Udržují svůj mikrokontrolér v tajnosti, takže si budete muset vystačit s materiálem poskytnutým vývojářem: datové listy, poznámky k aplikaci, bloková schémata atd. Výrobce nás tak připravuje o možnost kritizovat jeho obvodová řešení a také „ukrást“ jakoukoli část nebo celý regulátor.
V zásadě ti, kteří to potřebovali, to už dávno udělali.
Pojďme tedy začít. Mikrokontroléry AVR jsou implementovány podle principu Harvardská architektura– to znamená, že programová paměť, datová paměť a přístupové sběrnice jsou odděleny.
Stalo se tak z nějakého důvodu: toto rozdělení umožňuje například současně načíst novou montážní instrukci z paměti programu na jedné sběrnici a zároveň zapsat výsledek předchozího příkazu do datové paměti mikrokontroléru (RAM/UVV/RON ) na jiném. Tato „dělba práce“ se nazývá pipeline a umožňuje vám provést jednu instrukci za cyklus hodin.

Datová paměť v mikrokontroléru AVR
Jednou z klíčových součástí mikrokontroléru AVR je 8bitová datová sběrnice (8-bit Data Bus), propojovací RAM, programový čítač, stavový registr, periferní registry a RALU (General Purpose Registers + ALU) mikrokontroléru.
Datová paměť je sbírka obecných registrů (GPR), vstupních/výstupních registrů a statické RAM (SRAM). AVR má několik sad montážních instrukcí, které jsou navrženy speciálně pro adresování I/O registrů (s vlastním adresním prostorem), a také sadu instrukcí pro adresování přes datovou sběrnici do celé datové paměti (s vlastní adresou plocha).

Při programování v C může programátor pracovat s několika typy dat:
spálit – 8bitová proměnná.
int, krátký – 16bitové proměnné.
dlouhý, plovoucí, dvojitý – 32bitové proměnné.
jakož i struktura, svazek
Pokud deklarujeme proměnnou uvnitř funkce, to znamená, že ji uděláme lokální, pak jí kompilátor přidělí jeden nebo více univerzálních registrů. Pokud v tuto chvíli není dostatek RON, překladač umístí proměnnou do RAM (nebo spíše na Stack), což následně bude vyžadovat další hodinové cykly pro načtení proměnné z RAM/Stacku. Pokud deklarujeme proměnnou mimo funkci (uděláme ji globální) nebo ji definujeme jako statický, pak mu kompilátor bez váhání přidělí místo v paměti RAM. Takže rada: kdykoli je to možné, snažte se deklarovat proměnné uvnitř funkcí, čímž dáte kompilátoru možnost vybrat si nejoptimálnější umístění proměnných.
Také v jazyce C můžete doporučit (ne nutně ke spuštění) kompilátoru umístit tu či onu proměnnou do RON pomocí klíčového slova registrovat se.

Vzhledem k tomu, že AVR, stejně jako většina 8bitových mikrokontrolérů, nemůže (hardwarově) pracovat s 16-/32-/64bitovými proměnnými, byly pro takové případy vyvinuty knihovní funkce obsažené v kompilátorech vysokoúrovňových jazyků, jako je C.
Tyto funkce implementují velké množství různých matematických/logických a dalších operací, jako je násobení/dělení 16/32/64bitových proměnných se znaménkem a bez znaménka, práce s čísly s pohyblivou řádovou čárkou, práce se strukturami, bitovými poli atd. d. Ale jak chápete, použití proměnných tohoto typu, a tedy funkcí s nimi spojených, vede ke zvýšení počtu hodinových cyklů potřebných pro čtení/zápis, stejně jako všeobecných registrů používaných při adresování takových proměnných, a co je nejdůležitější, i když je to malé, další místo v paměti programu pro uložení těchto funkcí.
Flash programová paměť v mikrokontrolérech AVR
Program mikrokontroléru je v podstatě jedno velké pole, jehož každá buňka obsahuje jednu montážní instrukci, jedna montážní instrukce zabírá 2 bajty programové paměti. Životnost programové paměti mikrokontrolérů AVR je navržena na 10000 20 cyklů zápisu/mazání a dokáže uchovat informace po dobu 85 let při teplotě 100°C a až 25 let při teplotě XNUMX°C.

Registry procesoru mikrokontroléru AVR
Registry jsou „tahouny“ každého mikrokontroléru. Registry se používají k přenosu/čtení/ukládání/zápisu/výpočtu atd. hodnoty proměnných, přechodové adresy atd. jsou periferní zařízení konfigurována a řízena prostřednictvím registrů. Hlavní registry, které se podílejí na výpočtech, monitorování, konfiguraci a správě periferních zařízení a celého mikrokontroléru, jsou: obecný registrový soubor, stavový registr, programový čítač, ukazatel zásobníku, vstupní/výstupní registry.
Obecný registrový soubor (Obecný registrový soubor) – registrový soubor se skládá z 32 obecných registrů. Tyto registry se používají jako operandy během provádění instrukce. Při programování v C dostane programátor možnost pracovat s proměnnými, které následně překladač umístí do souboru registrů (ROF) nebo RAM mikrokontroléru. Tedy určitá míra abstrakce. Při programování v assembleru pracuje programátor přímo s obecnými registry, adresami RAM atd.
Stavový registr (Stavový registr) – tento registr obsahuje informaci o výsledku provedení předchozí montážní instrukce. Pomocí tohoto výsledku můžete měnit průběh provádění (větvení) programu, tedy činit rozhodnutí v závislosti na výsledku předchozí operace. Aritmetické, logické a bitové operace způsobují změnu stavového registru. Všechny ostatní příkazy assembleru nemění pole stavového registru.
Počítadlo programů (Počítadlo programů) – tento registr obsahuje adresu jedné buňky paměti programu (2 bajty), tj. adresu instrukce sestavení, která musí být extrahována a přenesena pro provedení v dalším taktu. Při přivedení napájecího napětí (mikrokontrolér je zapnutý) je zaručeno, že čítač programu bude obsahovat hodnotu 0 (nula), což znamená, že další příkaz (který bude přenesen k provedení) je umístěn na adrese 0 ( nula) paměti programu, tedy úplně první příkaz . Poté, co byla instrukce vyzvednuta a vydána k provedení, programový čítač načte adresu další instrukce.

V případě podmíněných nebo nepodmíněných větví se do programového čítače načte adresa instrukce, která musí být provedena jako další. Nemá smysl dělat taková „kolotoče“ kvůli jednomu příkazu, často se takové přechody používají k provedení určité posloupnosti příkazů (podprogramů nebo funkcí), což umožňuje šetřit paměť programu a zároveň učinit program čitelnějším; .
Ukazatel zásobníku (Ukazatel zásobníku) – abyste věděli, co je ukazatel zásobníku, musíte vědět, co je zásobník.
Zásobník se používá především k ukládání dočasných dat, jako jsou lokální proměnné (ty, které se nevejdou do obecných registrů) a návratové adresy z podprogramů/přerušení. Je třeba poznamenat, že zásobník je obvykle umístěn v horní části oblasti RAM, počínaje nejnovější RAM buňky (RAM_END). V dolní paměti RAM, počínaje adresou 0x60 datové paměti, jsou globální proměnné, datová pole, konstanty, oblast paměti nazývaná halda, která se používá pro dynamické přidělování paměti atd.
Ukazatel zásobníku jsou dva 8bitové registry, které vždy ukazují na vrchol zásobníku, to znamená, že ukládají adresu poslední proměnné vložené do zásobníku. Data můžete číst/zapisovat pouze na adrese obsažené v ukazateli zásobníku. Zatímco „spodní část“ paměti RAM zůstává nezměněna, zásobník roste směrem k datům uloženým v RAM a může se stát, že data zásobníku přepíší data RAM. Pokud taková situace nastane, bude provádění celého programu narušeno a bude do budoucna nepředvídatelné. Takovým situacím je třeba se vyvarovat a pro jejich předcházení se doporučuje používat co nejméně vnořených funkcí a dočasných proměnných a také neplýtvat RAM, nicméně nedostatek RAM je věčný problém.
I/O registry (I/O registry) – pomocí vstupně/výstupních registrů je realizována konfigurace a ovládání periferních zařízení mikrokontroléru. Při psaní programu lze I/O registry používat jako běžné proměnné. Většina periferních zařízení má řídicí registr, který lze použít ke konfiguraci provozního režimu periferního zařízení, a také stavový registr, který lze použít ke sledování průběhu periferního zařízení.
V kapitole „Souhrn instrukční sady“ v každém datovém listu najdete popis všech instrukcí pro sestavení, včetně toho, které bity stavového registru (Flags) mohou změnit, kolik hodinových cyklů každá instrukce potřebuje ke spuštění (Clocks).

Obrázek 4 ukazuje několik instrukcí pro sestavení, ze kterých si můžete všimnout, že instrukce Branch neovlivňují stavový registr (kromě instrukce reti), a také tyto instrukce jsou vykonávány ve větším počtu hodinových cyklů než ostatní. Můžete zde také vidět, jak funguje počítadlo programu (PC) a ukazatel zásobníku (STACK).