12F675 #include <p12f675.inc> __CONFIG _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT ; Configuramos el pic ; _CP_OFF PROTECCION DE CODIGO DESACTIVADA ; _CPD_OFF PROTECCION DE DATOS DESACTIVADA ; _BODEN_OFF RESET POR BROWN_OUT DESACTIVADA, RESET APLICADO SI SE BAJA VDD ; _MCLRE_OFF RESET POR PIN EXTERNO DESACTIVADO ; _WDT_OFF WATCH DOG DESACTIVADO ; _PWRTE_ON RETRASO AL RESET ACTIVADO, MATIENE RESET MIENTRAS SE ESTABILIZA VDD ; _INTRC_OSC_NOCLKOUT OSCILADOR INTERNO ACTIVADO ; ------------------------------------------------------- ; Declaraci�n de variables globales. ; ------------------------------------------------------- count1 equ 0x20 count2 equ 0x21 count3 equ 0x22 ; ------------------------------------------------------- ; Ac� apuntara el vector PCL cuando se de reset o se energice el pic. ; ------------------------------------------------------- org 0x00 ; llevamos el puntero a la Direcci�n 00 del pic. goto cuerpo ; saltamos a la l�nea llamada �cuerpo� ; ------------------------------------------------------- cinco ; ------------------------------------------------------- ; retardo de cinco segundos ; ------------------------------------------------------- Nop ; consumimos un ciclo de instrucci�n decfsz count1,f ; decremento el primerm contador goto cinco ; regreso a cinco si count1 no es cero movlw 0xff ; recargo el primer contador movwf count1 decfsz count2,f ; decremento el segundo contador goto cinco ; regreso a cinco si count2 no es cero movlw 0xff ; recargo count2 movwf count2 decfsz count3,f ; decremento el tercer contador goto cinco ; saltare cuando count3 sea cero movlw 0x04 ; este valor movwf count3 return ; -------------------------------------------------------- cuerpo ; ------------------------------------------------------- ; en este punto se entra al cuerpo del c�digo. ; ------------------------------------------------------- ; inicializo los contadores de retardos movlw 0xff movwf count1 movwf count2 movlw 0x11 movwf count3 ; inicializo GPIO bsf STATUS,RP0 ; entro al bank 1 movlw B'00001100' movwf TRISIO ; configuro todos los pines del pic como salidas call 3FFh ; excepto gpo2 y gpo3 movwf OSCCAL ; calibro oscilador interno con valor de fabrica clrf ANSEL ; los puertos trabajaran solo se�ales digitales bcf STATUS,RP0 ; entro al bank 0 movlw b'00010000' movwf INTCON ; habilito las interrupciones movlw 07h movwf CMCON ; apago los comparadores clrf GPIO ; inicializo GPIO ciclo call cinco movlw b'00000001' ; prendo el led movwf GPIO call cinco bsf GPIO,0 ; apago el led goto ciclo end