Reading Ports AVR az SI-ben. Az AVR MicroController parancsrendszer tanulmányozása

Bevezetés

Az összes I / O port (PVW) AVR mikrokontrollerek az olvasásmódos írás elvén dolgoznak, amikor az univerzális I / O portok portjainak használata. Ez azt jelenti, hogy az egyik portvonal I / O portjának az SBI és a CBI parancsok I / O portjának irányának megváltoztatása hamis módosítások nélkül fordul elő más portvonalak I / O része irányába. Ez a logikai szint megváltoztatására is kiterjed (ha a portvonal a kimenetre van konfigurálva), vagy bekapcsolja / letiltja a húzóellenállások (ha a vonal be van kapcsolva). Minden kimeneti puffer szimmetrikus vezérlési jellemzővel rendelkezik, magas áramlási és áramló kimeneti áramokkal. A kimeneti illesztőprogram terhelési kapacitással rendelkezik, amely lehetővé teszi a LED-kijelzők közvetlen vezérlését. Alternatív módon szelektív ellenállás A tápellátás teljesítményének meghúzása minden portvonalhoz csatlakoztatható, amelynek ellenállása nem függ a tápfeszültségetől. Minden PVV vonalon a védődiódákat telepítik, amelyek a VCC-hez és az általános (GND) -hez vannak csatlakoztatva, amint azt a 29. ábra mutatja. A PVV paraméterek részletes listáját az "Elektromos jellemzők" szakasz tartalmazza.

29. ábra - ekvivalens PVV vonalvázlat

Linkek nyilvántartásokra és nyilvántartások bitjére ez a szekció Általában dases. Ugyanakkor az "X" szimbólum helyettesíti a PVV nevét, és az "N" szimbólum helyettesíti a PVV kisülési számát. A programkészítés során azonban a rögzítés pontos formáját kell használnia. Például Portb3, ami azt jelenti, hogy a 3 port kategóriája, ebben a dokumentumban PortXN-ként kerül rögzítésre. A fizikai I / O regiszterek címei és a kibocsátásuk eloszlása \u200b\u200baz "I / O Port Regisztrálók" leírása ".

Az I / O memóriában minden egyes I / O port esetében három cella van fenntartva: az egyik az adatregisztráció alatt - Portx, a másik az adatirányok regisztrálása - DDRX és a harmadik a kikötői bemenetek állapota alatt - PINX. Egy olyan sejt, amely tárolja az államokat a portok bemeneteiben, csak olvasható, és az adatregiszterek és az adatregiszterek kétirányú hozzáféréssel rendelkeznek. Ezenkívül a meghúzási SFIOR PUD PUD \u200b\u200bszigorító ellenállások beállítása A PUD-regiszter meghúzása Letiltja az összes port összes kimenetét.

Az alábbiakban az Univerzális Digital I / O i / o port leírása. A legtöbb kikötő következtetései támogatják a beépített alternatív funkciókat perifériás eszközök mikrokontroller. Alternatív jellemző leírást biztosít az "Alternatív kikötőfunkciók" alszakaszban (lásd még a megfelelő perifériás modulok funkcióinak leírását).

Felhívjuk figyelmét, hogy egyes kikötők, a felbontás alternatív funkcióinak bizonyos következtetéseket lehetetlenné teszi, hogy más kimenetek az univerzális digitális bemenet-kimenet.

Portok univerzális digitális I / O

Minden port kétirányú I / O portok, opcionális pull-up ellenállásokkal. A 30. ábra egy bemeneti kimeneti portvonal funkciódiagramját szemlélteti, amelyet pxnként jeleznek.


30. ábra - Univerzális digitális I / O (1)

Kb. 1: WPX, WDX, RRX, RPX és RDX jelek gyakoriak egy porton belül. A CLKI / O, az alvás és a pud jelek közösek az összes portra.

Következtetések

