TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: txema en 27 de Junio de 2007, 17:27:02

Título: Conmutacion audio con 16F87
Publicado por: txema en 27 de Junio de 2007, 17:27:02
Llevo poco con los microcontroladores.
Quisiera efectuar la conmutacion de esta manera.
En cada RA un conmutador mecanico.
En las RB los leds de estado.
En cada RC una linea que va al sistema de transistores que permite o no el paso de una señal de audio. Cada RC controla una linea de señal distinta.
Conmuto RA0 y la historia va bien.
Desconmuto RA0 y conmuto RA1 y sigue bien.
EL PROBLEMA.
Conmutar RA0 y despues conmutando RA1 pretendo que se desconmute automaticamente RA0.
¿Hay alguna manera de programarlo?, ¿Es posible? o estoy perdiendo el tiempo.
Gracias





 
Título: Re: Conmutacion audio con 16F87
Publicado por: Chaly29 en 27 de Junio de 2007, 17:43:56
Hola txema, no hay manera de que se haga de forma automática, tienes que ir conmutando la salida deseada y de-conmutando la salida que necesites.

El pic por si solo no tiene forma de saber cual es la salida que debe desconmutar, por eso mismo tú se lo debes indicar por medio del programa.

Un saludo.

Atte. CARLOS.

Título: Re: Conmutacion audio con 16F87
Publicado por: txema en 27 de Junio de 2007, 17:48:42
Muchas gracias
Título: Re: Conmutacion audio con 16F87
Publicado por: txema en 29 de Junio de 2007, 17:24:15
Quizá alguien pueda aconsejarme.
¿Hay algun CMOS o algo por el estilo, que active por una salida determinada, LA ULTIMA activacion por una entrada determinada?
¿Es posible hacerlo con un pic?
Gracias

Título: Re: Conmutacion audio con 16F87
Publicado por: om@r en 30 de Junio de 2007, 00:10:32
HOla mira la data del integrado cd 4016 ,creo que si recuerdo bien es un interruptor analogico-digital.Salu2
Título: Re: Conmutacion audio con 16F87
Publicado por: Chaly29 en 30 de Junio de 2007, 11:00:20
¿Hay algun CMOS o algo por el estilo, que active por una salida determinada, LA ULTIMA activacion por una entrada determinada?

Hola txema, juro no entender lo que estas queriendo preguntar, el colega om@r te a recomendado un integrado CMOS, el código correcto es el 4066 y efectivamente es un conmutador cuadruple ON/OFF de señales tanto diguitales como analogas, por lo tanto te es util para conmutar audio.

Y sin dudas lo más facil para hacer un comutador de audio con las caracteristicas que deseas es el uso de un PIC en conjunto con algún tipo de circuito como el 4066.

Un saludo.

Atte. CARLOS.

Título: Re: Conmutacion audio con 16F87
Publicado por: txema en 01 de Julio de 2007, 15:39:08
Perdonadme si no me he sabido explicar.
El 4066 (si no estoy equivocado) contiene 4 interruptores internos, que pueden controlar 4 lineas analógicas.
Para mi el 4066 es un hallazgo pues me evita todo el tinglado que tenía en mi diseño con transistores y resistencias. Pero ese no era el problema.
AL ASUNTO.
Tengo 4 interruptores mecanicos. Si pulso el interruptor 1 quiero que active la linea 1 del 4066.
Si pulso el interruptor mecanico 2 que se active la linea 2. Y asi sucesivamente en los 4.
EL MEOLLO.
Ejemplo
Activo el interruptor mecanico 1 (pasa señal por la linea 1).
Activo el interruptor mecanico 2. No quiero que pase la señal por las lineas 1 y 2. Solo quiero que pase la señal de la linea 2 del 4066. Sin haber tocado el interrutor mecanico 1.
Es decir, que solo se active la linea del 4066 correspondiente al ULTIMO interruptor mecanico accionado.
Espero haberme explicado.
De todas maneras, muchas gracias por vuestra paciencia.
Título: Re: Conmutacion audio con 16F87
Publicado por: Leon Pic en 01 de Julio de 2007, 22:34:28
Hola. Pues de la manera que yo lo entiendo es muy facil

Como dice Chaly29 solo lo debes programar y listo

Suponiendo que se activa con un 1 lógico.
El programa debería ser mas o menos así: primero lees RA0, si es 1 chequo si RC1 está a 1 (y demás puertos). Si está a 1 lo desactivo ignorando RA1. Acá se presenta el primer programa ya que software cuando le toque chequear si RA1 se pulso, pues creera que si ya que está a 1 (para solucionarlo tendras que usar pulsadores de NA) por lo tanto cuando le toque leer estará a 0 y no cambiará ningún estado.

Voy devuelta

Leo RA0  ; es 1?
              ; si, entonces chequeo si los demas puertos C estan activados exepto RC0, si estan activados los desactivamos
              ;no, chequeo RA1 y la rutina continua de la misma manera

es obvio que ajustaría los puerto RB correspondiente

Suerte y saludos :-/ :-/
Título: Re: Conmutacion audio con 16F87
Publicado por: txema en 02 de Julio de 2007, 12:32:19
Con tus indicaciones me pongo manos a la obra.
Informare de como me ha ido el asunto.
Un saludo.
                  Gracias
Título: Re: Conmutacion audio con 16F87
Publicado por: txema en 03 de Julio de 2007, 16:41:13

Saludos.
Despues de unos cuantos cabezazos, de vuelta a la carga.
No se si sera mucho arroz para un pollo como yo (un guitarrista con el amplificador y equipo de
efectos de construccion o restauracion propia).
Centrando el asunto.
* Tres interruptores NA conectados a RA1, RA2 y RA3 del 16F87. (En este caso necesito que sean
   para accionar con el pie y creo que el interruptor (push button) JS-724A(NA) puede servir.
* Las salidas RB0, RB1, RB2 y RB3 controlando al CMOS 4066 (las cuatro lineas de audio).
* Las salidas RC0, RC1, RC2 y RC3 a los leds de estado (señalando la activacion de cada linea de audio).
* Si acciono un interruptor, sin previamente haber desconmutado nada, debe cumplirse
  la tabla de la verdad del programa.

Antes de comprar los componentes, montarlo y probarlo en el pic school lo someto a vuestro juicio (seguro que mejor que el mio, si es que me queda algo).

Se que hay varios despistados como yo, buscando este artefacto (montado de una u otra forma). Pero los que he visto por internet o bien usan un metodo de conmutacion secuencial o hay que desconmutar el estado anterior.
Haber si conseguimos poner en marcha el prototipo.

Espero ir por el buen camino. Si no, espero vuestro consejo, la colleja y que alguien se anime a
marcar el norte. Aunque quiza solo comprenda los que estan explicadas con manzanas.
 
Y por supuesto y de antemano, gracias por la ayuda que (aunque no os lo parezca) ya me habeis dado.

:--------------------------------------------------------------------------------------
;   CONMUTACION AUDIO
;
;Según el estado de los interruptores RA0, RA1 y RA2, activar y desactivar las RB0-RB7 conectados
;al CMOS 4066, y los RC0-RC7 conectados a los leds, conforme a la siguiente tabla de la verdad:
;
; RA2 RA1 RA0   RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0     RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0
; --    --     --      --    --     --    --       --     --    --    --        --     --     --    --     --    --     --    --
; 0     0      0      0     0      0     0       0      0     0     1        0     0      0    0      0     0     0     1
; 0     0      1      0     0      0     0     0        0    1     0         0     0      0    0      0     0     1     0
; 0     1      0      0     0      0     0     0        1    0     0         0     0      0    0      0     1     0     0
; 1     0      0      0     0      0     0     1        0    0     0         0     0      0    0      1     0     0     0

      List   p=16F87      ;Tipo de procesador
      RADIX   hex      ;se emplea sistema de numeracion hexadecimal
;ZONA DE ETIQUETAS

;PORTA   EQU   0X05
;PORTB   EQU   0X06
;PORTC   EQU   0x07
;TRISA   EQU   0X85
;TRISB   EQU   0X86
;TRISC   EQU   0x87
;STATUS   EQU   0X03
;RP0   EQU   5
;ADCON1   EQU   0x9f

;COMIENZO DEL PROGRAMA

      org   0x00      ;Vector de Reset
      goto   Inicio      ;salta a la etiqueta inicio
      org   0x05      ;Salva el vector de interrupción

Inicio      clrf   0X06      ;Borra los latch de salida.PORTB se carga con b`00000000'
      clrf    0x07      ;Borra los latch de salida.PORTC se carga con b`00000000'
      bsf   0X03,5      ;Selecciona banco 1.Se pone a 1 bit 5 (RP0)del registro status
      clrf   0X86      ;Puerta B se configura como salida
      clrf   0X87      ;Puerta C se configura como salida
      movlw   b'00000110'   ;configura el PORTA como......
      movwf   0x9F      ;.......PORTA E/S digitales      
      movlw   b'00111111'   ;Direcciona las lineas RA0-RA5 como entrada.RA6 y RA7 como salida
      movwf   0X85      ;Puerta A se configura como entrada.cARGA REGISTRO w EN TRISA
      bcf   0X03,5      ;Selecciona banco 0. Pone a 0 el bit 5 (RP0) del registro status         

Loop:      clrwdt         ;Refrescar el WDT
      btfsc   0X05,0      ;Chequea el estado de RA0.Si bit 0 del registro PORTA es 1 se
               ;ejecuta siguiente instruccion.Si bit 0 del registro PORTA es 0
               ;la instruccion que sigue a esta se ignora y se salta
      goto   Estan_a_001   ;Salta a la etiqueta "Estan_a_001"
      btfsc   0X05,1      ;Chequea el estado de RA1.Si bit 1 del registro PORTA es 1 se
               ;ejecuta siguiente instruccion.Si bit 1 del registro PORTA es 0
               ;la instruccion que sigue a esta se ignora y se salta
      goto   Estan_a_010   ;Salta a la etiqueta "ESTAN_A_010"
      btfss   0X05,2      ;Chequea el estado de RA1.Si bit 2 del registro PORTA es 0 se
               ;ejecuta siguiente instruccion.Si bit 2 del registro PORTA es 1
               ;la instruccion que sigue a esta se ignora y se salta
      goto   Estan_a_000   ;Salta a la etiqueta "ESTAN_A_000"
      goto   Estan_a_100

Estan_a_000   movlw   b'00000001'   ;El registro W se carga con valor b`00000001´
      movwf   0X06      ;Carga el valor W en PORTB
      movlw   b'00000001'   ;El registro W se carga con valor b`00000001´
      movwf   0X07      ;Carga el valor W en PORTC      
      goto   Loop      ;Salta a la etiqueta Loop

Estan_a_001   movlw   b'00000010'   ;El registro W se carga con valor b`00000010´
      movwf   0X06      ;Carga el valor W en PORTB
      movlw   b'00000010'   ;El registro W se carga con valor b`00000010´
      movwf   0X07      ;Carga el valor W en PORTC
      goto   Loop      ;Salta a la etiqueta Loop

Estan_a_010   movlw   b'00000100'   ;El registro W se carga con valor b`00000100´
      movwf   0X06      ;Carga el valor W en PORTB
      movlw   b'00000100'   ;El registro W se carga con valor b`00000100´
      movwf   0X07      ;Carga el valor W en PORTC
      goto   Loop      ;Salta a la etiqueta Loop

Estan_a_100   movlw   b'00001000'   ;El registro W se carga con valor b`00001000´
      movwf   0X06      ;Carga el valor W en PORTB
      movlw   b'00001000'   ;El registro W se carga con valor b`00001000´
      movwf   0X07      ;Carga el valor W en PORTC
      goto   Loop      ;Salta a la etiqueta Loop

      end         ;Fin del programa fuente
;--------------------------------------------------------------------------------------------------

Título: Re: Conmutacion audio con 16F87
Publicado por: Leon Pic en 03 de Julio de 2007, 21:26:28
Hola. Revisando el programa en forma manual (o sea sin el mplab) no eh notado ningún error, lo que si, se pueden omitir varias lineas que están demás.


a      btfss   0X05,2      ;Chequea el estado de RA1.Si bit 2 del registro PORTA es 0 se
               ;ejecuta siguiente instruccion.Si bit 2 del registro PORTA es 1
               ;la instruccion que sigue a esta se ignora y se salta
b      goto   Estan_a_000   ;Salta a la etiqueta "ESTAN_A_000"
c      goto   Estan_a_100

d  Estan_a_000   movlw   b'00000001'   ;El registro W se carga con valor b`00000001´
e      movwf   0X06      ;Carga el valor W en PORTB
f      movlw   b'00000001'   ;El registro W se carga con valor b`00000001´
g      movwf   0X07      ;Carga el valor W en PORTC     
h      goto   Loop      ;Salta a la etiqueta Loop

Nota: enumeré las lineas con letras para una mejor comprención

deverias corregir la linea "a" por la siguiente instruccion       btfsc    0X05,2

y cambiar la linea "c" al lugar del "b" y en el "c" va desde   movlw b'00000001'

de esta forma ahorro un ciclo de instrucción (es verdad que en este programa carece de importacia, pero es bueno que te acostumbres a tomar todos los detalles para que el día que hagas un programa muy complejo ahorres tiempo y memoria) Cuando hablo de tiempo es el tuyo y el del PIC.




a  Estan_a_001   movlw   b'00000010'   ;El registro W se carga con valor b`00000010´
b      movwf   0X06      ;Carga el valor W en PORTB
c     movlw   b'00000010'   ;El registro W se carga con valor b`00000010´
d      movwf   0X07      ;Carga el valor W en PORTC
e      goto   Loop      ;Salta a la etiqueta Loop


Deberías omitir la linea "c" ya que nunca se ve afectado el registro W.


La razón por lo que no revisé el programa con el mplab es que recien vengo de trabajar y estoy muy cansado. Con tiempo lo reviso. Si lo revisas, comenta los resultados.

Suerte y saludos  :-/ :-/
Título: Re: Conmutacion audio con 16F87
Publicado por: txema en 04 de Julio de 2007, 17:30:37
Saludos.
Programa corregido.
Ahora a ver si consigo los componentes y monto el prototipo.
Os mantendre informados.
      Gracias
Título: Re: Conmutacion audio con 16F87
Publicado por: Marioguillote en 04 de Julio de 2007, 17:56:43
Hola a todos !

Sólo un dato más.

Siempre, siempre, será la elección de un único canal o vía ?
No existirá nunca la posibilidad de "mezclar" vías 1 y 2 ó 3 y 4, ó 3 y 1 ?

Si siempre la elección es un canal, no hay necesidad de PIC.

Saludos.
Mario
Título: Re: Conmutacion audio con 16F87
Publicado por: txema en 05 de Julio de 2007, 16:19:17
Hola
De momento solo un canal.
¿Como es posible realizarlo sin el PIC?.

Aunque si todo evoluciona bien el proyecto deberia evolucionar a controlar 8 canales.
Algunos de un canal y otros con mas de uno.

Todo lo que aportes será bienvenido.

Saludos
Título: Re: Conmutacion audio con 16F87
Publicado por: Leon Pic en 05 de Julio de 2007, 20:58:34
Hola. De todas maneras para empezar está muy bien que sea de un canal, si lo queres mejorar como dice txema, podes hacerlo que mezcle dos canales. Todo va en la programación. Como te sobran puerto, los podes aprovechar.

Ahora se me ocurren dos formas:

1: Aparte de los pulsadores que tenes, podes agregar uno mas que se puede llamar modo y cumple dos funciones, mezclar canal y seleccionar un solo canal.

En el modo mezclar debería funcionar algo así:
Pulso el canal 1 y selecciono el canal a mezclar, y si pulsamos un canal mas, que lo mezcle y para deseleccionarlo habría que pulsar una vez más el canal activado. Resumiendo pulso una vez, activo; pulso por segunda vez, desactivo.

2: Podes agregar mas pulsadores y que estos trabajen codificado, por ejemplo son 3 pulsadores

001 selecciona por canal (no mezcla)
010 Mezcla el canal 1 con el 2
011 Mezcla el canal 1 con el 3
100 Mezcla el canal 1 con el 4
101 Mezcla el canal 2 con el 3
110 Mezcla el canal 2 con el 4
111 Mezcla el canal 3 con el 4

En este caso, habría que usar interruptores.

Saludos. :-/ :-/
Título: Re: Conmutacion audio con 16F87
Publicado por: txema en 18 de Julio de 2007, 16:46:24
Hola:
Despues de intentar probar el diseño, mi primera programacion, me encuentro con el famoso mensaje "error de verificacion en la direccion....." (mi bautizo en disgustos).
Consulta en foros, pruebas de configuracion  con el Winpic800 y el ICprog (drivers incluidos), pruebas de cofiguracion de los puertos...........horas y dias perdidos.
Fue pasar del Windows XP, volver al Windows 98 y la programacion...........  :-/....... FUNCIONO A LA PRIMERA..
Entrando en el asunto:
Montado el diseño, con los pulsadores NA no responde adecuadamente.
Probado con interruptores mecanicos da una respuesta simpatica. Los cambios de canal, descansan sobre el canal 0.
Es decir con los interruptores en off se activa el canal 0.
Presiono el interruptor 1, y automaticamente se activa el canal 1 y se desactiva el 0.
Presiono para desactivar el interruptor 1 y automaticamente se desactiva el canal1 y se activa el canal 0.
Con el canal 2 ocurre lo mismo.
Pero si esta accionado el canal 1 y despues acciono el canal 2 la respuesta no es buena.
Lo cual no esta nada mal, vamos por el buen camino, pero no es exactamente lo que se buscaba (conmuto un canal y se de-conmutan los demas).
De vuelta a la carga.
Voy ha hacer algunas pruebas con cambios en la programacion y haber que pasa.
Os comentare los resultados que se vayan produciendo.   

Saludos y gracias.




Título: Re: Conmutacion audio con 16F87
Publicado por: Leon Pic en 19 de Julio de 2007, 18:06:46
Hola. ¿Podrìas poner el diagrama del circuito que estas usando para poder ver la falla?

Saludos.  :-/ :-/
Título: Re: Conmutacion audio con 16F87
Publicado por: Juan_PIC en 19 de Julio de 2007, 18:42:58
Hola Txema. La idea de la multiplexacion es muy buena, y te ahorrarias patas del micro. Ahora, si lo que queres es hacerlo de ese modo, te recomendaria que apliques defines.

#define    RB0   MOVLW   b'00000001'       ;fiajte si el compilador te deja definir estos nombres.
#define    RB1   MOVLW   b'00000010'     
..... ETC...


O bien, no pongas ningun define, y en el programapone el literal directamente en el puerto.


Otra cosa. Si lo que necesitas es que tus conmutaciones sean seguidas y no por saltos (me refiero a que no pasas de la 0 a la 2 sin pasar por la 1), usa las instrucciones RLF y RRF.

Espero haber sido claro, xq estoy medio apurado. Un saludo. :P
Título: Re: Conmutacion audio con 16F87
Publicado por: txema en 23 de Julio de 2007, 16:29:18
Hola:
Ando estancado.
"Leon pic" me decía si podía poner el diagrama del circuito que estoy usando para poder localizar algun error.

Espero estar ahogandome en un vaso de agua.
No veo la forma de decirle al PIC, que de prioridad al ultimo cambio de estado en una RA.
Es decir, por ejemplo:
Tengo activada RA1, activo RA2 y automaticamente se desactiva RA1.
Claro, y es que lo quiero todo: comer la sopa con cuchara, que haya papel hienico en el water.....(menos mal que nos queda el buen humor).

He visto un articulo en el que se consigue, pero usando 74HC148, 74HC138, 74HC173,74HC04, 74HC4051, 74HC238...., en fin, un cirio Pascual.

Haber si el asunto no le viene demasiado grande a nuestro querido PIC. Aunque mas creo que el asunto me viene grande a mi.

En cuanto a la directiva #DEFINE, tengo entendido que define una cadena de sustitucion de texto.
Ejemplo
#DEFINE <nombre> [<apellido>]
Donde quiera que <nombre> se encuentre, en el ensamblador se sustiturá por <apellido>.
No entiendo, como usando esta directiva, se puede solventar el problema.

Abriendo la puerta de la multiplexacion que aportaba "motordecontinua". ¿Algun consejo?.

Saludos
Título: Re: Conmutacion audio con 16F87
Publicado por: Leon Pic en 23 de Julio de 2007, 21:47:54
Hola. Bueno, en el diagrama lo veo perfecto. Lo que no entiendo cual es el problema, ya que por lo que decís la reacción que hace el pic en los puertos, pues, está en el programa. Si te fijas bien, cuando corregis los estados, estas corrigiendo todo el puerto

Estan_a_000   movlw   b'00000001'    ;El registro W se carga con valor b`00000001´
                     movwf   0X06             ;Carga el valor W en PORTB
                     movlw   b'00000001'    ;El registro W se carga con valor b`00000001´
                     movwf   0X07             ;Carga el valor W en PORTC     
                     goto   Loop                 ;Salta a la etiqueta Loop

Estan_a_010   movlw   b'00000100'   ;El registro W se carga con valor b`00000100´
                     movwf   0X06             ;Carga el valor W en PORTB
                     movlw   b'00000100'    ;El registro W se carga con valor b`00000100´
                     movwf   0X07             ;Carga el valor W en PORTC
                     goto   Loop                 ;Salta a la etiqueta Loop

Si no queres que los demas bit se vean afectados, debes usar BCF o BSF, el problema se te va a presentar, para armar el software, cuando quieras poner, por ejemplo pasarlo de 0 a 1 (se está claro usando estas mismas subrutinas)

Fijate mi otra sujerencia anterior, de usar un interruptor como modo.

Entiendo que lo que quieres es mezclar dos o mas entradas. Ten encuenta que el pic no tiene ni idea de que es lo que queres, por ejemplo, quiero mezclar dos entradas, presiono dos pulsadores, pero ahora se me ocurre seleccionar solo una entrada, y presiono la tecla correspondiente. El pic va a mezclar tres entradas porque no le has dicho antes que quieres seleccionar una entrada.

Aclarame bien tu problema y como queres que se comporte bien el programa (seleccionar solo una entrada, mezclar las entradas o una combinación de ambas)

Lo de define, no te va a solucionar el problema, es como vos decis, lo que te va ayudar es hacer más prolijo el programa y por ende sea más facil de leer y programar y hacer modificaciones, y etc.

Saludos :-/ :-/

Título: Re: Conmutacion audio con 16F87
Publicado por: txema en 24 de Julio de 2007, 05:23:58
Hola:
De momento la cosa debiera ser sencilla. Solo quiero seleccionar una entrada, nada mas. Pero que al conmutar una entrada, se deconmute automaticamente la que estuviera conmutada previamente. No se si me explico bien. Ese es el problemon al que no veo salida.
Un saludo y gracias.
Título: Re: Conmutacion audio con 16F87
Publicado por: todopic en 24 de Julio de 2007, 10:33:19
Hola Txema, lo que necesitas es simple, aqui un ejemplito, solo tienes que definir las entradas y salidas
y el programita seria
Código: ASM
  1. ; conmutador de 4 canales
  2. ;entradas de pulsadores NA (a masa) para seleccion por puerto A
  3. ;salidas a led y llave cd4066 por puerto b
  4.  
  5.  
  6.  
  7.  
  8.         clrf    portb           ;apago todo el puerto b
  9. testear
  10.         btfss   porta,0         ;esta pulsado? si, activo, si no salto
  11.         call    encender0
  12.         btfss   porta,1
  13.         call    encender1      
  14.         btfss   porta,2
  15.         call    encender2      
  16.         btfss   porta,3
  17.         call    encender3
  18.         goto    testear ;       ;queda en loop esperando que pulsen alguna
  19.        
  20. encender0
  21.         clrf    portb
  22.         bsf     portb,0
  23.         return
  24.        
  25. encender1
  26.         clrf    portb
  27.         bsf     portb,1
  28.         return
  29.  
  30. encender2
  31.         clrf    portb
  32.         bsf     portb,2
  33.         return
  34.  
  35. encender3
  36.         clrf    portb
  37.         bsf     portb,3
  38.         return

La idea seria, que un loop te verifica si se pulsa alguno de los pulsadores, y en ese caso, apaga el puerto de salida , y solo enciende el seleccionado
luego, queda nuevamente en el loop esperando otra pulsacion....

espero te sirva  :-/

un abrazo

Norberto
Título: Re: Conmutacion audio con 16F87
Publicado por: todopic en 24 de Julio de 2007, 10:42:31
Y aqui tienes un error, ya que si no se pulsan, siempre va a estan a 100  :shock:

      btfss   0X05,2      ;Chequea el estado de RA1.Si bit 2 del registro PORTA es 0 se
               ;ejecuta siguiente instruccion.Si bit 2 del registro PORTA es 1
               ;la instruccion que sigue a esta se ignora y se salta
      goto   Estan_a_000   ;Salta a la etiqueta "ESTAN_A_000"
      goto   Estan_a_100

Estan_a_000   movlw   b'00000001'   ;El registro W se carga con valor b`00000001´

te falta otro btfss... aunque pareceria obvio, no lo es!  :-)

Norberto
Título: Re: Conmutacion audio con 16F87
Publicado por: txema en 24 de Julio de 2007, 17:53:54
Hola:
He corregido el programa con las instrucciones que me indicaste y.....
......casi me saltan las lagrimas al ver funcionar perfectamente el proyecto.
Muchas gracias a todos los que habeis participado y sobretodo a Leonpic y Norberto (por lo que me habeis sufrido y por entender lo que buscaba a pesar de mis torpes explicaciones).
Un saludo genios.
Título: Re: Conmutacion audio con 16F87
Publicado por: Leon Pic en 24 de Julio de 2007, 18:16:33
Hola Txema.  Me alegro de que hallas podido hacer funcionar el proyecto.

Suerte y fue un gusto ayudarte.

Saludos  :-/ :-/
Título: Re: Conmutacion audio con 16F87
Publicado por: todopic en 24 de Julio de 2007, 23:14:07
Hola Txema, mucho me alegro que funciono!, y ahora, te propongo que investigues para que esto funcione via MIDI
ya que todas las pedaleras actuales funcionan MIDI, habria que direccionarlas tambien la conmutacion con este protocolo  :-/

Nos mantenemos en contacto

Norberto