Semaforo en visual basic

      • 1
      • mensajes
      • miembro desde
      • 11/02/07
    #1 Semaforo en visual basic

    holas, soy un aprendis de programacion, tengo ke hacer un proyecto de una esquina con semaforos incluido, la cosa es ke cada semaforo tiene 3 led de 5mm y 2 led de 3mm para peatones, son 4 semaforos con las mismas caracteristicas, y estos tienen ke ser controlados mediante el puerto de impresora, nos pasaron un programa a medio terminar en visual usando una libreria en C para poder controlar el puerto de impresora, porfa si alguien me ayuda en esto, necesito saber ke le falta al programa y cuales son las salidas ke tengo ke usar para los led y las conecciones tenemos ke usar resistencias tambien de 1k ohms, si alguien lo iso o ke sabe plis ke me muestre como se hace, lo tengo ke presentar el jueves terminado y estoi copado en certamenes y disertaciones, y ya no tengo ni tiempo ni pa dormir ja, plis, aki les mando lo ke nos paso en visual el desgraciado del profe:

    Option Explicit

    'sección paralelo
    Public Out_TTL As Byte 'contiene el BYTE a sacar por el puerto
    Public In_Port As Integer 'continen la direccion de lectura del LPT
    Public Out_Port As Integer 'contiene la direcc.para escribir al LPT

    Dim a, b As Integer


    Private Sub Command1_Click()

    If Timer2.Enabled = False Then
    Timer2.Enabled = True
    b = 0
    Else
    Timer2.Enabled = False
    End If

    End Sub

    Private Sub Command2_Click()
    If Timer3.Enabled = False Then
    Timer3.Enabled = True
    b = 0
    Else
    Timer3.Enabled = False
    End If
    End Sub

    Private Sub Timer2_Timer()
    a = a + 1
    b = b + 1
    cuenta_a.Caption = b
    If a = 1 Then
    ClrPortBit Out_Port, 3
    SetPortBit Out_Port, 0
    SetPortBit Out_Port, 1
    End If
    If a = 2 Then
    ClrPortBit Out_Port, 0
    SetPortBit Out_Port, 1
    SetPortBit Out_Port, 2
    End If
    If a = 3 Then
    ClrPortBit Out_Port, 1
    SetPortBit Out_Port, 2
    SetPortBit Out_Port, 3
    End If
    If a = 4 Then
    ClrPortBit Out_Port, 2
    SetPortBit Out_Port, 3
    SetPortBit Out_Port, 0
    a = 0
    End If

    End Sub
    Private Sub Timer3_Timer()
    a = a + 1
    b = b + 1
    cuenta_b.Caption = b
    If a = 1 Then
    ClrPortBit Out_Port, 3
    SetPortBit Out_Port, 0
    ' SetPortBit Out_Port, 1
    End If
    If a = 2 Then
    ClrPortBit Out_Port, 0
    SetPortBit Out_Port, 1
    ' SetPortBit Out_Port, 2
    End If
    If a = 3 Then
    ClrPortBit Out_Port, 1
    SetPortBit Out_Port, 2
    ' SetPortBit Out_Port, 3
    End If
    If a = 4 Then
    ClrPortBit Out_Port, 2
    SetPortBit Out_Port, 3
    ' SetPortBit Out_Port, 0
    a = 0
    End If

    End Sub

    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
    chkTTL0.Caption = "Salida TTL0 = 0 - BAJO"
    End If

    End Sub


    Private Sub Chkttl1_Click() 'invierto estado de TTL1

    If chkTTL1.Value = 1 Then
    SetPortBit Out_Port, 1
    chkTTL1.Caption = "Salida TTL1 = 1 - ALTO"
    Else
    ClrPortBit Out_Port, 1
    chkTTL1.Caption = "Salida TTL1 = 0 - BAJO"
    End If

    End Sub


    Private Sub Chkttl2_Click() 'invierto estado de TTL2

    If chkTTL2.Value = 1 Then
    SetPortBit Out_Port, 2
    chkTTL2.Caption = "Salida TTL2 = 1 - ALTO"
    Else
    ClrPortBit Out_Port, 2
    chkTTL2.Caption = "Salida TTL2 = 0 - BAJO"
    End If

    End Sub


    Private Sub Chkttl3_Click() 'invierto estado de TTL3

    If chkTTL3.Value = 1 Then
    SetPortBit Out_Port, 3
    chkTTL3.Caption = "Salida TTL3 = 1 - ALTO"
    Else
    ClrPortBit Out_Port, 3
    chkTTL3.Caption = "Salida TTL3 = 0 - BAJO"
    End If

    End Sub


    Private Sub Chkttl4_Click() 'invierto estado de TTL4

    If chkTTL4.Value = 1 Then
    SetPortBit Out_Port, 4
    chkTTL4.Caption = "Salida TTL4 = 1 - ALTO"
    Else
    ClrPortBit Out_Port, 4
    chkTTL4.Caption = "Salida TTL4 = 0 - BAJO"
    End If

    End Sub


    Private Sub Chkttl5_Click() 'invierto estado de TTL5

    If chkTTL5.Value = 1 Then
    SetPortBit Out_Port, 5
    chkTTL5.Caption = "Salida TTL5 = 1 - ALTO"
    Else
    ClrPortBit Out_Port, 5
    chkTTL5.Caption = "Salida TTL5 = 0 - BAJO"
    End If

    End Sub


    Private Sub Chkttl6_Click() 'invierto estado de TTL6

    If chkTTL6.Value = 1 Then
    SetPortBit Out_Port, 6
    chkTTL6.Caption = "Salida TTL6 = 1 - ALTO"
    Else
    ClrPortBit Out_Port, 6
    chkTTL6.Caption = "Salida TTL6 = 0 - BAJO"
    End If

    End Sub


    Private Sub Chkttl7_Click() 'invierto estado de TTL7

    If chkTTL7.Value = 1 Then
    SetPortBit Out_Port, 7
    chkTTL7.Caption = "Salida TTL7 = 1 - ALTO"
    Else
    ClrPortBit Out_Port, 7
    chkTTL7.Caption = "Salida TTL7 = 0 - BAJO"
    End If

    End Sub


    Private Sub Timer1_Timer() 'timer de 50ms para refrescar en
    Dim Lectura As Byte 'pantalla el estado de las
    Dim Estado(3) As Byte 'entradas INPUT 0 a 3
    Dim Estado_Str(3) As String
    Dim Bucle As Byte

    Lectura = PortIn(In_Port) 'leo el puerto de entrada

    'filtro solo los bit's que necesito conocer
    Estado(0) = Lectura And &H8 '= 00001000 en Binario
    Estado(1) = Lectura And &H10 '= 00010000 en Binario
    Estado(2) = Lectura And &H20 '= 00100000 en Binario
    Estado(3) = Lectura And &H40 '= 01000000 en Binario

    For Bucle = 0 To 3
    If Estado(Bucle) <> 0 Then
    Estado_Str(Bucle) = "1 - ALTO"
    Else
    Estado_Str(Bucle) = "0 - BAJO"
    End If
    Next Bucle

    lblInput0.Caption = "INPUT 0 = " & Estado_Str(0)
    lblInput1.Caption = "INPUT 1 = " & Estado_Str(1)
    lblInput2.Caption = "INPUT 2 = " & Estado_Str(2)
    lblInput3.Caption = "INPUT 3 = " & Estado_Str(3)



    End Sub
    me dijieron ke poniendo un for y cambiar un tiempo kedaba corriendo, plis ayudenme...
  1. ¿Este tema te pareció interesante? Compártelo!

    ¿No es lo que buscabas? Intenta buscar un tema similar

    2 comentarios / 44370 Visitas

      • 813
      • mensajes
      • miembro desde
      • 10/04/03
    07/05/2007
    #2 Re: Semaforo en visual basic

    Creo que a cualquiera de los que estamos aquí nos encantaría ayudarte, pero lamentablemente trabajamos la mayoría! (ergo, no tenemos demasiado tiempo para ver codigo tan extenso)

      • 2
      • mensajes
      • miembro desde
      • 10/11/11
    11/11/2011
    #3 Re: Semaforo en visual basic

    ok..
    -----Agregado el 11/11/2011 a las 12 : 38 : 52-----
    a mi me toka hacer un programa similar ,, deseenme suerte, k si lo logro lo voy a subir para ayudar a otros k lo necesiten

    a patyto1501 le gusta esto.
IR ARRIBA