Az egyes kimenetek módját és állapotát három regiszter: DDXN, PORTXN és PINXN megfelelő számjegyeinek értéke határozza meg. Amint az I / O portregiszterek leírása is látható, a DDXN bitekhez való hozzáférés az I / O térben és a Portx címen lévő Portxn bitek és Pinxn bitek Portxn bitjeiben lehetséges.

A DDXN DDRX DDRX bitek meghatározzák az I / O vonal irányát. Ha DDXN \u003d 1, akkor a PXN konfigurálva van megjelenítésre. Ha DDXN \u003d 0, akkor a PXN be van állítva, hogy belépjen.

Ha PortXN \u003d 1 A portvonal beírásakor be van állítva, a meghúzási ellenállás csatlakoztatása megengedett. Az ellenállás kikapcsolásához írnia kell a PortXN naplóba. 0 vagy konfigurálja a portvonalat a kimenethez. A visszaállítás során minden portvonal a harmadik (nagy préselt) állapotban van, még akkor is, ha a szinkronizálás nem működik.

Ha PortXN \u003d 1 A portvonal kimenethez történő konfigurálásakor a kimeneti állapotot a PortXN érték határozza meg.

Mivel a DDRX és PORTX regiszterek egyidejű bejutása nem lehetséges, akkor a harmadik állam (DDXN, PORTXN) \u003d 0B00) és a napló kimenete között vált. 1 (((DDXN, PortXN) \u003d 0B11) egy köztes állapot előfordul, vagy egy csatlakoztatott meghúzás ellenálláson ((ddxn, portxn) \u003d 0b01), vagy a kimenet a log. 0 ((ddxn, portxn) \u003d 0b10). Általános szabályként az átmenet a felhúzási ellenállás csatlakoztatásával rendelkező állapoton keresztül egyenértékű a log.1 kimeneti állapotával, ha a mikrokontroller kimenete nagy impedancia bemenethez kapcsolódik. Ellenkező esetben meg kell határoznia az SFIOR PUD PUD \u200b\u200bbitet, hogy kikapcsolja az összes kikötő összes meghúzási ellenállását.

Váltás a meghúzási ellenállások és kimenet belépése között alacsony szint hasonló problémával társul. Ezért a felhasználó kénytelen vagy harmadik állam ((DDXN, PORTXN) \u003d 0B00) vagy kimeneti napló. 1 ((ddxn, portxn) \u003d 0b11) közbenső lépésként.

A 25. táblázat összefoglalja a vezérlőjelek hatását a kimeneti állapotba.

25. táblázat - A port kimenetének beállítása

DDXN. Portxn. Pud (SFIOR-ban) Bemenet kimenet Szigorító ellenállás Megjegyzés
0 0 X. Bemenet Nem
0 1 0 Bemenet Igen A PXN lesz az aktuális forrás, ha külső alacsony szintet alkalmaz
0 1 1 Bemenet Nem Harmadik állam (z-állapot)
1 0 X. Kimenet Nem Kimeneti napló. 0 (folyóáram)
1 1 X. Kimenet Nem Kimeneti napló. 1 (folyóáram)

Olvassa el a kimeneti állapotot

Függetlenül attól, hogy az érték a DDXN adatfájlt, a port kimenet állapota lehet interjút a PINXN regiszter kicsit. Amint a 30. ábrán látható, a PINXN regiszter bit és a trigger retesz előzi, hogy szinkronizáló. Ez a megközelítés Lehetővé teszi a metastabilitás elkerülését, ha a kimenet változása a belső szinkronizálás előtt történt. Ez a megközelítés azonban a késedelem előfordulásához kapcsolódik. A 31. ábra ideiglenes szinkronizációs diagramot mutat be a kimeneti szinthez mellékelt felmérés során. A jeleloszlás minimális és maximális késleltetésének időtartama TPD, MAX és TPD, min, illetve.


31. ábra - Szinkronizálás a kimenetre alkalmazott szint felmérése során

A következő példákban megmutatták, hogyan kell telepíteni a kikötő 0 és 1. sorát a naplóba. 1, és a 2. és a 3. sorban - napló. 0, valamint a 6. és 7. vonalak meghúzási ellenállások csatlakoztatásával történő beállítást. A nyilatkozat lehetővé teszi annak biztosítása érdekében, hogy a visszaadási lehetőséget csak az egyes következtetések hozzárendelt állapota.

Minta kód az összeszerelőn (1) ...; Hadd húzzam fel és telepítsem a magas kimeneti szinteket; Határozza meg az LDI R16 portok ezen vonalainak irányát (1<

Kb. 1: A assembler program használja két alkalommal regiszterek minimalizálása az időtartamot, ami a kiigazítás felhúzó ellenállások a bevezetések 0, 1, 6. és 7. a megfelelő telepítés az irányt az irányt az irányt, amely lehetővé teszi a napló. 0 A 2. és 3. vonalakon és a 0 és az 1. kiömlés magas szintjének cseréje, azáltal, hogy a nagy áramerősség magas szintű meghúzási ellenállását összekapcsolja.

Digitális bemeneti felbontás és alvó üzemmódok

Amint az a 30. ábrán látható, a bemeneti digitális jel a teljes Schmita trigger bemenethez rendezhető. Az ábrán az alvásként jelölt jel akkor van beállítva, amikor a mikrokontroller lefordítva van a bekapcsolási módba, gazdaságos üzemmódba, üzemmódba és fejlett üzemmódba. Ezzel elkerülhető a jelenlegi fogyasztás növekedésének, ha bizonyos bemeneti jelek lebegő állapotban vannak, vagy a bemeneti analóg jel szintje közel lesz a VCC / 2-hez.

Az alvójel figyelmen kívül hagyja a külső megszakítások bemeneteit. Ha a külső megszakításra vonatkozó kérelmek le vannak tiltva, az alvás érvényes ezekre a következtetésekre. Az alvást más bemeneteken is figyelmen kívül hagyják alternatív funkciók végrehajtása során (lásd: "Alternatív kikötői funkciók").

Ha a kimeneti külső aszinkron megszakítás kialakítva, hogy szakítsa meg a növekvő front, eső előtt, vagy bármilyen változás, van egy log level. 1 és ugyanakkor a külső megszakítás nem megengedett, a külső megszakítás megfelelő zászlója a fent említett alvási módok kijáratánál kerül beállítva, mert A bemeneti shunt funkció az alvó üzemmódokban logikus változásokat eredményez.

Nem érintett következtetések

Ha több következtetés is fel nem használt, javasoljuk, hogy garantálják egy adott logikai szint jelenlétét. Annak ellenére, hogy a legtöbb digitális bemenetet a fent leírt mély alvási módokban le lehet tiltani, meg kell kerülni a lebegő bemeneteket, hogy elkerüljék a megnövekedett áramfogyasztás növelését a mikrokontroller minden más módjában, ahol a digitális bemenet megengedett (reset, aktív üzemmód és üresjárat).

A legegyszerűbb módszer a nem használt kimeneten lévő bizonyos szintek jelenlétének garantálására szolgál a belső meghúzási ellenállás csatlakoztatásának megoldása. Ebben az esetben azonban a visszaállítási módban a pulóver ellenállások le vannak tiltva. Ha alacsony fogyasztásra van szükség, és reset módban szükség van egy külső meghúzási ellenállást egy plusz vagy egy mínusz teljesítményre. A kimenetek közvetlenül a VCC-hez vagy a GND-hez nem ajánlottak, mert Lehet, hogy veszélyes áram van, amelynek véletlenszerű konfigurációja ilyen kimeneten az adatkimeneten.

A szaggatott műveletek logikai műveleteken alapulnak, amelyeket már korábban már megvizsgáltunk. Kulcsfontosságú szerepet játszanak az AVR mikrokontrollerek programozásában és más típusokban. Szinte nincs programköltség a megvert műveletek használata nélkül. Ezt megelőzően szándékosan elkerültük őket, hogy megkönnyítsük az MK programozásának tanulmányozásának folyamatát.

Minden korábbi cikkben csak I / O portokat programoztunk, és nem használtunk további beágyazott csomópontokat, például az időzítőket, az analóg-digitális átalakítókat, a megszakításokat és más belső eszközöket, amelyek nélkül az MK elveszíti az összes hatalmát.

Mielőtt folytatná a beépített MK eszközök fejlesztését, meg kell tanulnia, hogyan kell kezelni vagy ellenőrizni az AVR MK regiszterek egyedi bitjeit. Korábban egy csekket végeztünk, vagy egyszerre beállítottuk a kibocsátásokat. Foglalkozzunk azzal, hogy mi a különbség, majd tovább.

Palackozási műveletek

Leggyakrabban az AVR mikrokontrollerek programozásakor azért használtuk, mert nagyobb láthatósággal rendelkezik, mint a kezdő programozók mk. Például csak a D. Port 3. bitét kell telepíteni. Ezért már tudjuk, hogy már tudjuk, a következő bináris kódot használhatja:

Portd \u003d 0b00001000;

Azonban beállítottuk a 3. kategóriát a csapat, és minden más (0, 1, 2, 4, 5, 6 és 7.) nulla. És most bemutatjuk azt a helyzetet, hogy a hatodik és a 7. kibocsátás az ADC bemenetek, és ebben az időben az MK megfelelő következtetéseihez jeleznek jelet bármely eszközről, és alkalmaztuk a fenti parancsra, állítsa vissza ezeket a jeleket. Ennek eredményeképpen a mikrokontroller nem látja őket, és úgy véli, hogy a jelek nem jöttek. Ezért egy ilyen csapat helyett egy másikat kell alkalmaznunk, amely csak egy egységenkénti 3RD bitet telepített, miközben nem befolyásolja a többi bitet. Ehhez általában a következő megvert műveletet alkalmazzák:

Portd | \u003d (1<<3);

A szintaxis az alábbiakban részletesen leírjuk. És most még egy példa. Tegyük fel, hogy ellenőrizni kell a Pind Regisztráció 3. kiömlésének állapotát, ezáltal ellenőrizni kell a gomb állapotát. Ha ez a kisülés nullára áll, akkor tudjuk, hogy megnyomja a gombot, majd a parancskódot úgy végezzük, amely megfelel a megnyomott gomb állapotának. Korábban használtuk a következő bejegyzést:

ha (pind \u003d\u003d 0b00000000)

(bármely kód)

Azonban, annak segítségével ellenőrizzük, hogy nem különítünk el, - 3., és azonnal a Pind regiszter összes bitjét. Ezért, még ha a gomb megnyomása és a kívánt mentesítés visszaáll, de ebben az időben, akkor a jelet kap jelet bármely más kimenet a port D, a megfelelő élet lesz telepítve, és az a feltétel zárójelben lesz hamis. Ennek eredményeképpen a göndör zárójelben található kódot még akkor is elvégezheti, ha a gombot megnyomja. Ezért, hogy ellenőrizze a Pind regiszter egyedi 3. bites állapotát, egy kötegelt műveletet kell alkalmazni:

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

(bármely kód)

Ahhoz, hogy a munka külön bit mikrokontroller a C programozási arzenál, vannak, amelyekkel meg lehet változtatni, vagy ellenőrizze az állapotát egy vagy több egyedi bit azonnal.

Egy külön bit telepítése

Egy külön bit telepítéséhez például a D port, hajlított műveletet alkalmazzák vagy. Ez volt, amit a cikk elején használtunk.

Portd \u003d 0b00011100; // kezdeti jelentés

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

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

Portd \u003d\u003d 0B00011101; // eredmény

Ez a parancs végrehajtja a nulla kisülés telepítését, és a fennmaradó levelek változatlanul változnak.

Például telepítse a D. port további 6. kategóriáját.

Portd \u003d 0b00011100; // a kikötő kezdeti állapota

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

Portd \u003d\u003d 0B01011100; // eredmény

Egy egységet azonnal rögzíteni több különálló bitre, például nulla, hatodik és hetedik portra B. A következő bejegyzés érvényes.

Portb \u003d 0B00011100; // kezdeti jelentés

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

Portb \u003d\u003d 0b1011101; // eredmény

Állítsa vissza (reset) egyéni biteket

Egy külön bit visszaállításához három korábban felülvizsgált parancsot alkalmaznak: .

Visszaállítjuk a Portc Regisztráció 3. kategóriáját, és hagyjuk változatlanul a többit.

Portc \u003d 0b00011100;

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

Portc \u003d\u003d 0b00010100;

Hasonló műveleteket hajt végre a 2. és 4. kategóriákhoz:

Portc \u003d 0b00111110;

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

Portc \u003d\u003d 0b00101010;

Bitkapcsolás

A telepítés és a visszaállítás mellett hasznos parancsot is használnak, amely különbé kapcsolja az ellenkező állapotot: egy nulla és fordítva. Ezt a logikai műveletet széles körben használják különböző világítási hatások kialakításában, például az újévi koszorúkat. Tekintsük a Porta példáját

Porta \u003d 0b00011111;

Porta ^ \u003d (1<<2);

Porta \u003d\u003d 0B00011011;

Változtassa meg a nulla, a második és a hatodik bit állapotát:

Porta \u003d 0b00011111;

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

Porta \u003d\u003d 0B01011010;

Ellenőrizze a különálló bit állapotát. Hadd emlékeztessem önöket, hogy az ellenőrző (ellentétben felvétel) Az I / O port végzi az adatok olvasását a PIN-nyilvántartásban.

Leggyakrabban a csekket a két ciklusú operátor egyike végzi: ha és míg. Már ismerjük ezeket az operátorokat.

A kibocsátás ellenőrzése logikai nulla (reset) jelenlétére ha

ha (0 \u003d\u003d (pind & (1<<3)))

Ha a D Port harmadik számjegye visszaáll, akkor a kód1 végrehajtásra kerül. Ellenkező esetben a kód2 végrehajtásra kerül.

Hasonló műveleteket végeznek egy ilyen felvételi formában:

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

Ellenőrizze a lemerülést egy logikai egység (telepítés) jelenlétére ha

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

ha (Pind & (1<<3))

A fenti két ciklus hasonlóan működik, de a C programozási nyelv rugalmasságának köszönhetően eltérő felvételi forma van. Működés! \u003d Nem egyenlő. Ha a PD I / O port harmadik kiáramlása van beállítva (egység), akkor végrehajtott kód1, ha nem - kód2.

Várakozás egy bitre míg

míg (pind & (1<<5))

A kód1 végrehajtásra kerül, míg a Pind regiszter 5. kategóriája van beállítva. Ha visszaállítja, a kód2 végrehajtásra kerül.

Várakozás a Battal telepítésre míg

Itt a C nyelv szintaxisa lehetővé teszi, hogy írjon kódot két leggyakoribb módon. A gyakorlatban mindkét típusú felvételt alkalmazzák.

A mikrokontroller programozás egyik legfontosabb szempontja a nyilvántartások és a kikötőkkel való együttműködés. Az AVR sorozat mikrokontrollerek több I / O regiszterrel és 32 általános célú regiszterrel rendelkeznek. A programozó nem tud közvetlenül írni a számot egy bemeneti / kimeneti regiszterhez. Ehelyett meg kell írnia a számot egy általános célú nyilvántartásba, majd másolja a regiszter értékét az I / O regiszterre. A munkakörülmények R1, R2, ..., R31.

Az írási programok egyszerűsítése érdekében nagyon kényelmes a névregiszterek megadása. Javasoljuk, hogy a tárolt információknak megfelelő neveket adjanak. Például, ha az R16 regisztert ideiglenes információ tárolására használják, akkor a temp. Ez az alábbiak szerint történik:

Annak érdekében, hogy ne "hívja" az I / O regisztert és a mikrokontroller fő nyilvántartásait, elegendő a program elején, hogy csatlakozzon a használt mikrokontrollerre vonatkozó fejlécfájl csatlakoztatásához. Azok. Nem kell megadnia a kikötők, az időzítők / számlálók kikötőinek nevét stb. Például, ha a programot az AT90S8515 mikrokontrollerre tervezték:

"8515def.inc"

Az AT90S1200 mikrokontroller esetében az első AVR mikrokontroller, a bemeneti / kimeneti nyilvántartások száma 0 és $ 3F között van (az MK modelltől függ). Külön-külön, akkor válassza ki a PORTB I / O regiszterek, PINB, PORTD, PIND (ezek ABC jelölést csatlakoztatása után 1200def.inc, és címük $ 18, $ 16, $ 12, $ 10 - Elfogadom nagyon nehéz tartani a digitális állandók fejemben könnyebb betűnevek). A legújabb mikrokontrollerek AVR portjai sokkal nagyobbak, az A, B, C, D, E ...

Fontolja meg a népszerű mikrokontroller Attiny2313 megállapításainak helyét. A 2-9., 11 lábak a PD0-PD7 nevekkel a D port, hasonlóan a B porthoz. Kérjük, vegye figyelembe, hogy a B port nyolc bites, és a D port hét.

A portok bemenetként és kimenetként működhetnek. Ha a port bemenetként működik, akkor az értékek számításához, a PINB vagy a PIND REGISZTRÁCIÓ HOZZÁADÁSA - attól függően, hogy melyik port olvasható. Ha néhány fenyő magas szint a naplónak. "1", akkor az olvasási értékekben lévő megfelelő bitek "1" -ben kerülnek telepítésre. Következtetések képesek ellenállni akár 20 mA, de nem érdemes elfelejteni a kikötő összes kikötőjét. Vannak korlátozások. Ha a port kimenet van, a portvonalakon található értékek a megfelelő érték rögzítésével vannak felszerelve a Portb vagy Portd port regiszterjének. A napló létrehozása. "1" A port kimenetén a Portb vagy Portd regiszter megfelelő bitjét kell telepíteni.

A kikötővel való legfontosabb munkahely az, hogy a portvonalak működéséért felelős reteszregiszterrel dolgozzon a bemenetre vagy a kilépésre. A regiszter neve DDRX, ahol X a port levél. A lábak kimenetének kialakítása érdekében meg kell írnunk a megfelelő biteket "1". Például, azt szeretnénk, hogy a PB7 port a kikötő bejáratánál, és a fennmaradó lábak kimenete van, akkor ezt meg kell írni az DDRB regiszter értékét 0B01111111. A 0b prefix azt jelenti, hogy a szám bináris formában van rögzítve. A DDRX regiszterek indításakor visszaállnak, vagyis Minden láb bemenet. Ajánlott fel nem használt lábak a készülékben, hogy bemeneteket készítsenek.

Vegyünk egy egyszerű programot, amely egy mikrokontroller kikötőjével dolgozik:

Tartalmazza a "8515def.inc" -t; Csatlakoztassa a fájlt a regiszter leírásaival .def temp \u003d r16 r1mp reset; Átmeneti vektor, ha visszaállítja: LDI temp, 0b00000011; A PC0 és a PC1 meghatározása DDRC, TEMP LDI TEMP, 0B00000001; Világítjuk a LED-et a PC0-en PORTC-n, a tempóban, a tempóban; Olvassa el a Port C ... LOOP-t :; Fő ciklus NOP RJMP hurok

Bit

Olvasás írás

Kezdő érték

· Bit 7 - Minden megszakítás engedélye. A megszakítások megoldásához ezt a bitet az 1. államba kell állítani. Az egyedi megszakítás felbontását az EIMSK és a Timsk megszakítja a regisztert. Ha ez a bit törlődik (\u003d 0), akkor a megszakítások egyike sem kerül feldolgozásra. A Bit hardver törlődik a megszakítás előfordulása után, és a RETI parancs későbbi megszakítási felbontására telepítve van.
· 6 bit - Cope Copervation Bit. A Blod és a BST bits Copy parancsok ezt a bitet használják forrásként és vevőként a csaták során. Az általános célú BST parancs bitje másolódik a t-re, a b bld parancsot t az általános célú nyilvántartási bitekre másolja.
· Bit 5 - Fél-Mannenos zászlaja. Ez jelzi a Tetrad közötti átvitelt, ha számos aritmetikai műveletet végez.
· Bit 4 - A jel jele. BIT S értéke az eredmény egy művelet kivételével, vagy (n (+) v) a fenti a zászlók a negatív érték (n) és kiegészítéseket a két túlcsordulás jelzőbitet (V).

· Bit 3 - Két túlfolyó zászló mellett. Támogatja a kiegészítések aritmetikáját.
· Bit 2 - negatív értékű zászló. Ez a zászló számos aritmetikai és logikai művelet negatív eredményét jelzi.
· Bit 1 - nulla értékű zászló. Ez a zászló számos aritmetikai és logikai művelet nulla eredményét jelzi.
· Bit 0 - Átviteli zászló. Ez a zászló az aritmetikai és logikai műveletek átadását jelzi.

Az AT90S8535 mikrokontrollernek 4 párhuzamos I / O portja van A, B, C és D.
Az A port egy 8 bites kétirányú port. Kölcsönhatás a port révén hajtják végre, három nyilvántartás az adatok input / output tér: adatregiszter - Porta, $ 1B ($ 3b) adatiránytól Register - DDRA, $ 1A ($ 3A), Input Data Register - Pina, $ 19 (39 dollár). A Pina Regisztráció csak az olvasás lehetősége, és a Porta és a DDRA regiszterek az olvasás és az írás lehetősége. A Pina Regisztráció nem regisztrálás a szó teljes értelmében. A fellebbezés biztosítja, hogy az egyes portkimenet fizikai állapotát olvassa el. Az A port az analóg A / D jelek megadására is szolgál.

Port adatregiszter A -Porta

Bit

Olvasás írás

Kezdő érték

A portadatok adatai nyilvántartása A -Ddra

Bit

Olvasás írás

Kezdő érték

A. port -Pina.

Bit

Olvasás írás

Kezdő érték

A B port 8 bites kétirányú I / O port. Csakúgy, mint a port és a kölcsönhatás a port révén hajtják végre, három nyilvántartás az adatok input / output tér: Az adatok nyilvántartásba - PORTB, $ 18 ($ 38), adatiránytól Register - DDRB, $ 17 ($ 37), és Beviteli regiszter - Pinb, $ 16 ($ 36). A PINB-regiszter csak olvasást biztosít. A PINB-nyilvántartás nem regisztrálás a szó teljes értelmében. A fellebbezés biztosítja, hogy az egyes portkimenet fizikai állapotát olvassa el. A port képei a táblázatban feltüntetett alternatív funkciókat végezhetnek. 2.1.

2.1. Táblázat. A kikötői eredmények alternatív funkciói

Kikötő kimenet

Alternatív funkció

T0 - Időzítő / időzítő / számláló farokbevitel 0

T1 - Időzítőóra bejegyzés / mérő 1

Ain0 - Pozitív komparátor következtetése

Ain1 - Negatív komparátor következtetése

- Bejelentkezés kiválasztása SPI

MOSI - Telepítési vezető / sebesség SPI bemenet

MISO - TELEPÍTÉSI LINE / SPEED OUTPUT SPI

SCK - SPI órajel

Ha következtetések alternatív funkciókat, a PORTB regiszterek DDRB kell telepíteni kell.

Kikötői adatregiszterB.Portb.

Bit

Olvasás írás

Kezdő érték

Regisztrálja a kikötői adatokat B -DDRB.

Bit

Olvasás írás

Kezdő érték

Beviteli adatregiszter B -Pinb.

Bit

Olvasás írás

Kezdő érték

A C port 8 bites kétirányú I / O port. Továbbá, hogy a kikötők A és a kölcsönhatás a C port keresztül hajtják végre három nyilvántartás az adatmemória / kimenet / output tér: Az adatok nyilvántartásba - PortC, $ 15 ($ 35), adatiránytól Register - DDRC, $ 14 ($ 34) és bemeneti adatregisztráció - PINC, 13 $ (33 dollár). A PINK-nyilvántartás csak az olvasás lehetősége, és a Portc és az DDR-nyilvántartások az olvasás és az írás lehetősége. A PINK-nyilvántartás nem nyilvántartás a szó teljes értelmében. A fellebbezés biztosítja, hogy az egyes portkimenet fizikai állapotát olvassa el.
A kikötőben csak két kimenettel végezhet alternatív funkciókat: PC6 és PC7 következtetések végrehajtják a TOSC1 és a TOSC2 időzítő / számláló funkcióit.

Kikötői adatregiszterC.Portc.

Bit

Olvasás írás

Kezdő érték

Regisztrálja a kikötői adatokat C -DDRC.

Bit

Olvasás írás

Kezdő érték

Beviteli adatregiszter C -PINC.

Bit

Olvasás írás

Kezdő érték

A Port egy 8 bites kétirányú I / O port. Emellett az A, B kikötőknél és a D portral való kölcsönhatással, az adatbeviteli / kimeneti térben három regiszteren keresztül: adatregiszter - Portdd, $ 12 ($ 32), adatirány-regiszter - DDRD, $ 11 ($ 31) és bemeneti regiszter - Pind, $ 10 ($ 30). A PIND REGISZTRÁCIÓ REGISZTRÁLHATÓ, ÉS A PORTD ÉS A DDRD regiszterek olvasása és írása. A Regisztráció nem regisztrálás a szó teljes értelmében. A fellebbezés biztosítja, hogy az egyes portkimenet fizikai állapotát olvassa el.
A Port D A következtetések alternatív funkciókat tartalmazhatnak a táblázatban meghatározott alternatív funkciókat. 2.2.

2.2. Táblázat. A kikötői következtetések alternatív funkciói D

Kikötő kimenet

Alternatív funkció

RXD - UART vevő bejárata

TXD - UART adó kimenet

INT0 - Külső megszakítási bemenet 0

INT1 - Kültéri megszakítási bemenet 1

OC1B - Az időzítő / számláló kimeneti összehasonlítása 1

OC1A - Kimeneti összehasonlítás és időzítő / számláló 1

ICP - Timer Capture Trigger bejegyzés 1

OC2 - Időzítő / számláló kimeneti összehasonlító kimenet 2

Ha alternatív funkciókat használ, akkor a portd, a DDRD regisztereket ennek megfelelően kell felszerelni.

Kikötői adatregiszterD.Portd.

Bit

Olvasás írás

Kezdő érték

A kikötői adatok nyilvántartásaD.DDRD.

Bit

Olvasás írás

Kezdő érték

Port bemeneti nyilvántartásD.Pind.

Bit

Olvasás írás

Kezdő érték

Mivel az első, az első, az első, akkor minden diák először ugyanazt a munkát végez a diákok készségeinek megszerzéséhez a laboratóriumi komplexummal való együttműködéshez. Állásaikat a PEVM-ba ugyanazt a kivonási problémát vezették be az 5.5.3. Bekezdésben bemutatott 5.3 közül. A program összeállítása után a Microcontroller munkahelyére íródott, és munkáját a tanár bizonyítja.
Miután egy ilyen ismerős a komplexummal, a hallgató egyéni feladatot végez. Az idő jelenlétében a tanár bonyolíthatja az egyéni feladatot.