;USE ESTA PLANTILLA PARA PROGRAMAR EN LOS SISTEMAS EDUPIC O ;EVOLUPIC CON EL MICROCONTROLADOR 16F88 ;SE USAN MACROS PARA ELEGIR LOS BANCOS DE REGISTROS 0 Y 1 ;SE REALIZA LA INICIALIZACION DE LOS PUERTOS A Y B, RA0 SE USA ;PARA ACTIVAR EL RELEVADOR, RA1...RA4 PARA LEER LOS MICROSWITCHES ;RB0...RB7 PARA ENCENDER LOS LEDS. ;LOS REGISTROS CMCON Y CVRCON, ANSEL SE INICIALIZAN PARA PERMITIR EL ;USO DE LOS BITS DEL PUERTO A, YA QUE COMPARTEN LAS SEÑALES, CON LAS ;FUNCIONES DEL VOLTAJE DE REFERENCIA Y LOS COMPARADORES ANALOGICOS ;SE INCLUYE UNA SUBRUTINA DE RETRASO DE APROX 200 MILISEGUNDOS. ;INICIALIZA EL REGISTRO DE CONFIGURACION EN LA DIRECCION 2007H processor 16f88 include ORG 0X2007 DATA 0X3F69 ;PALABRA DE CONFIGURACION 4 MHZ CRISTAL EXTERNO ;RESERVA LOCALIDADES PARA SUBRUTINA DE RETRASO J equ H'20' ; localidad 20 es J K equ H'21' ; localidad 21 es K ;DEFINE NOMBRE DE LOS BITS EN LOS PUERTOS A Y B #DEFINE RA0 PORTA,0 #DEFINE RA1 PORTA,1 #DEFINE RA2 PORTA,2 #DEFINE RA3 PORTA,3 #DEFINE RA4 PORTA,4 #DEFINE RB0 PORTB,0 #DEFINE RB1 PORTB,1 #DEFINE RB2 PORTB,2 #DEFINE RB3 PORTB,3 #DEFINE RB4 PORTB,4 #DEFINE RB5 PORTB,5 #DEFINE RB6 PORTB,6 #DEFINE RB7 PORTB,7 ;MACROS PARA LA SELECCION DE LOS BANCOS DE REGISTROS BANCO0 MACRO BCF STATUS,RP0 BCF STATUS,RP1 ENDM BANCO1 MACRO BSF STATUS,RP0 BCF STATUS,RP1 ENDM ;MACRO PARA INICIALIZACION DE PUERTOS PARA 16F88 PUERTOS MACRO BANCO0 BCF RCSTA,SPEN ;DESHABILITA UART BANCO1 movlw 7 movwf CMCON ;DESHABILITA COMPARADORES ANALOGICOS CLRF CVRCON ;DESHABILITA VOLTAJE DE REFERENCIA CLRF ANSEL ;DESHABILITA CONVERTIDORES MOVLW H'1E' MOVWF TRISA ;RA0=SALIDA,RA1...RA4=ENTRADAS CLRF TRISB ;RB0...RB7=SALIDAS BANCO0 CLRF PORTB ;LEDS APAGADOS BCF RA0 ;DESHABILITA RELEVADOR ENDM ORG 0 ;ORIGEN DEL PROGRAMA EN LA DIRECCION 0 PUERTOS ;MACRO PARA INICIALIZAR LOS PUERTOS DE 16F88 ;aquí empieza el programa del usuario ;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