Autor Tema: AYUDA - TEMPORIZADOR PIC16F84  (Leído 2538 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Jhonny

  • PIC10
  • *
  • Mensajes: 3
AYUDA - TEMPORIZADOR PIC16F84
« en: 14 de Julio de 2011, 23:50:27 »
Hola , bueno les cuento que estoy armando un proyecto y tengo problemas con el programa , el problema es que no temporiza ... , una vez que lo grabo y lo pongo en la plaqueta hace todo el proceso lo mas bien pero en una parte del proceso no temporiza.. les paso el codigo para ver si me pueden dar una mano , voy a marcar en rojo la parte que  no funciona , bueno espero que me puedan ayudar , muchas gracias y si tienen algun recomendacion para ayudarme , muchisimas gracias


Citar
; __config _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_on


         processor 16f84a
   include     <p16f84a.inc>
   __config  _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_ON


;------------------------------------------------------------
;                  Declaración de Registros
;------------------------------------------------------------
w                     equ  0x0000
status                equ  0x0003
PORT_A                equ  05h
portb                 equ  0x0006
pclath                equ  0x000a
_np_tiempo            equ  0x000d
_np_tiempo1           equ  0x000f
_np_tiempo2           equ  0x0010
_np_tiempo3           equ  0x0011
trisb                 equ  0x0086


;------------------------------------------------------------
;                  Declaración de Bits
;------------------------------------------------------------
c                     equ  0   ;carry / borrow bit
rp0                   equ  5   ;registrer bank select bit
rp1                   equ  6   ;registrer bank select bit
z                     equ  2   ;bit cero


;------------------------------------------------------------
;               Declaración de Registros EEPROM
;------------------------------------------------------------


;------------------------------------------------------------
;                        Inicio
;------------------------------------------------------------

   org 0
   goto paso2


;------------------------------------------------------------
;                      programa principal
;------------------------------------------------------------
paso2
   bcf status,rp0                   ;cambiar a banco 0
   clrf _np_tiempo
   clrf _np_tiempo1
   clrf _np_tiempo2
   clrf _np_tiempo3


  
   clrf portb
   movlw b'00000000'                ;configurar el puerto b como ssssssss
   bsf status,rp0                   ;cambiar a banco 1
   movwf trisb

   movlw b'00000111' ;configura puerto 'A
   tris PORT_A
   bcf status,rp0  
   movlw h'10'
   movwf PORT_A

   ;Prueba de 5v
pruebadisp
        movlw .1
        call tmp_1_mgc

        btfss PORT_A,d'1'
        goto pruebadisp

        movlw .1                         ;temporizador 3 seg
        call tmp_1_mgc

        btfss PORT_A,d'1'
        goto pruebadisp
        movlw .1  
        call tmp_1_mgc                       ;temporizador 3 seg
        btfss PORT_A,d'1'
        goto pruebadisp
        movlw .2
        call tmp_1_mgc

paso4
led1                        ;Pone Celular en 0
   movlw b'00000001'
   bcf status,rp0                   ;cambiar a banco 0
   movwf portb
   movlw .1                         ;temporizador 3 seg
   call tmp_1_mgc
   movlw b'00000000'
   movwf portb
   movlw .1                      
   call tmp_1_mgc
   movlw b'00000001'
   bcf status,rp0                   ;cambiar a banco 0
   movwf portb
   movlw .1                         ;temporizador 3 seg
   call tmp_1_mgc
   movlw b'00000000'
   movwf portb
   movlw .1                      
   call tmp_1_mgc

led2 ;
   movlw b'00000010'            ;
   bcf status,rp0                   ;cambiar a banco 0
   movwf portb
   movlw .3                         ;temporizador 3 seg
   call tmp_1_mgc

   movlw b'00000000'            
   movwf portb
   movlw .1                          ;Pulso de 1 segundo
   call tmp_1_mgc
led3
   movlw b'00000100'            ;Tiempo de llamado
   movwf portb
   movlw .1                         ;temporizador 3 seg
   call tmp_1_mgc
   ;escribir en el puerto b
   movlw b'00000000'
   movwf portb
   movlw .20                        ;temporizador 20 seg
   call tmp_1_mgc
   movlw b'00000001'            ;
   bcf status,rp0                   ;cambiar a banco 0
   movwf portb
   movlw .1                         ;Pulso de 1 segundo
   call tmp_1_mgc
   movlw b'00000000'
   movwf portb
   movlw .3                      
   call tmp_1_mgc

paso6
led4                        ;
   movlw b'00000001'
   bcf status,rp0                   ;cambiar a banco 0
   movwf portb
   movlw .1                         ;temporizador 3 seg
   call tmp_1_mgc
   movlw b'00000000'
   movwf portb
   movlw .1                      
   call tmp_1_mgc
   movlw b'00000001'
   bcf status,rp0                   ;cambiar a banco 0
   movwf portb
   movlw .1                         ;temporizador 3 seg
   call tmp_1_mgc
   movlw b'00000000'
   movwf portb
   movlw .1                      
   call tmp_1_mgc

led5
   movlw b'00001000'            
   bcf status,rp0                   ;cambiar a banco 0
   movwf portb
   movlw .3                         ;temporizador 3 seg
   call tmp_1_mgc


   movlw b'00000000'            
   movwf portb
   movlw .1                          ;Pulso de 1 segundo
   call tmp_1_mgc
led6
   movlw b'00000100'            
   movwf portb
   movlw .1                         ;temporizador 3 seg
   call tmp_1_mgc
   ;escribir en el puerto b
   movlw b'00000000'
   movwf portb
   movlw .20                        ;temporizador 20 seg
   call tmp_1_mgc
   movlw b'00000001'            
   bcf status,rp0                   ;cambiar a banco 0
   movwf portb
   movlw .1                         ;Pulso de 1 segundo
   call tmp_1_mgc
   movlw b'00000000'
   movwf portb
   movlw .15                      
   call tmp_1_mgc

   btfss PORT_A,d'1'
   goto paso2
   goto paso4                       ;cierra el ciclo
   goto paso6

Desconectado soymoe

  • PIC18
  • ****
  • Mensajes: 456
    • El blog de Moe
Re: AYUDA - TEMPORIZADOR PIC16F84
« Respuesta #1 en: 15 de Julio de 2011, 00:45:42 »
No es que no lo haga, es que no hace lo que vos esperas. Lo mas probable es que los registros que usas para la llamada a la subrutina no esten inicializados bien antes de llamar a la subrutina o tengas registros que usas para varias surutinas y que se cargan con basura. Revisa la declaracion de los regsitros y la inicializacion de los mismos

Desconectado om@r

  • PIC12
  • **
  • Mensajes: 86
Re: AYUDA - TEMPORIZADOR PIC16F84
« Respuesta #2 en: 15 de Julio de 2011, 10:25:57 »
Hola a Todos
fijate esta rutina:
   btfss   PORT_A,d'1'
   goto    paso2
   goto    paso4                       ;cierra el ciclo
   goto    paso6
 
 si la entrada 1 del PORTA es 1 ejecuta paso4 si es 0 ejecuta paso2  :shock:
el paso6 se ejecuta por desarrollo del programa :shock: pero no por salto en esta rutina :shock:
Saludos!

Desconectado Jhonny

  • PIC10
  • *
  • Mensajes: 3
Re: AYUDA - TEMPORIZADOR PIC16F84
« Respuesta #3 en: 15 de Julio de 2011, 14:53:53 »
Hola a Todos
fijate esta rutina:
   btfss   PORT_A,d'1'
   goto    paso2
   goto    paso4                       ;cierra el ciclo
   goto    paso6
 
 si la entrada 1 del PORTA es 1 ejecuta paso4 si es 0 ejecuta paso2  :shock:
el paso6 se ejecuta por desarrollo del programa :shock: pero no por salto en esta rutina :shock:
Saludos!



Y que tendria que hacer para que salte en la rutina?...
y mi pregunta tambien es por que no temporiza los 3 segundos que tiene que temporizar?
« Última modificación: 15 de Julio de 2011, 15:00:32 por Jhonny »

Desconectado om@r

  • PIC12
  • **
  • Mensajes: 86
Re: AYUDA - TEMPORIZADOR PIC16F84
« Respuesta #4 en: 15 de Julio de 2011, 17:36:04 »
Hola Jhonny ,mirando por arriba tu programa hay cosas que no entiendo ,si ves al inicio (paso2) configuras los
puertos portb como salida y parte de porta como entrada ,luego pones en 1 el porta,1 que lo tienes configurado
como entrada? el porta como lo utilizas?  :shock: la rutina tmp_1_mgc no esta en el programa?  :shock:
Saludos!

Desconectado Jhonny

  • PIC10
  • *
  • Mensajes: 3
Re: AYUDA - TEMPORIZADOR PIC16F84
« Respuesta #5 en: 15 de Julio de 2011, 19:57:01 »
Hola Jhonny ,mirando por arriba tu programa hay cosas que no entiendo ,si ves al inicio (paso2) configuras los
puertos portb como salida y parte de porta como entrada ,luego pones en 1 el porta,1 que lo tienes configurado
como entrada? el porta como lo utilizas?  :shock: la rutina tmp_1_mgc no esta en el programa?  :shock:
Saludos!

Hola , el porta , no lo utilizo , solo uso el portb como salida ...


 

anything