Autor Tema: De 3 entradas crear 7 entradas???  (Leído 4064 veces)

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

Desconectado mincho

  • PIC12
  • **
  • Mensajes: 81
De 3 entradas crear 7 entradas???
« en: 11 de Mayo de 2007, 13:10:04 »
Estoy desarollando un proyecto donde nececito 5 lineas de entrada y solo tengo 3 pines para hacerlo, he estado analizando este codigo de "PABLIN" del Turnero DigitalTurnero digital , pero no me queda muy claro, si alguien me puede ayudar con algunos ejemplos se lo agradeseria mucho...

Otra opcion seria configurar los puertos para que inicie con mas entradas y luego al oprimir un boton vuelva a configurar el puerto con las salidas que necesito, ya que algunos botones los nesecito oprimir una sola vez, el el codigo del turnero tambien se puede ver un ejemplo...

Espero algun empujon.

Un saludo...

:-/ Saludos  :-/ Desde  :-/ Colombia  :-/

Desconectado paco1980

  • PIC16
  • ***
  • Mensajes: 129
Re: De 3 entradas crear 7 entradas???
« Respuesta #1 en: 11 de Mayo de 2007, 14:19:37 »
Creo que la opción que propones del turnero es bastanta buena.
A partir de esas tres entradas puedes crear hasta siete, sin contar cuando todas están a cero.
Solo tienes que cablear tus seis pulsadores a las entradas para que funcionen como esos tres bits en código binario. De tal forma que tendrás el pulsador número siete, el cual activará las tres entradas.
Puedes hacerlo leyendo una a una las entradas, o por interrupciones(creo sería más rápido). Lees los tres pines y según el valor ejecutas uno u otro proceso.
Un saludo, y espero haber respondido a tu pregunta.

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
Re: De 3 entradas crear 7 entradas???
« Respuesta #2 en: 11 de Mayo de 2007, 16:39:10 »


Aqui ya entraria mas software .



Si no me he hecho un lio tambien podria ser algo asi .
ya añado mas explicaciones si tienes dudas .

saludos

Desconectado mincho

  • PIC12
  • **
  • Mensajes: 81
Re: De 3 entradas crear 7 entradas???
« Respuesta #3 en: 11 de Mayo de 2007, 17:20:41 »
El circuito, al que le quiero implementar otras 2 entradas, ya esta funcionando y funciona sin las resistencias, ya he hecho agunas pruebas en el codigo para que al oprimir star sea necesario oprimir 2 botones, pero no consigo nada.

Nesecito es otro pequeño ejemplo en asm. puede ser la modificacion del turnero para que no muestre el puesto sino que me abra un reled, suponiendo que hay mas pines de salida....

Gracias por la ayuda.

Un Saludo....

:-/ Saludos  :-/ Desde  :-/ Colombia  :-/

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 611
Re: De 3 entradas crear 7 entradas???
« Respuesta #4 en: 12 de Mayo de 2007, 01:08:01 »
Sispic no entiendo el segundo circuito, me lo podrías explicar para sacarme la duda. Muchas Gracias
     

Desconectado mincho

  • PIC12
  • **
  • Mensajes: 81
Re: De 3 entradas crear 7 entradas???
« Respuesta #5 en: 12 de Mayo de 2007, 03:48:17 »
HOLA, buscando por la red encontre este ejemplo.

Código: [Seleccionar]
;********************************** Indexado_01.asm *************************************
;
; ===================================================================
;   Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
;   E. Palacios, F. Remiro y L. López.
;   Editorial Ra-Ma.  www.ra-ma.es
; ===================================================================
;
; Implementar una tabla de la verdad mediante el manejo de tablas grabadas en ROM.
; Por ejemplo, la tabla será de 3 entradas y 6 salidas tal como la siguiente:
;
; C  B  A  | S5  S4  S3  S2  S1  S0
; -----------|---------------------------
; 0   0   0   |   0    0    1    0    1    0 ; (Configuración 0).
; 0   0   1   |   0    0    1    0    0    1 ; (Configuración 1).
; 0   1   0   |   1    0    0    0    1    1 ; (Configuración 2).
; 0   1   1   |   0    0    1    1    1    1 ; (Configuración 3).
; 1   0   0   |   1    0    0    0    0    0 ; (Configuración 4).
; 1   0   1   |   0    0    0    1    1    1 ; (Configuración 5).
; 1   1   0   |   0    1    0    1    1    1 ; (Configuración 6).
; 1   1   1   |   1    1    1    1    1    1 ; (Configuración 7).
;
; Las entradas C, B, A se conectarán a las líneas del puerto A: RA2 (C), RA1 (B) y RA0 (A).
; Las salidas se obtienen en el puerto B:
; RB5 (S5), RB4 (S4), RB3 (S3), RB2 (S2), RB1 (S1) y RB0 (S0).
;
; ZONA DE DATOS **********************************************************************

__CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST    P=16F84A
INCLUDE  <P16F84A.INC>

; ZONA DE CÓDIGOS ********************************************************************

ORG 0 ; El programa comienza en la dirección 0.
Inicio
bsf STATUS,RP0 ; Acceso al Banco 1.
clrf TRISB ; Las líneas del Puerto B se configuran como salida.
movlw b'00011111' ; Las 5 líneas del Puerto A se configuran como entrada.
movwf TRISA
bcf STATUS,RP0 ; Acceso al Banco 0.
Principal
movf PORTA,W ; Lee el valor de las variables de entrada.
andlw b'00000111' ; Se queda con los tres bits de entrada.
addwf PCL,F ; Salta a la configuración adecuada.
Tabla
goto Configuracion0
goto Configuracion1
goto Configuracion2
goto Configuracion3
goto Configuracion4
goto Configuracion5
goto Configuracion6
goto Configuracion7
Configuracion0
movlw b'00001010' ; (Configuración 0).
goto ActivaSalida
Configuracion1
movlw b'00001001' ; (Configuración 1).
goto ActivaSalida
Configuracion2
movlw b'00100011' ; (Configuración 2).
goto ActivaSalida
Configuracion3
movlw b'00001111' ; (Configuración 3).
goto ActivaSalida
Configuracion4
movlw b'00100000' ; (Configuración 4).
goto ActivaSalida
Configuracion5
movlw b'00000111' ; (Configuración 5).
goto ActivaSalida
Configuracion6
movlw b'00010111' ; (Configuración 6).
goto ActivaSalida
Configuracion7
movlw b'00111111' ; (Configuración 7).
ActivaSalida
movwf PORTB ; Visualiza por el puerto de salida.
goto Principal

END

; ===================================================================
;   Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
;   E. Palacios, F. Remiro y L. López.
;   Editorial Ra-Ma.  www.ra-ma.es
; ===================================================================

Este ejemplo si esta mas claro, en vez de activar salidas, activamos funciones.

Un saludo...

:-/ Saludos  :-/ Desde  :-/ Colombia  :-/

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
Re: De 3 entradas crear 7 entradas???
« Respuesta #6 en: 12 de Mayo de 2007, 04:34:54 »
Citar
Sispic no entiendo el segundo circuito


Para comprovar los pulsadores 1,2 y 3 lo hariamos de forma normal .

Es decir:
A B Y C como entradas y verificamos cual de ellas es a cero .

si el resultado de esta comprovacion no tiene exito "Ninguna a cero", pondremos B como salida y a nivel cero .
Si A es cero , el 4 puede estar pulsado
Nos aseguraremos con A como salida  anivel cero y B como entrada , si B es cero ya tenemos pulsado el 4 .

mincho , creo que tu problema se deve a que es muy dificil pulsar dos a la vez en el mismo instante , yo me recrearia mas en la comprovacion .

El 1 esta pulsado ? = si
esperamos por ejemplo 100 ms
El 1 continua pulsado y el 2 tambien lo esta ? = si  ,  bingo

suertes






es mas lio  :? pero creo que puede funcionar




Desconectado mincho

  • PIC12
  • **
  • Mensajes: 81
