Autor Tema: duda sobre sobre codigo assembler que no me funciona  (Leído 2261 veces)

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

Desconectado jaja_orgus

  • PIC10
  • *
  • Mensajes: 11
duda sobre sobre codigo assembler que no me funciona
« en: 26 de Agosto de 2009, 18:56:47 »
buenas soy totalmente nuevo en este foro y en el tema de los microcontroladores soy programador pero siempre quise incurcionar en este tema, despues de haber leido material y visto algunos videotutoriales me puse a programar un pequeñisimo proyecto para practicar, la cuestion es que quiero ensender un led por el rb1 a trabez de un pulsador desde el rb0 osea presiono una vez el pulsador y el led tendria que ensenderse, lo suelto y lo vulvo a presionar y tendria que apagarse. pero la cuestion es que lo simulo con el proteus cuando presiono el pulsador el led se enciendo pero cuando lo vuelvo a presionar no se apaga, a continuación le paso el codigo, estoy seguro de que debe haber una forma mas facil de hacer esto pero me gustaria saber en que estoy fallando en este codigo. agradeceria cualquier ayuda.

LIST   p=16F84A
#include<p16f84a.inc>
RADIX HEX

ORG 0
GOTO INICIO
ORG 5

   
INICIO BSF STATUS, RP0
       MOVLW B'00000001'
       MOVWF TRISB
       BCF STATUS, RP0
       CLRF PORTB
      
ANTPULSADOR BTFSS PORTB, 0        ; COMPRUEBA SI EL BOTON SE PRESIONO
                       GOTO LED_ON_OFF   ; SI SE PRESIONO SE VA A LED_ON_OFF
          GOTO ANTPULSADOR ; SI NO VUELVE A ANTPULSADOR
LED_ON_OFF  BTFSS PORTB, 1           ; COMPRUEVA SI EL LED YA ESTA PRENDIDO
        GOTO LED_ON             ; SI ESTA APAGADO SE VA A LED_ON
        GOTO LED_OFF            ; SI ESTA PRENDIDO SE VA A LED_OFF
LED_OFF        BCF PORTB, 1              ; APAGA EL LED
       GOTO CONTINUAR        ; VA A CONTINUAR
LED_ON         BSF PORTB, 1               ; ENCIENDE EL LED
       GOTO CONTINUAR         ; VA A CONTINUAR
CONTINUAR   BTFSS PORTB, 0            ; COMPRUEVA SI EL BOTON SIGUE APRETADO
        GOTO CONTINUAR        ; VUELVEA A CONTINUAR HASTA QUE EL BOTON SE SUELTE
        GOTO ANTPULSADOR    ; SI EL BOTON SE SOLTO EMPIEZA TODO DE VUELTA.
END

Desconectado flacoclau

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1692
    • El Micro Reactor
Re: duda sobre sobre codigo assembler que no me funciona
« Respuesta #1 en: 26 de Agosto de 2009, 19:03:33 »
Hola JJ orgus: Por las dudas, tienes el WDT desactivado?
Las personas con buena ortografía me atraen textualmente.

El Micro Reactor

Córdoba capital - Argentina.

Desconectado jim_17

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
    • Blog personal
Re: duda sobre sobre codigo assembler que no me funciona
« Respuesta #2 en: 26 de Agosto de 2009, 20:44:37 »
Mejor después de la comprobación ponle un retardo y vuelve a testear el pulsador a ver si así te funciona, o bloquea el PIC despues de hacer alguna acción hasta que el pulsador marque un 0. Esto es debido a que el PIC ejecuta millones de instrucciones por segundo, si tu tienes pulsado el pulsador todo el rato, el led se ira encendiendo y apagando, aunque no sea perceptible en tu vista.


Salu2.
Share the world !

Blog's

http://www.area0x33.com

Desconectado nico

  • PIC16
  • ***
  • Mensajes: 180
Re: duda sobre sobre codigo assembler que no me funciona
« Respuesta #3 en: 26 de Agosto de 2009, 21:10:25 »
Hola orgus, mas alla de las recomendaciones que te dieron, el codigo funciona(si bien cuando hagas programas mas elaborados tendras que colocar un retardo si o si, sino nunca podras detectar la pulsacion). Copie el codigo y, cuando pulsas el boton se enciende, luego debes soltarlo, para que detecte el estado bajo, y volver a pulsarlo y el led se apaga tal como tu deseas.

Saludos.
Nico.

Desconectado jaja_orgus

  • PIC10
  • *
  • Mensajes: 11
Re: duda sobre sobre codigo assembler que no me funciona
« Respuesta #4 en: 26 de Agosto de 2009, 22:04:21 »
muchas gracias a todos en voy a probar poniendole un retardo de 1 milisegundo a ver que pasa y luego les cuento.

Desconectado jaja_orgus

  • PIC10
  • *
  • Mensajes: 11
Re: duda sobre sobre codigo assembler que no me funciona
« Respuesta #5 en: 28 de Agosto de 2009, 02:11:46 »
ya solucioné el problema aparentemente era el simulador proteus, lo simule con el workbench multisim y andubo de 10 con el retardo y sin el retardo tambien, gracias.


 

anything