;Curso básico de microcontroladores PIC.  --- micropic@lleida.org
;prac_17asm - Muestra en el display el estado lógico del interruptor RA0

	list	p=16F84		;indica al ensamblador el modelo de PIC
	include	"P16F84.inc"	;incluye librería de definiciones para el PIC16F84
	__config	_CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC ;palabra de configuración

	org	0x00		;primera posición de la memoria de programa
	goto	INICIO		;salto a la etiqueta inicio
	org	0x05		;para pasar por encima del vector de interrupción

INICIO	clrf	PORTB		;borra las salidas (apaga display)
	bsf	STATUS,RP0	;Selecciona el banco 1
	clrf	TRISB		;PORTB como salidas
	movlw	b'00011111'	;
	movwf	TRISA		;PORTA como entradas
	bcf	STATUS,RP0	;Vuelve al banco 0

BUCLE	btfsc	PORTA,0		;Comprueba RA0
	goto	ES_1		;RA0 está a 1
	movlw	b'00111111'	;carga W con el cód. 7 segmentos de "0"
	movwf	PORTB		;Visualiza el dígito "0"
	goto	BUCLE		;vuelve a comprobar RA0

ES_1	movlw	b'00000110'		
	movwf	PORTB		;Visualiza el dígito "1"
	goto	BUCLE		;vuelve a comprobar RA0

	end			;fin del programa fuente
