Lenguaje De Interfaz
Enviado por carapobo • 4 de Diciembre de 2014 • 1.889 Palabras (8 Páginas) • 164 Visitas
PROGRAMACIÓN DEL PUERTO PARALELO
El puerto paralelo de una PC es ideal para ser usado como herramienta de control de motores, LED's, etc. El mismo posee un bus de datos de 8 bits (Pin 2 a 9) y muchas señales de control, algunas de salida y otras de entrada que también pueden ser usadas fácilmente.
Las PC's generalmente poseen solo uno de estos puertos (LPT1) pero se le puede adicionar una tarjeta con un segundo puerto paralelo (LPT2).
En reglas generales la dirección hexadecimal del puerto LPT1 es igual a 0x378 (888 en decimal) y 0x278 (632 en decimal) para el LPT2. Esto se puede verificar fácilmente en el setup de la PC.
Breve descripción del puerto paralelo
El puerto paralelo de un PC posee un conector de salida del tipo DB25 hembra cuyo diagrama y señales utilizadas podemos ver en la siguiente figura:
Si deseamos escribir un dato en el bus de salida de datos (pin 2 a 9) solo debemos escribir el byte correspondiente en la dirección hexadecimal 0X378 (888 en decimal) cuando trabajamos con el LPT1 y 0x278 (632 en decimal) cuando trabajamos con el LPT2. Los distintos pins (bits) de salida correspondientes al bus de datos no pueden ser escritos en forma independiente, por lo que siempre que se desee modificar uno se deberán escribir los ocho bits nuevamente.
Para leer el estado de los pins de entrada (10, 12, 13 y 15) se debe realizar una lectura a la dirección hexadecimal 0x379 (889 en decimal) si trabajamos con el LPT1 o bien leer la dirección 0x279 (633 en decimal) si trabajamos con el LPT2. La lectura será devuelta en un byte en donde el bit 6 corresponde al pin 10, el bit 5 corresponde al pin 12, el bit 4 corresponde al pin 13 y el bit 3 corresponde al pin 15.
Option Explicit
Public Out_TTL As Byte 'contiene el BYTE a sacar por el puerto
Public In_Port As Integer 'contine la dirección de lectura del LPT
Public Out_Port As Integer 'contiene la direcc.para escribir al LPT
Private Sub Form_Load() 'procedimiento inicial
'Configura la COMBOLIST cmbLptSelect
cmbLptSelect.AddItem "0x378"
cmbLptSelect.AddItem "0x278"
cmbLptSelect.AddItem "0x3BC"
'Establece LPT1 como default
cmbLptSelect.ListIndex = 0
SetLPTAddress 'estable direccion base del LTP
Port_Reset 'reseteo salidas TTL
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = 1 'evita que se salga mediante la 'X'
End Sub
Private Sub Form_Unload(Cancel As Integer) 'si sale del programa
Port_Reset 'entonces reseteo salidas TTL
End
End Sub
Private Sub cmdSalir_Click() 'si presiono SALIR, reseteo
Port_Reset 'las salidas TTL y salgo del programa
End
End Sub
Private Sub Port_Reset() 'procedimiento para resetear salidas TTL
PortOut Out_Port, 0
End Sub
Private Sub cmbLptSelect_Click()
SetLPTAddress 'llamo rutina para determinarar la direccion
'base del nuevo LPT elegido
End Sub
Private Sub cmdHelpOnLpt_Click()
frmHelpOnLpt.Show
End Sub
Private Sub SetLPTAddress() 'establece la direccion correpondiente
'al puerto seleccionado
Select Case cmbLptSelect.ListIndex
Case Is = 0
Out_Port = &H378
Case Is = 1
Out_Port = &H278
Case Is = 2
Out_Port = &H3BC
End Select
In_Port = Out_Port + 1
End Sub
Private Sub Chkttl0_Click() 'invierto estado de TTL0
If chkTTL0.Value = 1 Then
SetPortBit Out_Port, 0
chkTTL0.Caption = "Salida TTL0 = 1 - ALTO"
Else
ClrPortBit Out_Port, 0
...