Autor Tema: Multiplexor o Registro de desplazamiento en C para pic  (Leído 13263 veces)

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

Desconectado yako

  • PIC10
  • *
  • Mensajes: 2
Re: RE: Multiplexor o Registro de desplazamiento en C para pic
« Respuesta #15 en: 26 de Noviembre de 2012, 12:59:16 »
Bueno solo deciros que ya lo he solucionado... era problema mio de timers... lo hacía tan rápido que los leds parecían siempre encendidos.

1 saludo gracias a todos por vuestro tiempo.
una pregunta si enviaste el pin 2 a vcc o que mas modificasiones hiciste por favor contesta tengo el mismo problema

Desconectado CjS

  • PIC10
  • *
  • Mensajes: 1
Re: Multiplexor o Registro de desplazamiento en C para pic
« Respuesta #16 en: 30 de Septiembre de 2015, 00:36:10 »
Para un proyecto de estudio, debo diseñar un programa cuya consigna es la siguiente:
Para controlar muchos elementos simples como magnetos, se le asigna a cada uno un bit. El conjunto de bit se envía en forma serial. Cada elemento está preparado para reconocer y aceptar el bit que le corresponde. El controlador maneja un registro de desplazamiento (shift register CD4094) con 4 líneas, una envía los bit (Dato), otra da la señal de reloj (el dato es valido con el flanco de subida) , otra para indicar que se activen los elementos (STROBE) y la cuarta para activar las salidas (OE).
Realizar un controlador para 48 elementos, con una señal de reloj de 100hz o más. Es manejado por 5 pulsadores.
Cuando el pulsador ACCIÓN es puesto a nivel L la señal de activación de elementos (OE) es puesta a nivel H.
Cuando el pulsador ARRIBA sea activado se enviaran 48 bit todos 1 (FFFFFFFFFFFFh).
Cuando el pulsador ABAJO sea activado se enviaran 48 bit todos 0 (000000000000h)
Cuando el pulsador ALTERNADO sea activado por primera vez se enviara el mensaje AAAAAAAAAAAh, la siguiente vez se enviara el mensaje 555555555555h, y así sucesivamente alternando la secuencia a enviar.
Cuando el pulsador DE A UNO sea activado se enviara el mensaje 000000000001h, la siguiente vez 000000000002h y así sucesivamente activando un magneto por vez hasta enviar el valor 800000000000h.
Despues de enviar la secuencia se manda un pulso por el pin STROBE para que la información se grabe en los flip-flop de salida.
(para PIC 16F628A)

Para comenzar necesito diseñar un generador de regidtro de desplazamiento sensillo, tal vez de 8 bit; necesitaria ayuda con esto. muchas gracias!
PD: No soy bueno ccon lo que respecta a pics y programacion.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Multiplexor o Registro de desplazamiento en C para pic
« Respuesta #17 en: 30 de Septiembre de 2015, 01:32:45 »
Justamente es para un proyecto de estudio por el cual el codigo no creo que te lo vayan a dar facilmente, ya que estarian haciendo tu tarea.
Si tenes algo implementado seria bueno que lo pongas de esa forma es mas facil de decirte que necesitas cambiar para que luego vos lo hagas.

----------------------------

Como hacer el programa que pedis? Y depende.
Primero que nada va a depender de que lenguaje estes usando, si es C o ASM o BASIC. De eso va a depender la ayuda, la facilidad de codigo, etc. Y tambien hay que nombrar el compilador, ya que no es lo mismo usar XC8 que CCS para cuando programas en C.

Lo que se te pide es MUY simple. Y podes hacerlo de 2 formas.

Creando un SPI por software, o usando el SPI por hardware, lo bueno que cualquier que uses estos envian 8 bits.
A mi gusto usaria el SPI por hardware, se complicara un poco mas la configuracion, pero es muy simple luego para enviar datos.
Y si no queres meterte en aprender como configurar un modulo, entonces usas un SPI por software, para esto tal ves necesites un poco mas de conocimiento de programacion para entenderle, aunque no mucho.

------------------------

Hay algo que aun en la consigna no quedo claro:
Cuando OE se pone a 0 ? Ya que ACCION lo pone a 1, cuando o como se pone a 0 ?


PD: Todo esto es para que investigues y no que pienses que se te va a dar el codigo. El programa en el PIC es muy simple, solo tenes que hacer llenar casi una plantilla y funciona. Supongamos que estas en C y XC8

Código: [Seleccionar]
;Aca include
;Aca fuses ( te los hace solo el MPLAB)

main() {
  ;Aca configuracion de modulos ( I/O , SPI, ADC , etc )  //Mira el datasheet o ejemplos y lo vas a sacar
  while(1)
  {
    ;Aca programa principal (Leer entradas, esperar, enviar dato)
   }
}

eso es todo ...
« Última modificación: 30 de Septiembre de 2015, 01:36:04 por KILLERJC »

Desconectado Moechh

  • PIC10
  • *
  • Mensajes: 16
Re:RE: Multiplexor o Registro de desplazamiento en C para pic
« Respuesta #18 en: 23 de Abril de 2016, 23:24:40 »
Bueno solo deciros que ya lo he solucionado... era problema mio de timers... lo hacía tan rápido que los leds parecían siempre encendidos.

1 saludo gracias a todos por vuestro tiempo.
podrias comartir tu programacion


 

anything