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