;SE USA ARCHIVO AUXILIAR "KEY.inc" PARA ;LA INICIALIZACION DE LOS PUERTOS. ;MANEJA 6 CLAVES EN LOS MICROSWITCHES ;DESPUES DE RESET, REALIZA UNA ACCION ;DISTINTA EN LOS LEDS DEL PUERTO B ;DEPENDIENDO DE LA CLAVE include include "KEY.inc" J EQU 0X20 ;LOCALIDADES PARA SUBRUTINA DE RETRASO K EQU 0X21 CLAVE EQU 0X22 ORG 0 CLRF PCLATH ;REQUERIDO POR EL BOOTLOADER TINY GOTO INICIO ;AQUI DEBE HABER UN GOTO AL INICIO DEL PROGRAMA ORG 3 ;REQUERIDO POR EL BOOTLOADER TINY. INICIO PUERTOS ;MACRO PARA INICIALIZAR LOS PUERTOS DE 16F88 ;aquí inicia el programa del usuario movf PORTA,W andlw 0x0E movwf CLAVE sublw B'00000000' btfss STATUS,Z goto CONT1 goto CERO CONT1 movf CLAVE,W sublw B'00000010' btfss STATUS,Z goto CONT2 goto UNO CONT2 movf CLAVE,W sublw B'00000100' btfss STATUS,Z goto CONT3 goto DOS CONT3 movf CLAVE,W sublw B'00000110' btfss STATUS,Z goto CONT4 goto TRES CONT4 movf CLAVE,W sublw B'00001000' btfss STATUS,Z goto CONT5 goto CUATRO CONT5 movf CLAVE,W sublw B'00001010' btfss STATUS,Z sleep goto CINCO CERO clrf PORTB sleep UNO movlw 0xFF movwf PORTB sleep DOS bcf STATUS,C bsf RB7 loop2 rrf PORTB call retro goto loop2 TRES bcf STATUS,C bsf RB0 loop1 rlf PORTB call retro goto loop1 CUATRO bcf STATUS,C bsf RB0 goto izquierda derecha rrf PORTB call retro btfss RB0 goto derecha goto izquierda izquierda rlf PORTB call retro btfss RB7 goto izquierda goto derecha CINCO CLRF PORTB call retro movlw 0xff movwf PORTB call retro goto CINCO ;rutina de retraso de 200 milisegundos            retro: movlw D'250' ; w = 250 decimal movwf J ; J = w jloop: movwf K ; K = w kloop: decfsz K,f ; K = K-1, omite si es cero goto kloop decfsz J,f ; J = J-1, omite si es cero goto jloop return END