Fórum témák

» Több friss téma
Cikkek » PIC16F kontroller: Mit tegyek, ha betelt a 2K?
PIC16F kontroller: Mit tegyek, ha betelt a 2K?
Szerző: Hp41C, idő: Feb 17, 2011, Olvasva: 14417, Oldal olvasási idő: kb. 1 perc
Lapozás: OK   2 / 5

Ismétlés

Egy-két részletet mégis kiemelek az adatlapból:

Programmemória szervezése:

A programmemória felosztását az alábbi ábrán láthatjuk.

A hagyományos 16F szériába tartozó kontrollerek programmemóriája 4 lapra (Page0 .. Page3) van felosztva. A felosztás a kontroller utasításainak kódolásával függ össze, a goto és call utasítások ugyanis csak a cél címének alsó 11 bitjét tartalmazzák. Az összetettebb kontrollerek működtetésére a 2K szavas program nem elegendő. A nagyobb programtár-igény miatt több 2K szavas lapot (Page) hoztak létre; a hagyományos 16F szériában maximum 4 db lap található.

Hogyan használható ki a nagy programtár, ha a goto és call utasítás nem tartalmaz elegendő címbitet?

A PIC kontrollerekben a programszámláló felső bitjei közvetlenül nem érhetők el, csak az alsó 8 bitje a PCL regiszterben. A cím felső részét átmeneti regiszterben kell elhelyezni a PCL módosítása előtt. Ez az átmeneti regiszter a PCLATH. Ennek a regiszternek a 4. és 3. bitjét használták fel a programlapok kijelölésének beállítására. Az alábbi ábrán a programszámláló feltöltését láthatjuk a PCL módosításánál és a goto vagy call utasítás végrehajtása során.

Minden goto, vagy call utasítás előtt be kell állítanunk a PCLATH regisztert a cél címének megfelelően. Ha már egyszer egy lapra állítottuk, a lapon belüli ugrásokhoz az értékét nem kell módosítanunk. Ügyelni kell a kiszámított ugrásoknál az érték beállítására. Minden esetben a lapkiválasztó biteket is be kell állítanunk arra a lapra, ahová a kiszámított ugrás táblázatát elhelyeztük. Reset után a PCLATH értéke 0, azaz a 0. lapra (Page0) fognak hivatkozni az ugrások.

Néhány szó az utasításokról:

return/retlw : Ezek az utasítások a belső hardware stack tetejéről az egész 13 bites címet leveszik ,és betöltik a programszámlálóba, a PCLATH regisztert nem módosítják.

retfie : Végrehajtja mindazt, amit a return/retlw, valamint a GIE bitet (INTCON regiszter 7. bitje) 1 -re állítja.

movf : Adatmozgató utasítás, állítja a Z jelzőbitet.

swapf : Felcseréli az adat alsó és felső 4-4 bitjét, nem állít jelzőbitet.

A Globális megszakítás engedélyezése, az INTCON regiszter GIE bitjének 1-re állítása azonnal, az utasítás végrehajtása után érvényre jut.


A cikk még nem ért véget, lapozz!
Következő: »»   2 / 5
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem