db25
db25
Hace aos, IBM dise el puerto paralelo para manejar impresoras desde su gama de microcomputadores
PC/XT/AT. Un conector estndar macho de 25 pines apareca en la parte trasera del PC con el solo propsito
de servir de interfaz con la impresora. El sistema operativo DOS cargado en dichos PC soporta hasta tres
puertos paralelos asignados a los identificadores LPT1, LPT2 y LPT3, y cada puerto requiere tres direcciones
consecutivas del espacio de E/S (entrada-salida) del procesador para seleccionar todas sus posibilidades.
Desde el punto de vista del hardware, el puerto consta de un conector hembra DB25 con doce salidas latch
(poseen memoria/buffer intermedio) y cinco entradas, con ocho lneas de tierra.
Desde el punto de vista del software, el puerto paralelo consta de tres registros (datos, estado y control) de 8
bits cada uno, que ocupan tres direcciones de E/S (I/O) consecutivas de la arquitectura x86.
La funcin normal del puerto consiste en transferir datos a una impresora mediante 8 lneas de salida de datos,
usando las seales restantes como control de flujo. Sin embrago, puede ser usado como un puerto E/S de
propsito general por cualquier dispositivo o aplicacin que se ajuste a sus posibilidades de entrada/salida.
En este conector:
8 lneas (pines) son para salida de datos (bits de DATOS). Sus valores son nicamente modificables a
travs de software, y van del pin 2 (dato 0, D0) al pin 9 (dato 7, D7).
5 lneas son de entrada de datos (bits de ESTADO), nicamente modificables a travs del hardware
externo. Estos pines son: 11, 10, 12, 13 y 15, del ms al menos significativo.
4 lneas son de control (bits de CONTROL), numerados del ms significativo al menos: 17, 16, 14 y
1. Habitualmente son salidas, aunque se pueden utilizar tambin como entradas y, por tanto, se pueden
modificar tanto por software como por hardware.
las lneas de la 18 a la 25 son la tierra.
En la siguiente tabla se detallan la nomenclatura y descripcin de cada lnea. La columna "Centronics pin" se
refiere a las lneas del conector tipo Centronics usado en las impresoras. La columna E/S se refiere al dato
visto desde el lado del PC.
DB25 Centronics Tipo
pin
pin
(E/S)
Seal
Descripcin
Si est bajo ms de 0.5 s, habilita a la impresora para que reciba los datos
enviados.
Strobe
D0
D1
Bit 1 de datos
D2
Bit 2 de datos
D3
Bit 3 de datos
D4
Bit 4 de datos
D5
Bit 5 de datos
D6
Bit 6 de datos
D7
10
10
Ack
11
11
Busy
12
12
13
13
14
14
15
32
Error
16
31
Init
17
36
Select
1825
19-30,33
1825
16
Masa lgica
1825
17
Masa chasis
GND
En bajo indica error (no hay papel, est fuera de lnea, error no det.).
Si se enva un pulso en bajo > 50 s la impresora se reinicia.
En bajo selecciona impresora (en gral. no se usa, ya que SelectIn se fija a
alto).
Masa retorno del par trenzado.
El nombre de cada seal corresponde a la misin que cumple cada lnea con relacin a la impresora, el
perifrico para el que fue diseado el puerto paralelo. Las seales activas a nivel bajo aparecen con la barra de
negacin (por ejemplo, Strobe). Cuando se indica alto o bajo se refiere a la tensin en el pin del conector.
Alto equivale a ~5V en TTL y bajo a ~0V en TTL.
Acceso al puerto
El puerto paralelo se identifica por su direccin de E/S (entrada/salida, I/O) base y se reconoce en sistemas
MS-DOS por el nmero LPT (lp en Unix/Linux). Cuando arranca la mquina, la BIOS (Basic Input Output
System) chequea direcciones especficas de E/S en busca de puertos paralelos y construye una tabla de las
direcciones halladas en la posicin de memoria 40h:8h (o 0h:0408h) (vase direccionamiento segmentado).
Esta tabla contiene hasta tres palabras de 16 bits, cada palabra con el byte bajo primero seguido por el byte
alto. Cada palabra es la direccin de E/S base del puerto paralelo (que denominaremos LPT_BASE en lo
sucesivo). La primera corresponde a LPT1, la segunda a LPT2 y la tercera a LPT3. Hay que agregar que, en
MS-DOS tenemos el dispositivo PRN que es un alias a uno de los dispositivos LPT (generalmente es LPT1,
pero se puede cambiar con la orden MODE).
Las direcciones base estndar para los puertos paralelos son:
03BCh
0378h
0278h
Direccin
Byte
bajo
Byte
alto
LPT1
0000:0408/9
78
03
378
888
LPT2
0000:040A/B
78
02
278
632
LPT3 (no
instalado)
0000:040C/D
00
00
Hexadecimal Decimal
Registros
El puerto paralelo estndar (SPP) consta, como se mencion antes, de tres registros de 8 bits localizados en
direcciones adyacentes del espacio de E/S del PC. Los registros se definen relativos a la direccin de E/S base
(LPT_BASE) y son:
Nombre habitual
Puerto
378h
379h
37Ah
LPT1
DIRECCIN Puerto
E/S
278h
279h
27Ah
LPT2
3BCh
3BDh
3BEh
Puerto
Se har referencia a cada bit de los registros como una inicial que identifica el registro seguido de un nmero
que identifica el nmero de bit, siendo 0 el LSB (bit menos significativo) y 7 el MSB (bit ms significativo).
Por ejemplo, D0 es el bit 0 del reg. de datos, S7 es el bit 7 del reg. de estado y C2 es el bit 2 del reg. de
control.
Se indican con una barra de negacin los bits que utilizan lgica negativa. En lgica positiva un 1 lgico
equivale a alto (~5 V TTL) y un 0 lgico a bajo (~0 V TTL). En lgica negativa 1 equivale a bajo (~0 V) y 0
equivale a alto (~5 V).
Es preciso no confundir la lgica que sigue el puerto con la lgica que mantiene la impresora. Por
ejemplo, la impresora pone a alto Busy (pin 11) para indicar que est ocupada. Pero en realidad, al leer el
registro de estado, Busy la interpretamos como 0 (puesto que el pin 11 se corresponde con S7). Es decir, es
como si fuera activa en bajo (Busy).
Registro de datos (D)
El registro de estado se halla en LPT_BASE. Se puede leer y escribir. Escribir un dato en el registro causa que
dicho dato aparezca en los pines 2 a 9 del conector del puerto. Al leer el registro, se lee el ltimo dato escrito
(NO lee el estado de los pines; para ello hay que usar un puerto bidireccional).
El estndar es que las salidas sean LS TTL (low schottky TTL), aunque las hay que son de tipo OC (colector
abierto). La corriente que pueden entregar (modo source) es de 2,6 mA mximo y pueden absorber (modo
sink) un mximo de 24 mA. n el puerto original de IBM hay condensadores de 2,2 nF a masa. Las tensiones
para el nivel bajo son entre 0 y 0,8V y el nivel alto entre 2,4V y 5V.
La lnea Busy tiene, generalmente, una resistencia de pull-up interna. El estndar es que sean entradas tipo
LS TTL.
Los cuatro bits inferiores son salidas. La lectura devuelve lo ltimo que se escribi a dichos bits. Son TTL a
colector abierto con resistencias de pull-up de 4.7 k, por lo que un dispositivo externo puede forzar el estado
de los pines sin daar el driver. Esto permite utilizar estas cuatro lneas como entradas. Para ello, se ponen en
alto las cuatro salidas (escribiendo 0100b, es decir, 4h, en LPT_BASE+2) lo que hace que las salidas "floten".
Ahora, un dispositivo externo puede forzar a bajo alguna de las salidas con lo que, leyendo el puerto, sabemos
si esto sucedi o no.
Es posible realizar esta tcnica en salidas totem-pole (como D0-D7) pero no se recomienda su uso porque
habra que tener un conocimiento preciso de la corriente, ya que se puede sobrecargar los transistores de salida
y daar el driver (especialmente en puertos integrados LSI).
Bit de puerto bidireccional (compatible PS/2)
El bit C5, est disponible slo si se trata de un puerto bidireccional; en los puertos comunes no se utiliza, al
igual que los bits C6 y C7. Si C5=1, el buffer de los datos de salida se pone en alta impedancia,
"desconectando" dicho buffer de los pines 2 a 9 del conector del puerto (D0 a D7). Si se escribe al registro de
datos, se escribe al buffer pero no a la salida. Esto permite que al leer el puerto, se lea el estado de las entradas
y no lo que hay en buffer. Cuando C5=0 el puerto retorna al modo salida, su estado por defecto.
En las computadoras IBM PS/2, para habilitar el puerto paralelo bidireccional, adems de lo antes descrito, se
debe poner a 1 el bit 7 del registro del puerto 102h (opciones de configuracin).
En computadoras que no tengan puerto paralelo bidireccional compatible PS/2 hay que modificar uno o ms
bits de algn puerto especfico correspondiente al chipset de la placa. A veces se habilita por el Setup o por
jumper en la placa del puerto.
Bit de interrupcin
En trabajos normales de impresin ni el BIOS ni el DOS hacen uso de la interrupcin. El hecho de poseer una
lnea de interrupcin que est conectada directamente al PIC (Programmable Interrupt Controller), lo hace
muy til para experimentacin en data-loggers por ejemplo. El bit de interrupcin est conectado al control de
un buffer de tres estados. Cuando C4=1, se activa el buffer y su entrada, S6, se conecta a la lnea IRQ (en
general es IRQ7 o IRQ5). La lectura del bit, nos devuelve el estado del mismo (es decir si el buffer est en alta
impedancia o no).
Se producir una interrupcin, cuando haya un flanco descendente en el pin correspondiente a S6. A
continuacin, se describen los pasos para poder utilizar interrupciones.
Finalmente, se muestra una tabla que rene las caractersticas hardware y software del puerto paralelo.
DB25 Centronics
Tipo
Registro bit
Activo
pin
pin
(E/S)
Seal
Descripcin
C0
Control
0
bajo
Strobe
DO
Dato 0
alto
D0
D1
Dato 1
alto
D1
Bit 1 de datos
D2
Dato 2
alto
D2
Bit 2 de datos
D3
Dato 3
alto
D3
Bit 3 de datos
D4
Dato 4
alto
D4
Bit 4 de datos
D5
Dato 5
alto
D5
Bit 5 de datos
D6
Dato 6
alto
D6
Bit 6 de datos
D7
Dato 7
alto
D7
10
10
S6 Estado
IRQ
6
alto
Ack
11
11
S7
Estado
7
bajo
Busy
12
12
S5
Estado
5
13
13
S4
Estado
4
14
14
C1
Control
1
bajo AutoFeed
15
32
S3
Estado
3
alto
Error
16
31
C2
Control
2
alto
Init
17
36
C3
Control
3
bajo
Select
1825
19-30,33
1825
16
Masa lgica
1825
17
Masa chasis
GND
Miscelnea
Protocolo del puerto con la impresora
El handshaking ("apretn de manos" o protocolo) es un conjunto de reglas que ambos extremos de un sistema
de comunicacin tienen que seguir para que la comunicacin sea correcta. El puerto paralelo, usado con una
impresora, transmite datos y transmite/recibe las seales de protocolo. Las principales son Strobe, Ack y
Busy. La secuencia a seguir para enviar datos sera:
1.
2.
3.
4.
5.
Las otras seales sirven para verificar el estado de la impresora (Error, PaperEnd), para reiniciarla (Init) y
para configurarla (AutoFeed, Select).
En los nuevos puertos, estas seales adquieren otra funcin, a veces parecida y otras totalmente distintas.
Interrupciones con el puerto paralelo
En primer lugar, se debe habilitar el buffer que conecta la lnea ACK con la lnea IRQ. Esto lo hacemos
poniendo a 1 el bit 4 del registro de control (LPT_BASE+2). Luego se debe preparar una ISR (Interrupt
Service Routine) que atienda la interrupcin recordando enviar la seal EOI (20h) al registro de control del
PIC (puerto 20h) al salir de la rutina. La interrupcin software corresponde a la nmero 0Dh para IRQ5 y 0Fh
para IRQ7. Finalmente se habilita con 0 la interrupcin IRQ5 (o IRQ7) escribiendo al bit 5 (o 7) del registro
de interrupciones del PIC (puerto 21h).
Para desinstalar la ISR, se deshabilita la IRQ5 (o IRQ7) escribiendo un 1 al bit 5 (o 7) del registro de
interrupciones del PIC (puerto 21h). Luego se hace que C4=0.
Velocidad
Un puerto paralelo ISA normal toma un ciclo-ISA para leer o escribir. En un sistema cuya velocidad de bus
sea 1,3 Mhz, se puede decir que la lectura se puede hacer cada 1 s (idealmente, ya que siempre existen otras
instrucciones software, etc; En la prctica pueden ser desde 1.2 s a 2 s). Algunos puertos soportan un modo
"turbo" que elimina los 3 estados de espera de la CPU, con lo que la velocidad de lectura/escritura del puerto
se duplica (2,7 MHz).
Cita:
katarata escribi:
Leis algo acerca de la libreria que mencionas, pero me dicen que la librerria io.dll es
mejor para el XP. Sabes algo al respecto?
Private Declare Function PortWordIn Lib "IO.DLL" (ByVal Port As Integer) As Integer
Private Declare Sub PortDWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Long)
Private Declare Function PortIn Lib "IO.DLL" (ByVal Port As Integer) As Byte
Private Declare Sub SetPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Private Declare Function PortDWordIn Lib "IO.DLL" (ByVal Port As Integer) As Long
Private Declare Sub NotPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Private Declare Sub PortOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Byte)
Private Declare Function GetPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
As Boolean
Private Declare Function RightPortShift Lib "IO.DLL" (ByVal Port As Integer, ByVal Val As
Boolean) As Boolean
Private Declare Sub PortWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As
Integer)
Private Declare Sub ClrPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Private Declare Function LeftPortShift Lib "IO.DLL" (ByVal Port As Integer, ByVal Val As
Boolean) As Boolean
Private Declare Function IsDriverInstalled Lib "IO.DLL" As Boolean
Programa y cdigo fuente en VB6 que permite controlar el puerto paralelo , enviandole seales para
activar dispositivos conectados a este.
Incluye pequeas rutinas de ejemplos para cuando se conecte el puerto paralelo a un juego de luces.
Estas rutinas hacen destellar las luces de tal manera de formar distintos motivos.
Para armar el circuito, hay muchas posibilidades, la mas econmica que puedes usar para probar el
programa y mandar seales al puerto consite en utilizar diodos led
Los diodos led son como lucesitas que podemos encontrar en cualquier lado como por ejem las luces
que indican el encendido de tu pc, Estas lucesitas las consigues por centavos en cualquier casa de
electrnica y para armar el circuito todo lo que tienes que hacer es conectar los diodos led poniendo
una pata seguida de una resistencia de 470 ohms en la salida de color verde del cable paralelo y otra
pata en el polo negativo de la pc o tambien el negativo de una alimentacion externa (esta
alimentacion externa debe ser un transformador que entregue corriente continua, yo prob con uno
de 12v y anduvo joya, al estar enchufado el tranformador en la misma linea que la pc los negativos
son los mismos y lo puedes tomar facilmente de ahi gracias por el comentario)
Claro que para conseguir las salidas del cable paralelo necesitaras sacrificar algn cable de alguna
impresora vieja cortandole la punta que va a la impresora, con esto podras ver un monton de
cablecitos de distintos colores , como los que muestra la figura arriba
Volviendo al circuito, ten en cuenta que debes coincidir las patas negativas de los diodos led con el
polo negativo de la alimentacion externa, Para identificar cual es el polo negativo del led , debes
mirarlo a la luz y veras que en el interior del led el polo negativo es el que tiene una plaquita mas
grande, mietras que el positivo es solo un palito.
Para controlar las entradas( identificar cuando alguien presiona un boton) solo debes poner un
interruptor entre alguna de las entradas S (rojas) y masa externa
Armar todo este circuito te costara aprox 1 dolar (dependiendo tu pais), pero como ves es super
econmico y te permitira experimentar con el puerto antes de pasar a un circuito mayor que te
permita controlar dispositivos
Foros electrnica
http://www.forosdeelectronica.com/f26/usar-puerto-paralelo-c-visual-basic-lab-view-2259/
Introduccin:
El puerto paralelo de una PC es ideal para ser usado como herramienta de control de motores, rels, LED's, etc. El mismo posee un
bus de datos de 8 bits (Pin 2 a 9) y muchas seales de control, algunas de salida y otras de entrada que tambin pueden ser usadas
fcilmente.
Las PC's generalmente poseen solo uno de estos puertos (LPT1) pero con muy poco dinero se le puede adicionar una tarjeta con un
segundo puerto paralelo (LPT2).
En reglas generales la direccin hexadecimal del puerto LPT1 es igual a 0x378 (888 en decimal) y 0x278 (632 en decimal) para el
LPT2. Esto se puede verificar fcilmente en el setup de la PC o bien en el cartel que generalmente la PC muestra en el momento del
booteo. Puede darse el caso que el LPT1 asuma la direccin 0x3BC (956 en decimal) y el LPT2 0x378, en ese caso habr que tratar
de corregir el setup y/o los jumper de las tarjetas en caso que sea posible. De lo contrario se puede modificar el software que
veremos mas adelante para aceptar esas direcciones.
Si deseamos escribir un dato en el bus de salida de datos (pin 2 a 9) solo debemos escribir el byte correspondiente en la direccin
hexadecimal 0X378 (888 en decimal) cuando trabajamos con el LPT1 y 0x278 (632 en decimal) cuando trabajamos con el LPT2.
Los distintos pins (bits) de salida correspondientes al bus de datos no pueden ser escritos en forma independiente, por lo que siempre
que se desee modificar uno se debern escribir los ocho bits nuevamente.
Para leer el estado de los pins de entrada (10, 12, 13 y 15) se debe realizar una lectura a la direccin hexadecimal 0x379 (889 en
decimal) si trabajamos con el LPT1 o bien leer la direccin 0x279 (633 en decimal) si trabajamos con el LPT2. La lectura ser
devuelta en un byte en donde el bit 6 corresponde al pin 10, el bit 5 corresponde al pin 12, el bit 4 corresponde al pin 13 y el bit 3
corresponde al pin 15.
En la siguiente tabla se puede ver lo antedicho en una forma ms grfica:
BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
DB25
Pin 9
Pin 8
Pin 7
Pin 6
Pin 5
Pin 4
Pin 3
Pin2
CN5
CN4
No usar
HP 6
HP 5
HP 4
HP 3
HP 2
HP 1
HP 0
BIT
BIT
BIT 6 BIT 5 BIT 4 BIT 3
7
2
No
DB 25 usar
CN6
No
usar
Pin
10
Pin
12
Pin
13
Pin
15
BIT
1
BIT 0
No
usar
No
usar
No usar
No
usar
No
usar
No usar
Interfaz:
En la archivo IPP01-CIRCUIT.PDF podemos apreciar el circuito correspondiente a la interfaz para el puerto paralelo.
La interfaz nos provee 8 salidas TTL, 7 salidas de potencia (500ma) y cuatro entradas TTL. Es importante tener en cuenta
que las salidas TTL entregan una tensin de 5v y solo se les puede exigir un mnimo de corriente, apenas suficiente para
activar un transistor o bien un par de compuertas TTL.
As mismo las entradas TTL deben ser alimentadas con una tensin mxima de 5v o de lo contrario el chip resultar daado.
Esta tensin se obtiene desde VDD a travs del regulador U1 (7805).
Las 7 salidas de potencia no son mas que la amplificacin mediante un array de transistores Darlington (ULN2003) de las
salidas TTL 0 a 6 (la salida 7 no es usada). Este chip puede drenar una corriente mxima de 500ma, lo que es suficiente para
activar un LED, un rel y hasta un motor DC de bajo consumo (tipo motor de grabador).
La teora de funcionamiento es muy simple, solo se usan unas compuertas del tipo Buffer (74HC245) para poder conectarnos
con seguridad al puerto paralelo, y un array de transistores Darlington (ULN2003) para brindar una salida de mayor
potencia.
Cabe aclarar que los dos integrados 74HC245 se alimentan del regulador de voltaje 7805, el cual se encarga de reducir la
tensin de entrada (VDD) a 5v (Vcc). La tensin VDD debe estar comprendida entre 9 y 12v.
La tensin de entrada VHH alimenta directamente al ULN2003 para obtener mayor voltaje en caso de querer manejar un
rel o bien un pequeo motor. La tensin VHH debe estar comprendida entre 3 y 15v. VHH podr conectarse directamente
a VDD (y de esa forma usar solo un fuente de alimentacin) siempre que esto no provoque problemas de ruido.
En los siguientes diagramas se pueden apreciar un ejemplo de conexionado de un LED y un Rel a las salidas de potencia.
En forma anloga podramos conectar tambin un pequeo motor DC.
Conclusin:
Esta interfaz es tan sencilla como til, ya que nos permite realizar todo tipo de pruebas sin la necesidad de usar un
microcontrolador. Y de paso nos permite tomar experiencia en el manejo de seales mediante equipos microprocesados.
Podemos por ejemplo conectar un pequeo robot y tomar datos de sus sensores y analizar las decisiones a tomar mediante
un programa hecho en cualquier lenguaje de PC actual.
IMPORTANTE
Al conectar o desconectar la interfaz al puerto paralelo de la PC, se debe asegurar de que tanto la PC
como la interfaz se encuentren apagadas. Caso contrario el puerto paralelo de la PC podra llegar a
daarse permanentemente.
http://www.todorobot.com.ar/proyectos/paralelo/paralelo.htm
Un puerto paralelo es una interfaz entre un ordenador y un perifrico cuya principal caracterstica es que los
bits de datos viajan juntos enviando un byte completo o ms a la vez. Es decir, se implementa un cable o una
va fsica para cada bit de datos formando un bus. El cable paralelo es el conector fsico entre el puerto
paralelo y el perifrico. En un puerto paralelo habr una serie de bits de control en vas aparte que ir en
ambos sentidos por caminos distintos. En contraposicin al puerto paralelo est el Puerto serie, que enva los
datos bit a bit por el mismo hilo.
Desarrollo de la prctica
Material:
Cautn
Estao
Pasta para soldar
Protoboard
2 Mts cable UTP
2 Mts cable (1 hilo)
5 Leds
1 Conector Paralelo Macho
Procedimiento:
Primero pelamos 10 cm del cable UTP por ambos extremos y separamos los hilos, de la misma forma pelamos
1 cm de cada uno de los hilos de cada extremo, una vez realizado esto procedemos a soldar los hilos del cable
en el conector macho, para esto se deben localizar los pines en el conector que estn enumerados, localizamos
pines del 2 al 9 que son los utilizados para la transferencia de datos, una vez localizados los pines procedemos
a soldar ,esto se hace en el orden que ustedes prefieran siempre y cuando recuerden la secuencia, una vez
hecho esto tomamos el cable de un hilo y pelamos en cada extremo 1 cm. Una vez hecho esto localizamos en
el conector el pin 25 que es el de tierra (del pin 18 al 25 son tierra).
Una vez realizado todo este procedimiento pasaremos a la protoboard, en la protoboard tenemos que localizar
la serie negativa que esta de azul una vez encontrada hay que introducir el cable de tierra en el primer orificio
de la seria del polo negativo, una vez hecho esto tomamos los leds y ubicamos el polo negativo que es la patita
ms corta y la insertamos en la columna negativa y el positivo la insertamos en la columna A y que ambas
filas coincidan y as con los leds restantes sucesivamente luego pasamos a conectar el cable UTP ala
protoboard para esto tenemos que llevar el mismo orden que en el conector paralelo respectivamente
,localizamos el primer hilo a introducir y lo insertamos en la columna B de la forma que la fila del led
coincida con este y as sucesivamente con los dems con su respectivo orden .
Programa
Para poder manejar puertos en Visual Basic.Net es necesario contar con la librera Inpout32.dll de la cual
hablamos anteriormente reiterando que es necesario Poner la librera correspondiente en la carpeta
c:\windows\system32 una vez hecho eso tenemos que crear una clase en nuestro proyecto donde se importa la
librera .
Imports System
Imports System.Runtime.InteropServices
Public Class Puerto
_
Public Shared Function output(ByVal adress As Integer, ByVal value As Integer) As
Boolean
End Function
End Class
Una vez hecho esto pasamos a nuestro formulario e insertamos un botn, en este botn probaremos si todo
sale correctamente en el botn ira el siguiente cdigo:
Private Sub Probar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Probar.Click
Puerto.output(888, 255)
End Sub
Para poder encender el led numero 1 ,2 y 3 de nuestra Protoboard necesitamos el siguiente codigo que ira
dentro de un boton como se muestra respectivamente :
Private Sub Led1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Led1.Click
Puerto.output(888, 1)
End Sub
Private Sub Led2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Led22.Click
Puerto.output(888, 2)
End Sub
Private Sub Led3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Led3.Click
Puerto.output(888, 4)
End Sub
888 porque es la direccin hexadecimal que utiliza VB.NET para mandar seal al puerto y 1,2 y 4 por que es
la direccin donde esta ubicada el primer led para poder saber la direccin del led se debe hacer lo siguiente:
Los pines se enumeraran del 0 en adelante en este caso del 0 al 7 tomando referencia los pines del conector del
2 al 9 se realiza la siguiente operacin:
Led Pin
1
Puerto.output(888,
End If
If i = 3 Then
Puerto.output(888,
End If
If i = 4 Then
Puerto.output(888,
End If
If i = 5 Then
Puerto.output(888,
End If
2)
4)
8)
16)
If i = 6 Then
Puerto.output(888, 255)
End If
If i = 7 Then
Puerto.output(888, 16)
End If
If i = 8 Then
Puerto.output(888, 8)
End If
If i = 9 Then
Puerto.output(888,
End If
If i = 10 Then
Puerto.output(888,
End If
If i = 11 Then
Puerto.output(888,
End If
If i = 12 Then
Puerto.output(888,
End If
4)
2)
1)
255)
If i = 13 Then
i = 0
End If
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button8.Click
Timer1.Enabled = True
End Sub
End Class
Este programa lo que realiza es encender led por led segn el botn que se presione correspondientemente a
cada led de 1 al 5, con otro botn enciende todos los leds, otro desactiva el led cuando alguno esta encendido
y por ltimo se hiso una pequea muestra de cmo se podra implementar con un timer para que cada led
encienda cada decima de segundo uno tras otro.
Con esto damos por concluido este tutorial que espero le sirva y sea de su agrado cualquier
duda o sugerencia hacerla con toda confianza.