Re: De 3 entradas crear 7 entradas???
« Respuesta #7 en: 12 de Mayo de 2007, 12:19:54 »
Citar
mincho , creo que tu problema se deve a que es muy dificil pulsar dos a la vez en el mismo instante
, Sispic, exactamente eso es lo que busco que sea casi iposible pulsar los 2 o los 3 al mismo tiempo; para lograr pulsarlos al mismo tiempo voy a usar un "74LS21" o los "diodos", dime si es posible y que opcion es mejor para lo que quiero???


Gracias por la ayuda...

Un Saludo...

:-/ Saludos  :-/ Desde  :-/ Colombia  :-/

Desconectado mincho

  • PIC12
  • **
  • Mensajes: 81
Re: De 3 entradas crear 7 entradas???
« Respuesta #8 en: 12 de Mayo de 2007, 15:18:29 »
Mi codigo esta funcionando asi:

Código: [Seleccionar]
TECLA
BCF INTCON,RBIF ;Limpio flag RBIE

BTFSS PORTB,RB4 ;Si pulso tecla CREDIT30 salta a rutina CREDIT30
GOTO CREDIT30

BTFSS PORTB,RB5 ;Si pulso tecla MOSTRAR salta a rutina MOSTRAR
GOTO MOSTRAR

BTFSS PORTB,RB6 ;Si pulso tecla BORRAR salta a rutina BORRAR
GOTO BORRAR

MOVF TEMP,W ;POP al acumulador
RETFIE

Y la modificacion que pienso seria algo as:

Código: [Seleccionar]
; ------------|---------------------------
; 0   0   0   | ; (NADA).
; 0   0   1   | ; (CREDIT30).
; 0   1   0   | ; (CREDIT5).
; 0   1   1   | ; (MOSTRAR).
; 1   0   0   | ; (GUARDAR).
; 1   0   1   | ; (MOSTRAR2).
; 1   1   0   | ; (MOSTRAR3).
; 1   1   1   | ; (BORRAR).

TECLA
BCF INTCON,RBIF ;Limpio flag RBIE
movf PORTB,W ; Lee el valor de las variables de entrada.
andlw b'01110000' ; Se queda con los tres bits de entrada.
BTFSS PORTB,RB4
BTFSS PORTB,RB5
BTFSS PORTB,RB6
addwf PCL,F ; Salta a la configuración adecuada.
Tabla
goto NADA
goto CREDIT30             ;Si pulso tecla CREDIT30 salta a rutina CREDIT30
goto CREDIT5 ;FUNCION NUEVA
goto MOSTRAR              ;Si pulso tecla MOSTRAR salta a rutina MOSTRAR
goto GUARDAR             ;FUNCION NUEVA
goto MOSTRAR2            ;FUNCION NUEVA
goto MOSTRAR3            ;FUNCION NUEVA
goto BORRAR                ;Si pulso tecla BORRAR salta a rutina BORRAR
goto TECLA

Alguien me puede decir si esta bien ya que esta tabla esta basada en el puerto b, o que le agrego o le quito...

Gracias por la ayuda:::

Un saludo...
« Última modificación: 12 de Mayo de 2007, 15:53:39 por mincho »

:-/ Saludos  :-/ Desde  :-/ Colombia  :-/

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: De 3 entradas crear 7 entradas???
« Respuesta #9 en: 12 de Mayo de 2007, 19:37:56 »
Para estos casos lo mas facil es utilizar una lógica a base de diodos que es lo mas sencillo:



Hay que tener en cuenta que la logica está invertida, por lo que lees el puerto lo complementas y ya tendras en binario el número del pulsador.

También te dejo la simulación en Proteus.

Un saludo.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: De 3 entradas crear 7 entradas???
« Respuesta #10 en: 12 de Mayo de 2007, 20:35:46 »
Y la modificacion que pienso seria algo as:

Código: [Seleccionar]
; ------------|---------------------------
; 0   0   0   | ; (NADA).
; 0   0   1   | ; (CREDIT30).
; 0   1   0   | ; (CREDIT5).
; 0   1   1   | ; (MOSTRAR).
; 1   0   0   | ; (GUARDAR).
; 1   0   1   | ; (MOSTRAR2).
; 1   1   0   | ; (MOSTRAR3).
; 1   1   1   | ; (BORRAR).

