Está en la página 1de 1

List p=16f877.

inc
include "p16f877.inc"

CONF_ADCON1 equ b '00000110'

org 0x000
nop
nop

bsf STATUS,RP0
BCF STATUS,RP1

movlw CONF_ADCON1
movwf ADCON1

CONF_ADCOND1 EQU b'000001100'


M_PORTB EQU 20
org 0x000 ; origen del codigo
nop ; No operation
nop ; No operation
bsf STATUS,RP0 ; If banco 1
bcf STATUS,RP1

movlw CONF_ADCON1 ; configurar el PORTA como digit


movwf ADCON1

movlw b'00000111' ;RB2-0 entrada RB3 salida


movwf TRISB

bcf STATUS,RP0 ; Ir banco 0


bcf STATUS,RP1

BUCLE
movfw PORTB ; W=PORTB
movwf M_PORTB ; M_PORTB=W
bcf M_PORTB,3 ; limpia el tercer bit

movlw 0x03 ; Comparar con 3


subwf M_PORTB,W ; PORTB-3
btfsc STATUS,Z ; Si Z=0
goto ON ; Ir a encender

movlw 0x05 ; Comparar con 5


subwf M_PORTB,W ; PORTB-5
btfsc STATUS,Z ; si Z=0 (El resultado es no es 0)
goto ON ; Ir a encender

ON bsf PORtB,3 ; RB3=1


nop
goto BUCLE ;Ir bucle
END ; Fin del programa

También podría gustarte