Problema con inicializacion de lcd con puerto paralelo

Buen dia compañeros, tengo un problema relacionado con la inicializacion de una LCD 1602A de Rohs , a partir del puerto paralelo de la pc, me ha surgido el inconveniente de q no se inicializa. El programa esta hecho en visual basic studio 2010 utilizando la libreria IO.dll para el manejo del puerto. He tomado en mi parte los requerimientos de los tiempos de retardo pero no me ha funcionado para cada intruccion , esta practica que me toca hacer es configurando el LCD como 4 bits , y poder escribir en ambas lineas. Nose si las instrucciones se ejecutan bien y otra cosa seria el tiempo de propagacion ademas para la proteccion se utilizo un buffer de 74245 para la corriente.Aqui le adjunto el codigo espero que me ayuden y me puedan corregir algunas cosas del codigo.Espero sus respuestas.;)
Configuracion LCD 4 bits​
Dim DirDatos As Integer = 888 ' Direccion donde se encuentra el puerto paralelo, en decimal
Public Sub New()

End Sub

'Configuracion LCD, Se ejecuta al iniciar el programa
Public Sub InicLCD()
'9 8 7 6 5 4 3 2 Num de pines del registro de datos del puerto
' RS RW E D7 D6 D5 D4
'RS=0 RW=0
PortOut(DirDatos, 0) ' Se envia reseteo al registro de datos
Retardo(15) 'Retardo para garantizar la alimentacion
'Esto es segun el datasheet que encontre que no si sea valido para esta LCD
For x As Byte = 1 To 3 ' Se envia 3 veces el tres
'Enviar nibble bajo
PortOut(DirDatos, 3)
SeñalE(3) ' Señal de habilitacion
' Retardo de 5 ms
Retardo(5)
Next
PortOut(DirDatos, 2)
SeñalE(2)
Retardo(5)
n1 n2 retardo
Nibble2(2, 8, 0.1)
Nibble2(0, 8, 0.1)
Nibble2(0, 1, 0.1)
Nibble2(0, 6, 1)


End Sub
' Se envia cada nibble por separado para completar la palabra y la ejecucion
Private Sub Nibble2(ByVal a As Byte, ByVal b As Byte, ByVal R As Double)
PortOut(DirDatos, a) ' Se envia el nibble mas significativo
SeñalE(a)
Retardo(R)

PortOut(DirDatos, b) '' Se envia el nibble menos significativo
SeñalE(b)
Retardo(R)

End Sub

Private Sub SeñalE(ByVal dat As Byte)
Dim Se As Integer = dat Or (2 ^ 4)
PortOut(DirDatos, Se) ' Se habilita el E y se genera el pulso de habilitacion
Retardo(0.04) '40 microsegundos para E
PortOut(DirDatos, dat) ' Se deshabilita el E

End Sub

Private Sub Retardo(ByVal Ret As Double)
Dim acum As Double
reloj.Start()
Do
acum += reloj.ElapsedMilliseconds ' se acumula los milisegundos que han pasado
Loop Until acum > Ret
acum = 0
reloj.Reset()

End Sub

Public Sub Enviarletra(ByVal l As String)
' Dim letra As Integer = Asc(l)
PortOut(DirDatos, 64)
Dim Opor1 As Integer = 64 Or 4
Dim Opor2 As Integer = 64 Or 10

Nibble2(Opor1, Opor2, 0.05)



End Sub
 
Hola, Soy nuevo en esto de la electrónica y ya me han encargado un proyecto, el tema es que debo hacer un programa en lenguaje ensamblador que esté conectado al puerto paralelo de la computadora y despliegue el mensaje que escriba, la verdad tengo solo los conocimientos básicos de electrónica, si alguien pudiera ayudarme con el código y el diagrama lo agradecería mucho, el LCD es de 16x2 y tiene 16 pines
Si alguien me ayuda, lo agradeceré por siempre :) :)
 
Atrás
Arriba