You are on page 1of 10

LIST P=16F887

INCLUDE "p16f887.inc"

__CONFIG _CONFIG1, _FOSC_INTRC_NOCLKOUT & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF &
_CPD_OFF & _BOREN_ON & _IESO_ON & _FCMEN_ON & _LVP_OFF

__CONFIG _CONFIG2, _BOR4V_BOR21V & _WRT_OFF

CBLOCK 0X20

d1

d2

d3

d4

d5

d6

ENDC

ORG 0X00

GOTO SETUP

ORG 0X04

RETURN

SETUP

BANKSEL ANSEL

CLRF ANSEL ;SELECCIONA COMO DIGITALES I/O PARA PORTA

BANKSEL PORTA

CLRF PORTA

CLRF PORTC

CLRF PORTD

BANKSEL TRISC
CLRF TRISC ;PORTC SERA SALIDA

CLRF TRISD ;PORTD SERA SALIDA

MOVLW B'11111111'

MOVWF TRISA ;PORTA SERA ENTRADA

BANKSEL PORTC

CLRF PORTA

INICIO

CLRF PORTD

CLRF PORTC

CALL RETARDO2

BTFSS PORTA,0 ;SI RA0 = 0 SE VA A LA SECUENCIA AUTOMATICA

GOTO AUTOMATICO

BTFSS PORTA,3 ;SI RA3 = 0 SE VA LA SECUENCIA MANUAL (ASCENDENTE)

GOTO LED_1

BTFSS PORTA,4 ;SI RA4 = 0 SE VA LA SECUENCIA MANUAL (DESCENDENTE)

GOTO LED_10

GOTO INICIO

RETURN

AUTOMATICO ;INICIO DE LA SECUENCIA AUTOMATICA

MOVLW B'10000000'

MOVWF PORTD

CALL RETARDO

MOVLW B'11000000'

MOVWF PORTD

CALL RETARDO

MOVLW B'11100000'

MOVWF PORTD

CALL RETARDO

MOVLW B'11110000'

MOVWF PORTD
CALL RETARDO

MOVLW B'10000000'

MOVWF PORTC

CALL RETARDO

MOVLW B'11000000'

MOVWF PORTC

CALL RETARDO

MOVLW B'11100000'

MOVWF PORTC

CALL RETARDO

MOVLW B'11110000'

MOVWF PORTC

CALL RETARDO

MOVLW B'11111000'

MOVWF PORTD

CALL RETARDO

MOVLW B'11111100'

MOVWF PORTD

CALL RETARDO

CALL RETARDO

MOVLW B'11111000'

MOVWF PORTD

CALL RETARDO

MOVLW B'11110000'

MOVWF PORTD

CALL RETARDO

MOVLW B'11100000'

MOVWF PORTC

CALL RETARDO

MOVLW B'11000000'

MOVWF PORTC

CALL RETARDO
MOVLW B'10000000'

MOVWF PORTC

CALL RETARDO

MOVLW B'00000000'

MOVWF PORTC

MOVLW B'11110000'

MOVWF PORTD

CALL RETARDO

MOVLW B'11100000'

MOVWF PORTD

CALL RETARDO

MOVLW B'11000000'

MOVWF PORTD

CALL RETARDO

MOVLW B'10000000'

MOVWF PORTD

CALL RETARDO

MOVLW B'00000000'

MOVWF PORTD

CALL RETARDO

RETURN ;FIN DE LA SECUENCIA AUTOMATICA

LED_1 ;INICIO DE LA SECUENCIA MANUAL

CLRF PORTD

CLRF PORTC

MOVLW B'10000000'

MOVWF PORTD

CALL RETARDO2

BTFSS PORTA,3

GOTO LED_2

BTFSS PORTA,4

GOTO LED_10
BTFSS PORTA,0 ;SI SE PRECIONA EL BOTON EN RAO SE CANCELA LA SECUENCIA MANUAL

GOTO INICIO ;EL BOTON PUEDE SER PRESIONADO EN CUALQUIER MOMENTO DE LA SECUENCIA MANUAL

GOTO LED_1

RETURN

LED_2

CLRF PORTD

CLRF PORTC

MOVLW B'11000000'

MOVWF PORTD

CALL RETARDO2

BTFSS PORTA,3

GOTO LED_3

BTFSS PORTA,4

GOTO LED_1

BTFSS PORTA,0

GOTO INICIO

GOTO LED_2

RETURN

LED_3

CLRF PORTD

CLRF PORTC

MOVLW B'11100000'

MOVWF PORTD

CALL RETARDO2

BTFSS PORTA,3

GOTO LED_4

BTFSS PORTA,4

GOTO LED_2

BTFSS PORTA,0

GOTO INICIO

GOTO LED_3

RETURN
LED_4

CLRF PORTD

CLRF PORTC

MOVLW B'11110000'

MOVWF PORTD

CALL RETARDO2

BTFSS PORTA,3

GOTO LED_5

BTFSS PORTA,4

GOTO LED_3

BTFSS PORTA,0

GOTO INICIO

GOTO LED_4

RETURN

LED_5

CLRF PORTD

CLRF PORTC

MOVLW B'10000000'

MOVWF PORTC

MOVLW B'11110000'

MOVWF PORTD

CALL RETARDO2

BTFSS PORTA,3

GOTO LED_6

BTFSS PORTA,4

GOTO LED_4

BTFSS PORTA,0

GOTO INICIO

GOTO LED_5

RETURN

LED_6

CLRF PORTD
CLRF PORTC

MOVLW B'11000000'

MOVWF PORTC

MOVLW B'11110000'

MOVWF PORTD

CALL RETARDO2

BTFSS PORTA,3

GOTO LED_7

BTFSS PORTA,4

GOTO LED_5

BTFSS PORTA,0

GOTO INICIO

GOTO LED_6

RETURN

LED_7

CLRF PORTD

CLRF PORTC

MOVLW B'11100000'

MOVWF PORTC

MOVLW B'11110000'

MOVWF PORTD

CALL RETARDO2

BTFSS PORTA,3

GOTO LED_8

BTFSS PORTA,4

GOTO LED_6

BTFSS PORTA,0

GOTO INICIO

GOTO LED_7

RETURN

LED_8

CLRF PORTD
CLRF PORTC

MOVLW B'11110000'

MOVWF PORTC

MOVLW B'11110000'

MOVWF PORTD

CALL RETARDO2

BTFSS PORTA,3

GOTO LED_9

BTFSS PORTA,4

GOTO LED_7

BTFSS PORTA,0

GOTO INICIO

GOTO LED_8

RETURN

LED_9

CLRF PORTD

CLRF PORTC

MOVLW B'11110000'

MOVWF PORTC

MOVLW B'11111000'

MOVWF PORTD

CALL RETARDO2

BTFSS PORTA,3

GOTO LED_10

BTFSS PORTA,4

GOTO LED_8

BTFSS PORTA,0

GOTO INICIO

GOTO LED_9

RETURN

LED_10

CLRF PORTD
CLRF PORTC

MOVLW B'11110000'

MOVWF PORTC

MOVLW B'11111100'

MOVWF PORTD

CALL RETARDO2

BTFSS PORTA,3

GOTO LED_1

BTFSS PORTA,4

GOTO LED_9

BTFSS PORTA,0

GOTO INICIO

GOTO LED_10

RETURN ;FIN DE LA SECUENCIA MANUAL

RETARDO ;RETARDO DE 1S

movlw 0x08

movwf d1

movlw 0x2F

movwf d2

movlw 0x03

movwf d3

Delay_0

decfsz d1, f

goto $+2

decfsz d2, f

goto $+2

decfsz d3, f

goto Delay_0

goto $+1

nop
RETURN

RETARDO2 ;RETARDO DE 400mS

movlw 0x36

movwf d4

movlw 0xE0

movwf d5

movlw 0x01

movwf d6

Delay_1

decfsz d4, f

goto $+2

decfsz d5, f

goto $+2

decfsz d6, f

goto Delay_1

nop

RETURN

END

You might also like