Čitanja portova AVR u si. Studija komandnog sistema AVR mikrokontrolera

Uvođenje

Svi I / O portovi (PVW) AVR mikrokontroleri rade na principu pisanja za čitanje-pisanje kada ih koristite kao portove univerzalnih I / O portova. To znači da će se promjena smjera I / O porta jednog portova portu po SBI i CBI naredbi pojaviti bez lažnih promjena u smjeru I / O dijela drugih linija portnih linija. To se takođe proteže i na promjenu logičke razine (ako je linija porta konfigurirana na izlaz) ili uključiti / onemogući povlačenje otpornika (ako je linija konfigurirana za unos). Svaki izlazni međuspremnik ima simetričnu kontrolu karakteristiku sa visokim tekućim i tekućim izlaznim strujama. Izlazni upravljački program ima nosivost koji vam omogućava direktno upravljanje LED indikatorima. Alternativno selektivno zatezanje otpora za napajanje napajanja može se povezati na sve portne linije, čija otpornost ne ovisi o naponu napajanja. Na svim PVV linijama su instalirane zaštitne diode koje su povezane na VCC i općenito (GND), kao što je prikazano na slici 29. Detaljni popis PVV parametara dat je u odjeljku "Električne karakteristike".

Slika 29 - Ekvivalentni dijagram PVV line

Veze za registre i bitove registara u ovaj odjeljak Daze općenito. Istovremeno, simbol "X" zamjenjuje ime PVV-a, a "N" simbol zamjenjuje PVV pražnjenje. Međutim, prilikom izrade programa morate koristiti tačan oblik snimanja. Na primjer, portur3, što znači kategoriju 3 porta B, u ovom dokumentu bilježi se kao portxn. Adrese fizičkih I / O registara i distribucija njihovih ispusta prikazane su u "opis I / O portova registara".

Za svaki I / O port u I / O memoriji su rezervisana tri ćelije: jedna u registru podataka - Portx, drugi za smjernice podataka - DDRX i treća u državi ulazi u portu - PINX. Stanica koja pohranjuje države u doprinose portova samo je čitljivo, a registri podataka i registri podataka imaju dvosmjerni pristup. Pored toga, postavljanje zatezanja SFIOR PUD-a otpornika za zatezanje PUD-a zatezanje PUD registra onemogućuje se na sve izlaze svih portova.

Ispod je opis I / O porta za univerzalni digitalni I / O. Većina zaključaka porta podržavaju alternativne funkcije ugrađenog periferni uređaji mikrokontroler. Alternativni opis značajki dodatno se pruža u pododjeljku "Alternativne funkcije porta" (vidi također opis funkcija odgovarajućih perifernih modula).

Imajte na umu da za neke portove rezolucija alternativnih funkcija nekih zaključaka nemoguće je koristiti druge izlaze za univerzalni digitalni ulaz-izlaz.

Portovi kao univerzalni digitalni I / O

Svi portovi su dvosmjerni I / O portovi s opcionalnim povlačenjem otpornika. Slika 30 prikazuje dijagram funkcionalne funkcije jedne ulazne izlazne portove, naznačeno kao PXN.


Slika 30 - Organizacija univerzalnog digitalnog I / O (1)

Cca. 1: WPX, WDX, RRX, RPX i RDX signali su uobičajeni unutar jedne luke. CLKI / O, spavanje i pud signali su zajednički za sve portove.

Zaključci postavljanja

Način i stanje za svaki izlaz određuje se vrijednosti odgovarajućih cifara tri registra: DDXN, portxn i PINXN. Kao što je prikazano u "Opisu I / O portova", pristup DDXN bitovima moguć je na DDRX adresi u I / O prostoru i, respektivno, na porxn bitove na porx adresi i PINXN bitovima u PINX-u.

DDXN DDRX DDRX bitovi određuju smjer I / O linije. Ako je DDXN \u003d 1, zatim PXN konfiguriran za prikaz. Ako je DDXN \u003d 0, zatim PXN konfiguriran za unos.

Ako je portxn \u003d 1 Pri konfiguriranju linije porta na unos, priključak je otporan na zatezanje. Da biste isključili ovaj otpornik, morate pisati na portxn dnevnik. 0 ili konfigurirajte liniju porta na izlaz. Tijekom resetiranja svi su portni redovi u trećem (visoko prešanom) stanju, čak i ako sinhronizacija ne radi.

Ako portxn \u003d 1 Pri konfiguriranju linije porta na izlaz, izlazni državi će se odrediti portxn vrijednosti.

Budući da istodobni ulazak u registre DDRX i Portx nije moguć, a zatim kada prelazite između trećeg stanja ((DDXN, portxn) \u003d 0b00) i izlaz dnevnika. 1 (((ddxn, portxn) \u003d 0b11) Treba dogoditi srednje stanje ili sa povezanim otpornikom zatezanja ((ddxn, portxn) \u003d 0b01) ili sa izlazom dnevnika. 0 ((ddxn, portxn) \u003d 0b10). U pravilu je tranzicija putem države sa povezivanjem otpornika izvlačenja ekvivalentna izlaznom stanju dnevnika.1, ako je izlaz mikrokontrolera povezan sa unosom velike impedancije. Inače, potrebno je uspostaviti bit SFIOR PUD-a za isključivanje svih otpornika za zatezanje na svim portovima.

Prebacivanje između unosa otpornika i izlaza nizak nivo povezan sa sličnim problemom. Stoga je korisnik prisiljen da koristi ili treće stanje ((DDXN, portxn) \u003d 0b00) ili izlazni dnevnik. 1 ((ddxn, portxn) \u003d 0b11) kao intermedijarni korak.

Tabela 25 sažima radnju kontrolnih signala u izlazni status.

Tabela 25 - Postavljanje izlaza porta

Ddxn. Portxn. Pud (u SFior) Ulazni izlaz Otporan na zatezanje Komentar
0 0 X. Ulaz Ne
0 1 0 Ulaz Da PXN će biti trenutni izvor prilikom primjene vanjskog niskog nivoa
0 1 1 Ulaz Ne Treća država (Z-država)
1 0 X. Izlaz Ne Izlazni dnevnik. 0 (tekuća struja)
1 1 X. Izlaz Ne Izlazni dnevnik. 1 (tekuća struja)

Pročitajte status izlaza

Bez obzira na vrijednost DDXN datoteke podataka, status izlaznog izlaza može se intervjuirati putem bit PINXN Registracija. Kao što je prikazano na slici 30, PINXN Registar Bit i zasun okidača prethodi je sinhronizator. Ovaj pristup Omogućuje vam izbjegavanje metastabilnosti ako se promjena izlaza dogodila u blizini interne sinhronizacije. Međutim, ovaj je pristup povezan sa pojavom kašnjenja. Slika 31 prikazuje privremeni dijagram sinhronizacije tokom ankete izvana priključen na izlazni nivo. Trajanje minimalne i maksimalne kašnjenja na distribuciji signala označava se kao TPD, max i TPD, min, respektivno.


Slika 31 - Sinhronizacija tokom istraživanja nivoa primenjena na izlaz

U sljedećim primjerima prikazan je kako instalirati na redak 0 i 1 portom u dnevnik. 1 i na linijama 2 i 3 - zapisnik. 0, kao i kako konfigurirati linije 4 ... 7 Da biste unijeli priključenje otpornika za zatezanje na linijama 6 i 7. Rezultirajuće stanje linija se čita natrag, ali uzimajući u obzir gore navedeno, nop Izjava je omogućena kako bi se osigurala mogućnost da se vratim čitanje samo dodijeljenog stanja nekih zaključaka.

Uzorak koda na sklopu montaže (1) ...; Dopustite mi da povučem i instaliram visoke izlazne razine; Odredite upute ovih linija LDI R16 portova, (1<

Cca. 1: Assembler program koristi dva vremena za minimiziranje vremenskog intervala iz prilagođavanja otpornika izvlačenja na pražnjivima 0, 1, 6 i 7 do ispravne postave smjera smjera koji omogućava dnevnik koji omogućava dnevnik. 0 Na linijama 2 i 3 i zamjenjuju visoku razinu na pražnjivima 0 i 1, formiranim povezivanjem otpornika za zatezanje na visok nivo visokog strujnog upravljačkog programa.

Digitalni rezolucija i režimi za spavanje

Kao što je prikazano na slici 30, ulazni digitalni signal može se ugostiti na ukupni ulaz Schmita okidača. Signal označen na slici kao što je spavanje postavljen kada je mikrokontroler preveden u režim isključivanja, ekonomičan način rada, načina rada i napredni način rada. To izbjegava povećanje trenutne potrošnje ako su neki ulazni signali u plutajućem stanju ili će nivo ulaznog analognog signala biti blizu VCC / 2.

Signal mirovanja zanemaruje se ulazima vanjskih prekida. Ako su zahtjevi za vanjski prekid onemogućeni, spavanje vrijedi za ove zaključke. Spavanje se takođe zanemaruje u nekim drugim ulazima prilikom obavljanja alternativnih funkcija (vidi "Alternativne funkcije porta").

Ako na izlazu vanjskog asinhronog prekida, konfiguriran za prekid povećanja prednjeg, padajućih prednjih ili bilo koje promjene, postoji nivo dnevnika. 1 I istovremeno vanjski prekid nije dozvoljen, odgovarajuća zastava vanjskog prekida bit će postavljena na izlazu na gore navedeni mod mirovanja, jer Ulazna shont funkcija u načinu miranja rezultira logičkim promjenama.

Nekonvencionirani zaključci

Ako nekoliko zaključaka ostane neiskorišteno, preporučuje se garantirati prisustvo određenog logičkog nivoa. Uprkos činjenici da je većina digitalnih ulaza onemogućena u dubokom mirovanju, kao što je gore opisano, potrebno je izbjeći plutajuće ulaze kako bi se izbjeglo povećana strujna potrošnja u svim ostalim načinima mikrokontrolera, gdje je dozvoljen digitalni ulaz (resetiranje, aktivni režim i režim mirovanja).

Najjednostavnija metoda garantiranja prisutnosti određene razine na neiskorištenom izlazu je rešavanje veze unutrašnjeg otporanskog zatezanja. Međutim, u ovom slučaju, u resetiranju resetiranja, otpornici za povlačenje bit će onemogućeni. Ako je potrebna niska potrošnja i u resetiranju, potrebno je instalirati vanjski otpor za zatezanje na plus ili minus moć. Povezivanje izlaza direktno na VCC ili GND se ne preporučuje, jer Može postojati opasna struja s slučajnim konfiguracijom takvog izlaza na izlazu podataka.

Kupci su zasnovane na logičkim operacijama koje smo već razmotrili ranije. Oni igraju ključnu ulogu u programiranju AVR mikrokontrolera i drugih vrsta. Gotovo da nema programskih troškova bez upotrebe pretučenih operacija. Prije toga, namjerno smo ih izbjegavali da olakšaju proces proučavanja programiranja MK.

U svim prethodnim člancima programirali smo samo I / O portove a i nisu koristili dodatne ugrađene čvorove, kao što su tajmeri, analogni digitalni pretvarači, prekida i ostali interni uređaji bez kojih MK gubi svu snagu.

Prije nego što nastavite s izradom ugrađenih MK uređaja, morate naučiti kako upravljati ili provjeriti pojedinačne bitove AVR MK registara. Ranije smo izvršili ček ili izvršili ispuštanja odjednom. Hajde da se pozabavimo kakva je razlika, a zatim nastaviti dalje.

Operacije za flaširanje

Najčešće, prilikom programiranja AVR mikrokontrolera, koristili smo jer ima veću vidljivost u odnosu na i jasno za početne programere MK. Na primjer, moramo instalirati samo 3. bit porta D. Za to, kao što već znamo, možete koristiti sljedeći binarni kod:

Portd \u003d 0b00001000;

Međutim, 3. kategoriju postavili smo ovom timu, a svi ostali (0, 1, 2, 4, 5, 6 i 7.) odbacujemo u nuli. A sada predstavimo situaciju da su 6. i 7. praznici uključeni kao ADC ulazi i u ovom trenutku do odgovarajućih zaključaka MK-a primaju signal sa bilo kojeg uređaja, a na gore navedenu naredbu, resetiramo ove signale. Kao rezultat toga, mikrokontroler ih ne vidi i vjeruje da signali nisu došli. Stoga bismo, umjesto takvog tima trebali primijeniti drugu, što bi instaliralo samo treće bitove po jedinici, a ne utječe na ostale bitove. Za to se obično primjenjuje sljedeća pretučena operacija:

Portd | \u003d (1<<3);

Sintaksa ćemo detaljno opisati u nastavku. A sada još jedan primer. Pretpostavimo da moramo provjeriti status trećeg pražnjenja registra PIND-a, provjerim stanje gumba. Ako se ovo pražnjenje resetira na nulu, onda znamo da se pritisne tipka, a zatim se vrši naredbeni kod koji odgovara stanju pritisnutog gumba. Ranije smo koristili sljedeći unos:

ako (Pind \u003d\u003d 0B00000000)

(bilo koji kod)

Međutim, uz pomoć toga provjeravamo ne odvojene, - 3. i odmah sve bitove registra PInd-a. Stoga, čak i ako se pritisne tipka i željeno pražnjenje, ali u ovom trenutku signal će dobiti signal bilo kojem drugom izlazu porta D, u jednom će se ugraditi odgovarajući život, a stanje u zagradama bit će FALSE. Kao rezultat toga, kod koji se nalazi u kovrčavim zagradama neće se izvoditi čak ni kada se pritisne tipka. Stoga, za provjeru države pojedinog trećeg bita registra PID-a, treba primijeniti serijsku operaciju:

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

(bilo koji kod)

Da biste radili sa zasebnim bitovima mikrokontrolera u programiranju C, postoje s kojom se možete promijeniti ili provjeriti status jednog ili više pojedinačnog bita odmah.

Instaliranje zasebnog bita

Da biste instalirali zaseban bit, na primjer Port D, primenjuje se savijena operacija ili. Bila je ona koju smo koristili na početku članka.

Portd \u003d 0b00011100; // početno značenje

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

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

Portd \u003d\u003d 0b00011101; // rezultat

Ova naredba vrši instalaciju nulte pražnjenja, a preostalo lišće nepromijenjeno.

Na primjer, instalirajte još 6 kategoriju Port D.

Portd \u003d 0b00011100; // početno stanje luke

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

Portd \u003d\u003d 0b01011100; // rezultat

Za snimanje jedinice odmah u nekoliko zasebnih bitova, kao što su nula, šesti i sedmi port B. Sljedeći unos se odnosi.

Portb \u003d 0b00011100; // početno značenje

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

Portb \u003d\u003d 0b1011101; // rezultat

Resetiranje (resetiranje) pojedinačnih bitova

Da biste resetirali zasebnu bit, primjenjuju se tri prethodna pregledna naredbe: .

Resetirajmo 3. kategoriju portc-a i ostavi ostatak nepromjenjiva.

Portc \u003d 0b00011100;

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

Portc \u003d\u003d 0b00010100;

Izvršite slične akcije za 2. i četvrto kategorije:

Portc \u003d 0b00111110;

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

Portc \u003d\u003d 0b00101010;

Bit prebacivanje

Pored instalacije i resetiranja koristi se i korisna naredba, koja prebacuje zasebno u suprotno stanje: jedna u nuli i obrnuto. Ova logička operacija široko se koristi u izgradnji različitih rasvjetnih efekata, na primjer, poput novogodišnjeg vijenca. Razmotrite primjer porta

Porta \u003d 0b00011111;

Porta ^ \u003d (1<<2);

Porta \u003d\u003d 0b00011011;

Promijenite stanje nule, drugog i šestog bita:

Porta \u003d 0b00011111;

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

Porta \u003d\u003d 0b01011010;

Provjerite stanje zasebnog bita. Da vas podsetim da se inspekcija (za razliku od evidentiranja) I / O luke vrši čitanjem podataka iz PIN registra.

Najčešće provjera izvodi jedan od dva ciklusa: ako i dok. Već smo upoznati sa ovim operaterima.

Provjera pražnjenja za prisustvo logičke nule (resetiranje) sa ako.

ako (0 \u003d\u003d (Pind & (1<<3)))

Ako je treća znamenka Port D resetirana, tada se izvrši kod1. U suprotnom, izveden je kod2 šifre.

Slične akcije se izvode sa takvim oblikom snimanja:

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

Provjerite pražnjenje za prisustvo logičke jedinice (instalacija) sa ako.

ako (0! \u003d (Pind & (1<<3)))

ako (Pind & (1<<3))

Gornja dva ciklusa rade na sličan način, ali mogu, zbog fleksibilnosti programskog jezika C, imaju drugačiji oblik snimanja. Rad! \u003d Označava da nije jednak. Ako je treći pražnjenje PD I / O porta (jedinica), izvršen je kod1, ako ne - kod2.

Čeka se bita sa dok

dok (Pind & (1<<5))

CODE1 će se izvršiti dok je postavljena peta kategorija PInd registra. Pri resetiranju, CODE2 će se izvršiti.

Čeka se batalna instalacija sa dok

Ovdje se sintaksa jezika C omogućava pisanje koda s dva najčešća načina. U praksi se primjenjuju obje vrste snimanja.

Jedan od najvažnijih aspekata programiranja mikrokontrolera je raditi sa registrima i lukama. Mikrokontroleri serije AVR imaju nekoliko I / O registara i 32 registra opće namjene. Programer ne može direktno pisati broj u ulaznom / izlazni registar. Umjesto toga, mora napisati broj u registar opće namjene, a zatim kopirati vrijednost ovog registra na I / O registar. Radni registri su označeni kao R1, R2, ..., R31.

Da biste pojednostavili programe pisanja, vrlo je zgodno dati imene registre. Preporučljivo je dati imena koja odgovara pohranjenim informacijama. Na primjer, ako se R16 registar koristi za pohranu privremenih informacija, onda se može nazvati temp. To se radi na sledeći način:

Da ne bi "nazvali" i / o registre i glavne registre mikrokontrolera, dovoljan je na početku programa za povezivanje datoteke zaglavlja koja se odnosi na mikrokontroler. Oni. Neće morati dati imena luka portova, tajmera / brojača itd. Na primjer, ako je program dizajniran za mikrokontroler AT90S8515:

Uključuju "8515def.inc"

Za mikrokontroler AT90S1200, vrlo prvi AVR mikrokontroler, ulazno / izlazni registri imaju brojeve od 0 do 3 dolara (ovisi o modelu MK). Odvojeno možete odabrati portu I / O registre, PINB, portd, Pind (oni imaju abecednu notaciju nakon povezivanja 1200DEF.INC i njihove adrese 18, 16, $ 12, 10 USD - slaže se vrlo teško zadržati digitalne konstante U mojoj glavi, lakše imena slova). Najnoviji mikrokontroleri AVR portovi su mnogo veći, nazivaju se, b, c, d, e ...

Razmotrite lokaciju nalaza popularnog MicroController Attind2313. Noge 2-9, 11 s imenima PD0 - PD7 su port d, slično kao i port B. Imajte na umu da je port B osmog, a port D je sedam.

Luke mogu raditi kao ulazi i kao izlazi. Ako luka radi kao ulaz, a zatim da biste prebrojali vrijednosti, morate pristupiti PINB ili PIND registru - ovisno o tome koji se priključak čita. Ako su neki bonovi visoki nivoi koji odgovaraju dnevniku. "1", tada će odgovarajuće bitove u vrednostima pročitati u "1". Zaključci su u stanju izdržati struju do 20 mA, ali ne vrijedi zaboraviti na ukupnu struju svih luka luke. Postoje ograničenja. Ako se port izlazi, vrijednosti na portu linijama instaliraju se snimanjem odgovarajuće vrijednosti u portu ili portd port. Uspostaviti dnevnik. "1" Na izlazu porta, treba instalirati odgovarajući bit u registru portu ili pordu.

Najvažnija tačka rada sa lukom je da radi sa reženom zasun odgovornim za rad portnih linija na ulaz ili izlaz. Naziv ovog registra DDRX-a, gdje je x port pismo. Da bismo napravili rezultate nogu, moramo napisati odgovarajuće bitove "1". Na primjer, želimo napraviti PB7 port portu u ulazu, a preostale rezultate nogu, zatim za to morate pisati u DDRB vrijednost 0B01111111. Prefiks 0b znači da se broj zabilježi u binarnom obliku. Pri pokretanju, DDRX registar resetiraju, i.e. Sve su noge ulazi. Preporučuje neiskorištene noge u uređaju kako bi napravili ulaze.

Razmislite o jednostavnom programu koji radi sa lukom mikrokontrolera:

Uključuju "8515def.inc"; Spojite datoteku s opisima registra .def Temp \u003d R16 RJMP resetirajte; Vektor tranzicije Pri resetiranju resetiranja: LDI temp, 0B00000011; Odredite PC0 i PC1 kao van DDRC, Temp LDI Temp, 0B00000001; Svjetlimo LED na PC0 out PC0 out, temp u Temp-u, Pinc; Pročitajte nivoe sa porta C ... Petlja :; Glavni ciklus NOP RJMP LOOP

Bit

Čitanje / pisanje

Početna vrijednost

· Bit 7 - Dozvola svih prekida. Da bi se riješili prekidi, ovaj bit mora biti postavljen na stanje 1. Rezolucija određenog prekida vrši registar Eimsk i Timsk prekida. Ako se ovaj bit očisti (\u003d 0), tada se ne obrađuje nijedan prekid. Bitni hardver se briše nakon pojave prekida i instalira se za narednu rezoluciju prekida RETI naredbe.
· Bit 6 - Kopirajte bit očuvanja. Blod i BST bitovi Kopiraj naredbe koriste ovaj bit kao izvor i prijemnik tokom bitaka. Conmand Command Command opće namjene kopiran je na bit t, naredba BLD-a za bit T kopira se u registru opće namjene.
· Bit 5 - Zastava polu-mannenosa. Ukazuje na prijenos između Tetrada prilikom obavljanja niza aritmetičkih operacija.
· Bit 4 - Znak znaka. Bit S ima vrijednost rezultata rada koja isključuje ili (n (+) v) iznad zastava negativne vrijednosti (n) i dodavanja dvije zastava preljeva (V).

· Bit 3 - Dodatak u dva zastava preljeva. Podržava aritmetiku dodataka na dva.
· Bit 2 - Zastava negativne vrijednosti. Ova zastava ukazuje na negativan rezultat niza aritmetičkih i logičkih operacija.
· Bit 1 - Zastava nula vrijednosti. Ova zastava ukazuje na nulu rezultata niza aritmetičkih i logičkih operacija.
· Bit 0 - Transfer zastave. Ova zastava ukazuje na prijenos aritmetičkih i logičkih operacija.

AT90S8535 MicroController ima 4 paralelne I / O portove A, B, C i D.
Port A je 8-bitni dvosmjerni port. Interakcija s portnim a provodi se kroz tri registra u ulaznom / izlazu podataka: Registar podataka - Porta, 1B $ 1B), Registar smjera podataka - DDRA, $ 1A ($ 3A), Registar za unos - Pina, 19 USD (39 USD). Registar PINA pruža samo mogućnost čitanja, a registar Porta i DDRA su mogućnost čitanja i pisanja. Pina Registar nije registar u punom smislu te riječi. Žalba na njega osigurava čitanje fizičkog stanja svakog izlaza porta. Port A služi i za unos analognih A / D signala.

Port Podaci Registrirajte se -Porta

Bit

Čitanje / pisanje

Početna vrijednost

Registar podataka Port podataka A -Ddra

Bit

Čitanje / pisanje

Početna vrijednost

Port a -Pina.

Bit

Čitanje / pisanje

Početna vrijednost

Port B je 8-bitni dvosmjerni I / O port. Kao i luka i interakcija s portom izvedena je kroz tri registre u ulaznom / izlaznom prostoru: registar podataka - portb, $ 18 ($ 38), Registar smjera podataka - DDRB, 17 USD ($ 37) i Registar unosa - PINB, 16 USD (36 USD). PINB Registar pruža samo čitanje. PINB Registar nije registar u punom smislu te riječi. Žalba na njega osigurava čitanje fizičkog stanja svakog izlaza porta. Slike porta u mogu obavljati alternativne funkcije označene u tablici. 2.1.

Tabela 2.1. Alternativne funkcije nalaza luka u

Izlaz po luku

Alternativna funkcija

T0 - TIMER / TIMER / PRIRODNI TIJELNI ULAZ 0

T1 - TIMER CLOCK ULAZ / METER 1

Ain0 - Zaključak pozitivnog upoređivača

Ain1 - Zaključak negativnog upoređivača

- Izbor za prijavu SPI

MOSI - Instalacijski olovni izlaz / brzina SPI ulaz

MISO - Instalacijski vodič za prijavu / brzina izlaza SPI

SCK - SPI Clock signal

Pri korištenju zaključaka za alternativne funkcije, portirski registri, DDRB se mora u skladu s tim instalirati.

Registar podataka portaB.Portb.

Bit

Čitanje / pisanje

Početna vrijednost

Registar podataka o režiju Port Port B -DDRB.

Bit

Čitanje / pisanje

Početna vrijednost

Registar za unos podataka B -PINB.

Bit

Čitanje / pisanje

Početna vrijednost

Port C je 8-bitni dvosmjerni I / O port. Takođe, kako se portovi A i u interakciji sa portnom C izvode kroz tri registra u memoriji podataka / izlaza / izlaza: Registar podataka - portnik, $ 15 ($ 35), Registar podataka - DDRC, 14 USD ($) 34) Registar podataka o ulazu - PINC, 13 USD (33 USD). Registar Pinc pruža samo mogućnost čitanja, a portc i DDRC registar su mogućnost čitanja i pisanja. Registar PINC-a nije registar u punom smislu te riječi. Žalba na njega osigurava čitanje fizičkog stanja svakog izlaza porta.
U luci sa samo dva izlaza mogu obavljati alternativne funkcije: PC6 i PC7 zaključci obavljaju funkcije TOSC1 i TOSC2 TIMER / CONTRAL 2.

Registar podataka portaC.Portc.

Bit

Čitanje / pisanje

Početna vrijednost

Registar režije podataka portu C -DDRC.

Bit

Čitanje / pisanje

Početna vrijednost

Registar za unos podataka C -PINC.

Bit

Čitanje / pisanje

Početna vrijednost

Port D je 8-bitni dvosmjerni I / O port. Takođe, kao i kod portova A, B i sa interakcijom sa portom D, kroz tri registre u ulaznom / izlazu podataka: Registar podataka - portdd, $ 12 ($ 32), REGISTOR - DDRD, 11 USD ($ 31) i unosni registar - PILD, 10 USD (30 USD). Pind Registar pruža čitanje, a portd i DDRD registar čitaju i pišu. Registar Pind nije registar u punom smislu te riječi. Žalba na njega osigurava čitanje fizičkog stanja svakog izlaza porta.
Port D Zaključci mogu obavljati alternativne funkcije navedene u tablici. 2.2.

Tabela 2.2. Alternativne funkcije zaključaka porta D

Izlaz po luku

Alternativna funkcija

Rxd - Uart prijemnik ulaz

TXD - Izlaz predajnika UART-a

INT0 - vanjski prekid ulaz 0

INT1 - vanjski prekid ulaz 1

OC1B - Izlazna usporedba tajmera / brojača 1

OC1A - Izlazna usporedba i tajmer / brojač 1

ICP - TIMER Snimanje okidača 1

OC2 - Poređenje izlaza / brojača / brojača 2

Pri korištenju izlaza za alternativne funkcije, portd, DDRD registar moraju biti u skladu s tim.

Registar podataka portaD.Portd.

Bit

Čitanje / pisanje

Početna vrijednost

Registar podataka portaD.DDRD.

Bit

Čitanje / pisanje

Početna vrijednost

Registar ulaza u portD.Pind.

Bit

Čitanje / pisanje

Početna vrijednost

Budući da je prva koja se razmatrala prva, tada svi studenti prvo čine isti rad na stjecanju studentskih vještina za rad sa laboratorijskim kompleksom. Sa njihovih poslova uvode se u pevm isti problem oduzimanja među 5. 3, prikazan u stavku 1.5.3.1. Nakon sastavljanja programa, piše na MicroController na radnom mjestu i njegov rad pokazuje učitelj.
Nakon takvog poznanstva sa kompleksom, student počne obavljati pojedinačni zadatak. U prisustvu vremena nastavnik može komplicirati pojedinačni zadatak.