TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: xabibix en 19 de Marzo de 2006, 03:48:00

Título: Ayuda programa ASM PIC16F84A
Publicado por: xabibix en 19 de Marzo de 2006, 03:48:00
Quiero realizar el siguiente programa:

Cuando activo el pulsador RA0 mas de dos segundos, se queda a nivel alto la salida RB0 y solo pasa a nivel bajo dicha salida al accionar menos de dos segundos el pulsador RA0.

Me podriais orientar en la realización del programa?

Muchas gracias.

Título: RE: Ayuda programa ASM PIC16F84A
Publicado por: maunix en 19 de Marzo de 2006, 20:48:00
Escrito originalmente por xabibix
Quiero realizar el siguiente programa:

Cuando activo el pulsador RA0 mas de dos segundos, se queda a nivel alto la salida RB0 y solo pasa a nivel bajo dicha salida al accionar menos de dos segundos el pulsador RA0.

Me podriais orientar en la realización del programa?

Muchas gracias.




En que lenguaje?
Cuales son tus conocimientos?
No has siquiera intentado alguna linea que podamos luego irte corrigiendo?

Título: RE: Ayuda programa ASM PIC16F84A
Publicado por: xabibix en 20 de Marzo de 2006, 00:32:00
Re: El programa que he pensado es este:

          ORG     0
Inicio    bsf     STATUS,RP0
          clrf    TRISB
          movlw   b"00011111"
          movf    TRISA
          bcf     STATUS,RP0
Principal movf    PORTA,W
          xorwf   PORTB,W
          btfsc   W,0
          goto    salida1
          goto    salida0
salida1   movlw   b"00000001"
          call    retardo_2seg
          movwf   PORTB
          goto    Principal
salida0   movlw   b"00000000"
          movf    PORTB
          goto    Principal

          INCLUDE <RETARDOS.INC>
          END
Título: RE: Ayuda programa ASM PIC16F84A
Publicado por: carlyvalente en 20 de Marzo de 2006, 03:14:00
Ojo con esto:

salida1 movlw b"00000001"
call retardo_2seg
movwf PORTB

cargas el acumulador con un dato que luego, si entras en la subrutina de retardo es más que seguro que utilizas el acumulador que por lo tanto al salir de la subrutina tendrá un valor erroneo para mover al puerto B
Título: RE: Ayuda programa ASM PIC16F84A
Publicado por: maunix en 20 de Marzo de 2006, 05:33:00
Escrito originalmente por xabibix
Re: El programa que he pensado es este:

          ORG     0
Inicio    bsf     STATUS,RP0
          clrf    TRISB
          movlw   b"00011111"
          movf    TRISA
          bcf     STATUS,RP0
Principal movf    PORTA,W
          xorwf   PORTB,W
          btfsc   W,0
          goto    salida1
          goto    salida0
salida1   movlw   b"00000001"
          call    retardo_2seg
          movwf   PORTB
          goto    Principal
salida0   movlw   b"00000000"
          movf    PORTB
          goto    Principal

          INCLUDE <RETARDOS.INC>
          END


Lo has probado en el simulador del MPLAB IDE o algun otro?
Te recomiendo comiences a familiarizarte con estas herramientas ya que son de vital importancia .  Probar antes de armar un hardware puede salvarte de cometer muchos errores, ahorrarte tiempo y dinero.