;
;					EJEMPLO 2.11
;
;				Autor: Mikel Etxebarria
;			(c) Microsystems Engineering (Bilbao)
;
;Ejemplo para simulación y/o MicroPIC Trainer
;
;El Display de 7 sedmentos de la MicroPIC Trainer
;
;Sobre el display de cátodo común conectado a la puerta B, se desea visualiza el estado
;lógico "0" o "1" del interruptor RA0. Mediante el interruptor RA1 se activa o no el 
;punto decimal.
	
		List	p=16F84		;Tipo de procesador
		include	"P16F84.INC"	;Definiciones de registros internos
                    
		org	0x00		;Vector de Reset
		goto	Inicio

		org	0x05		;Salva el vector de interrupción

Inicio	        clrf 	PORTB		;Borra los latch de salida
		bsf	STATUS,RP0	;Selecciona banco 1
		clrf	TRISB		;Puerta B se configura como salida
		movlw	b'00011111'		
		movwf	TRISA		;Puerta A se configura como entrada		
		bcf	STATUS,RP0	;Selecciona banco 0			                                                                         

Loop		clrwdt			;Refresca el WDT
		btfsc	PORTA,0		;Chequea RA0
		goto	RA0_es_1	;Es nivel "1"
		movlw	b'00111111'
		movwf	PORTB		;Visualiza el dígito 0
		goto 	Test_RA1

RA0_es_1	movlw	b'00000110'
		movwf	PORTB		;Visualiza el dígito 1
					
Test_RA1	btfsc	PORTA,1		;Chequea RA1
		goto	RA1_es_1	;Está a "1"
		bcf	PORTB,7		;Desconecta punto decimal
		goto	Loop
RA1_es_1:	bsf	PORTB,7		;Activa punto decimal
		goto	Loop

		end			;Fin del programa fuente
