Fórum témák
» Több friss téma |
Cikkek » Nulláról a robotokig - PIC Mikrovezérlők I rész Nulláról a robotokig - PIC Mikrovezérlők I rész
Szerző: Topi, idő: Jún 12, 2007, Olvasva: 119863, Oldal olvasási idő: kb. 3 perc
Íme így néz ki egy 16F877-es belülről:
Ez most remélem elriaszt Bár ha tanultál informatikát (nem a Word kezelésre gondoltam) hanem tényleges PC felépítést, akkor most örülsz, mert nem is idegen annyira. Fontos tudni, hogy ahogy a mai PC-k is, úgy a PIC-ek is sín rendszerrel vannak ellátva. Úgynevezett buszokkal. Ebből 3 fő busz van, cím, utasítás és adatbusz.
ALU: Aritmetikai-Logikai egység, ez a fő számoló rész, a proci lelke. Ez az ábra prímán megérthető egy "paraszt angol tudással" rendelkező embernek is. Alul kis "dobozokban" találhatók az alap működéshez nem feltétlen szükséges modulok. Ilyen a 3 timer (időzítő) a 10-bites Analóg-Digitális átalakító, az EEPROM, CCP modulok (pl. PWM, Compare, stb), SSP vagyis a hardveres soros port SPI, USART. Ebben a cikkben egy 16-os sorozatú PIC-el ismerkedünk meg, amelyik családra igaz, hogy egy utasítás végrehajtásához 4 órajel szükséges. Ez a négy órajel azért szükséges, mert az olyan műveletek, mint a paraméter beolvasás, utasítás-számláló léptetés, regiszter műveletek stb, mind-mind egy órajel hatására történnek. 18-as sorozatú PIC esetén minden egyes alap művelet már csak egyetlen órajelbe telik, ha PLL-t használunk, mivel azzal akár 4-szerezni is lehet az órajelet (Így lesz 40MHz. 10MHzx10). A 877-es RISC processzor, ami a Reduced Instruction Set Computer szavakból képződött, vagyis, csökkentett utasítás készletű számítógép. Összesen 35 utasítást ismer ez a processzor, és bármilyen hihetetlen ez bőven elég. Egy közepes komolyságú, bonyolultságú programnál is jó ha a kétharmadát használjuk. Teljesen mindegy, hogy milyen nyelven programozunk, a végeredmény akkor is egy assembly lesz, tehát még a legbonyolultabb program is képes lefordulni illetve átalakulni olyanná ami csak 35 utasításból áll. Sok compiler olvasható formátumban a projektünk mellé menti a lefordult ASM-et. Minden fordítónál lehet állítani az optimalizálási szintet. Minél kevésbé van optimalizálva a program annál több időt vesz igénybe egy-egy rutin lefutása, és annál kevesebb helyet foglal. Ez a tipikus valamit valamiért eset...
Mindegyik kimenetnél (kivéve egy kettőt) kell állítani a láb irányát. Mikroprocesszorunknál, a láb lehet digitális kimenet, digitális bemenet, és analóg bemenet (PORTA, PORTE). Az, hogy most épp ki- vagy bemenet, azt egy úgynevezett TRIState regiszterrel állítjuk. A TRIS 8 bitje ugyan arra vonatkozik mint a PORT 8 bitje. Ha a TRIS x. bitje 0 akkor kimenet, ha 1 akkor bemenet ez a láb. Persze menet közben is lehet irányt váltani, sőt, elég sűrűn van rá szükség komolyabb alkalmazásoknál.
Itt látszik, hogy a PORTA és a TRISA két külön BANK-en van. Míg 16F84-nél összesen 2 BANK van, addig 16F877-esnél 4 darab van. 84-nél elég egy bit a kettő BANK választására, de 877-nél már kettő kell, hogy lefedje a 4-et. BANK-et váltani a STATUS regiszter RP0 és RP1 bitjével tudunk. A PIC-nek az egyik legfontosabb regisztere a STATUS regiszter. Nem véletlen található meg mindegyik BANK-ben! Nézzük meg milyen fontos BIT-jei vannak a STATUS regiszternek:
IRP: Indirekt címző bit: Pontosan ezért, most megismerkedünk a programozási nyelvekkel és elsőre szétrágjuk az assemblyt... A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |