TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: Colino en 16 de Noviembre de 2016, 10:45:45

Título: Codigo no funciona
Publicado por: Colino en 16 de Noviembre de 2016, 10:45:45
Holá buenos dias

Por que no funciona este codigo
; use PIC12F675   clock  32,7KHZ
   


#include "p12F675.inc"

; CONFIG
; __config 0xF1F8
 __CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_OFF & _MCLRE_ON & _BOREN_ON & _CP_OFF & _CPD_OFF

 
        ; Variaveis
 
count1   equ   0x01
count2  equ     0x0E
count3  equ     0x0F
     
        ; vetor reset
   
   org   0x00
   goto    main


   movlw   B'00001000'
   movwf   0x85      ; configure I/O
   
                               
                ;PREPARA REG DECREMENTAÇÃ0     
main                        
                 ;carrega contador 3     
   BTFSS   0x05,3              ; TESTA GP3 SE ESTÁ  DIA 
        BTFSC   0x05,3              ; TESTA GP3 ESTÁ  NOITE
        GOTO    abrir               ;   ABRE
   GOTO    fechar              ;   FECHA
abrir   
        BCF     0x05,1              ; DESACTIVA RELE 1
   BSF     0x05,2              ; ACTIVA RELE 2
   GOTO    main
fechar 
   movlw   0x7E               
   movwf   count1              ;carrega contador 1
   movlw   0x14
   movwf   count2              ;carrega contador 2
   movlw   0x21
   movwf   count3              ;carrega contador 3 
   nop
   BSF     0x05,0              ; LIGA  A LUZ 
   CALL    delay1              ; ACTIVA ATRASO DE 30 MINUTOS 
        BCF     0x05,2              ; DESACTIVA RELE 2
   BSF     0x05,1              ; ACTIVA RELE 1
   BCF     0x05,0              ; APAGA A LUZ
   GOTO    main
delay1                               ; TEMPORIZAÇÃO DE 30 MINUTOS
               
   decfsz   count1, f           
   goto   $+2
   decfsz   count2, f
   goto   $+2
   decfsz   count3, f
   goto    delay1
   return
   end
Título: Re:Codigo no funciona
Publicado por: Chaly29 en 16 de Noviembre de 2016, 12:20:38
Hola Colino, lo primero que veo es que el sector:

Citar
   movlw   B'00001000'
   movwf   0x85      ; configure I/O

Lo as dejado fuera del main.

Luego te a faltado el LIST y el INCLUDE, no va como lo pusiste:

   LIST             P = 12F675
   INCLUDE      <P12F675.INC>

Y por último, no as seteado ninguno de los registros, algunos influyen en el funcionamiento de los pines.

Un saludo.

Atte. CARLOS.

Título: Re:Codigo no funciona
Publicado por: pibe en 19 de Noviembre de 2016, 22:39:49
Igual parece una mezcla de C desensamblado y asembler. Lo que me llama la atencion es la demora de 30 minutos. Me parece muy alta para 3 bucles .. ahhhh! ahora veo que el reloj es de 32khz.