elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica
| | |-+  [Electronica y programación] manejo del puerto paralelo...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 Ir Abajo Respuesta Imprimir
Autor Tema: [Electronica y programación] manejo del puerto paralelo...  (Leído 203,743 veces)
CarWarlock

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: [Electronica y programación] manejo del puerto paralelo...
« Respuesta #40 en: 27 Abril 2005, 20:56 pm »

Buenas.

El pin 11 del puerto paralelo es el BUSY,  trabaja con "inversión de hardware" o sea que si le pones 5V leeras un 0 en el pin y al revés si tienes 0V tendrás un 1.
Para empezar no se porque declaras un string para recibir el dato, creo que es un error hacer eso ya que luego no puedes enmascararlo bien.
yo lo haría así y partiendo de la libreria io.dll:

 BytIn = PortIn(&H379)          'el valor lo almaceno en un byte
 BytIn = BytIn And &H80        ' enmascaro el Busy
 
 If BytIn = &H80 Then
    'Hay 0V en el pin
 Else
    'Hay 5V en el pin
 End If

Salu2



En línea

chinone

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: [Electronica y programación] manejo del puerto paralelo...
« Respuesta #41 en: 4 Mayo 2005, 00:26 am »

queria pedirte si me podias mandar el programa que tu diseñaste del puerto paralelo de entrada y salida hecho en visual basic, por que la verdad todavia no logro que funcione... mi correo es chinone_p@yahoo.es por favor que se me acaba el plazo de entrega


En línea

Ian~Shadow

Desconectado Desconectado

Mensajes: 31



Ver Perfil
Re: [Electronica y programación] manejo del puerto paralelo...
« Respuesta #42 en: 5 Mayo 2005, 17:46 pm »

queria pedirte si me podias mandar el programa que tu diceñaste del puerto paralelo de entrada y salida hecho en visual basic, por que la verdad todavia no logro que funcione... mi correo es chinone_p@yahoo.es por favor que se me acaba el plazo de entrega

Yo preferiria que lo puciera aqui. en codigo fuente aunque sea. O si tienes un link o download  ;)
En línea

CarWarlock

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: [Electronica y programación] manejo del puerto paralelo...
« Respuesta #43 en: 5 Mayo 2005, 23:04 pm »

Buenas.

El ejemplo es muy sencillo activa unas salidas y lee el pin "SELECT IN", el programa se diseño para una aplicación ejemplo que tenía una protección Mochila.
Si alguien está interesado en los fuentes y sabe algún site donde dejarlos que me lo haga saber.

Código:

'Aquí está mi modulo de las declaraciones.

Public Declare Sub PortOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Byte)
Public Declare Sub PortWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Integer)
Public Declare Sub PortDWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Long)
Public Declare Function PortIn Lib "IO.DLL" (ByVal Port As Integer) As Byte
Public Declare Function PortWordIn Lib "IO.DLL" (ByVal Port As Integer) As Integer
Public Declare Function PortDWordIn Lib "IO.DLL" (ByVal Port As Integer) As Long
Public Declare Sub SetPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Sub ClrPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Sub NotPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Function GetPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte) As Boolean
Public Declare Function RightPortShift Lib "IO.DLL" (ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Public Declare Function LeftPortShift Lib "IO.DLL" (ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Public Declare Function IsDriverInstalled Lib "IO.DLL" () As Boolean

'api de retardo
 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)



'Mi formulario

Dim sOrt As Byte   'valor de la salida puerto paralelo
Dim sIn As Byte    'valor de la entrada puerto paralelo

Dim pOut As Integer 'direccion del puerto paralelo para Activacion
Dim pIn As Integer  'direccion del puerto paralelo para lectura


Private Sub Form_Load()

Dim icon_punter As String

If IsDriverInstalled = True Then

    icon_punter = App.Path & "\" & "Harrow.cur"      'icono personalizado para la pantalla
    Screen.MouseIcon = LoadPicture(icon_punter)
   
    pOut = &H378           'puerto LPT1 (salida datos)
    pIn = &H379            'puerto LPT1 (Status impresora)
   
    sOrt = 0               'desactivo todas las salidas
    PortOut pOut, sOrt     'lo saco por el puerto
   
    Call Lee_Pin_Select    'leo el estado del pin
 
 Else
 
   MsgBox "El Driver no se encuentra cargado en memoria ", vbCritical + vbOKOnly, "Error"
   Unload Me
 
 End If
 

End Sub


Private Sub lblEntradas_Click(Index As Integer)

Dim valor As Byte
    valor = 2 ^ Index

If shpEntradas(Index).BackColor = vbWhite Then

    sOrt = sOrt Or valor
    shpEntradas(Index).BackColor = RGB(255, 0, 255)

Else
    sOrt = sOrt - valor
    shpEntradas(Index).BackColor = vbWhite

End If

'Sacalo por el puerto
PortOut pOut, sOrt      'lo saco por el puerto

'un pequeño retardo para no leer el pin inmediatamente
Sleep (100)

Call Lee_Pin_Select

End Sub

Private Sub Lee_Pin_Select()

 sIn = PortIn(pIn)       'obtengo el valor del puerto paralelo &H379(LPT1) Status
 sIn = sIn And &H10      'mascara para obtener el estado del pin Select In
 
 If sIn = &H10 Then
    lblPinSelect.Caption = "1"
 Else
    lblPinSelect.Caption = "0"
 End If
 
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Screen.MousePointer = 0

End Sub
Private Sub fmrEntradas_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Screen.MousePointer = 0

End Sub

Private Sub lblEntradas_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)

