Čítanie portov AVR v SI. Štúdium príkazového systému AVR Microcontroller

Úvod

Všetky I / O porty (PVW) AVR mikrokontroléry pracujú na princípe čítania-písania, keď ich používate ako porty univerzálnych I / O portov. To znamená, že zmena smeru I / O portu jednej línie portu pomocou príkazov SBI a CBI sa vyskytnú bez falošných zmien v smere I / O časť iných portovných línií. Tým sa tiež rozširuje na zmenu logickej úrovne (ak je portová čiara nakonfigurovaná na výstup) alebo zapnúť / vypnúť odporové odpory (ak je riadok nakonfigurovaný na vstup). Každý výstupný pufor má symetrickú kontrolnú charakteristiku s vysokými tečúcimi a tečúcimi výstupnými prúdmi. Výstupný ovládač má nosnosť, ktorá vám umožní priamo ovládať kontrolky LED. Alternatívne selektívne odporové utiahnutie s výkonom napájania môže byť pripojené k všetkým prístavným líniám, ktorej odolnosť nezávisí od napájacieho napätia. Na všetkých PVV linkách sú nainštalované ochranné diódy, ktoré sú pripojené k VCC a všeobecnému (GND), ako je znázornené na obrázku 29. Podrobný zoznam PVV parametrov je uvedený v časti "Elektrické charakteristiky".

Obrázok 29 - Ekvivalentný diagram PVV

Odkazy na registre a bity registrov v táto časť Všeobecne. Zároveň symbol "X" nahrádza názov PVV a symbol "N" nahrádza číslo vypúšťania PVV. Pri výrobe programu však musíte použiť presnú formu nahrávania. Napríklad PortB3, čo znamená kategóriu 3 portu B, v tomto dokumente sa zaznamenáva ako porXN. Adresy fyzikálnych I / O registre a distribúcia ich vypúšťania sú uvedené v "Popis registrov I / O portov".

Pre každý I / O port v pamäti I / O, sú tri bunky vyhradené: jeden v rámci dátového registra - PORTX, druhý pre register dát - DDRX a tretí v štáte vstupov portov - PINX. Bunka, ktorá ukladá stavy vo vstupoch portov, je čitateľné a dátové registre a dátové registre majú obojsmerný prístup. Okrem toho, nastavenie uťahovania sfior pudovacích uťahovacích odporov dotiahnite register pudy zakáže na všetkých výstupoch všetkých portov.

Nižšie je popis I / O portu pre univerzálny digitálny I / O. Väčšina záverov prístavov podporuje alternatívne funkcie vstavaného periférne zariadenia mikrokontrolér. Alternatívny popis funkcie je ďalej uvedený v podsekcii "alternatívnych portov" (pozri tiež opis funkcií zodpovedajúcich periférnych modulov).

Upozorňujeme, že pre niektoré prístavy, rozlíšenie alternatívnych funkcií niektorých záverov znemožňuje použiť iné výstupy pre univerzálny digitálny vstupný výstup.

Porty ako univerzálne digitálne I / O

Všetky porty sú obojsmerné I / O porty s voliteľnými odporovými odpormi. Obrázok 30 znázorňuje funkčnú schému jedného vstupného portu vstupného výstupu, označeného ako PXN.


Obrázok 30 - Organizácia univerzálnych digitálnych I / O (1)

Približne. 1: WPX, WDX, RRX, RPX a RDX signály sú spoločné v rámci jedného portu. CLKI / O, spánok a signály PUD sú spoločné pre všetky porty.

Nastavenie záverov

Režim a stav pre každý výstup je určený hodnotou zodpovedajúcich číslic troch registrov: DDXN, PORTXN a PINXN. Ako je znázornené na "Popis I / O portovných registrov", prístup k bitom DDXN je možné na adrese DDRX v I / O space a, resp. PortxN bity na portx adrese a pinxn bity na PINX.

DDXN DDRX DDRX BITS Určite smer I / O linku. Ak je DDXN \u003d 1, potom je PXN nakonfigurovaný na zobrazenie. Ak ddxn \u003d 0, potom je PXN nakonfigurovaný na vstup.

Ak je PORTXN \u003d 1 pri konfigurácii línie portu na vstup, je povolené pripojenie uťahovacieho odporu. Ak chcete vypnúť tento odpor, musíte zapisovať do protokolu PORTXN. 0 alebo nakonfigurujte líniu portu k výstupu. Počas resetu sú všetky portové linky v treťom (vysoko stlačenom) stave, aj keď synchronizácia nefunguje.

Ak portxn \u003d 1 pri konfigurácii portovnej linky k výstupu, výstupný stav bude určený pomocou hodnoty PortXN.

Keďže simultánny vstup do registre DDRX a PORTX nie je možný, potom pri prepínaní medzi tretím stavom ((DDXN, PORTXN) \u003d 0B00) a výstupom protokolu. 1 ((((DDXN, PORTXN) \u003d 0B11) Mal by sa vyskytnúť medziľahlý stav alebo s pripojeným uťahovacím odporom ((DDXN, PORTXN) \u003d 0B01) alebo s výstupom protokolu. 0 ((DDXN, PORTXN) \u003d 0B10). Pravidlo je spravidla prechod cez stav s pripojením pružného odporu, je ekvivalentný výstupnému stavu log.1, ak je výstup mikrokontroléra spojený s vysokým impedantným vstupom. V opačnom prípade je potrebné stanoviť bit sfior pud pud, aby vypol všetky uťahovacie odpory na všetkých portoch.

Prepínanie medzi vstupom na utiahnutie odporov a výstupu nízky level s podobným problémom. Preto je užívateľ nútený používať alebo tretí stav ((DDXN, PORTXN) \u003d 0B00) alebo výstupný denník. 1 ((DDXN, PORTXN) \u003d 0B11) ako medziprodukt.

Tabuľka 25 sumarizuje pôsobenie riadiacich signálov na stav výstupu.

Tabuľka 25 - Nastavenie výstupu portu

Ddxn. Porxn. Pud (v sfior) Vstup výstup Uťahovací odpor Komentár
0 0 X. Zaviesť Nie
0 1 0 Zaviesť Áno PXN bude aktuálny zdroj pri aplikácii externej nízkej úrovne
0 1 1 Zaviesť Nie Tretí štát (Z-State)
1 0 X. Výkon Nie Výstupný denník. 0 (tečúci prúd)
1 1 X. Výkon Nie Výstupný denník. 1 (tečúci prúd)

Prečítajte si stav výstupu

Bez ohľadu na hodnotu dátového súboru DDXN, stav výstupu portu môže byť vypočutý cez PINXN Register Bit. Ako je znázornené na obr Tento prístup Umožňuje vyhnúť sa metastility, ak nastala zmena výstupu v blízkosti prednej časti vnútornej synchronizácie. Tento prístup je však spojený s výskytom oneskorenia. Obrázok 31 predstavuje dočasný synchronizačný diagram počas prieskumu externe pripojený k výstupnej úrovni. Trvanie minimálnych a maximálnych oneskorení na distribúcii signálu je indikované ako TPD, max a TPD, min.


Obrázok 31 - Synchronizácia počas prieskumu úrovne uplatňovanej na výstup

V nasledujúcich príkladoch sa ukázalo, ako nainštalovať na tratiach 0 a 1 portu k protokolu. 1 a na riadkoch 2 a 3 - log. 0, ako aj konfigurácia riadkov 4 ... 7 na vstup s pripojením uťahovacích odporov na riadkoch 6 a 7. Výsledný stav čiar je čítaný späť, ale berúc do úvahy vyššie, NOP Vyhlásenie je umožnené zabezpečiť možnosť spätného čítania len pridelený stav niektorých záverov.

Vzorový kód na assembler (1) ...; Dovoľte mi vytiahnuť a nainštalovať vysoké výstupné úrovne; Určite smeru týchto línií portov LDI R16 (1)<

Približne. 1: Program Assembler používa dva časové registre, aby sa minimalizoval časový interval od nastavenia výsuvných rezistorov na vypúšťanie 0, 1, 6 a 7 na správnu inštaláciu smeru smeru smeru, ktorý umožňuje log. 0 na riadkoch 2 a 3 a nahradenie vysokej úrovne vypúšťania 0 a 1, tvorené spojovaním uťahovacích odporov na vysokú úroveň vodiča s vysokým prúdom.

Rozlíšenie digitálneho vstupu a režimy spánku

Ako je znázornené na obrázku 30, vstupný digitálny signál môže byť usporiadaný na celkový vstup SCHMITA TRIGGER. Signál označený na obrázku ako spánku je nastavený, keď je mikrokontrolér preložený do režimu vypínania, ekonomický režim, režim cla a pokročilý režim služby. Tým sa zabráni zvýšeniu aktuálnej spotreby, ak sú niektoré vstupné signály v plávajúcom stave alebo úroveň vstupného analógového signálu bude blízko k VCC / 2.

Signál spánku je ignorovaný vstupmi externých prerušení. Ak sú žiadosti o externé prerušenie zakázané, spánok je platný pre tieto závery. Spánok sa tiež ignoruje pri niektorých iných vstupoch pri vykonávaní ich alternatívnych funkcií (pozri "Alternatívne funkcie portu").

Ak sa na výstupe externého asynchrónneho prerušenia, nakonfigurovaný na prerušenie rastúcej fronty, padajúce predné alebo akúkoľvek zmenu, existuje úroveň denníka. 1 a zároveň externý prerušenie nie je povolené, zodpovedajúca príznak externého prerušenia sa nastaví na výstupe z vyššie uvedených režimov spánku, pretože Funkcia vstupu Shunt v režimoch spánku vedie k logickým zmenám.

Nekonané závery

Ak niektoré závery zostane nevyužité, odporúča sa zaručiť prítomnosť konkrétnej logickej úrovne. Napriek tomu, že väčšina digitálnych vstupov je zakázaná v hlbokom režime spánku, ako je opísané vyššie, je potrebné vyhnúť sa plávajúcemu vstupom, aby sa zabránilo zvýšenej spotrebe prúdu vo všetkých ostatných režimoch mikrokontroléra, kde je digitálny vstup povolený (reset, aktívny režim a režim nečinnosti).

Najjednoduchším spôsobom zaručenia prítomnosti určitej úrovne na nepoužitým výstupom je vyriešenie spojenia vnútorného uťahovacieho odporu. Avšak, v tomto prípade, v režime resetovania, pult-up rezistory budú zakázané. Ak sa vyžaduje nízka spotreba av režime resetovania, je potrebné nainštalovať externý uťahovací odpor na plus alebo mínusovú energiu. Spojovacie výstupy priamo na VCC alebo GND sa neodporúča, pretože Môže existovať nebezpečný prúd s náhodnou konfiguráciou takéhoto výstupu na výstup dát.

Fatchované operácie sú založené na logických operáciách, ktoré sme už považovali za skôr. Hrajú kľúčovú úlohu v programovaní mikrokontrolérov AVR a iných typov. Takmer žiadne náklady na program bez použitia porazených operácií. Predtým sa im úmyselne vyhli, aby sme uľahčili proces štúdia programovania MK.

Vo všetkých predchádzajúcich článkoch sme naprogramovali len I / O porty A a nepoužívali ďalšie vložené uzly, napríklad, ako sú časovače, analógové digitálne konvertory, prerušenia a iné vnútorné zariadenia bez toho, ktoré MK stráca všetku svoju silu.

Pred pokračovaním s vývojom vstavaných zariadení MK sa musíte naučiť, ako spravovať alebo kontrolovať jednotlivé bity registre AVR MK. Predtým sme vykonali kontrolu alebo nastavili vypúšťanie naraz. Poďme sa zaoberať tým, čo je rozdiel, a potom pokračovať ďalej.

Operácie fliaš

Najčastejšie sa pri programovaní mikrokontrolérov AVR používame, pretože má väčšiu viditeľnosť v porovnaní s a dobre jasné pre začiatočníkov programátorov MK. Napríklad musíme inštalovať iba 3. bit portu D. Na to, ako už vieme, môžete použiť nasledujúci binárny kód:

Portd \u003d 0B00001000;

Týmto tímom však nastavíme 3. kategóriu, a všetky ostatné (0, 1, 2, 4, 5, 6 a 7.) Zlikvidujeme v nule. A teraz predložíme situáciu, že 6. a 7. vypúšťanie sú zapojené ako ADC vstupy a v tomto čase na zodpovedajúce závery MK dostanú signál z akéhokoľvek zariadenia, a aplikujeme na príkaz vyššie, resetujte tieto signály. V dôsledku toho ich mikrokontrolér nevidí a verí, že signály neprišli. Preto by sme namiesto takéhoto tímu mali aplikovať inú, ktorá by nainštalovala iba 3. bitov na jednotku, pričom neovplyvnili ostatné bity. Na tento účel sa zvyčajne aplikuje nasledujúca porazená prevádzka:

Portd | \u003d (1<<3);

Syntax Budeme podrobne opíšeme nižšie. A teraz ešte jeden príklad. Predpokladajme, že musíme skontrolovať stav 3. vypúšťania registra PANT, čím skontrolujte stav tlačidla. Ak sa tento výtok resetuje na nulu, potom vieme, že tlačidlo je stlačené a potom sa vykoná príkaz príkazového kódu, ktorý zodpovedá stavu stlačeného tlačidla. Už sme použili nasledujúcu položku:

ak (PIND \u003d\u003d 0B00000000)

(akýkoľvek kód)

Avšak, s pomocou neho, kontrolujeme nie je oddelené, - 3. a okamžite všetky bity registra PANT. Preto, aj keď je tlačidlo stlačené a požadovaný vypúšťanie sa resetuje, ale v tomto čase signál dostane signál na akýkoľvek iný výstup portu D, zodpovedajúci životnosť bude inštalovaný v jednom a stav v zátvorkách bude FALSE. Výsledkom je, že kód umiestnený v kučeravých zátvorkách nebude vykonaný, aj keď je stlačené tlačidlo. Preto, aby sa overil stav individuálneho 3. bitu registra PANT, mala by sa použiť operácia dávky:

ak (~ Pind & (1)<<3))

(akýkoľvek kód)

Ak chcete pracovať so samostatnými bitmi mikrokontroléra v programovom programe C Arsenal, pričom môžete okamžite zmeniť alebo skontrolovať stav jedného alebo viacerých jednotlivých bitov.

Inštalácia samostatného bitov

Ak chcete nainštalovať samostatný bit, napríklad port D, aplikuje sa operácia ohnutá alebo. Bolo to jej, že sme použili na začiatku článku.

Portd \u003d 0B00011100; // Počiatočný význam

PORTD \u003d PORTD | (jeden<<0); применяем побитовую ИЛИ

Portd | \u003d (1<<0); // сокращенная форма записи

Portd \u003d\u003d 0B00011101; // výsledok

Tento príkaz vykonáva inštaláciu nulového výboja a zostávajúce listy nezmenené.

Napríklad, nainštalovať ďalšiu 6. kategóriu portu D.

Portd \u003d 0B00011100; // počiatočný stav prístavu

Portd | \u003d (1<<6); //

Portd \u003d\u003d 0B01011100; // výsledok

Ak chcete jednotku okamžite zaznamenávať do niekoľkých samostatných bitov, ako je nula, šiesty a siedmy port B. Nasledujúci záznam sa vzťahuje.

Portb \u003d 0B00011100; // Počiatočný význam

Portb | \u003d (1<<0) | (1<<6) | (1<<7); //

Portb \u003d\u003d 0B1011101; // výsledok

Reset (reset) jednotlivých bitov

Ak chcete resetovať samostatný bit, použijú sa tri predtým preskúmané príkazy: .

Poďme resetovať 3. kategóriu registra Portc a nechať nezmenený zvyšok.

Portc \u003d 0B00011100;

Portc & \u003d ~ (1<<3);

Portc \u003d\u003d 0B00010100;

Vykonajte podobné akcie pre 2. a 4. kategóriu:

Portc \u003d 0B00111110;

Portc & \u003d ~ ((1)<<2) | (1<<4));

