Page 15 - Microcontrolere - Indrumator de laborator
P. 15

; resetează în mod automat.
                 GOTO          $ - 1
                 CALL          adr_6         ; Se realizează apelul subrutinei care va
                                            ; prelua în acest caz data recepționată
                                            ; pe potul EUSART al uC PIC16F887.
                 ; În acest caz, după execuția instrucțiunii CALL, numărătorul de program
                 ; PC nu se incrementează în mod automat cu o unitate, ci preia adresa de
                 ; memorie de program cu eticheta adr_6 (salt la o nouă adresă absolută, mai ;
                 mare sau mai mică decât adresa locației de memorie în care se găsește
                 ; instrucțiune a CALL). Se mai remarcă faptul că simultan se va depune pe
                 ; stivă adresa de revenire din subrutină, adică adresa instrucțiunii care
                 ; urmează apelului CALL.
                 GOTO          adr_5         ; se trece la recepționarea unui nou octet
                 END           start
                 …
          adr_6:  MOVF         RCREG, 0
                 BANKSEL(DATA_REC)
                 MOVWF         DATA_REC, 1   ; se preia data și se salvează temporar
                                              ; într-o locație din memoria de date
                                              ; cu eticheta DATA_REC
                 RETURN        ; se execută revenirea din subrutină, caz în care
                               ; registrul PC se încarcă cu adresa instrucțiunii care
                               ; urmează instrucțiunii CALL
          …
          Întrucât  microcontrolerul  dispune  de  o  stivă  organizată  pe  opt  nivele  în  care  sunt
          reținute adrese pentru memoria de program care vor fi încărcate în registrul PC, se pot
          realiza opt apeluri de subrutină imbricate.


               3. Desfășurarea lucrării


             3.1. Cu ajutorul  mediului integrat de dezvoltare MPLAB X IDE oferit de către
          compania  Microcip,  se  creează  un  nou  proiect  care  va  fi  implementat  în  limbaj  de
          asamblare. În directorul „header” al proiectului este inclus fișierul xc.inc, fișier care se
          găsește  în  directorul  compilatorului  XC8.  În  directorul  „surse”  este  încărcat  fișierul
          sursă Test_1.s care are conținutul indicat în continuare. Programul conține majoritatea
          metodelor de adresare ale memoriei program indicate la punctul 2.3. Se analizează pe
          rând situațiile întâlnite pentru accesarea memoriei de program.

                 TITLE “Aplicatia nr. 1”
                 SUBTITLE “Aplicatie de testare a modului de adresare”
                 PROCESSOR 16F887
                 CONFIGURE     WDE = off      ; se pot seta și alți biți de configurare

                                              12
   10   11   12   13   14   15   16   17   18   19   20