TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: lucho_asd en 02 de Mayo de 2007, 21:00:13

Título: 16f877 ayuda con asm para prender leds dentro de mi proyecto
Publicado por: lucho_asd en 02 de Mayo de 2007, 21:00:13
Hola estoy haciendo un foot controler midi para un pedal de guitarra ya esta funcionando con los mensajes q me interesan, pero quiero hacer lo siguiente :

cuando yo pulso de rb0 a rb7 a masa mando un mensaje midi y lo q quiero agregar es prender leds de rd0 a rd7 para cada puslador q accione se entiende? la idea es q cuando pulso uno se prenda un led y cuando pulso otro se apague este y se prenda el correspondiente para el q pulse recien, soy nuevo en este tema basicamente lo q hice fue modificar el asm del original ya q los mensajes esos no me interesaban y leyendo un poco sobre el midi logre mandar 8 mensajes midis q me interesan para el proyecto (cambio de banco del pedal) ahora me gustaria saber si alguien me puede ayudar con la propuesta q presente recien!

MUCHISIMAS GRACIAS!!

UN SALUDO!!
Título: Re: 16f877 ayuda con asm para prender leds dentro de mi proyecto
Publicado por: aitopes en 03 de Mayo de 2007, 07:07:18
Hola Lucho!

Se me ocurre que si utilizas pulsadores que conmuten dos circuitos, podes usar uno para el LED, y solucionas el problema de una forma muy sencilla. ¿Serviria?

Saludos!
Título: Re: 16f877 ayuda con asm para prender leds dentro de mi proyecto
Publicado por: maunix en 03 de Mayo de 2007, 08:24:25
lucho_asd, algo que no me queda claro es si puede haber entradas en simultáneo en el PORTB.

Si es así, debieras sí o si, detectar la ULTIMA pulsación, sino, si solamente hay una pulsación activa a la vez, sería enviar al PORTD lo que hay en el PORTB pero invertido (ej, usando la instrucción CMF).
Título: Re: 16f877 ayuda con asm para prender leds dentro de mi proyecto
Publicado por: lucho_asd en 03 de Mayo de 2007, 19:32:13
antes q todo muchas gracias!!! lo que quiero hacer es con los pulsadores (no interruptor) del portb (del 0 al 7) aprovecharlos ademas q para mandar la señal midi correspondiente q manden 5v a cada portb (del 0 al 7)
esta es la parte del lenguaje de los pulsadores :

sw0   btfss PORTB,7
   goto sw0_on
   goto sw1

sw0_on   movlw .0 ; A1 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   
;-------------------------------------------


sw1   btfss PORTB,6
   goto sw1_on
   goto sw2

sw1_on   movlw .1 ; B1 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   

;-------------------------------------------


sw2   btfss PORTB,5
   goto sw2_on
   goto sw3

sw2_on   movlw .2 ; C1 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   


;-------------------------------------------


sw3   btfss PORTB,4
   goto sw3_on
   goto sw4

sw3_on   movlw .3 ; D1 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   

;-------------------------------------------


sw4   btfss PORTB,3
   goto sw4_on
   goto sw5

sw4_on   movlw .4 ; E1 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   

;-------------------------------------------


sw5   btfss PORTB,2
   goto sw5_on
   goto sw6

sw5_on   movlw .5 ;  A2 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   

;-------------------------------------------


sw6   btfss PORTB,1
   goto sw6_on
   goto sw7

sw6_on   movlw .6 ;  B2 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   

;-------------------------------------------


sw7   btfss PORTB,0
   goto sw7_on
   goto sw8

sw7_on   
   movlw .7 ;  C2 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   
      
;-------------------------------------------


sw8   btfss PORTD,7
   goto sw8_on
   goto sw9

sw8_on   
   call continue
   call sw_dbnc

   btfss PORTD,7 ; is sw. released?
   goto $-1
   call sw_dbnc

espero q sirva para guiarme, en todo caso les escribo el programa entero!!

MUCHAS GRACIASS!!

Saludos!