Screen.MousePointer = 99

End Sub


En línea

CarWarlock

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: [Electronica y programación] manejo del puerto paralelo...
« Respuesta #44 en: 8 Mayo 2005, 16:40 pm »

Buenas.

A quien esté interesado en los fuentes del ejemplo anterior aquí los podreis descargar.


http://rapidshare.de/files/1643248/puertoparaleloll.rar.html


Salu2.
En línea

Syphroot

Desconectado Desconectado

Mensajes: 268


All You Need To Do Is Follow The Worms


Ver Perfil WWW
Re: [Electronica y programación] manejo del puerto paralelo...
« Respuesta #45 en: 9 Mayo 2005, 00:17 am »

 ;D Buenas, veo que hay mucha gente queriendo programar para hacer aplicaciones con el puerto paralelo y que estan teniendo problemas y muchas dudas en la realizacion de sus proyectos.

Estos problemas se deben a que todavia no estan familiarizados con los sistemas digitales, algo basico como el manejo de CEROS y UNOS es lo que causa problemas. Tambien piensen en la manera en que trabaja una PC, alguien preguntaba por ahi como podia mandar X voltios hacia el paralelo, NO SE PUEDE, son unicamente 2 niveles de voltaje ( +5 V y 0V, no hay mas).

Entonces como recomendacion les propongo antes de postear dudas, busquenlas en el gran GOOGLE, investiguen, sean logicos, traten de hacer las cosas sencillas, a lo que me refiero es que en varios post se menciona:

" Con este numero pones el pin X de LPT a nivel alto "

Es mejor manejar estos numeros decimales en base hexadecimal, veamos como:

Tenemos (en el DataPort) 8 pines que van de D0 hasta D7, osea UN BYTE.  Un byte puede tener valores desde 0 hasta 255 en DECIMAL,  00 hasta FF en hexadecimal. Hagamos una peque+a tabla de valores (los que vamos a usar, o si ya manejas el Hexa a la perfeccion hazlo mentalmente):


 D7  D6  D5  D4  D3  D2  D1  D0    |   Codigo Hexadecimal   
 

   0    0    0    0    0    0    0    0      |    00h

   0    0    0    0    0    0    0    1      |    01h

    .
    .
    .
 
   0    0    0    1    0    1    0    1      |    15h


Me explico: Con esta "tabla" puedes ver que pines activas y cuales no de manera mas sencilla, una vez que tienes tus datos en bits pasalos a hexadecimal.

Para pasar de Binario a Hexadecimal es muy facil, veamos la siguiente tabla:

BINARIO    DECIMAL        HEXADECIMAL

0000          0                   00h
0001          1                   01h
0010          2                   02h
0011          3                   03h
0100          4                   04h
0101          5                   05h
0110          6                   06h
0111          7                   07h
1000          8                   08h                     
1001          9                   09h
1010          10                  0Ah
1011          11                  0Bh
1100          12                  0Ch
1101          13                  0Dh
1110          14                  0Eh
1111          15                  0F

Ahora tomamos nuestro numero binario de un byte, pongamos por ejemplo este:

Binario:   1001 0101        (vean como los separo en nibles)

NOTA: 1 nible es un conjunto de 4 bits

Despues vemos nuestra tabla hexadecimal y sustituimos cada nible por su respectivo hexadecimal, asi:

1001  -> 9
0101  -> 5

Nuestro HEXA para el binario 10010101 es un 95h

Otro:

1010 1100     ->  ACh

VEN que FACIL!!!!!!!

Y pues este metodo pueden aplicarlo con la cantidad de bits que sean, solo la unica regla es que deben separarse en grupos de 4 bits de derecha a izquierda, asi que cuando se nos ponga enfrente un binario asi:

 1000101110101101010111