Portc \u003d\u003d 0B00101010;

Bitové spínanie

Okrem inštalácie a resetovania sa použije aj užitočný príkaz, ktorý prepína samostatný bit do opačného stavu: jeden v nule a naopak. Táto logická operácia je široko používaná pri konštrukcii rôznych osvetľovacích účinkov, napríklad Nový rok Garland. Zvážte príklad PORTA

Porta \u003d 0B00011111;

Porta ^ \u003d (1<<2);

Porta \u003d\u003d 0B00011011;

Zmeňte stav nuly, druhý a šiesty bity:

Porta \u003d 0B00011111;

Porta ^ \u003d (1<<0) | (1<<2) | (1<<6);

Porta \u003d\u003d 0B01011010;

Skontrolujte stav samostatného typu. Dovoľte mi pripomenúť, že inšpekcia (na rozdiel od nahrávania) portu I / O sa vykonáva čítaním údajov z registra PIN.

Najčastejšie sa šek vykonáva jeden z dvoch prevádzkovateľov cyklov: ak a kým. S týmito operátormi sme už oboznámení.

Kontrola výtoku na prítomnosť logickej nuly (reset) ak

ak (0 \u003d\u003d (PIND & (1)<<3)))

Ak sa tretia číslica portu d resetuje, potom sa vykoná kód1. V opačnom prípade sa vykonáva Code2.

Podobné akcie sa vykonávajú s takýmito formou záznamu:

ak (~ Pind & (1)<<3))

Skontrolujte vypúšťanie na prítomnosť logickej jednotky (inštalácia) ak

ak (0! \u003d (PIND & (1)<<3)))

ak (Pind & (1)<<3))

Vyššie uvedené dva cykly fungujú podobne, ale môžu vzhľadom na flexibilitu programovacieho jazyka c inú formu nahrávania. Prevádzka! \u003d Označuje nie je rovnaké. Ak je nastavený tretí vypúšťanie portu PD I / O (jednotka), je vykonaný kód1, ak nie - kód2.

Čaká na bity zatiaľ čo

zatiaľ čo (Pind & (1<<5))

CODE1 bude vykonaná, keď je nastavená 5. kategória registra PAND. Pri resetovaní sa vykoná kód 2.

Čakanie na bitovú inštaláciu zatiaľ čo

Syntax jazyka C vám umožňuje písať kód s dvoma najbežnejšími spôsobmi. V praxi sa aplikujú oba typy nahrávania.

Jedným z najdôležitejších aspektov programovania mikrokontroléra je pracovať s registrmi a portami. Mikrokontroléry AVR série majú niekoľko registrov I / O a 32 univerzálny register. Programátor nemôže priamo napísať číslo na vstupný / výstupný register. Namiesto toho musí napísať číslo na univerzálny register a potom skopírovať hodnotu tohto registra do registra I / O. Pracovné registre sú označené ako R1, R2, ..., R31.

