Tudomány és Technika   PIC mikrovezérlők   Adatlapok 

<< Előző oldal   Vissza a tartalomjegyzékhez   Következő oldal >>

 


7.1. A PIC16F505 mikrovezérlő programmemóriája


 

      A PIC16F505 mikrovezérlőbe két teljesen különálló memóriablokk van elhelyezve: a FLASH programmemória és az SRAM adatmemória.
      A PIC16F505 mikrovezérlő programmemóriája 1024 db 12-bites memóriarekeszből áll.
      A programmemória, a programszámláló és a két-szintes hardver verem kapcsolatának blokkvázlata látható a következő ábrán.

A PIC16F505 mikrovezérlő programmemóriája
7.1-1. Ábra

Vissza a lap tetejére

      A 12-bites programmemória a következő részekből áll:
     ˇ 1024-szavas felhasználói memória, amely a mikrovezérlő működtető-programját tárolja (a Reset-vektor által kijelölt utolsó helyen egy MOVLW xx utasítás áll, amely a mikrovezérlő Reset utáni indulásakor a belső RC oszcillátor kalibrációs értékét tölti be a munkaregiszterbe);
     ˇ 4-szavas felhasználói azonosító mező, amely csak programozási üzemmódban érhető el, de ezen memóriarekeszek esetében adattárolásra csak az alsó 4-bites rész használható, a felső nyolc bitet "1"-esekkel kell feltölteni: 1111 1111 xxxx;
     ˇ a belső RC oszcillátor kalibrációs értékét tároló háttérregiszter (404h), amelynek segítségével a felhasználói programmemória törlése után a kalibrációs érték a 3FFh helyre visszaírható (csak programozási üzemmódban érhető el);
     ˇ a konfigurációs szó (7FFh), amely a mikrovezérlő hardverbeállításait határozza meg (csak programozási üzemmódban érhető el).

      Az 1024-szavas programmemória címzését a 10-bites programszámláló (PC) végzi, amelynek az adatmemóriába beágyazott alsó 8 bitje általános adatregiszterként kezelhető. A programszámláló értéke normál sorrendű programfutásnál minden utasításbeolvasás után eggyel nő. A Reset-működés során 3FFh-ra áll be, majd a kalibrációs utasítás beolvasása után túlcsordul 000h-ra és az itt elhelyezett utasítással kezdi a felhasználói program végrehajtását.
      Programelágazások esetén a programmemória-cím alsó része közvetlenül az elágazó utasításból kerül a programszámlálóba, a felső rész értékadása pedig szoftverből történik, az alábbiaknak megfelelően.

      A GOTO utasítás tartalmazza a cím alsó 9-bitjét, a felső bit a STATUS regiszter PA0 bitje, amelyet a felhasználói programnak még a GOTO utasítás kiadása előtt be kell állítania. (A külön kezelendő PA0 bit a programmemóriát két 512-szavas lapra osztja. Lapváltás esetén a PA0 bitet módosítani kell!) A következő ábra a GOTO utasítás címbeállítását mutatja be.

A GOTO utasítás címzése
7.1-2. Ábra

      A CALL szubrutinhívó utasítás és a PCL regiszter közvetlen írásával működő "számított ugrások" csak a memórialapok alsó 8-bites címtartományát (256 szó) képesek elérni, mivel ilyen esetekben a PC 8. bitje automatikusan nullára áll be. A szubrutinhívások és "számított ugrások" címbeállítását mutatja be a következő ábra.

A CALL utasítás címzése
7.1-3. Ábra

      A szubrutinhívásoknak és a "számított ugrásoknak" a programmemória-lapok első 256 szavának valamelyikére (a 000h..0FFh vagy 200h..2FFh címekre) kell irányulnia!
      Szubrutinhívás esetén a visszatérési cím a 2-szintes hardver verembe kerül, amely így két szint mélységű szubrutin-egymásbaágyazódást tesz lehetővé. A verem nem része az adatmemóriának, így nem is írható vagy olvasható szoftveresen, mintahogy a veremmutató sem. A verem állapotáról vagy esetleges túlcsordulásáról a felhasználó nem kap tájékoztatást.
      Szubrutinhívás esetén a normál sorrendű programfutásra való visszatérés nem igényel memórialapozási műveleteket, mivel a veremben a teljes 10-bites visszatérési cím tárolódik.

      A szubrutinhívások és számított ugrások részletes bemutatása és programozási példái megtalálhatók a Kisteljesítményű 8 bites PIC mikrovezérlők Felhasználói Kézikönyvben.

 

  Tudomány és Technika (test@t-es-t.hu)


 

<< Előző oldal   Vissza a tartalomjegyzékhez   Vissza a lap tetejére   Következő oldal >>

 Tudomány és Technika   PIC mikrovezérlők   Adatlapok