SORGENTE E VIDEO
- 2 led che lampeggiano per circa 1 secondo in modo alternato
- 1 led fisso acceso
; RB3 E RB5 LAMPEGGIANO ALTERNATIVAMENTE PER 1 SECONDO.
; QUANDO RB3 E' ACCESO RB5 E' SPENTO E VICEVERSA.
; RB7 FISSO ACCESO
#INCLUDE "p16F877A.inc"
LIST P=16F877A, F=INHX8M
__CONFIG 0X3F3A
; DICHIARA LE VARIABILI
RIT1 EQU 22H;
RIT2 EQU 23H;
RIT3 EQU 24H;
;
ORG 00 ; INDIRIZZO INIZIO PROGRAMMA
GOTO INIZIO ; SALTA SUBROUTINE INTERRUPT
ORG 04 ; INDIRIZZO SUBROUTINE INTERRUPT
;
;
;
RETFIE ; RITORNA AL PUNTO IN CUI L'INTERRUPT E' STATO ATTIVATO
INIZIO: ; PROGRAMMA PRINCIPALE, VIENE ESEGUITO DOPO UN RESET O BLACK OUT
; DA QUI IN AVANTI VA SCRITTO IL PROGRAMMA
BCF STATUS,6;
BSF STATUS,5;
MOVLW 0X00;
MOVWF TRISB;
BCF STATUS,5;
MAIN:
BSF PORTB,7; ACCESO FISSO
BSF PORTB,5; ACCESO PER 1 SECONDO
BCF PORTB,3; SPENTO PER 1 SECONDO
CALL DELAY; CHIAMA RITARDO DI 1 SECONDO
BCF PORTB,5; SPENTO PER 1 SECONDO
BSF PORTB,3; ACCESO PER 1 SECONDO
CALL DELAY; CHIAMA RITARDO DI 1 SECONDO
GOTO MAIN; RIPETE CICLO
DELAY:
; SISTEMA VALORE DI PARTENZA VARIABILI
CLRF RIT1;
CLRF RIT2;
MOVLW 0X0A;
MOVWF RIT3;
DELAY1:
; CREA DECREMENTI PER OTTENERE IL RITARDO DI 1 SECONDO (CIRCA)
DECFSZ RIT1,1;
GOTO DELAY1;
DECFSZ RIT2,1;
GOTO DELAY1;
DECFSZ RIT3,1;
GOTO DELAY1;
RETURN;
END ;ISTRUZIONE CHE INDICA AL COMPILATORE CHE E' FINITO IL PROGRAMMA
video del funzionamento del programma su easypic3: