desktop

Memorias RAM y Matriz de LEDS con el puerto paralelo del PC

Como grabar y leer una memoria RAM para formar una matriz de leds de 8x5
Como grabar la memoria mediante el puerto paralelo del PC
 
mediante un simple contador , por ejemplo un 4044

El contador se utiliza para generarlas direcciones y se lee por D0 a D7.

Esto permite leer la memmoria direcciona direccion

Otra forma es utilizando un registro de desplazamiento tipo 4094, le envias los datos tipo"serie" y liego el 4094 te lo pasa a paralelo. Siempre estamos hablando del bus de direcciones.

Finalmente el metodo engorroso es utilizando 74hct574 como lach.
pero necesitaras PCB y puentes.
Utilizarias este chip como memoria. Pones las direccion baja en el puelto y la memorizas, pones la direccion alta en lpt y memorizas y finalmente lees el dato de la ram.
 
gracias por la respuesta pero lo que yo necesito es saber los comandos en visual basic que me permitan sacar un clock pulse del puerto paralelo para ingresarlo al contador.
 
mauriciodtdt dijo:
gracias por la respuesta pero lo que yo necesito es saber los comandos en visual basic que me permitan sacar un clock pulse del puerto paralelo para ingresarlo al contador.

Yo te recomiendo que utilices un Driver para tal fin, es decir para acceder al puerto paralelo, siempre y cuando estemos hablando de que usas como SO alguno basado en NT, como el windows XP. Entre los drivers que andan dando vueltas, tenes 2 muy simples: el PortTalk y el Inpout32, estos archivos son 2 dll que tienen declaradas ya las funciones de acceso al puerto con todas las salvedades de Privilegios de Acceso, para lo cual, si utilizas sentencias directas desde VBasic, te dara error de acceso, por ser una funcion de Privilegio.

Las funciones a utilizar son:

Código:
function Inp32(direccion:word):byte; stdcall; external 'inpout32.dll';
function Out32(direccion:word;Dato:byte):byte; stdcall; external 'inpout32.dll';

Con respecto a VBasic, tenes una DLL muy buena, implementada por Pablin

Código:
La librería que presentamos ahora permite desarrollar aplicaciones que funcionen tanto en Windows95 como en Windows XP pasando por todas las versiones intermedias. Adicionalmente tenemos un conjunto extendido de operaciones posibles a realizar tales como:

PortOut: Envía un byte al puerto especificado 

PortWordOut: Envía una palabra (de 16 bits) al puerto especificado 

PortDWordOut: Envía una palabra doble (de 32 bits) al puerto especificado 

PortIn: Lee un byte del puerto especificado 

PortWordIn: Lee una palabra (16 bits) del puerto especificado 

PortDWordIn: Lee un palabra doble (32 bits) del puerto especificado 

SetPortBit: Pone en 1 el bit especificado del puerto indicado 

ClrPortBit: Pone en 0 el bit especificado del puerto indicado 

NotPortBit: Invierte el estado del bit especificado del puerto indicado 

GetPortBit: Obtiene el estado del bit especificado 

RightPortShift: Rota a la derecha el contenido del puerto haciendo que LSB pase a MSB 

LeftPortShift: Rota a la izquierda el contenido del puerto haciendo que MSB pase a LSB 

IsDriverInstalled: Devuelve un valor diferente a 0 si el driver se encuentra cargado en memoria 

Para poder utilizar esta librería basta con copiar el archivo IO.DLL en la carpeta donde está el programa en desarrollo y agregar en un módulo BAS lo siguiente:

Private Declare Sub PortOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Byte)
Private Declare Sub PortWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Integer)
Private Declare Sub PortDWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Long)
Private Declare Function PortIn Lib "IO.DLL" (ByVal Port As Integer) As Byte
Private Declare Function PortWordIn Lib "IO.DLL" (ByVal Port As Integer) As Integer
Private Declare Function PortDWordIn Lib "IO.DLL" (ByVal Port As Integer) As Long
Private Declare Sub SetPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Private Declare Sub ClrPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Private Declare Sub NotPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Private Declare Function GetPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte) As Boolean
Private Declare Function RightPortShift Lib "IO.DLL" (ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Private Declare Function LeftPortShift Lib "IO.DLL" (ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Private Declare Function IsDriverInstalled Lib "IO.DLL" As Boolean
************************************************** **[url]http://www.pablin.com.ar/computer/programa/vb/io.dll[/url]

[url]http://www.pablin.com.ar/computer/programa/vb/iodll.htm[/url]

Saludos

PD: te adjunto el PortTalk y el ImpOut32.dll y tambien Io.dll de Pablin
 

Adjuntos

  • inpout32_604.zip
    11.7 KB · Visitas: 112
  • porttalk22_205.zip
    66.4 KB · Visitas: 105
  • io_214.zip
    26.6 KB · Visitas: 101
buena amigo, estaba esperando algo haci...

por si fuera el caso que tuvieras un programa (o como diseñar un programa) para controlar un circuito con el puerto paralelo del Pc, lo podrias mandar.

GRACIAS 8)
 
mauriciodtdt dijo:
gracias por la ayuda, cualquier duda de la matriz de leds o programacion de la memoria RAM haganmela saber

Tengo este circuito!
como hago ahora usando memorias ram el desplazamiento en tres matrices de 5x7 o 5x8?
 

Adjuntos

  • sin_ttulo_1_173.png
    sin_ttulo_1_173.png
    91.4 KB · Visitas: 173
Atrás
Arriba