Aby ste zjednodušili programy písania, je veľmi výhodné dať názvu registre. Odporúča sa poskytnúť mená zodpovedajúce uloženým informáciám. Ak sa napríklad register R16 používa na ukladanie dočasných informácií, potom sa dá nazývať tepl. Toto sa vykonáva nasledovne:

Aby nebolo "volanie" I / O registre a hlavné registre mikrokontroléra, je dostatočné na začiatku programu na pripojenie súboru hlavičky, ktorý sa vzťahuje na použitý mikrokontrolér. Tí. Nebude musieť dať mená prístavov prístavov, časovača / počítadiel atď. Napríklad, ak je program určený pre mikrokontrolér AT90S8515:

Zahŕňajú "8515def.inc"

Pre mikrokontrolér AT90S1200, prvého mikrokontroléra AVR, vstupné / výstupné registre majú čísla od $ 0 na $ 3F (závisí od modelu MK). Samostatne si môžete vybrať portB I / O registre, PINB, PORTD, PIND (majú abecedný notácia po pripojení 1200def.inc, a ich adresy $ 18, $ 16, $ 12, $ 10 - Súhlasím veľmi ťažké udržať digitálne konštanty V mojej hlave ľahšie mená písiem). Najnovšie mikrokontroléry AVR porty sú oveľa väčšie, nazývajú sa, b, c, d, e ...

