jueves, 16 de abril de 2009

CODIGO PROGRAMA INTERFACE GRAFICA

Dim T As Double

Dim espera, esperai, estado, tiempo As Double

Dim d0, d1, dato As Double

Dim pin1, pin2, pin3, pin4 As Integer

Dim V As Double

Private Sub Command1_Click()

End

End Sub

Private Sub sensar_Click()

estado = 1

espera = 0.4325 'Se usa esta espera para que la toma de datos no tome algunas señales de interferencia

esperai = espera / 5

Do While estado = 1

DoEvents

PortOut &H378, 0 'Se envia este dato para determinar la entrada que sera convertida por el ADC

tiempo = Timer ' En este caso peso

Do While Timer <>

DoEvents

Loop

PortOut &H378, 2 ' Este dato habilata el ALE del ADC

tiempo = Timer

Do While Timer <>

DoEvents

Loop

PortOut &H378, 0 'Este dato permite que el multiplexor muestre el dato en la palabra A

tiempo = Timer

Do While Timer <>

DoEvents

Loop

dato = PortIn(&H379) 'Lee los primeros 4 bits de la salida del ADC'

pin1 = dato And &H40

pin2 = dato And &H8

pin3 = dato And &H20

pin4 = dato And &H10 'Se hace el ajuste para dar el valor real a los bit dependiendo de su peso

d0 = (pin1 / 64) * 128 + (pin2 / 32) * 64 + (pin3 / 8) * 32 + (pin4 / 16) * 16

PortOut &H378, 6 'Habilita el multiplexor para leer la segunda palabra

tiempo = Timer

Do While Timer <>

DoEvents

Loop

dato = PortIn(&H379) 'Lee los siguientes 4 bits de la salida del ADC

pin1 = dato And &H40

pin2 = dato And &H20

pin3 = dato And &H10

pin4 = dato And &H8

d1 = (pin1 / 64) * 8 + (pin2 / 32) * 4 + (pin3 / 16) * 2 + (pin4 / 8) * 1

T = d1 + d0

vnivel.Text = T 'Presenta en pantalla el valor del nivel

nivel.Top = 7815 - (T * 30.6) 'varia la altura de la barra de nivel

nivel.Height = T * 30.6

'cambia la direccion del ADC para leer el dato analogo que esta en la entrada uno correspondiente al peso

PortOut &H378, 1 'Envia este dato para determinar la entrada que sera convertida por el ADC

tiempo = Timer ' En este caso temperatura

Do While Timer <>

DoEvents

Loop

PortOut &H378, 3 ' Este dato habilata el ALE del ADC

tiempo = Timer

Do While Timer <>

DoEvents

Loop

PortOut &H378, 1 'Este dato permite que el multiplexor muestre el dato en la palabra A

tiempo = Timer

Do While Timer <>

DoEvents

Loop

dato = PortIn(&H379) 'Lee los primeros 4 bits de la salida del ADC'

pin1 = dato And &H40

pin2 = dato And &H20

pin3 = dato And &H10

pin4 = dato And &H8 'Se hace el ajuste para dar el valor real a los bit dependiendo de su peso

d0 = (pin1 / 64) * 128 + (pin2 / 32) * 64 + (pin3 / 16) * 32 + (pin4 / 8) * 16

PortOut &H378, 7 'Habilita el multiplexor para leer la segunda palabra

tiempo = Timer

Do While Timer <>

DoEvents

Loop

dato = PortIn(&H379) 'Lee los siguientes 4 bits de la salida del ADC

pin1 = dato And &H40

pin2 = dato And &H20

pin3 = dato And &H10

pin4 = dato And &H8

d1 = (pin1 / 64) * 8 + (pin2 / 32) * 4 + (pin3 / 16) * 2 + (pin4 / 8) * 1

T = (d1 + d0) / 4.5

vpeso.Text = T 'Presenta en pantalla el valor de la temperatura

'Dependiendo del valor de la temperatura varia las coordenadas de la aguja que se encuentra en el termostato para señalar la temperatura actual

If T > 17 Then

Linet.X2 = 960

Linet.Y2 = 600

End If

If T > 18 Then

Linet.X2 = 1080

Linet.Y2 = 600

End If

If T > 19 Then

Linet.X2 = 1200

Linet.Y2 = 720

End If

If T > 20 Then

Linet.X2 = 1320

Linet.Y2 = 840

End If

If T > 21 Then

Linet.X2 = 1320

Linet.Y2 = 1080

End If

If T > 22 Then

Linet.X2 = 1320

Linet.Y2 = 1200

End If

If T > 23 Then

Linet.X2 = 1320

Linet.Y2 = 1320

End If

Loop

End Sub 'fin del programa

No hay comentarios:

Publicar un comentario