TECLA
BCF INTCON,RBIF ;Limpio flag RBIE
movf PORTB,W ; Lee el valor de las variables de entrada.
andlw b'01110000' ; Se queda con los tres bits de entrada.
BTFSS PORTB,RB4
BTFSS PORTB,RB5
BTFSS PORTB,RB6
addwf PCL,F ; Salta a la configuración adecuada.
Tabla
goto NADA
goto CREDIT30             ;Si pulso tecla CREDIT30 salta a rutina CREDIT30
goto CREDIT5 ;FUNCION NUEVA
goto MOSTRAR              ;Si pulso tecla MOSTRAR salta a rutina MOSTRAR
goto GUARDAR             ;FUNCION NUEVA
goto MOSTRAR2            ;FUNCION NUEVA
goto MOSTRAR3            ;FUNCION NUEVA
goto BORRAR                ;Si pulso tecla BORRAR salta a rutina BORRAR
goto TECLA

Alguien me puede decir si esta bien ya que esta tabla esta basada en el puerto b, o que le agrego o le quito...

Gracias por la ayuda:::

Un saludo...

Hola.

TECLA
   BCF   INTCON,RBIF      ;Limpio flag RBIE
   swapf   PORTB,W         ; Lee el valor de las variables de entrada e intercambio nibbles.
   andlw   b'00000111'      ; Se queda con los tres bits de entrada.

   addwf   PCL,F         ; Salta a la configuración adecuada.
Tabla
   goto   NADA
   goto   CREDIT30             ;Si pulso tecla CREDIT30 salta a rutina CREDIT30
   goto   CREDIT5       ;FUNCION NUEVA
   goto   MOSTRAR              ;Si pulso tecla MOSTRAR salta a rutina MOSTRAR
   goto   GUARDAR             ;FUNCION NUEVA
   goto   MOSTRAR2            ;FUNCION NUEVA
   goto   MOSTRAR3            ;FUNCION NUEVA
   goto   BORRAR                ;Si pulso tecla BORRAR salta a rutina BORRAR
   goto    TECLA
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado mincho

  • PIC12
  • **
  • Mensajes: 81
Re: De 3 entradas crear 7 entradas???
« Respuesta #11 en: 13 de Mayo de 2007, 00:47:47 »
Gracia Bruno, mañana lo ensayo, ya que me di por vencido con el codigo que postee, y con los diodos.

Citar
TECLA
   BCF   INTCON,RBIF      ;Limpio flag RBIE
   swapf   PORTB,W         ; Lee el valor de las variables de entrada e intercambio nibbles.
   andlw   b'00000111'      ; Se queda con los tres bits de entrada.

   addwf   PCL,F         ; Salta a la configuración adecuada.
Tabla
   goto   NADA
   goto   CREDIT30             ;Si pulso tecla CREDIT30 salta a rutina CREDIT30
   goto   CREDIT5       ;FUNCION NUEVA
   goto   MOSTRAR              ;Si pulso tecla MOSTRAR salta a rutina MOSTRAR
   goto   GUARDAR             ;FUNCION NUEVA
   goto   MOSTRAR2            ;FUNCION NUEVA
   goto   MOSTRAR3            ;FUNCION NUEVA
   goto   BORRAR                ;Si pulso tecla BORRAR salta a rutina BORRAR
   goto    TECLA

Un Saludo...

:-/ Saludos  :-/ Desde  :-/ Colombia  :-/

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: De 3 entradas crear 7 entradas???
« Respuesta #12 en: 26 de Mayo de 2007, 13:03:30 »
Maestro Sisco, brillante solución combinando los pines como entrada y salida.

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: De 3 entradas crear 7 entradas???
« Respuesta #13 en: 26 de Mayo de 2007, 14:14:32 »
Hola

Una idea...el IC74148 podria ser una solución

saludos
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.


 

anything