Zvážte umiestnenie zistení populárneho mikrokontroléra Attiny2313. Nohy 2-9, 11 s názvami PD0 - PD7 sú port D, podobne ako port B. Upozorňujeme, že port B je osem-bit a port D je sedem.

Porty môžu fungovať ako vstupy a ako výstupy. Ak port funguje ako vstup, potom, aby ste mohli spočítať hodnoty, musíte pristupovať k registru PINB alebo PIND - v závislosti od toho, ktorý port je čítaný. Ak niektoré boroviny sú vysoké úrovne zodpovedajúce log. "1", potom zodpovedajúce bity v hodnotách čítania budú nainštalované v "1". Závery sú schopné odolať súčasným až 20 mA, ale nestojí za zabudnúť na celkový prúd všetkých prístavov prístavu. Existujú obmedzenia. Ak je port výstup, hodnoty na portovných riadkoch sú nainštalované zaznamenaním zodpovedajúcej hodnoty do registra portu PORTB alebo PORTD. Vytvoriť protokol. "1" Pri výstupu portu by mal byť nainštalovaný príslušný bit v registri portb alebo portd.

Najdôležitejším bodom práce s portom je pracovať s registratom západky zodpovedného za prevádzku portovných riadkov na vstup alebo výstup. Názov tohto registra DDRX, kde X je prístavný list. Aby sme urobili výstupy nôh, musíme písať na zodpovedajúce bity "1". Napríklad chceme, aby PB7 port portu vo vchode a zvyšné nohy výstupy potom pre to musíte zapísať do registra DDRB 0B011111111. Predpona 0B znamená, že číslo sa zaznamenáva do binárnej formy. Pri spustení sa registre DDRX resetujú, t.j. Všetky nohy sú vstupy. Odporúčané nepoužité nohy v prístroji na vytvorenie vstupov.

Zvážte jednoduchý program pracujúci s prístavom mikrokontroléra:

Zahŕňajú "8515def.inc"; Pripojte súbor s popisom registra. Def Temp \u003d R16 RJMP Reset; Prechodný vektor pri resetovaní resetovania: LDI Temp, 0B00000011; Určite PC0 a PC1 ako OUT DRRC, TEMP LDI Temp, 0B00000001; Svetlime LED na nohe PC0 OUT PORTC, TEMP IN TPR, PINC; Prečítajte si úrovne z prístavu C ... slučka:; Hlavný cyklus NOP RJMP LOOP

Trocha

Čítanie / písanie

Pôvodná hodnota

· Bit 7 - povolenie všetkých prerušení. Ak chcete vyriešiť prerušenia, tento bit musí byť nastavený na stav 1. Rozlíšenie špecifického prerušenia vykonáva EIMSK a Timsk Intergual Registrom. Ak je tento bit vymazaný (\u003d 0), potom nie je spracovaný žiadny z prerušení. Bitový hardvér sa po výskyte prerušenia a je nainštalovaný pre následné rozlíšenie prerušenia príkazom Reti.
· Bit 6 - Conservation Conservation Bit. BLOD a BST BIT Copy Commands Použite tento bit ako zdroj a prijímač počas bitiek. BST Príkazový bit všeobecného účelu sa skopíruje na bit t, Command Blit T sa skopíruje na bity na všeobecné účely.
· Bit 5 - Flag of Semi-Mannenos. Indikuje prenos medzi Tetrad pri vykonávaní viacerých aritmetických operácií.
· Bit 4 - Znamenie znamenia. Bit S má hodnotu výsledku operácie s výnimkou alebo (N (+) v) nad vlajkami zápornej hodnoty (n) a doplnkov k dvom príznakom prepadnutia (V).

· Bit 3 - prírastok do dvoch pretekárskych vlajok. Podporuje aritmetiku pridávaní na dva.
· Bit 2 - vlajka zápornej hodnoty. Tento príznak označuje negatívny výsledok radu aritmetických a logických operácií.
· Bit 1 - Vlajka nulovej hodnoty. Tento príznak označuje nulový výsledok množstva aritmetických a logických operácií.
· Bit 0 - Transfer Flag. Tento príznak označuje prenos aritmetických a logických operácií.

Mikrokontrolér AT90S8535 má 4 paralelné I / O porty A, B, C a D.
Port A je 8-bitový obojsmerný port. Interakcia s portom A sa vykonáva cez tri registre v dátových vstupných / výstupných priestoroch: Data Register - Porta, $ 1B (3B $), Dátový register DDRA, $ 1A ($ 3A), vstupný dátový register - Pina, $ 19 ($ 39). Register Pina poskytuje iba možnosť čítania a registre Porta a DDRA sú možnosť čítania a písania. Pina Register nie je register v plnom zmysle slova. Odvolanie na to, aby zabezpečil čítanie fyzického stavu každého výstupu portu. Port A tiež slúži na zadanie analógových signálov A / D.

Register údajov portov A -Porta

Trocha

Čítanie / písanie

Pôvodná hodnota

Register údajov údajov portov A -Ddra

Trocha

Čítanie / písanie

Pôvodná hodnota

Prístav A -Pina.

Trocha

Čítanie / písanie

Pôvodná hodnota

Port B je 8-bitový obojsmerný I / O port. Rovnako ako prístav a interakcia s prístavom sa vykonáva cez tri registre v dátových vstupných / výstupných priestoroch: dátový register - portb, $ 18 ($ 38), register Smer dát - DDRB, $ 17 ($ 37) a Vstupný register - PINB, $ 16 ($ 36). Pinb Register poskytuje len čítanie. Pinb Register nie je register v plnom zmysle slova. Odvolanie na to, aby zabezpečil čítanie fyzického stavu každého výstupu portu. Obrázky portu v meste môže vykonávať alternatívne funkcie uvedené v tabuľke. 2.1.

Tabuľka 2.1. Alternatívne funkcie prístavných nálezov

Výstup portu

Alternatívna funkcia

T0 - Timer / Timer / Counter Tail Input 0

T1 - Hodiny časovača / meradlo 1

AIN0 - Záver pozitívneho komparatora

AIN1 - Záver záporného komparátora

- výber prihlásenia SPI

MOSI - Inštalačný výstupný výstup / rýchlosť SPI vstup

MISO - Inštalácia Login / Rýchlostný výstup SPI

SCK - SPI CLOCK SIGNAGE

