;
;					ESEMPIO 2.11
;
;				Autore: Mikel Etxebarria
;			(c) Microsystems Engineering (Bilbao)
;
;Esempio per simulazione e/o MicroPIC Trainer
;
;Il Display a 7 segmenti del MicroPIC Trainer
;
;Sul display a catodo comune connesso alla porta B, si vuole visualizzare lo stato
;logico "0" o "1" dell'interruttore RA0. Mediante l'interruttore RA1 si attiva o no il 
;punto decimale.
	
		List	p=16F84		;Tipo di processore
		include	"P16F84.INC"	;Definizioni di registri interni
                    
		org	0x00		;Vettore di Reset
		goto	Inizio

		org	0x05		;Salva il vettore di interrupt

Inizio	        clrf 	PORTB		;Cancella i latch di uscita
		bsf	STATUS,RP0	;Seleziona banco 1
		clrf	TRISB		;Porta B si configura come uscita
		movlw	b'00011111'		
		movwf	TRISA		;Porta A si configura come entrata		
		bcf	STATUS,RP0	;Seleziona banco 0			                                                                         

Loop		clrwdt			;Aggiorna il WDT
		btfsc	PORTA,0		;Controlla RA0
		goto	RA0_es_1	;E'livello "1"
		movlw	b'00111111'
		movwf	PORTB		;Visualizza la cifra 0
		goto 	Test_RA1

RA0_es_1	movlw	b'00000110'
		movwf	PORTB		;Visualizza la cifra 1
					
Test_RA1	btfsc	PORTA,1		;Controlla RA1
		goto	RA1_es_1	;E' a "1"
		bcf	PORTB,7		;Disconnetti punto decimale
		goto	Loop
RA1_es_1:	bsf	PORTB,7		;Attiva punto decimale
		goto	Loop

		end			;Fine del programma principale
