;*************************************************
;Programma che utilizza il display a 7 segmenti
;per indicare il valore dell'interrupt SW3.

	LIST p=16F84			;Tipo di dispositivo

;Area delle etichette
STATUS	EQU	0x03			;Registro di stato
PORTA	EQU	0x05			;Porta a
PORTB	EQU	0x06			;Porta b
RP0	EQU	0x05

	ORG	0			;Vettore di reset
	GOTO	INIZIO			;Salto all'etichetta
	ORG	5			;Saltiamo il vettore di reset

;Inizio programma

INIZIO:	BSF	STATUS,RP0		;mi sposto al banco 1
	CLRF	PORTB			;setto tutte le porte b come uscite
	MOVLW	b'00000100'		;setto la terza porta a come ingresso
	MOVWF	PORTA			;per l'interruttore
	BCF	STATUS,RP0		;torno al banco 0
	
CICLO:	BTFSS	PORTA,2			;controllo l'interruttore
	GOTO	ZERO			;Se il valore binario è zero vado all'etichetta ZERO
	GOTO	UNO			;altrimenti vado all'etichetta UNO

ZERO:	MOVLW	b'00111111'		;Codice 0
	MOVWF	PORTB			;sposto il codice nella porta B che è collegata al display a 7 segmenti
	GOTO	CICLO			;torno al ciclo

UON:	MOVLW	b'00000110'		;Codice 1
	MOVWF	PORTB			;sposto il codice nella porta B che è collegata al display a 7 segmenti
	GOTO	CICLO			;torno la ciclo

	END				;Fine del programma