Título: Pasar decimal a binario Publicado por: Cuasar en 6 Febrero 2011, 15:12 pm Hola gente. estoy armando una aplicacion con la que controlo el puerto paralelo para prender unas luces.
por ahora va todo bien tengo 8 botones con los cuales manejo los 8 pines del puerto. y les cambio el color dependiendo de si la luz esta prendida o apagada. pero cuando cierro el programa y vuelvo a abrirlo me aparecen (en la aplicacion) todas apagadas otra ves, por mas que est no sea asi ya que las luces estan prondidas. me gustaria poder leyendo el estado del puerto el decimal pasarlo a binario y poder asignarle los valores de 0 o 1 a 8 variables para poder detectar si esa luz esta prendida o apagada y que el programa refleje el estado real de puerto al iniciarlo. podran ayudarme?. se me ocurre que tambien podria guardar el estado del puerto en un txt para despues leerlo pero no se como hacerlo. si a alguno le interesa la aplicacion puedo poner aca el codigo fuente. gracias. Título: Re: Pasar decimal a binario Publicado por: d3xf4ult en 6 Febrero 2011, 17:40 pm Este es un conversor online, que podría serte útil:
http://www.disfrutalasmatematicas.com/numeros/binario-decimal-hexadecimal-conversor.html (http://www.disfrutalasmatematicas.com/numeros/binario-decimal-hexadecimal-conversor.html) Título: Re: Pasar decimal a binario Publicado por: BlackZeroX en 6 Febrero 2011, 19:59 pm .
Ojla compartas ese codigo algun dia. Operaciones aritmeticas con Hex, Oct, Binario y Decimal (http://infrangelux.hostei.com/index.php?option=com_content&view=article&id=3:operatearimetic&catid=2:catprocmanager&Itemid=8) Base Decimal a Base N (http://infrangelux.hostei.com/index.php?option=com_content&view=article&id=20:bdec2basen&catid=11:catencriptacioncodificacion&Itemid=23) Dulces Lunas!¡. Título: Re: Pasar decimal a binario Publicado por: Tokes en 6 Febrero 2011, 21:21 pm Hola:
Pues, suponiendo que: - Tienes un vector de 8 shapes, llamados luces(0), luces(1), ..., luces(7). - Ya has leído el puerto y el valor lo almacenaste en una variable de tipo entero (Integer) llamada ValorPuerto, podemos hacer: Código: Dim i As Integer, j As Integer j=1 For i=0 to 7 'Recorrerá las 8 luces If ValorPuerto And j Then 'Si está en '1' el bit... luces(i).BackColor=vbYellow 'visualiza amarillo (encendido). Else 'De lo contrario... luces(i).BackColor=vbBlack 'visualiza negro (apagado). Endif j=j*2 Next Buen día. Título: Re: Pasar decimal a binario Publicado por: Cuasar en 7 Febrero 2011, 02:46 am BlackZeroX Te comparto lo que tengo armado hoy dia depues puedo actualizarlo.
primero descargate la inpout.dll si la buscas en google la encontras por todos lados. despues en el proyecto pones un modulo y le copias este codigo. Código: Option Explicit Public Declare Function Inp Lib "inpout32.dll" _ Alias "Inp32" (ByVal PortAddress As Integer) As Integer Public Declare Sub Out Lib "inpout32.dll" _ Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) una ves echo esto desde un formulario le asignas los valores que quieras al puerto. con esta instruccion Código: Out &H378, 0 El CERO es el valor que le asignas al puerto puede ser de 0 a 255. por las dudas fijate en el administrador de dispositivos si la direccion del puerto esta correcta ya que dependiendo de la configuracion de tu pc podria ser otra. la direccion del puerto es &H378 y la de entrada es &H379 por lo general es asi pero confirmalo si queres leer el puerto pones algo como esto. Código: Text3.Text = Str(Inp(Val(&H379))) Con ese codigo le asignas al text3 el valor actual del puerto.despues tengo una interface de potencia con la cual controlo las luces que si quieren comparto el circuito. Título: Re: Pasar decimal a binario Publicado por: Cuasar en 7 Febrero 2011, 03:17 am Tokes
tu codigo me sirve pero jeje perdon por mi ignorancia pero en vb2010 no se como crear una matris de objetos en vb6 al copiar y pegar pregunta si queres armarla pero aca no y no tengo idea de como hacerlo. mas alla de eso me gustaria asignar el valo a 8 variables y desde las variables trabajar. gracias.. Título: Re: Pasar decimal a binario Publicado por: raul338 en 7 Febrero 2011, 03:43 am tu codigo me sirve pero jeje perdon por mi ignorancia pero en vb2010 Entonces este tema va en .netno se como crear una matris de objetos en vb6 al copiar y pegar pregunta si queres armarla pero aca no y no tengo idea de como hacerlo. Para crear una matriz de controles en .net tienes que hacerlo por codigo o para simular solo en partes de eventos, haz que todos los eventos que quieras apunten al mismo procedimiento, e identificas al control transformando el sender en un control (Dim boton As Button = (Button)sender) Título: Re: Pasar decimal a binario Publicado por: Cuasar en 8 Febrero 2011, 04:00 am Gente logre resolver mi problema y me gustaria compartirlo ya que es posible que a alguno le venga bien.
estoy cargando los datos en cajas de texto para poder verlos pero la idea es usar los datos de las variables para trabajarlos no hace falta que los vea en pantalla. les paso el codigo. Con el modulo cargado y un formulario con 10 Texbox y 2 Button ponemos este codigo. Código: Dim DatosLPT1(7) As VariantType 'Es el valor del puerto con el que calculo los pines activos Dim Datos As String 'Es el resultado despues de cada calculo Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Datos = Str(Inp(Val(&H378))) 'El valor inicial del puerto TextBox9.Text = Datos End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Calculo el estado del pin 8 If Datos >= 128 Then DatosLPT1(7) = 128 Datos = (Datos - 128) TextBox8.Text = 128 TextBox9.Text = Datos Else TextBox8.Text = "" End If 'Calculo el estado del pin 7 If Datos >= 64 Then DatosLPT1(6) = 64 Datos = (Datos - 64) TextBox7.Text = 64 TextBox9.Text = Datos Else TextBox7.Text = "" End If 'Calculo el estado del pin 6 If Datos >= 32 Then DatosLPT1(5) = 32 Datos = Datos - 32 TextBox6.Text = 32 TextBox9.Text = Datos Else TextBox6.Text = "" End If 'Calculo el estado del pin 5 If Datos >= 16 Then DatosLPT1(4) = 16 Datos = Datos - 16 TextBox5.Text = 16 TextBox9.Text = Datos Else TextBox5.Text = "" End If 'Calculo el estado del pin 4 If Datos >= 8 Then DatosLPT1(3) = 8 Datos = Datos - 8 TextBox4.Text = 8 TextBox9.Text = Datos Else TextBox4.Text = "" End If 'Calculo el estado del pin 3 If Datos >= 4 Then DatosLPT1(2) = 4 Datos = Datos - 4 TextBox3.Text = 4 TextBox9.Text = Datos Else TextBox3.Text = "" End If 'Calculo el estado del pin 2 If Datos >= 2 Then DatosLPT1(1) = 2 Datos = Datos - 2 TextBox2.Text = 2 TextBox9.Text = Datos Else TextBox2.Text = "" End If 'Calculo el estado del pin 1 If Datos >= 1 Then DatosLPT1(0) = 1 Datos = Datos - 1 TextBox1.Text = 1 TextBox9.Text = Datos Else TextBox1.Text = "" End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Out(&H378, (Val(TextBox10.Text))) 'Le doy un nuevo valor al puerto Datos = Str(Inp(Val(&H378))) 'Cargo el valor del puerto en la variable para poder calcularlo TextBox9.Text = Datos 'Le asigno el valor del puerto a un Text para poder verlo End Sub Lo comente todo asi se entiende lo que intente hacer. Seguramente a alguno que sepa mas que yo de esto se le ocurrira alguna forma de hacerlo en muchas menos lineas. si es asi agradeceria me lo comparta. con esto logro identificar cual es el estado del puerto al momento de iniciar la aplicacion y asi poder mantenerlo despues de un cierre o salida. Gracias a todos lo que me dieron una mano!!! Salu2 |