Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Puerto Paralelo y VB
Puerto Paralelo y VB
Cada pin de los conectores tiene un nmero asignado por lo cual es muy importante que al
armar tus propios cables los identifiques correctamente
Este puerto dispone de tres registros de 8 bit cada uno (un byte).cada uno de estos registros se
denominan puertos o PORT., y cada uno de sus bits, representa un pin determinado del
puerto. Los pin que van del 18 al 25 (ambos inclusive): Son para masa, y sirven para conectar
las descargas de los circuitos.
Para controlar el estado de los pines del puerto paralelo basta con escribir un nmero
entero positivo de 8 bits en la direccin del mismo. El pin de datos 0, que fsicamente est
conectado al terminal 2 del conector, asume el peso 1. Este es el bit de menos peso en la
palabra de datos de dicho puerto. Siguiendo la tabla de abajo observar que es muy simple
manejar puntualmente cada uno de los pines.
Terminal
Bit
Peso
2
0
1
3
1
2
4
2
4
5
3
8
6
4
16
7
5
32
8
6
64
9
7
128
Por ejemplo, los datos 1, 2, 4, 8, 16, 32, 64 y 128, encenderan cada uno de los terminales
D0 a D7. Si queremos activar el terminal D3 escribiramos la siguiente instruccin en visual
out ( &H0x378, 8)
Instruccin (puerto, dato)
Materiales
1 diodo LED
1 resistencia de 220ohm
1 transistor de tipo NPN
Una plaqueta para armar el circuito
1 Conector Db25 Macho
Cable para interconexiones (Puede ser del de Red de 8 Hilos)
Un pequeo interruptor
Los materiales a incluirse son para un solo LED para mayor comprensin. Entendido esto
se puede utilizar los dems bits del puerto para controlar otros LEDS.
E0
D0
R1
18-25
Importante: si se desea controlar ms LEDS como en el caso de nuestro proyecto, solo tiene que aadirse un circuito para
cada salida del LPT.
Funcionamiento
El transistor que se encuentra en el diagrama es de tipo PNP el cual permite la conduccin de
corriente del emisor E hacia el colector C siempre y cuando se establezca circuito entre el
emisor E que puede recibir corriente de los pines 2-9 y la base B la cual siempre estar
conectada a tierra del puerto paralelo que va desde el pin18 hasta el 25.
Mientras el circuito est abierto (SWITCH sin presionar), E0 que puede ser cualquiera de los
pines de Estado del LPT se encuentra puesto a tierra. Cuando se cierra circuito (SWITCH
presionado) fluye corriente de D0 (cualquiera de los pines de datos) hacia el emisor del
transistor cerrando circuito mediante la base B y a su vez permite el paso de corriente del
emisor E al colector C que encender el LED y el E0 recibir la seal elctrica la cual leeremos
desde nuestro programa que determinar si el LED est encendido.
La R1 se encarga de limitar la corriente del puerto paralelo evitando que este se dae.
Materiales
1 bombillo de 110V
1 boquilla (para el bombillo)
Cable N 22 con su respectivo enchufe
1 resistencia de 220ohm
1 Moc 3010
1 Bornera
1 transistor de tipo NPN
Una plaqueta para armar el circuito
1 Conector Db25 Macho
Cable para interconexiones (Puede ser del de Red de 8 Hilos)
Un pequeo interruptor
Fig. 2
E0
D0
R1
110v C.A.
MOC 3010
Importante: si se desea controlar ms dispositivos como lmparas, cafeteras, etc., solo tiene que aadirse un circuito para
cada salida del LPT.
Funcionamiento
En este circuito explicaremos el funcionamiento del optoacoplador (MOC 3010) y del sistema
de potencia ya que el resto del circuito tiene el mismo funcionamiento que el de la figura 1
Este es un dispositivo de 6 patas que est sirviendo como aislante entre la etapa de control
(PC) y la de potencia (Dispositivo de C.A., foco, televisin, cafeteras.).
Fig. 3
En esta parte del programa contiene 3 opciones de men. En Aplicaciones fig.4. tenemos
dos submens en el cual podemos escoger lo siguiente:
Control de LEDS
Control de luces
Fig. 4
Control de LEDS
Cdigo:
Dim aux() As Integer = {0, 0, 0, 0}
La variable global para este formulario es un vector auxiliar (AUX) de tipo entero que consta
de 4 elementos (ya que en este caso usamos 4 LEDS) los cuales son inicializados a cero que
significa que estn todos apagados.
&
&
&
&
"\0.png")
"\0.png")
"\0.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"OFF"
"OFF"
"OFF"
&
&
&
&
"\0.png")
"\0.png")
"\0.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"OFF"
"OFF"
"ON"
&
&
&
&
"\0.png")
"\0.png")
"\1.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"OFF"
"ON"
"OFF"
&
&
&
&
"\0.png")
"\0.png")
"\1.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"OFF"
"ON"
"ON"
&
&
&
&
"\0.png")
"\1.png")
"\0.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"ON"
"OFF"
"OFF"
&
&
&
&
"\0.png")
"\1.png")
"\0.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"ON"
"OFF"
"ON"
&
&
&
&
"\0.png")
"\1.png")
"\1.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"ON"
"ON"
"OFF"
&
&
&
&
"\0.png")
"\1.png")
"\1.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"ON"
"ON"
"ON"
&
&
&
&
"\1.png")
"\0.png")
"\0.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"OFF"
"OFF"
"OFF"
&
&
&
&
"\1.png")
"\0.png")
"\0.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"OFF"
"OFF"
"ON"
&
&
&
&
"\1.png")
"\0.png")
"\1.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"OFF"
"ON"
"OFF"
&
&
&
&
"\1.png")
"\0.png")
"\1.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"OFF"
"ON"
"ON"
&
&
&
&
"\1.png")
"\1.png")
"\0.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"ON"
"OFF"
"OFF"
&
&
&
&
"\1.png")
"\1.png")
"\0.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"ON"
"OFF"
"ON"
&
&
&
&
"\1.png")
"\1.png")
"\1.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"ON"
"ON"
"OFF"
&
&
&
&
"\1.png")
"\1.png")
"\1.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"ON"
"ON"
"ON"
Este procedimiento nos permite mostrar en la interfaz del programa cuales de los LEDS estn
encendidos o apagados segn la lectura del puerto que llega como parmetro y sirve para
cambiar las imgenes de las luces y el texto que se encuentra debajo de los botones.
ON=encendido,OFF=apagado.
Las condiciones con sus valores se las han elaborado mediante pruebas de lectura.
Out(&H378, 0) y
Cuando hacemos click en el botn, en este caso el del primer LED verificamos si esta
encendido o apagado mediante el texto en el LABEL. Si no est encendido el AUX en la
posicin 0 ser igual a 1 que es el peso correspondiente al primer PIN de datos del LPT, caso
contrario el aux en la respectiva posicin tomar el valor de 0.
Despus llamamos al procedimiento enciende el cual se encargar de encender el LED
correspondiente.
Este cdigo se repite para cada uno de los botones de correspondiente a cada LED. Lo nico
que cambia es el ndice del aux y el peso que se asigna, as por ejemplo: s es el segundo
botn el ndice del aux ser 1 y el peso correspondiente al segundo PIN de dato que es 2.
Si es el botn 3 el ndice del aux ser 2 con su respectivo peso y as sucesivamente con el
resto.
Este procedimiento es para encender todos los LEDS del circuito. Para esto utilizamos un
ciclo repetitivo como es el FOR el cual recorre el aux y le asigna el peso correspondiente.
Usamos la expresin 2 ^ i para el peso de cada uno de los elementos del vector y luego
llamamos al procedimiento enciende.
Esto se realiza cuando damos click en el botn encender todos del formulario.
Este cdigo corresponde al evento click del botn apagar todos el cual asiga a todos los
elementos del vector aux el valor de 0.
Este procedimiento es el que se encarga de encender los LEDS, para esto recorre el vector
aux y sumamos el peso de cada uno de los elementos cuya suma se asigna a la variable
dato. Despus del ciclo dato contiene la suma de todos los pesos de los elementos del vector
el cual se enviar como parmetro a la instruccin Out(&H378, dato) para encender los
LEDS.
&
&
&
&
"\0.png")
"\0.png")
"\0.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"OFF"
"OFF"
"OFF"
&
&
&
&
"\0.png")
"\0.png")
"\0.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"OFF"
"OFF"
"ON"
&
&
&
&
"\0.png")
"\0.png")
"\1.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"OFF"
"ON"
"OFF"
&
&
&
&
"\0.png")
"\0.png")
"\1.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"OFF"
"ON"
"ON"
&
&
&
&
"\0.png")
"\1.png")
"\0.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"ON"
"OFF"
"OFF"
&
&
&
&
"\0.png")
"\1.png")
"\0.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"ON"
"OFF"
"ON"
&
&
&
&
"\0.png")
"\1.png")
"\1.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"ON"
"ON"
"OFF"
&
&
&
&
"\0.png")
"\1.png")
"\1.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"OFF"
"ON"
"ON"
"ON"
&
&
&
&
"\1.png")
"\0.png")
"\0.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"OFF"
"OFF"
"OFF"
ElseIf valor =
pct1.Image
pct2.Image
pct3.Image
pct4.Image
ElseIf valor =
pct1.Image
pct2.Image
pct3.Image
pct4.Image
ElseIf valor =
pct1.Image
pct2.Image
pct3.Image
pct4.Image
ElseIf valor =
pct1.Image
pct2.Image
pct3.Image
pct4.Image
ElseIf valor =
pct1.Image
pct2.Image
pct3.Image
pct4.Image
ElseIf valor =
pct1.Image
pct2.Image
pct3.Image
pct4.Image
ElseIf valor =
pct1.Image
pct2.Image
pct3.Image
pct4.Image
End If
End Sub
223 Then
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
87 Then
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
95 Then
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
247 Then
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
255 Then
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
119 Then
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
127 Then
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
= Image.FromFile(Application.StartupPath
&
&
&
&
"\1.png")
"\0.png")
"\0.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"OFF"
"OFF"
"ON"
&
&
&
&
"\1.png")
"\0.png")
"\1.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"OFF"
"ON"
"OFF"
&
&
&
&
"\1.png")
"\0.png")
"\1.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"OFF"
"ON"
"ON"
&
&
&
&
"\1.png")
"\1.png")
"\0.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"ON"
"OFF"
"OFF"
&
&
&
&
"\1.png")
"\1.png")
"\0.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"ON"
"OFF"
"ON"
&
&
&
&
"\1.png")
"\1.png")
"\1.png")
"\0.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"ON"
"ON"
"OFF"
&
&
&
&
"\1.png")
"\1.png")
"\1.png")
"\1.png")
:
:
:
:
lbl1.Text
lbl2.Text
lbl3.Text
lbl4.Text
=
=
=
=
"ON"
"ON"
"ON"
"ON"
enciende()
End Sub
Private Sub btna_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btna.Click
Dim i As Integer
For i = 0 To UBound(aux)
aux(i) = 0
Next
enciende()
End Sub
Private Sub enciende()
Dim dato As Integer = 0
Dim i As Integer
For i = 0 To UBound(aux)
dato = dato + aux(i)
Next
Out(&H378, dato)
End Sub
End Class
En este caso a no explicaremos el cdigo de este formulario debido a que es casi idntico al
anterior y el lector sabr interpretarlo.