Page 37 - Microcontrolere - Indrumator de laborator
P. 37
BANKSEL(T2CON)
BSF T2CON, 2 ; sau BSF T2CON, TMR2ON
; se pornește modul Timer2
main_1: BANKSEL(COUNT)
MOVLW 100
MOVWF COUNT ; se setează numărul de repetări
BANKSEL(PORTA)
BSF PORTA, 4 ; la pinul RA4 avem o tensiune de 5V
adr_0: GOTO $
BANKSEL(COUNT)
DECFSZ COUNT, 1
GOTO adr_0
BANKSEL(COUNT)
MOVLW 100
MOVWF COUNT ; se setează numărul de repetări
BANKSEL(PORTA)
BCF PORTA, 4 ; la pinul RA4 avem o tensiune de 0V
adr_1: GOTO $
BANKSEL(COUNT)
DECFSZ COUNT, 1
GOTO adr_1
GOTO main_1
; PSECT rdi, class = CODE, reloc = 2
rdi: ; subrutina de tratare a întreruperii TMR2IF
; are rolul de a șterge bitul TMR2IF după acceptarea întreruperii
BCF INTCON, 7
BANKSEL(PIR1)
BCF PIR1, 1 ; se șterge bitul TMR2IF pentru a putea
; să indice o nouă întrerupere
CLRF TMR2 ; este în același bank cu PIR1
; se asigură val 0 în TMR2 la începutul
; unui nou interval de temporizare
RETFIE ; se revine din rutina de deservire a întreruperii
; cu validarea întreruperilor
; Observație. Linker-ului trebuie să i se dea o comandă suplimentară -Wl,
; -prdi=0x100,-pvector_de_intrerupere=0x0004
END start
3.2. Asamblați și link-editați proiectul (funcția build project) în cadrul mediului de
dezvoltare integrat MPLAB X IDE produs de către compania Microchip. 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).
34