;------------------------------------------------------------
; Código assembler generado por Niple V5.5.5
; Proyecto: tempo
; Autor: ---
; Fecha: 11/01/2017
; PIC: 12F629
; Velocidad de reloj: Int 4 Mhz
; Descripcion: 
;------------------------------------------------------------


 LIST    P=PIC12F629


_INTRC_OSC_NOCLKOUT   equ  0x3FFC
_WDT_OFF              equ  0x3FF7
_PWRTE_ON             equ  0x3FEF
_MCLRE_OFF            equ  0x3FDF
_BODEN_OFF            equ  0x3FBF
_CPD_OFF              equ  0x3FFF
_CP_OFF               equ  0x3FFF

 __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _BODEN_OFF & _CPD_OFF & _CP_OFF


;------------------------------------------------------------
;                  Declaración de Registros
;------------------------------------------------------------
w                     equ  0x0000
status                equ  0x0003
gpio                  equ  0x0005
pclath                equ  0x000a
cmcon                 equ  0x0019
contador              equ  0x0021
_np_banderas2         equ  0x0022
_np_tiempo            equ  0x0023
_np_tiempo1           equ  0x0025
_np_tiempo2           equ  0x0026
_np_tiempo3           equ  0x0027
trisio                equ  0x0085


;------------------------------------------------------------
;                  Declaración de Bits
;------------------------------------------------------------
c                     equ  0   ;carry / borrow bit
gp0                   equ  0   ;bit 0 del puerto
gp1                   equ  1   ;bit 1 del puerto
rp0                   equ  5   ;registrer bank select bit
rp1                   equ  6   ;registrer bank select bit
z                     equ  2   ;bit cero
tiempo                equ  0   ;


;------------------------------------------------------------
;               Declaración de Registros EEPROM
;------------------------------------------------------------


;------------------------------------------------------------
;                        Inicio
;------------------------------------------------------------

   org 0x00
   goto paso2


;------------------------------------------------------------
;                      programa principal
;------------------------------------------------------------
paso2
   bcf status,rp0                   ;cambiar a banco 0
   clrf contador
   clrf _np_banderas2
   clrf _np_tiempo
   clrf _np_tiempo1
   clrf _np_tiempo2
   clrf _np_tiempo3
   clrf gpio                        ;configurar el puerto a como xxssesss
   movlw b'00000111'
   movwf cmcon
   movlw b'00001000'
   bsf status,rp0                   ;cambiar a banco 1
   movwf trisio
paso3
   bcf status,rp0                   ;cambiar a banco 0
   clrf contador
paso4
   movlw .10                        ;temporizador 10 seg
   call tmp_1_mgc
   incf contador,1
   movf contador,w                  ;si el reg contador > d'57'
   sublw d'57'
   btfsc status,c
   goto paso10
   bsf gpio,gp1
   movf contador,w                  ;si el reg contador = d'60'
   xorlw d'60'
   btfss status,z
   goto paso4                       ;cierra el ciclo
   bcf gpio,gp1
   goto paso3                       ;cierra el ciclo
paso10
   btfss _np_banderas2,tiempo       ;si el bit tiempo = 1
   goto paso13
   bcf _np_banderas2,tiempo
   bsf gpio,gp0
   goto paso4                       ;cierra el ciclo
paso13
   bsf _np_banderas2,tiempo
   bcf gpio,gp0
   goto paso4                       ;cierra el ciclo


;------------------------------------------------------------
;                  Declaración de Subrutinas
;------------------------------------------------------------

tmp_1_mgc
   movwf _np_tiempo
   goto tmp_1_mgc_1
tmp_1_mgc_bucle2
   nop
   nop
   nop
   nop
   nop
   nop
   nop
tmp_1_mgc_1
   movlw .10
   movwf _np_tiempo1
tmp_1_mgc_bucle1
   nop
   nop
   movlw .99
   movwf _np_tiempo2
tmp_1_mgc_bucle0
   nop
   nop
   nop
   movlw .200
   movwf _np_tiempo3
tmp_1_mgc_bucle
   nop
   nop
   decfsz _np_tiempo3,1
   goto tmp_1_mgc_bucle
   nop
   nop
   nop
   decfsz _np_tiempo2,1
   goto tmp_1_mgc_bucle0
   nop
   nop
   nop
   decfsz _np_tiempo1,1
   goto tmp_1_mgc_bucle1
   decfsz _np_tiempo,1
   goto tmp_1_mgc_bucle2
   return



;------------------------------------------------------------
;                  DATOS EN MEMORIA EEPROM
;------------------------------------------------------------
   org  0x2100
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff
   data   0xff

 End