;PLANTILLA QUE SEPARA EN EL ARCHIVO AUXILIAR "KEY.inc" ;LA INICIALIZACION DE LOS PUERTOS ;PINGPONCITO.ASM, PROGRAMA QUE REALIZA LA SIGUIENTE FUNCION: ;SI RA4=1 (SW4=OFF), ENCIENDE RB7 Y HACE CORRIMIENTOS HACIA LA DERECHA HASTA ;QUE RB0 ESTE ENCENDIDO. ALLI, EL PROGRAMA PERMANECE EN UN LOOP HASTA QUE EL ;ESTADO DE RA4 CAMBIE. ;SI RA4=0 (SW4=ON), ENCIENDE RB0 Y HACE CORRIMIENTOS HACIA LA IZQUIERDA HASTA ;QUE RB7 ESTE ENCENDIDO. ALLI EL PROGRAMA PERMANECE EN UN LOOP HASTA QUE EL ;ESTADO DE RA4 CAMBIE. ;DESPUES DE CADA CORRIMIENTO SE REALIZA UN RETRASO DE APROXIMADAMENTE 200 MS. include include "KEY.inc" J EQU 0X20 ;LOCALIDADES PARA SUBRUTINA DE RETRASO K EQU 0X21 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 BTFSS RA4 IZQ GOTO LEFT DER GOTO RIGHT LEFT BCF STATUS,C BSF RB0 SEGUIR CALL retro RLF PORTB,f BTFSS RB7 CONTI GOTO SEGUIR PARA BTFSS RA4 GOTO PARA GOTO RIGHT RIGHT BCF STATUS,C BSF RB7 SEGUIR1 CALL retro RRF PORTB,f BTFSS RB0 GOTO SEGUIR1 PARA1 BTFSC RA4 GOTO PARA1 GOTO LEFT ;rutina de retraso de 200 milisegundos            retro: movlw D'255' ; 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