Page 16 - Microcontrolere - Indrumator de laborator
P. 16
#include “xc.inc”
PSECT udata_bank0 ; se declară cinci variabile care vor fi memorate
; în memoria de date, bank-ul 0, în zona de
; locații de uz general, fiecare variabilă ocupă
; un octet
VAR_1: DS 1
VAR_2: DS 1
RES_HIGH: DS 1
RES_LOW: DS 1
COUNT: DS 1
PSECT code
start:
BANKSEL(VAR_1)
CLRF RES_HIGH
CLRF RES_LOW
MOVLW 7h ; 0 ≤ valoarea ≤ 255
MOVWF VAR_1 ; se inițializează VAR_1
MOVLW 3h ; 0 ≤ valoarea ≤ 255
MOVWF VAR_2 ; se inițializează VAR_2
MOVLW 8
MOVWF COUNT
MOVF VAR_1, 0
BCF STATUS, 0
adr_x: RRF VAR_1, 1
BTFSC STATUS, 0
ADDWF RES_HIGH, 1
RRF RES_HIGH, 1
RRF RES_LOW, 1
DECFSZ COUNT, 1
GOTO adr_x
NOP
END start ; Observație. Acest program are la bază un exemplu
; de calcul standard oferit de către compania Microcip.
3.2. Asamblați și link-editați proiectul (funcția build project). Eventualele erori de
sintaxă și format se corectează.
3.3. Se lansează în execuție facilitatea de depanare a proiectului și se urmărește
conținutul zonelor de memorie de date ale microcontrolerului (date de uz general,
registre cu funcții speciale, memoria EEPROM).
3.4. Cu ajutorul setului de instrucțiuni al microcontrolerului PIC16F887 se
determină funcția matematică descrisă în fișierul sursă indicat mai sus, respectiv
rezultatul obținut. Se verifică rezultatul obținut și pentru altă pereche de valori.
13