;USE ESTA PLANTILLA PARA PROGRAMAR EN LOS SISTEMAS EDUPIC O ;EVOLUPIC 16F628 ;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 VRCON 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 16f628 include __config _XT_OSC & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _BODEN_OFF & _LVP_OFF ;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 16F628 PUERTOS MACRO BANCO1 CLRF VRCON ;DESHABILITA VOLTAJE DE REFERENCIA MOVLW H'1E' MOVWF TRISA ;RA0=SALIDA, RA1...RA4=ENTRADAS CLRF TRISB ;RB0...RB7=SALIDAS BANCO0 MOVLW 7 MOVWF CMCON ;DESHABILITA COMPARADORES ANALOGICOS BCF RA0 ;RA0=0, DESACTIVA RELEVADOR CLRF PORTB ;LEDS APAGADOS ENDM ORG 0 ;ORIGEN DEL PROGRAMA EN LA DIRECCION 0 PUERTOS ;MACRO PARA INICIALIZAR LOS PUERTOS DE 16F628 ;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