Autor Tema: Mostrar por un pin el valor de todo un puerto  (Leído 1970 veces)

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

Desconectado camhost1

  • PIC12
  • **
  • Mensajes: 51
Mostrar por un pin el valor de todo un puerto
« en: 25 de Diciembre de 2015, 18:34:34 »
Buen día compañeros,

Me encuentro realizando la programación de un cubo led de 4x4x4 con un pic 16f628, para poder cubrir la cantidad de pines de salida necesarios estoy utilizando los registros de desplazamiento 74595. La pregunta que tengo es la siguiente:
Tengo un array de datos a mostrar un efecto en el cubo ej:
int efecto1[64]={64,64,64,64,96,96,96.....};
Lo que necesito es lo siguiente, efecto1[0]=64 o en binario 0b01000000, este valor necesito mostrarlo por el pin de datos del 74595, es decir que por este PIN se muestre la secuencia 010000000. Resumiendo necesito mostrar por un solo pin el valor de un byte. Muchas gracias por tomarse el tiempo de leer.
« Última modificación: 25 de Diciembre de 2015, 18:40:22 por camhost1 »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Mostrar por un pin el valor de todo un puerto
« Respuesta #1 en: 25 de Diciembre de 2015, 18:41:42 »
La respuesta que buscas se resume en 3 simples letras:

SPI

Desconectado camhost1

  • PIC12
  • **
  • Mensajes: 51
Re:Mostrar por un pin el valor de todo un puerto
« Respuesta #2 en: 25 de Diciembre de 2015, 20:11:01 »
Hola compañeros,

Gracias por responder tan rapido, encontre otra solución diferente a la expuesta de usar SPI, para quien le pueda servir
Código: [Seleccionar]
#define DATA PIN_A0
#define CLOCK PIN_A1
#define STROBE PIN_A2

const int habilitar_dato[8]={128,64,32,16,8,4,2,1};
const int efecto1[8]={64,64,64,64,64,64,64,64};
void main()
{
 int x,y;
 for(y=0;y<8;y++)
 {
  for(x=0;x<8;x++)
  {
         if((efecto1[y]&habilitar_dato[x)==0)output_bit(DATA,0);else output_bit(DATA,1);
         output_bit(CLOCK,1);
         delay_cycles(1);
         output_bit(CLOCK,0);
   }
      output_bit(STROBE,1);
      delay_cycles(1);
      output_bit(STROBE,0);
 }
}
Con esto di solución, Gracias!!! :-/

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Mostrar por un pin el valor de todo un puerto
« Respuesta #3 en: 25 de Diciembre de 2015, 21:42:45 »
Eso es un SPI por software :)