Autor Tema: 74LS164 y Registros de desplazamiento  (Leído 3824 veces)

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

Desconectado MatiDeve

  • PIC10
  • *
  • Mensajes: 14
74LS164 y Registros de desplazamiento
« en: 10 de Julio de 2014, 00:10:17 »
Buenas a todos, queria hacer una matriz de 40 x 10, la cual cada fila es conectada a cada pin del PIC16F877A y cada columna a cada pin de 5 74LS164.

Entendi perfectamente la parte electronica, pero mi pregunta es acerca del codigo.

Se que lo que tengo que hacer al momento de prender o apagar ciertas columnas es enviar un registro (despues de hacer algo previo con el clock).

Ahora mis preguntas son:
Como creo que un registro? Conozco las funciones ShiftRight y ShiftLeft que son para los desplazamientos de registros pero no conozco como crear los registros (en donde aprendi no lo decia).

Respecto a como sea esta respuesta, se generará otra duda o no.

Gracias de antemano y espero que me puedan ayudar pronto :)

Edit: Por las dudas pregunto, los registros son funciones especiales de los pics como el ADC o el PWM por hardware? O es solo programacion?
« Última modificación: 10 de Julio de 2014, 00:13:26 por MatiDeve »

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: 74LS164 y Registros de desplazamiento
« Respuesta #1 en: 10 de Julio de 2014, 05:45:47 »
Te has liado, el ADC o PWM son módulos o circuitos que están compartiendo chip con el procesador, estos módulos se configuran y se comunican a través de registros con la unidad central, y los registros son tan solo direcciones de memoria normalmente tipo Ram; y se suelen dividir en dos tipos; los del usuario o propósito general y los específicos del sistema que sirven para configurar el procesador y los módulos internos.

Por ejemplo:
Cuando declaras una variable, ya estas utilizando un registro, lo que haces es asignarle nombre para poder utilizarlo.

El Portb es otro registro que tiene asociados sus bits a salidas físicas, cuando escribes en el Portb obtienes una imagen de sus bits en sus correspondientes pines asociados.
Saludos desde Granada, España.

Desconectado MatiDeve

  • PIC10
  • *
  • Mensajes: 14
Re: 74LS164 y Registros de desplazamiento
« Respuesta #2 en: 10 de Julio de 2014, 10:55:50 »
Gracias por tu respuesta, aclaro un poco mis dudas.
El tema es el siguiente:
Yo necesito enviarle un registro al 74LS164. Para esto cambio el estado del clock, lo envio y lo cambio nuevamente. Como envio ese registro? Se hace a traves de algun pin en especial? (eso que me contaste de portb?)

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: 74LS164 y Registros de desplazamiento
« Respuesta #3 en: 12 de Julio de 2014, 12:16:13 »
No he utilizado nunca 74LS164, no se  como funciona, tendría que estudiar el datasheets del integrado para poder contestarte y por el momento no dispongo de ese tiempo. Imagino que ese integrado tendrá alguna forma de comunicarse con el PIC, y seguramente será mediante transferencia paralelo o por transferencia serie, por lo que te recomiendo que leas sobre transmisión de datos paralelo y transmisión de datos serie, son muy simples y de seguro que te resolverán las dudas que te faltan.
 
Saludos desde Granada, España.

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2060
Re: 74LS164 y Registros de desplazamiento
« Respuesta #4 en: 12 de Julio de 2014, 12:28:20 »
Bueno lo podrias hacer asi:
Cuando quieras enviar un dato, apaga las filas.
Luego envias el dato a los 74ls164 y por ultimo enciendes las filas.  :mrgreen:
Y luego vuelves a repetir para datos nuevos  :D
Para enviar los datos a los registros debes usar SPI, como no se en que lenguaje estas programando debes revisar que instruccion te sirve para ello.

Saludos

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: 74LS164 y Registros de desplazamiento
« Respuesta #5 en: 12 de Julio de 2014, 12:35:43 »
Hola.

En CCS hay funciones de corrimiento como shift_left o shift_right con las cuales se puede hacer lo que quieres. El pin de salida puede ser cualquiera.

Saludos
El papel lo aguanta todo

Desconectado MatiDeve

  • PIC10
  • *
  • Mensajes: 14
Re: 74LS164 y Registros de desplazamiento
« Respuesta #6 en: 13 de Julio de 2014, 20:53:23 »
Buenas a todos, les cuento que ya entendi como funciona y se lo explico por si alguno le sirve.

La cuestion es esta: el 74LS164 tiene cuatro entradas:
las primeras dos son data que las resuelve en una sola con un comparador AND.
La tercera es el clock
La cuarta es el reset

Cuando el clock cambia de valor logico de bajo a alto, recibe la informacion de DATA. Esa informacion (un bit, 1 o 0) se "guarda" en el pin de salida 1. Cuando recibe otro bit, el bit nuevo es guardado en el pin de salida 1 y el que estaba en el pin de salida 1, pasa al pin de salida 2 y asi sucesivamente mientras mas datos ingresen. Se pueden conectar varios de estos y en vez de tener solo 8 pines de salida, tener 40 de salidas (como lo que yo necesito), conectando el octavo pin de salida al Data del proximo 74LS164.

Ahora tengo que ver como guardar la informacion de que leds prender en variables ya que de la forma que tenia pensado hacerlo no tengo memoria suficiente, pero ya vamos a ver que sale y si alguno lo quiere, lo subo sin problemas.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: 74LS164 y Registros de desplazamiento
« Respuesta #7 en: 14 de Julio de 2014, 19:04:21 »
Por supuesto, por aquí estaremos esperando.  :mrgreen:
Saludos desde Granada, España.


 

anything