OBJETIVO GENERAL
“Identificar los comando básicos para control de puertos por medio de un lenguaje de programación”
La realización de esta práctica es de gran importancia ya que al implementar el control del puerto paralelo podemos entender cómo se pueden utilizar estos tipos de puertos para controlar diversos dispositivos desde la computadora.
- Protoboard
- Fuente: Batería 9V DC.
- Resistencias de 1/4W:
- R3: 3 de 2.2 K
- R2: 8 de 4.7 K
- R1: 8 de 330
- 8 Leds.
- 2 circuitos integrados 74LS04.
- 1 circuito regulador LM7805.
- 2 condensadores electrolíticos
- 3 pulsadores.
- 1 conector DB25 macho.
- Cable para unir del conector DB25
Resistencias de 1/4W:
- R3: 3 de 2.2 K
- R2: 8 de 4.7 K
- R1: 8 de 330
La resistencia es el componente electrónico diseñado para introducir una resistencia eléctrica determinada entre dos puntos de un circuito. En el propio argot eléctrico y electrónico, son conocidos simplemente como resistencias.
Es un material formado por carbón y otros elementos resistivos para disminuir la corriente que pasa. Se opone al paso de la corriente.
Led:
Es un dispositivo que en su interior contiene un material semiconductor que al aplicarle una pequeña corriente eléctrica produce luz. La luz emitida por este dispositivo es de un determinado color que no produce calor, por lo tanto, no se presenta aumento de temperatura como si ocurre con muchos de los dispositivos comunes emisores de luz.
Circuitos integrados 74LS04
Circuito regulador LM7805
Es el regulador de voltaje más común, y muy usado en diseños empotrados.
Condensador Electrolítico:
Es un dispositivo que almacena energía eléctrica, es un componente pasivo. Está formado por un par de superficies conductoras en situación de influencia total (esto es, que todas las líneas de campo eléctrico que parten de una van a parar a la otra), generalmente en forma de tablas, esferas o láminas, separadas por un material dieléctrico (siendo este utilizado en un condensador para disminuir el campo eléctrico, ya que actúa como aislante) o por el vacío, que, sometidos a una diferencia de potencial
Pulsadores
Elemento que permite el paso o interrupción de la corriente mientras es accionado. Cuando ya no se actúa sobre él vuelve a su posición de reposo.
Conector DB25 macho
Es un conector analógico de 25 clavijas de la familia de conectores D-Subminiature (D-Sub o Sub-D).
Cable para unir del conector DB25
MARCO TEÓRICO
Existen dos métodos básicos para transmisión de datos en las computadoras modernas. En un esquema de transmisión de datos en serie un dispositivo envía datos a otro a razón de un bit a la vez a través de un cable. Por otro lado, en un esquema de transmisión de datos en paralelo un dispositivo envía datos a otro a una tasa de n número de bits a través de un número de cables a un tiempo. Sería fácil pensar que un sistema en paralelo es n veces más rápido que un sistema en serie, sin embargo esto no se cumple, básicamente el impedimento principal es el tipo de cable que se utiliza para interconectar los equipos.
Un sistema de comunicación en paralelo puede utilizar cualquier número de cables para transmitir datos, la mayoría de los sistemas paralelos utilizan ocho líneas de datos para transmitir un byte a la vez, como en todo, existen excepciones, por ejemplo el estándar SCSI permite transferencia de datos en esquemas que van desde los ocho bits y hasta los treinta y dos bits en paralelo. Un típico sistema de comunicación en paralelo puede ser de una dirección (unidireccional) o de dos direcciones (bidireccional). El más simple mecanismo utilizado en un puerto paralelo de una PC es de tipo unidireccional y es el que analizaremos en primer lugar. Distinguimos dos elementos: la parte transmisora y la parte receptora.
FUNCIONAMIENTO
El circuito trabaja de acuerdo con la información que recibe del puerto paralelo del ordenador.
En este caso se utilizó visual Basic 6 y con la librería io.dll para controlar el puerto paralelo.
Lo que hace el programa es que manda en código binario al circuito el cual lo recibe el circuito integrado que es el que se encarga de direccionar la corriente para que prenda el led que corresponde al código binario.
En el caso del programa se manejan lo que son los botones para decidir que led va a encender, aunque también se pueden mandar una sumatoria de código binario para encender más de un solo led.
Por ejemplo si nosotros quisiéramos que el led número 1 encendiera, el botón en visual mandaría una orden, con el número 1 al circuito. Si quisiéramos que solo encendiera el led número 5 el botón mandaría una orden pero con el numero 16 (la librería se encarga de reconocer los números en decimal para que el ordenador se los envía al circuito integrado en forma binaria).
Pero si quisiéramos que al presionar el botón se prendieran los dos leds tendríamos que hacer una sumatoria de los números decimales en este caso 1+5 =6, 6 será nuestro nuevo número para enviarlo se encenderán los dos leds.
DIAGRAMA ELECTRICO
INTERFAZ
Creado en visual Basic 6
IMÁGENES DEL FUNCIONAMIENTO
Solo se indica que prendan los leds amarillos en este caso vemos que la posición 1 se encuentra el led que se encuentra más a la izquierda, se puede visualizar que los leds que enciendes son los que se encuentran en la posición 2 y la posición 6 por lo que tenemos que 2+32= 34, 34 es el número que se va enviar al presionar el botón en la interfaz de visual.
Aquí tenemos los leds rojos
CODIGO EN VISUAL BASIC 6
Private Declare Sub PortOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Byte)
Private Declare Function PortIn Lib "IO.DLL" (ByVal Port As Integer) As Byte
Dim a, b, c, d, e, f As Integer
Private Sub btnLed10_Click()
PortOut &H378, 0
Me.Timer1 = False
Me.tmrSemaforo = False
Me.tmrMotor = False
Me.tmrSecuencia2 = False
Me.tmrSecuencia3 = False
a = 0
b = 0
c = 0
d = 0
e = 0
f = 0
Me.imgApagAmarillo.Visible = True
Me.imgApagRojo.Visible = True
Me.imgApagVerde.Visible = True
Me.imgPrendiAmarillo.Visible = False
Me.imgPrendiRojo.Visible = False
Me.imgPrendiVerde.Visible = False
End Sub
Private Sub btnLed5_Click()
If Me.imgApagAmarillo.Visible = True And Me.imgApagVerde.Visible = True Then
PortOut &H378, 96
Me.imgPrendiAmarillo.Visible = True
Me.imgPrendiVerde.Visible = True
Me.imgPrendiRojo.Visible = False
imgApagAmarillo.Visible = False
Me.imgApagVerde.Visible = False
Me.imgApagRojo.Visible = True
Else
PortOut &H378, 0
Me.imgPrendiAmarillo.Visible = False
Me.imgPrendiVerde.Visible = False
Me.imgPrendiRojo.Visible = False
imgApagAmarillo.Visible = True
Me.imgApagVerde.Visible = True
Me.imgApagRojo.Visible = True
End If
End Sub
Private Sub btnLed6_Click()
If Me.imgApagAmarillo.Visible = True Then
PortOut &H378, 32
Me.imgPrendiAmarillo.Visible = True
Me.imgPrendiVerde.Visible = False
Me.imgPrendiRojo.Visible = False
imgApagAmarillo.Visible = False
Me.imgApagVerde.Visible = True
Me.imgApagRojo.Visible = True
Else
PortOut &H378, 0
Me.imgPrendiAmarillo.Visible = False
Me.imgPrendiVerde.Visible = False
Me.imgPrendiRojo.Visible = False
imgApagAmarillo.Visible = True
Me.imgApagVerde.Visible = True
Me.imgApagRojo.Visible = True
End If
End Sub
Private Sub btnLed7_Click()
If Me.imgApagVerde.Visible = True Then
PortOut &H378, 64
Me.imgPrendiAmarillo.Visible = False
Me.imgPrendiVerde.Visible = True
Me.imgPrendiRojo.Visible = False
imgApagAmarillo.Visible = True
Me.imgApagVerde.Visible = False
Me.imgApagRojo.Visible = True
Else
PortOut &H378, 0
Me.imgPrendiAmarillo.Visible = False
Me.imgPrendiVerde.Visible = False
Me.imgPrendiRojo.Visible = False
imgApagAmarillo.Visible = True
Me.imgApagVerde.Visible = True
Me.imgApagRojo.Visible = True
End If
End Sub
Private Sub btnLed9_Click()
If Me.imgApagAmarillo.Visible = True And Me.imgApagVerde.Visible = True And Me.imgApagRojo.Visible = True Then
PortOut &H378, 255
Me.imgPrendiAmarillo.Visible = True
Me.imgPrendiVerde.Visible = True
Me.imgPrendiRojo.Visible = True
imgApagAmarillo.Visible = False
Me.imgApagVerde.Visible = False
Me.imgApagRojo.Visible = False
Else
PortOut &H378, 0
Me.imgPrendiAmarillo.Visible = False
Me.imgPrendiVerde.Visible = False
Me.imgPrendiRojo.Visible = False
imgApagAmarillo.Visible = True
Me.imgApagVerde.Visible = True
Me.imgApagRojo.Visible = True
End If
End Sub
Private Sub btnMotor_Click()
If Me.imgApagRojo.Visible = True Then
PortOut &H378, 128
Me.imgPrendiAmarillo.Visible = False
Me.imgPrendiVerde.Visible = False
Me.imgPrendiRojo.Visible = True
imgApagAmarillo.Visible = True
Me.imgApagVerde.Visible = True
Me.imgApagRojo.Visible = False
Else
PortOut &H378, 0
Me.imgPrendiAmarillo.Visible = False
Me.imgPrendiVerde.Visible = False
Me.imgPrendiRojo.Visible = False
imgApagAmarillo.Visible = True
Me.imgApagVerde.Visible = True
Me.imgApagRojo.Visible = True
End If
End Sub
Private Sub btnRojoAmarillo_Click()
'PortOut &H378, 160
If Me.imgApagAmarillo.Visible = True And Me.imgApagRojo.Visible = True Then
PortOut &H378, 160
Me.imgPrendiAmarillo.Visible = True
Me.imgPrendiRojo.Visible = True
Me.imgPrendiVerde.Visible = False
imgApagAmarillo.Visible = False
Me.imgApagRojo.Visible = False
Me.imgApagVerde.Visible = True
Else
PortOut &H378, 0
Me.imgPrendiAmarillo.Visible = False
Me.imgPrendiVerde.Visible = False
Me.imgPrendiRojo.Visible = False
imgApagAmarillo.Visible = True
Me.imgApagVerde.Visible = True
Me.imgApagRojo.Visible = True
End If
End Sub
Private Sub btnSalir_Click()
End
End Sub
Private Sub btnSecuencia_Click()
If Me.txtVelocidadKitt.Text = "" Or Me.txtVelocidadKitt.Text = "0" Then
MsgBox "Seleccione algún valor de velocidad mayor a cero"
Else
Me.Timer1.Interval = CInt(Me.txtVelocidadKitt.Text)
Me.Timer1 = True
End If
End Sub
Private Sub btnSecuencia2_Click()
Me.tmrSecuencia2.Interval = 1000
Me.tmrSecuencia2 = True
End Sub
Private Sub btnSecuencia3_Click()
Me.tmrSecuencia3.Interval = 1000
Me.tmrSecuencia3 = True
End Sub
Private Sub btnSemaforo_Click()
Me.tmrSemaforo.Interval = 1000
Me.tmrSemaforo = True
End Sub
Private Sub btnSMotor_Click()
Me.tmrMotor.Interval = 1000
Me.tmrMotor = True
End Sub
Private Sub Timer1_Timer()
a = a + 1
lblCuenta.Caption = a
'Secuencia del Kitt
If a = 1 Then
PortOut &H378, 64
Me.imgApagAmarillo.Visible = True
Me.imgPrendiAmarillo.Visible = False
Me.imgApagRojo.Visible = True
Me.imgPrendiRojo.Visible = False
Me.imgPrendiVerde.Visible = True
Me.imgApagVerde.Visible = False
ElseIf a = 2 Then
PortOut &H378, 32
Me.imgApagAmarillo.Visible = False
Me.imgPrendiAmarillo.Visible = True
Me.imgApagRojo.Visible = True
Me.imgPrendiRojo.Visible = False
Me.imgPrendiVerde.Visible = False
Me.imgApagVerde.Visible = True
ElseIf a = 3 Then
PortOut &H378, 128
Me.imgApagAmarillo.Visible = True
Me.imgPrendiAmarillo.Visible = False
Me.imgApagRojo.Visible = False
Me.imgPrendiRojo.Visible = True
Me.imgPrendiVerde.Visible = False
Me.imgApagVerde.Visible = True
ElseIf a = 4 Then
PortOut &H378, 32
Me.imgApagAmarillo.Visible = False
Me.imgPrendiAmarillo.Visible = True
Me.imgApagRojo.Visible = True
Me.imgPrendiRojo.Visible = False
Me.imgPrendiVerde.Visible = False
Me.imgApagVerde.Visible = True
a = 0
End If
End Sub
Private Sub tmrMotor_Timer()
c = c + 1
d = d + 1
If c = 1 Then
PortOut &H378, 64
Me.imgApagAmarillo.Visible = True
Me.imgPrendiAmarillo.Visible = False
Me.imgApagRojo.Visible = True
Me.imgPrendiRojo.Visible = False
Me.imgPrendiVerde.Visible = True
Me.imgApagVerde.Visible = False
ElseIf c = 2 Then
PortOut &H378, 0
Me.imgApagAmarillo.Visible = True
Me.imgPrendiAmarillo.Visible = False
Me.imgApagRojo.Visible = True
Me.imgPrendiRojo.Visible = False
Me.imgPrendiVerde.Visible = False
Me.imgApagVerde.Visible = True
c = 0
End If
If d = 8 Then
PortOut &H378, 128
Me.imgApagAmarillo.Visible = True
Me.imgPrendiAmarillo.Visible = False
Me.imgApagRojo.Visible = False
Me.imgPrendiRojo.Visible = True
Me.imgPrendiVerde.Visible = False
Me.imgApagVerde.Visible = True
Me.tmrMotor = False
End If
Me.lblCuenta.Caption = d
End Sub
Private Sub tmrSecuencia2_Timer()
e = e + 1
'Secuencia 2
If e = 1 Then
PortOut &H378, 64
Me.imgApagAmarillo.Visible = True
Me.imgPrendiAmarillo.Visible = False
Me.imgApagRojo.Visible = True
Me.imgPrendiRojo.Visible = False
Me.imgPrendiVerde.Visible = True
Me.imgApagVerde.Visible = False
ElseIf e = 3 Then
PortOut &H378, 32
Me.imgApagAmarillo.Visible = False
Me.imgPrendiAmarillo.Visible = True
Me.imgApagRojo.Visible = True
Me.imgPrendiRojo.Visible = False
Me.imgPrendiVerde.Visible = False
Me.imgApagVerde.Visible = True
ElseIf e = 5 Then
PortOut &H378, 96
Me.imgApagAmarillo.Visible = False
Me.imgPrendiAmarillo.Visible = True
Me.imgApagRojo.Visible = True
Me.imgPrendiRojo.Visible = False
Me.imgPrendiVerde.Visible = True
Me.imgApagVerde.Visible = False
e = 0
ElseIf (e Mod 2) = 0 Then
PortOut &H378, 0
Me.imgApagAmarillo.Visible = True
Me.imgPrendiAmarillo.Visible = False
Me.imgApagRojo.Visible = True
Me.imgPrendiRojo.Visible = False
Me.imgPrendiVerde.Visible = False
Me.imgApagVerde.Visible = True
End If
End Sub
Private Sub tmrSecuencia3_Timer()
f = f + 1
'Secuencia 2
If f = 1 Then
PortOut &H378, 64
Me.imgApagAmarillo.Visible = True
Me.imgPrendiAmarillo.Visible = False
Me.imgApagRojo.Visible = True
Me.imgPrendiRojo.Visible = False
Me.imgPrendiVerde.Visible = True
Me.imgApagVerde.Visible = False
ElseIf f = 2 Then
PortOut &H378, 32
Me.imgApagAmarillo.Visible = False
Me.imgPrendiAmarillo.Visible = True
Me.imgApagRojo.Visible = True
Me.imgPrendiRojo.Visible = False
Me.imgPrendiVerde.Visible = False
Me.imgApagVerde.Visible = True
f = 0
End If
End Sub
Private Sub tmrSemaforo_Timer()
b = b + 1
If b = 1 Then
PortOut &H378, 64
Me.imgApagAmarillo.Visible = True
Me.imgPrendiAmarillo.Visible = False
Me.imgApagRojo.Visible = True
Me.imgPrendiRojo.Visible = False
Me.imgPrendiVerde.Visible = True
Me.imgApagVerde.Visible = False
ElseIf b = 4 Then
PortOut &H378, 96
Me.imgApagAmarillo.Visible = False
Me.imgPrendiAmarillo.Visible = True
Me.imgApagRojo.Visible = True
Me.imgPrendiRojo.Visible = False
Me.imgPrendiVerde.Visible = True
Me.imgApagVerde.Visible = False
ElseIf b = 6 Then
PortOut &H378, 128
Me.imgApagAmarillo.Visible = True
Me.imgPrendiAmarillo.Visible = False
Me.imgApagRojo.Visible = False
Me.imgPrendiRojo.Visible = True
Me.imgPrendiVerde.Visible = False
Me.imgApagVerde.Visible = True
ElseIf b = 9 Then
b = 0
End If
End Sub
Private Sub VScroll1_Change()
Me.txtVelocidadKitt.Text = CInt(VScroll1.Value)
End Sub
Merit Casino 50 FREE SPINS Bonus $1000!
ResponderEliminarMerit Casino 50 FREE SPINS Bonus 바카라사이트 $1000! - Earn 20 FREE 메리트카지노 SPINS every day. $1000 free at Slots.ag. - $1000 Bonus! - $1000 Free! 인카지노 - $1000 Bonus!