Pri použití záverov pre alternatívne funkcie musia byť portb registrov, DDRB nainštalovaný zodpovedajúcim spôsobom.

Register dát portuB.Portb.

Trocha

Čítanie / písanie

Pôvodná hodnota

Register dát riadiaceho portu B -DDRB.

Trocha

Čítanie / písanie

Pôvodná hodnota

Vstupný dátový register B -Pinb.

Trocha

Čítanie / písanie

Pôvodná hodnota

Port C je 8-bitový obojsmerný I / O port. Tiež, ako sa porty A a interakcia s portom C vykonávajú cez tri registre v dátovej pamäti / výstup / výstupu priestoru: dátový register - Portc, $ 15 ($ 35), Registrácia smeru údajov - DDRC, $ 14 ($ 34) A Vstupný dátový register - PINW, $ 13 ($ 33). Register Pinc poskytuje len možnosť čítania a portc a DDRC registrov sú možnosť čítania a písania. Register Pinc nie je register v plnom zmysle slova. Odvolanie na to, aby zabezpečil čítanie fyzického stavu každého výstupu portu.
V prístave s iba dvoma výstupmi môžu vykonávať alternatívne funkcie: závery PC6 a PC7 vykonávať funkcie Tosc1 a Tosc2 Timer / Counter 2.

Register dát portuC.Portc.

Trocha

Čítanie / písanie

Pôvodná hodnota

Register údajov o nasmerovaní portov C -DDRC.

Trocha

Čítanie / písanie

Pôvodná hodnota

Register údajov C -PINK.

Trocha

Čítanie / písanie

Pôvodná hodnota

Port D je 8-bitový obojsmerný I / O port. Aj keď v prístavoch A, B as interakciou s portom D, cez tri registre v dátových vstupných / výstupných priestoroch: dátový register - PORTDD, $ 12 ($ 32), DáTový smer register - DDRD, $ 11 ($ 31) a vstupný register - PIND, $ 10 ($ 30). PAND Register poskytuje čítanie a registre portd a DDDRD sú čítanie a písanie. PAND Register nie je register v plnom zmysle slova. Odvolanie na to, aby zabezpečil čítanie fyzického stavu každého výstupu portu.
Závery portu D môže vykonávať alternatívne funkcie uvedené v tabuľke. 2.2.

Tabuľka 2.2. Alternatívne funkcie záverov portov D

Výstup portu

Alternatívna funkcia

RXD - URART prijímač vstup

TXD - URART Vysielačový výstup

INTT0 - VONKAJŠIE INFORMÁCIU 0

INT1 - VONKAJŠIE INTERVÁTY 1

OC1B - Výstupné porovnanie časovača / počítadla 1

OC1A - Porovnanie výstupu a časovač / počítadlo 1

ICP - Times Capture Trigger Entry 1

OX2 - Timer / Counter Produkt Porovnanie výstupu 2

Pri použití výstupov pre alternatívne funkcie musia byť portd, registre DDDDR nainštalované zodpovedajúcim spôsobom.

Register dát portuD.Portd.

Trocha

Čítanie / písanie

Pôvodná hodnota

Register údajov portovD.DDRD.

Trocha

Čítanie / písanie

Pôvodná hodnota

Vstupný register portovD.Pind.

Trocha

Čítanie / písanie

Pôvodná hodnota

Od prvého posudzovania je prvý, potom všetci študenti najprv urobia rovnakú prácu na získavanie študentských zručností pracovať s laboratórnym komplexom. Z ich pracovných miest sa zavádzajú do PEVM rovnaký odčítaný problém z 5. 3, znázorneného v bode 1.5.3.1. Po zostavení programu sa zapisuje na pracovisko mikrokontrolér a jeho práca preukáže učiteľ.
Po takomto známej s komplexom študent začne vykonávať individuálnu úlohu. V prítomnosti času môže učiteľ komplikovať individuálnu úlohu.