List p=16F886 ;Tipo de procesador
include "P16F886.INC" ;Definiciones de registros internos
;Ajusta los valores de las palabras de configuración durante el ensamblado.Los bits no empleados
;adquieren el valor por defecto.Estos y otros valores se pueden modificar según las necesidades
__config _CONFIG1, _LVP_OFF&_PWRTE_ON&_WDT_OFF&_EC_OSC&_FCMEN_OFF&_BOR_OFF ;Palabra 1 de configuración
__config _CONFIG2, _WRT_OFF ;Palabra 2 de configuración
org 0x00
goto Inicio ;Vector de reset
org 0x05
Inicio clrf PORTB ;Borra los latch de salida
bsf STATUS,RP0
bsf STATUS,RP1 ;Selecciona banco 3
clrf ANSEL ;Puerta A digital
clrf ANSELH ;Puerta B digital
bcf STATUS,RP1 ;Selecciona banco 1
clrf TRISB ;RB7:RB0 se configuran como salida
movlw b'00111111'
movwf TRISA ;RA5:RA0 se configuran como entrada
bcf STATUS,RP0 ;Selecciona banco 0
Loop btfsc PORTA,0 ;RA0 = 1 ??
goto RA0_es_1 ;Si
bcf PORTB,0 ;No, desconecta RB0
bsf PORTB,1 ;Conecta RB1
goto Loop ;Buble sin fin
RA0_es_1 bsf PORTB,0 ;Activa RB0
bcf PORTB,1 ;Activa RB1
goto Loop ;Bucle sin fin
end ;Fin del programa fuente