Puerto paralelo con display 7 segmentos y display alfanumerico

#1
Ya he realizado una conexion basica del puerto paralelo a 8 leds en la protoboard, ahora quiero que en lugar de prender los leds prenda un display de 7 segmentos indicandome que numero deberia prenderse, he visto varios ejemplos y parece que los conectan directamente...

y el segundo proyecto es para hacer lo mismo pero enviar el valor en hexadecimal y que lo proyecte en el mismo hexadecimal en el protobard, me comentaron de un chip alfanumerico pero no logro encontrarlo, alguien me puede ayudar?
 
#2
Los siete segmentos son iguales a los LEDs pero vienen en un paquete arreglados en esa forma; de 7 segmentos.

Pueden tener el ánodo o el cátodo común a todos ellos (uno para todos) dependiendo del modelo. Pero los puedes usar de igual forma que los led convencionales.

Aquí también deberás calcular y usar sus resistencias de manejo de corriente de acuerdo al modelo y a la capacidad del paralelo para no quemar los drivers del puerto.

Si tienes cada led del siete segmentos conectados a cada pin de salida del puerto paralelo, solo debes tener una tabla de conversión de los números del 0 al 9 o de las letras a su correspondiente byte de salida para el puerto.

Esto depende de que led conectes en cada pin del DB25.

Suponte el esquema del anexo (sería un ánodo común = la tierra o el polo negativo es uno para todos).

Para esa conexión, si quieres colocar el número "2", el byte formado por los pines del puerto paralelo desde Data0 (pin2) hasta Data6 (pin8) y que deberías mandar desde el programa de la computadora, debería ser (en orden inverso - desde pin8 hasta pin2) 1101101

Para la letra "A" sería 1110111 y así suscesivamente.

Para número hexadecimales puedes tener otra lista de conversión y de acuerdo al número o la letra mandas el byte.

Saludos,
Marcelo.
 

Adjuntos

#3
Si lo vas a hacer por puerto paralelo.. seria mejor que mandaras los datos en serie para que luego en unos registrso de corrimiento tal como el cd4094 quedaran los datos del display....asi.. quedan mas pines para mas cosas.. por que ni usando los pines del LPT de control alcanza como para manejar un display de 16 segmentos......un programa en C++ haria todo eso

Zidaemon, Mexico DF
 
#4
veras nunca se conecta directamente porq puedes llegar a dañar tu puerto yo siempre lo he echo usando integrados en especial el 74LS244 q es un a etapa separadora y al mismo tiempo mejora la capacidad de manejo de corriente bueno aqui te envio un programita q maneja 4 display de 7 segmentos es decir por el puerto paralelo com tiene 8 pines cuatro los uso para enviar los datos a un dedoder (de binario a BCD ) y los otros cuatro los uso para controlar los display el programa corre en turbo C o visual C ojala puedas realizarlo si no me abisas versa los numero q tu le ingreses y esos los modificas en el lugar q dice unsigned chart tabla, si te das cuenta estan escritos en hexadecimal y cada uno corresponde a un display va de mas significativo (0x75=5) a menos significativo (0xE3=7) eso es lo q veras cada numero por un time si quieres verlo por mas tiempo solo aumenta el delay es facil donde dice sleep ok suerte

Código:
#include <windows.h>
#include <stdio.h>

unsigned char tabla[4]={0x75,0xB7,09,0xE3};	// Define arreglo tabla
int i, j;

void main()
{
	for(i=0; i<=500; i++)	// Tiempo de visualización del numero
	{
		for(j=0; j<=3; j++)	// Multiplexa los datos en el tiempo
		{
			_outp(0x378,tabla[j]);	// Envía al puerto valor de tabla
			Sleep(1);	// Genera una frecuencia de 1kHz
		}
	}
	_outp(0x378,0xFF);	// Apaga los displays
}
 

Adjuntos

#7
No creo que hagan a estas altura de la vida manejar el Dispaly de 7 segmentos por el puerto paralelo. No le veo el sentido.

 
#8
interesante el tema... voy a probarlo....... yo le veo mucha utilidad para un proyecto mio.

la idea es q tengo una cpu conectada con mi interface por puerto paralelo a un anemometro (las 3 cucharitas q dan vuelta con el viento) y la tengo asi corriendo un programita q hice en quickbasic para medir la velocidad.

esto es ideal porque me ahorro tener q poner un monitor para solo ver un numero. lo gago con el mismo puerto paralelo y lo pongo en el frente del gabinete.

salu2
 
#9
cryingwolf dijo:
interesante el tema... voy a probarlo....... yo le veo mucha utilidad para un proyecto mio.

la idea es q tengo una cpu conectada con mi interface por puerto paralelo a un anemometro (las 3 cucharitas q dan vuelta con el viento) y la tengo asi corriendo un programita q hice en quickbasic para medir la velocidad.

esto es ideal porque me ahorro tener q poner un monitor para solo ver un numero. lo gago con el mismo puerto paralelo y lo pongo en el frente del gabinete.

salu2
 
#11
#include <windows.h>
#include <stdio.h>

unsigned char tabla[4]={0x75,0xB7,09,0xE3}; // Define arreglo tabla
int i, j;

void main()
{
for(i=0; i<=500; i++) // Tiempo de visualización del numero
{
for(j=0; j<=3; j++) // Multiplexa los datos en el tiempo
{
_outp(0x378,tabla[j]); // Envía al puerto valor de tabla
Sleep(1); // Genera una frecuencia de 1kHz
}
}
_outp(0x378,0xFF); // Apaga los displays
}