Está en la página 1de 2

// programacion de pic 12f675 en formato general

list p=12f675 ; usare PIC


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

También podría gustarte