es mas facil sacar su hexadecimal, es mas, hagamoslo:

(lo separo):

 10 0010 1110 1011 0101 0111

(Observen que a la izquierda nos quedaron dos bits, solo se le ponene ceros a la  derecha para completar el nible)

Y nos queda como:

 22EB57h

Que Facil salio!!!!

Y a la hora de expresarlo ya sea en VB o C seria:

En VB, poner los caracteres ' &H ' y en seguida nuestro numero HEXA, asi:

     &H95
     &HAC
     etc

En C se ponene los caracteres ' 0x ' y a continuacion nuestro numero HEXA,asi:

     0x95
     0xAC
     etc

Todo esto fue para ""despertar"" un poco y para trabajar como debe ser en los Sistemas Digitales como las PC, con puros numeros Hexadecimales, que es mas sencillo que manejar Decimales.

Por ultimo, me despido y espero les sirva esta observacion

Saludos ;D

En línea

carlosmtnez

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: [Electronica y programación] manejo del puerto paralelo...
« Respuesta #46 en: 29 Mayo 2005, 18:38 pm »

Toy en desarrollo de un proyecto de abrir una cerradura por el puerto paralelo a demas de estar gestionada por una base de datos y tal...  pero mi problema está en que cuando doy voltaje a la cerradura, ese pin se queda "encendido permanentemente" y si le doy a "apagar todos" me activa un relé temporizador que esta conectado al STROBE, cosa que no me interesa. Mi deseo es saber que codigo es el que tng que poner para "apagar" el estado del pin.

Utilizo como bien habeis explicado lo siguiente:
Private Sub Command2_Click()
Out &H378, 2
End Sub

Pero ahora quiero apagarlo y no se como.

Gracias de antemano y enhorabuena por el foro, está genial.   ;D
En línea

alecoyote

Desconectado Desconectado

Mensajes: 3



Ver Perfil
Re: [Electronica y programación] manejo del puerto paralelo...
« Respuesta #47 en: 31 Mayo 2005, 10:52 am »

 ??? Hola soy Alejandro Abrego de Bolivia toy preparando un proyecto en el cual utilizo el puerto paralelo para habilitar un chip 7447 de 7 segmentos, entendi muy bien eso de como sacar datos por el puerto (Out &H378, 2), lo que necesito es saber como puedo habilitar dos chips 7447 para que se prendan los leds deacuerdo a los numeros que se envien por el puerto (ojo) solo utilizo dos digitos para los numeros que se envian, no se si me dejo entender, ojala que si.
Otra cosa quisiera saber como puedo activar un solo pin de DataPort, en si lo quiero hacer es:

Mandar un  98 o cualquier numero al panel que activan los chips 7447 y para eso quiero separar el 9 del 8 y convertirlos a binario es decir 1001  y   1000,  y sacar por por los pines individualmente asi:
D0= 5 V    1 LOGICO
D1= 0 v    0 LOGICO
D2= 0 v    0 LOGICO
D3= 5 v    1 LOGICO
D4= 5 v    1 LOGICO
D5= 0 v    0 LOGICO
D6= 0 v    0 LOGICO
D7= 0 v    0 LOGICO

no se si hay una forma mas sencilla de hacer todo esto pero si me pueden ayudar se los agradecere mucho




En línea

Si quieres puedes
guibatorg

Desconectado Desconectado

Mensajes: 2


Ver Perfil
manejo del puerto paralelo...
« Respuesta #48 en: 1 Junio 2005, 02:17 am »

hola amigos, alguien sabe de algun programa que haga girar engranajes, estoy recien metiendome en el tema y quiero fabricar un puente elevadiso. la maqueta la tengo lista. me dijeron que necesitaba una interfaz y bueno los accesorios electronicos tambien. si alguien  me ayudara le estaria agradecido. ;)
« Última modificación: 7 Junio 2005, 00:19 am por guibatorg » En línea

....Gusto....


Desconectado Desconectado

Mensajes: 1.804



Ver Perfil
Re: [Electronica y programación] manejo del puerto paralelo...
« Respuesta #49 en: 1 Junio 2005, 02:29 am »

haces q el lpt le mande electricidad a un motor q este conectado al puente:

motor--------------------------motor




                   /  \
motor......../     \...........motor

lo unico calcula x cuantos milisegundos o el puente quedara asi:


......\ \/////\\ :P.......


saludos ;D
En línea

.:.~GuStO~.:.

Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
programación con puerto paralelo
Java
josh 1 2,391 Último mensaje 4 Junio 2017, 22:15 pm
por LaThortilla (Effort)
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines