SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
Puertos paralelos
Puerto paralelo en C

Definición

Un puerto paralelo es una interfaz entre un ordenador y un periférico. El puerto
paralelo transmite la información byte por byte, es decir que los 8 bits de datos que
forman un byte viajan juntos. Un ejemplo de puerto paralelo es el puerto de la
impresora.

El puerto paralelo puede utilizar uno de los tres tipos de conectores definidos por
el estándar IEEE 1284:

   1. 1284 tipo A es un conector hembra de 25 patitas de tipo D. Es el utilizado
      en las impresoras
   2. 1284 tipo B que es un conector de 36 patitas de tipo centronics y lo
      encontramos en la mayoría de las impresoras.
   3. 1284 tipo C es un conector similar al 1284 tipo B pero más pequeño, con
      mejores propiedades eléctricas y mecánicas.

¿Cómo funciona?

Los puertos paralelos fueron originalmente desarrollados por IBM como una
manera de conectar una impresora a un PC. Cuando IBM estaba en pleno proceso
de diseñar el PC, la compañía quería que el ordenador funcionara con impresoras
ofrecidas por Centronics, un fabricante líder de la época. IBM decidió no usar el
mismo puerto del ordenador que Centronics usaba en la impresora.

En lugar de ello, los ingenieros de IBM juntaron un conector de 25 pines (DB-25),
con un conector Centronics de 36 pines para crear un cable especial con el que
conectar la impresora al ordenador. Otros fabricantes de impresoras acabaron
adoptando el interfaz de Centronics, haciendo que este extraño cable fuera
inviable como estándar.

Cuando un ordenador envía datos a una impresora usando un puerto paralelo, le
está enviando 8 bits de datos a la vez. Estos 8 bits son enviados paralelamente
entre ellos, al contrario que los 8 bits enviados en fila en un puerto serie. Un puerto
paralelo estándar puede enviar entre 50 y 100 kilobytes de datos por segundo.




Puerto Paralelo                                                               Página 2
Tipos de puertos

Puertos SPP

Existen algunas versiones mejoradas de los puertos paralelos. Las
especificaciones originales eran unidireccionales, lo cual significa que los datos
solo podían ir en una dirección para cada pin. En 1987, IBM ofrece un diseño
nuevo de puerto paralelo bidireccional, conocido como SPP (Standard Parallel
Port), reemplazando por completo el diseño original.

Las comunicaciones bidireccionales permiten a cada dispositivo recibir y transmitir
datos por igual. Muchos dispositivos usan los pines del 2 al 9, originalmente
diseñados para el envío de datos. Pero los pines del 18 al 25, utilizados para
tierra, pueden ser usados también para datos. Esto permite una comunicación full-
duplex (ambas direcciones a la vez).

Puertos EPP

Los puertos paralelos mejorados EPP (Enhanced Parallel Port), fueron creados en
1991 por Intel, Xircom y Zenith, y permiten la transferencia de muchos más datos
por segundo. Fueron diseñados específicamente para dispositivos que no fueran
impresoras que querían ser conectados al puerto paralelo, usualmente equipos de
almacenamiento que necesitaban una mayor tasa de transferencia de datos.

Puertos ECP

Casi al mismo tiempo de la introducción de los puertos EPP, Microsoft y Hewlett
Packard anuncian en conjunto una nueva especificación en 1992, llamada ECP
(Extended Capabilities Port). Mientras que EPP estaba orientado a otros
dispositivos, ECP fue diseñado para proveer una mejor funcionalidad y velocidad a
las impresoras.

En 1994, el estándar IEEE 1284 es sacado a la luz. Incluye las especificaciones
EEP y ECP. Para que ambos funcionaran correctamente, tanto el sistema
operativo como el dispositivo, deben soportar estos requerimientos, Hoy en día
esto no suele ser un problema ya que casi todos los ordenadores soportan todos
los tipos de puertos paralelos, y detectará el modo a ser usado, dependiendo el
dispositivo que este conectado. Si quieres elegir un modo de forma manual, lo
puedes hacer por medio de laBIOS.




Puerto Paralelo                                                           Página 3
¿Cómo trabajar con ellos?




Primero se debe saber la configuración del puerto paralelo, y para eso podemos ir
a "Administrador de dispositivos" y directamente buscar dentro de las propiedades
de nuestro LPT (Que por lo regular es LPT1). Imagen arriba

Ahora que ya sabemos la dirección de nuestro puerto paralelo, podemos continuar
con el siguiente paso, que es saber la configuración de los puertos del LPT1;
tenemos 25 pines en el puerto paralelo, todos funcionan con señales TTL y a
continuación se muestra como están configurados:

      Puerto de entrada (Puerto 888 ó hexadecimal 378) va del pin 2 hasta el 9,
      por este puerto podemos sacar la información que queramos mandar a un
      circuito desde el ordenador, para lo cual tenemos 8 bits, el de menor peso
      es el pin 2 y el de mayor peso es el 9 siendo así que podemos tener hasta
      256 posibles combinaciones.

      Puerto de salida (Puerto 889) son del pin 10 al 13 y 15 (como pueden darse
      cuenta son solo 5 pines), por este puerto podemos meter información a
      nuestra computadora proveniente del circuito, cabe señalar que los
      primeros tres bits de menor peso no existen en este puerto pero son
      tomados en cuenta a la hora de tener un valor en la entrada. Por ejemplo, si
      metemos una entrada por el pin 15 (que es el de menor peso) nuestro
      programa lo tomara como el valor 8 en el puerto 889.




Puerto Paralelo                                                          Página 4
Puerto de E/S (Puerto 890) y son los pines 1, 14, 16 y 17 este puerto es
       especial para mandar datos tanto de entrada como de salida.

En la imagen (abajo)se muestra el puerto paralelo, con sus puertos de entradas y
salidas.




Para programar en C, primero tenemos que tener la librería, la cual es:
"inpout32.dll", esta librería tienen que colocarla en 2 direcciones, en System32 y
en el lugar donde tendrán su programa .EXE compilado.

Ahora si en nuestro proyecto podemos crear la clase:

using System;
using System.Runtime.InteropServices;

namespace WindowsApplication1
{
class PortAccess {

//Llama al metodo Output de la librería dll.
[DllImport("inpout32.dll", EntryPoint = "Out32")]
public static extern void Output(int adress, int value);
//Llama al metodo Input de la librería dll
[DllImport("inpout32.dll", EntryPoint = "Inp32")]
public static extern int Input(int adress);

}
}




Puerto Paralelo                                                          Página 5
y con lo anterior, tenemos los dos métodos que nos interesan, para meter y sacar
información por nuestro puerto.

El método 'Output' maneja dos variables enteras iniciales, la cual es adress y
value;
   a) 'adress' es la dirección de nuestro puerto de salida (especificada en la
       imagen del puerto paralelo arriba), que en nuestro caso es el 888 (decimal),
       debido a que tenemos 8 bits en nuestro puerto de salida es posible manejar
       cada pin de nuestros ocho bits de la siguiente manera:




por ejemplo, si queremos una salida en el pin 2 y 3 (b'00000011' en binario así),
pues exacto seria el valor 3 en decimal. La entrada es un poco más complicada,
ya que solo tenemos 5 pines con los cuales manejamos valores de 8 bits. Hay que
verlo gráficamente para entenderlo:




Con la imagen anterior ya nos damos una idea de lo que el programa puede leer
de estos pin, pero hay que tener cuidado ya que el pin 11 esta 'negado', esto
quiere decir que por ejemplo si nosotros metemos un 1 lógico por este pin el
programa lo leería como 0 lógico y viceversa, de tal forma que si nosotros
metemos la siguiente entrada: b'10001' el programa nos leerá un 8 decimal, que
equivale al b'00001000' en binario.




Puerto Paralelo                                                           Página 6
Con esto ya podemos manejar el puerto paralelo, ejemplo la siguiente instrucción:


PortAccess.Output(888, 1); // Saca un 1 lógico por el pin 2 para verlo mejor
b'00000001'

PortAccess.Output(888,255), // Pone todas la salida a 1 lógico, b'11111111'


Es cuestión de jugar con los números binarios y decimales para obtener la salida
deseada.

El puerto de entrada es más fácil ya que solo lee, los datos que hay en la entrada
ejemplo:


int a; //creamos una variable entera
a = PortAccess.Input(889); // Ponemos el valor de la entrada en la variable 'a'
System.Console.WriteLine("La entrada del puerto es: " + a); //muestra el valor de
la entrada




Puerto Paralelo                                                            Página 7
Conclusión
En verdad se merecía toda una sección aparte a la cual le brindaremos una
atención especial e iremos ampliándola cada vez más, ya que sus
prestaciones son muchísimas, y es bueno que lo conozcas, te sorprenderás
de las cosas que se pueden hacer...
Si estas leyendo este tutorial es por que tienes una PC en estos momentos
y seguramente una impresora o un Scanner conectados a ella. Bien, la ficha
en la cual están conectados estos dispositivos es conocida como puerto
paralelo. Si la desconectas veras que tiene 25 contactos (pines de ahora en
más), su nombre es Conector DB25.
Aquí tienes una imagen de los conectores




Cada pin de los conectores tiene un número asignado por lo cual es muy
importante que al armar tus propios cables los identifiques correctamente o
sufrirás unos terribles dolores de cabeza...!!!
Este puerto dispone de tres registros de 8 bit cada uno (un byte)

Sigamos con lo nuestro... cada uno de estos registros se denominan
puertos o PORT., y cada uno de sus bits, representa un pin determinado del
puerto. Los pin's que van del 18 al 25 (ambos inclusive): Son para masa, y
sirven para conectar las descargas de los circuitos.
Veamos ahora los tres registros
Puerto de datos (Pin 2 al 9): Es el PORT 888 y es de solo escritura, por
este registro enviaremos los datos al exterior de la pc,

Puerto de estado (Pin 15, 13, 12, 10 y 11): Es el PORT 889 y es de solo
lectura, por aquí enviaremos señales eléctricas al ordenador, de este
registro solo se utilizan los cinco bits de más peso, que son el bit 7, 6, 5, 4
y 3 teniendo en cuenta que el bit 7 funciona en modo invertido.
Puerto de control (Pin 1, 14, 16 y 17): Es el correspondiente al PORT
890, y es de lectura/escritura, es decir, podremos enviar o recibir señales
eléctricas, según nuestras necesidades. De los 8 bits de este registro solo
se utilizan los cuatro de menor peso o sea el 0, 1, 2 y 3, con un pequeño
detalle, los bits 0, 1, y 3 están invertidos.




Puerto Paralelo                                                                   Página 8
En esta imagen puedes ver los tres registros, sus bits y los pines asignados
a cada uno de ellos. La imagen corresponde a un conector DB-25 (Hembra).




Algo más... La tensión de trabajo del puerto es de 5 voltios, por lo que
necesitamos una fuente estabilizada o regulada de tensión, esto es
importante tenerlo en cuenta, ya que estaremos enviando señales al
puerto. Por otro lado, si bien puedes utilizar la PC para enviar señales al
exterior sin necesitad de una fuente externa, es recomendable utilizarla y
así no exiges demasiado al puerto y te evitas problemas.
Ahora bien, si activas un bit de salida por el puerto, este permanecerá así
hasta que lo cambies, es decir que estarás enviando 5V de forma continua
hasta que lo pongas a 0.
Pero bueno.. eso es programación, y lo veremos a su debido momento, por
lo pronto deberemos armarnos de unos circuitos para verificar el funcionamiento
del puerto. Aclarado esto pasemos a su construcción..




Puerto Paralelo                                                           Página 9
Para no meterte en líos con las sentencias de programación las cuales
    puedes programarlas tu mismo en Basic, en Pascal, en C, en Delphi y todos los
    demás lenguajes que quieras, yo hice uno en C y este es el código fuente...

/*Programa que envía señales al puerto de datos ingresando un número decimal*/
#include<dos.h>
#include<stdio.h>
#include<conio.h>
int a;       /*variable, valor que enviare al puerto*/
void main()
{
outp(888,0); /*apago todos los LED's*/
clrscr();           /*limpio la pantalla*/
printf("Ingrese el número en decimal para enviar al puerto.n");
printf("El número máximo permitido es 255:n");
scanf("%d",&a); /*tomo el valor y se lo paso a "a"*/
outp(888,a); /*lo envío al puerto de datos*/
printf("tachannnn... Dato enviado...!!!nn");
printf("Se acabó, presione una tecla para salir");
getch();             /*...y hasta luego*/
outp(888,0); /*apago todos los LED's*/
}




    Puerto Paralelo                                                        Página 10
Enviando datos por el puerto de control...
Este puerto es de lectura-escritura. En este caso lo utilizaremos para enviar
señales
desde la PC hacia el exterior, y el circuito que se utilizara será similar al empleado
en
el puerto de datos, de ese modo es posible tener 12 salidas, lo que si se debe
tener
en cuenta es que el primero el segundo y el cuarto bit de este registro están
invertidos, pero esta dificultad es superada con la codificación del programa que
controla este puerto
Si deseas ver como funcionan las salidas, arma el circuito anterior y ya podrás
observar las variaciones en los led's.
El programa de prueba lo tienes aquí.


   /*Programa que envía señales al puerto de control ingresando un número
   decimal*/
   #include<dos.h>
   #include<stdio.h>
   #include<conio.h>
   int a;        /*variable, valor que enviare al puerto*/
   void main()
   {
   a=11;           /*11 en binario es 1011 los valores 1 corresponden*/
               /*a los pines invertidos*/
   outp(890,a); /*apago todos los LED's*/
   clrscr();            /*limpio la pantalla*/
   printf("Ingrese el número en decimal para enviar al puerto.n");
   printf("El número máximo permitido es 15:n");
   scanf("%d",&a); /*tomo el valor y se lo paso a "a"*/
   outp(890,a); /*lo envío al puerto de estado*/
   printf("tachannnn... Dato enviado...!!!nn");
   printf("Se acabó, presione una tecla para salir");
   getch();              /*...y hasta luego*/
   outp(890,11); /*apago todos los LED's*/
   }




Puerto Paralelo                                                             Página 11
Pues bien, supongo que sabrás que el ordenador manda los datos en forma
de bytes. Un byte son 8 bits y un bit es la mínima cantidad de información
que un ordenador puede tratar. Es decir, un bit puede tomar sólo dos
valores posibles, que son 0 ó 1.
Hablando en lenguaje eléctrico el 0 significa 0 voltios y el uno significa 5
voltios (por aquello de la electrónica digital). Cualquier valor que mandemos
al puerto, el ordenador lo transformará en ceros y unos. Esto se conoce
como sistema binario de numeración. Como tenemos datos de 8 bits (1
byte), aplicando algo de las matemáticas que aprendimos en EGB, vemos
que con sólo 2 dígitos (el cero y el uno) podremos representar 28
 valores.
haciendo números tendremos 256 valores, que se corresponden a la
siguiente tabla:




Puerto Paralelo                                                           Página 12
Bibliografía

http://www.ordenadores-y-portatiles.com/puerto-paralelo.html

http://www.cavsi.com/preguntasrespuestas/que-es-un-puerto-paralelo-y-para-que-
sirve/

http://controlengel.blogspot.mx/2008/05/puerto-paralelo-y-c.html




Puerto Paralelo                                                       Página 13

Weitere ähnliche Inhalte

Was ist angesagt?

GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4Luis Zurita
 
Microprocesador
MicroprocesadorMicroprocesador
MicroprocesadorSuarezJhon
 
Unidad III: Polos y Ceros de una función de transferencia.
Unidad III: Polos y Ceros de una función de transferencia.Unidad III: Polos y Ceros de una función de transferencia.
Unidad III: Polos y Ceros de una función de transferencia.Mayra Peña
 
Entradas senoidales rectificación a media onda y rectificación de onda completa
Entradas senoidales  rectificación a media onda y rectificación de onda completaEntradas senoidales  rectificación a media onda y rectificación de onda completa
Entradas senoidales rectificación a media onda y rectificación de onda completaGeison Chavez
 
Amplitud modulada (am)
Amplitud modulada (am)Amplitud modulada (am)
Amplitud modulada (am)Juan Miguel
 
1.2 control pid INGENIERIA DEL CONTROL
1.2 control pid INGENIERIA DEL CONTROL1.2 control pid INGENIERIA DEL CONTROL
1.2 control pid INGENIERIA DEL CONTROLPether Davila
 
El transistor bjt
El transistor bjtEl transistor bjt
El transistor bjtFenix Alome
 
Construccion seguidor de línea por joaquín berrocal verano 2017
Construccion seguidor de línea por joaquín berrocal verano 2017Construccion seguidor de línea por joaquín berrocal verano 2017
Construccion seguidor de línea por joaquín berrocal verano 2017joaquinin1
 
Cuadro comparativo de compuertas logicas
Cuadro comparativo de compuertas logicasCuadro comparativo de compuertas logicas
Cuadro comparativo de compuertas logicasLeoner Parra
 
Transformada de Fourier
Transformada de FourierTransformada de Fourier
Transformada de FourierRomer Díaz
 
pruebas operativas en generadores sincronos
pruebas operativas en generadores sincronos pruebas operativas en generadores sincronos
pruebas operativas en generadores sincronos jhussen villegas
 
Amplificadores operacionales
Amplificadores operacionalesAmplificadores operacionales
Amplificadores operacionalesJomicast
 
Lógica positiva negativa
Lógica positiva negativaLógica positiva negativa
Lógica positiva negativaryder27
 
Arquitectura de Von Neumann
Arquitectura de Von NeumannArquitectura de Von Neumann
Arquitectura de Von Neumannvictor medra
 
Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...
Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...
Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...Alvaro Angel Romero Gandul
 
Microcontroladores: Programación de microcontroladores tomo 1
Microcontroladores: Programación de microcontroladores tomo 1Microcontroladores: Programación de microcontroladores tomo 1
Microcontroladores: Programación de microcontroladores tomo 1SANTIAGO PABLO ALBERTO
 

Was ist angesagt? (20)

GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
 
Codificación de línea
Codificación de líneaCodificación de línea
Codificación de línea
 
Microprocesador
MicroprocesadorMicroprocesador
Microprocesador
 
Unidad III: Polos y Ceros de una función de transferencia.
Unidad III: Polos y Ceros de una función de transferencia.Unidad III: Polos y Ceros de una función de transferencia.
Unidad III: Polos y Ceros de una función de transferencia.
 
Entradas senoidales rectificación a media onda y rectificación de onda completa
Entradas senoidales  rectificación a media onda y rectificación de onda completaEntradas senoidales  rectificación a media onda y rectificación de onda completa
Entradas senoidales rectificación a media onda y rectificación de onda completa
 
Compuertas logicas
Compuertas logicasCompuertas logicas
Compuertas logicas
 
Amplitud modulada (am)
Amplitud modulada (am)Amplitud modulada (am)
Amplitud modulada (am)
 
1.2 control pid INGENIERIA DEL CONTROL
1.2 control pid INGENIERIA DEL CONTROL1.2 control pid INGENIERIA DEL CONTROL
1.2 control pid INGENIERIA DEL CONTROL
 
El transistor bjt
El transistor bjtEl transistor bjt
El transistor bjt
 
Construccion seguidor de línea por joaquín berrocal verano 2017
Construccion seguidor de línea por joaquín berrocal verano 2017Construccion seguidor de línea por joaquín berrocal verano 2017
Construccion seguidor de línea por joaquín berrocal verano 2017
 
Cuadro comparativo de compuertas logicas
Cuadro comparativo de compuertas logicasCuadro comparativo de compuertas logicas
Cuadro comparativo de compuertas logicas
 
Transformada de Fourier
Transformada de FourierTransformada de Fourier
Transformada de Fourier
 
pruebas operativas en generadores sincronos
pruebas operativas en generadores sincronos pruebas operativas en generadores sincronos
pruebas operativas en generadores sincronos
 
GRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUASGRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUAS
 
Amplificadores operacionales
Amplificadores operacionalesAmplificadores operacionales
Amplificadores operacionales
 
Lógica positiva negativa
Lógica positiva negativaLógica positiva negativa
Lógica positiva negativa
 
Tipos de antenas y aplicaciones
Tipos de antenas y aplicacionesTipos de antenas y aplicaciones
Tipos de antenas y aplicaciones
 
Arquitectura de Von Neumann
Arquitectura de Von NeumannArquitectura de Von Neumann
Arquitectura de Von Neumann
 
Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...
Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...
Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...
 
Microcontroladores: Programación de microcontroladores tomo 1
Microcontroladores: Programación de microcontroladores tomo 1Microcontroladores: Programación de microcontroladores tomo 1
Microcontroladores: Programación de microcontroladores tomo 1
 

Ähnlich wie Puerto paralelo en c

Proyecto BOTTLER
Proyecto BOTTLERProyecto BOTTLER
Proyecto BOTTLERJomicast
 
Puertos paralelos
Puertos paralelosPuertos paralelos
Puertos paralelosGerman Moya
 
Puerto Paralelo.ppt
Puerto Paralelo.pptPuerto Paralelo.ppt
Puerto Paralelo.pptpedro97431
 
Lp (puerto paralelo)
Lp (puerto paralelo)Lp (puerto paralelo)
Lp (puerto paralelo)Richard Vilca
 
Lp (puerto paralelo)
Lp (puerto paralelo)Lp (puerto paralelo)
Lp (puerto paralelo)Richard Vilca
 
Tutorial básico control puerto paralelo con visual basic 6.0
Tutorial básico control puerto paralelo con visual basic 6.0Tutorial básico control puerto paralelo con visual basic 6.0
Tutorial básico control puerto paralelo con visual basic 6.0Eddy Solano
 
Puertoparalelolptep 100722200159-phpapp02
Puertoparalelolptep 100722200159-phpapp02Puertoparalelolptep 100722200159-phpapp02
Puertoparalelolptep 100722200159-phpapp02Oscar Melendez
 
Escaneo de puertos clase 2 28 02-13
Escaneo de puertos clase 2 28 02-13Escaneo de puertos clase 2 28 02-13
Escaneo de puertos clase 2 28 02-13Tensor
 
Contador de leds con puerto paralelo macho db 25 cu zumpango.
Contador de leds con puerto paralelo macho db 25 cu zumpango.Contador de leds con puerto paralelo macho db 25 cu zumpango.
Contador de leds con puerto paralelo macho db 25 cu zumpango.Leida Zuñiga
 
Puertos y conectores del pc. Gaby Lopez, Mishelle Quevedo
Puertos y conectores del pc. Gaby Lopez, Mishelle QuevedoPuertos y conectores del pc. Gaby Lopez, Mishelle Quevedo
Puertos y conectores del pc. Gaby Lopez, Mishelle Quevedomishpgabye
 

Ähnlich wie Puerto paralelo en c (20)

Puerto Paralelo
Puerto ParaleloPuerto Paralelo
Puerto Paralelo
 
Proyecto BOTTLER
Proyecto BOTTLERProyecto BOTTLER
Proyecto BOTTLER
 
Puertos paralelos
Puertos paralelosPuertos paralelos
Puertos paralelos
 
Arqui practica 5
Arqui practica 5Arqui practica 5
Arqui practica 5
 
Puerto paralelo
Puerto paraleloPuerto paralelo
Puerto paralelo
 
Puerto paralelo
Puerto paraleloPuerto paralelo
Puerto paralelo
 
Puerto Paralelo.ppt
Puerto Paralelo.pptPuerto Paralelo.ppt
Puerto Paralelo.ppt
 
Lp (puerto paralelo)
Lp (puerto paralelo)Lp (puerto paralelo)
Lp (puerto paralelo)
 
Lp (puerto paralelo)
Lp (puerto paralelo)Lp (puerto paralelo)
Lp (puerto paralelo)
 
Interfaz puerto paralelo LPT
Interfaz puerto paralelo LPTInterfaz puerto paralelo LPT
Interfaz puerto paralelo LPT
 
Puertoparalelooooo
PuertoparaleloooooPuertoparalelooooo
Puertoparalelooooo
 
Tutorial básico control puerto paralelo con visual basic 6.0
Tutorial básico control puerto paralelo con visual basic 6.0Tutorial básico control puerto paralelo con visual basic 6.0
Tutorial básico control puerto paralelo con visual basic 6.0
 
Construcciondeun pl cconpic
Construcciondeun pl cconpicConstrucciondeun pl cconpic
Construcciondeun pl cconpic
 
Puerto paralelo
Puerto paraleloPuerto paralelo
Puerto paralelo
 
Puerto paralelo
Puerto paraleloPuerto paralelo
Puerto paralelo
 
Puerto serie asincrónico
Puerto serie asincrónicoPuerto serie asincrónico
Puerto serie asincrónico
 
Puertoparalelolptep 100722200159-phpapp02
Puertoparalelolptep 100722200159-phpapp02Puertoparalelolptep 100722200159-phpapp02
Puertoparalelolptep 100722200159-phpapp02
 
Escaneo de puertos clase 2 28 02-13
Escaneo de puertos clase 2 28 02-13Escaneo de puertos clase 2 28 02-13
Escaneo de puertos clase 2 28 02-13
 
Contador de leds con puerto paralelo macho db 25 cu zumpango.
Contador de leds con puerto paralelo macho db 25 cu zumpango.Contador de leds con puerto paralelo macho db 25 cu zumpango.
Contador de leds con puerto paralelo macho db 25 cu zumpango.
 
Puertos y conectores del pc. Gaby Lopez, Mishelle Quevedo
Puertos y conectores del pc. Gaby Lopez, Mishelle QuevedoPuertos y conectores del pc. Gaby Lopez, Mishelle Quevedo
Puertos y conectores del pc. Gaby Lopez, Mishelle Quevedo
 

Kürzlich hochgeladen

Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCCarlosEduardoSosa2
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxroberthirigoinvasque
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresJonathanCovena1
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuelabeltranponce75
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxpaogar2178
 

Kürzlich hochgeladen (20)

Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 

Puerto paralelo en c

  • 2. Puerto paralelo en C Definición Un puerto paralelo es una interfaz entre un ordenador y un periférico. El puerto paralelo transmite la información byte por byte, es decir que los 8 bits de datos que forman un byte viajan juntos. Un ejemplo de puerto paralelo es el puerto de la impresora. El puerto paralelo puede utilizar uno de los tres tipos de conectores definidos por el estándar IEEE 1284: 1. 1284 tipo A es un conector hembra de 25 patitas de tipo D. Es el utilizado en las impresoras 2. 1284 tipo B que es un conector de 36 patitas de tipo centronics y lo encontramos en la mayoría de las impresoras. 3. 1284 tipo C es un conector similar al 1284 tipo B pero más pequeño, con mejores propiedades eléctricas y mecánicas. ¿Cómo funciona? Los puertos paralelos fueron originalmente desarrollados por IBM como una manera de conectar una impresora a un PC. Cuando IBM estaba en pleno proceso de diseñar el PC, la compañía quería que el ordenador funcionara con impresoras ofrecidas por Centronics, un fabricante líder de la época. IBM decidió no usar el mismo puerto del ordenador que Centronics usaba en la impresora. En lugar de ello, los ingenieros de IBM juntaron un conector de 25 pines (DB-25), con un conector Centronics de 36 pines para crear un cable especial con el que conectar la impresora al ordenador. Otros fabricantes de impresoras acabaron adoptando el interfaz de Centronics, haciendo que este extraño cable fuera inviable como estándar. Cuando un ordenador envía datos a una impresora usando un puerto paralelo, le está enviando 8 bits de datos a la vez. Estos 8 bits son enviados paralelamente entre ellos, al contrario que los 8 bits enviados en fila en un puerto serie. Un puerto paralelo estándar puede enviar entre 50 y 100 kilobytes de datos por segundo. Puerto Paralelo Página 2
  • 3. Tipos de puertos Puertos SPP Existen algunas versiones mejoradas de los puertos paralelos. Las especificaciones originales eran unidireccionales, lo cual significa que los datos solo podían ir en una dirección para cada pin. En 1987, IBM ofrece un diseño nuevo de puerto paralelo bidireccional, conocido como SPP (Standard Parallel Port), reemplazando por completo el diseño original. Las comunicaciones bidireccionales permiten a cada dispositivo recibir y transmitir datos por igual. Muchos dispositivos usan los pines del 2 al 9, originalmente diseñados para el envío de datos. Pero los pines del 18 al 25, utilizados para tierra, pueden ser usados también para datos. Esto permite una comunicación full- duplex (ambas direcciones a la vez). Puertos EPP Los puertos paralelos mejorados EPP (Enhanced Parallel Port), fueron creados en 1991 por Intel, Xircom y Zenith, y permiten la transferencia de muchos más datos por segundo. Fueron diseñados específicamente para dispositivos que no fueran impresoras que querían ser conectados al puerto paralelo, usualmente equipos de almacenamiento que necesitaban una mayor tasa de transferencia de datos. Puertos ECP Casi al mismo tiempo de la introducción de los puertos EPP, Microsoft y Hewlett Packard anuncian en conjunto una nueva especificación en 1992, llamada ECP (Extended Capabilities Port). Mientras que EPP estaba orientado a otros dispositivos, ECP fue diseñado para proveer una mejor funcionalidad y velocidad a las impresoras. En 1994, el estándar IEEE 1284 es sacado a la luz. Incluye las especificaciones EEP y ECP. Para que ambos funcionaran correctamente, tanto el sistema operativo como el dispositivo, deben soportar estos requerimientos, Hoy en día esto no suele ser un problema ya que casi todos los ordenadores soportan todos los tipos de puertos paralelos, y detectará el modo a ser usado, dependiendo el dispositivo que este conectado. Si quieres elegir un modo de forma manual, lo puedes hacer por medio de laBIOS. Puerto Paralelo Página 3
  • 4. ¿Cómo trabajar con ellos? Primero se debe saber la configuración del puerto paralelo, y para eso podemos ir a "Administrador de dispositivos" y directamente buscar dentro de las propiedades de nuestro LPT (Que por lo regular es LPT1). Imagen arriba Ahora que ya sabemos la dirección de nuestro puerto paralelo, podemos continuar con el siguiente paso, que es saber la configuración de los puertos del LPT1; tenemos 25 pines en el puerto paralelo, todos funcionan con señales TTL y a continuación se muestra como están configurados: Puerto de entrada (Puerto 888 ó hexadecimal 378) va del pin 2 hasta el 9, por este puerto podemos sacar la información que queramos mandar a un circuito desde el ordenador, para lo cual tenemos 8 bits, el de menor peso es el pin 2 y el de mayor peso es el 9 siendo así que podemos tener hasta 256 posibles combinaciones. Puerto de salida (Puerto 889) son del pin 10 al 13 y 15 (como pueden darse cuenta son solo 5 pines), por este puerto podemos meter información a nuestra computadora proveniente del circuito, cabe señalar que los primeros tres bits de menor peso no existen en este puerto pero son tomados en cuenta a la hora de tener un valor en la entrada. Por ejemplo, si metemos una entrada por el pin 15 (que es el de menor peso) nuestro programa lo tomara como el valor 8 en el puerto 889. Puerto Paralelo Página 4
  • 5. Puerto de E/S (Puerto 890) y son los pines 1, 14, 16 y 17 este puerto es especial para mandar datos tanto de entrada como de salida. En la imagen (abajo)se muestra el puerto paralelo, con sus puertos de entradas y salidas. Para programar en C, primero tenemos que tener la librería, la cual es: "inpout32.dll", esta librería tienen que colocarla en 2 direcciones, en System32 y en el lugar donde tendrán su programa .EXE compilado. Ahora si en nuestro proyecto podemos crear la clase: using System; using System.Runtime.InteropServices; namespace WindowsApplication1 { class PortAccess { //Llama al metodo Output de la librería dll. [DllImport("inpout32.dll", EntryPoint = "Out32")] public static extern void Output(int adress, int value); //Llama al metodo Input de la librería dll [DllImport("inpout32.dll", EntryPoint = "Inp32")] public static extern int Input(int adress); } } Puerto Paralelo Página 5
  • 6. y con lo anterior, tenemos los dos métodos que nos interesan, para meter y sacar información por nuestro puerto. El método 'Output' maneja dos variables enteras iniciales, la cual es adress y value; a) 'adress' es la dirección de nuestro puerto de salida (especificada en la imagen del puerto paralelo arriba), que en nuestro caso es el 888 (decimal), debido a que tenemos 8 bits en nuestro puerto de salida es posible manejar cada pin de nuestros ocho bits de la siguiente manera: por ejemplo, si queremos una salida en el pin 2 y 3 (b'00000011' en binario así), pues exacto seria el valor 3 en decimal. La entrada es un poco más complicada, ya que solo tenemos 5 pines con los cuales manejamos valores de 8 bits. Hay que verlo gráficamente para entenderlo: Con la imagen anterior ya nos damos una idea de lo que el programa puede leer de estos pin, pero hay que tener cuidado ya que el pin 11 esta 'negado', esto quiere decir que por ejemplo si nosotros metemos un 1 lógico por este pin el programa lo leería como 0 lógico y viceversa, de tal forma que si nosotros metemos la siguiente entrada: b'10001' el programa nos leerá un 8 decimal, que equivale al b'00001000' en binario. Puerto Paralelo Página 6
  • 7. Con esto ya podemos manejar el puerto paralelo, ejemplo la siguiente instrucción: PortAccess.Output(888, 1); // Saca un 1 lógico por el pin 2 para verlo mejor b'00000001' PortAccess.Output(888,255), // Pone todas la salida a 1 lógico, b'11111111' Es cuestión de jugar con los números binarios y decimales para obtener la salida deseada. El puerto de entrada es más fácil ya que solo lee, los datos que hay en la entrada ejemplo: int a; //creamos una variable entera a = PortAccess.Input(889); // Ponemos el valor de la entrada en la variable 'a' System.Console.WriteLine("La entrada del puerto es: " + a); //muestra el valor de la entrada Puerto Paralelo Página 7
  • 8. Conclusión En verdad se merecía toda una sección aparte a la cual le brindaremos una atención especial e iremos ampliándola cada vez más, ya que sus prestaciones son muchísimas, y es bueno que lo conozcas, te sorprenderás de las cosas que se pueden hacer... Si estas leyendo este tutorial es por que tienes una PC en estos momentos y seguramente una impresora o un Scanner conectados a ella. Bien, la ficha en la cual están conectados estos dispositivos es conocida como puerto paralelo. Si la desconectas veras que tiene 25 contactos (pines de ahora en más), su nombre es Conector DB25. Aquí tienes una imagen de los conectores Cada pin de los conectores tiene un número asignado por lo cual es muy importante que al armar tus propios cables los identifiques correctamente o sufrirás unos terribles dolores de cabeza...!!! Este puerto dispone de tres registros de 8 bit cada uno (un byte) Sigamos con lo nuestro... cada uno de estos registros se denominan puertos o PORT., y cada uno de sus bits, representa un pin determinado del puerto. Los pin's que van del 18 al 25 (ambos inclusive): Son para masa, y sirven para conectar las descargas de los circuitos. Veamos ahora los tres registros Puerto de datos (Pin 2 al 9): Es el PORT 888 y es de solo escritura, por este registro enviaremos los datos al exterior de la pc, Puerto de estado (Pin 15, 13, 12, 10 y 11): Es el PORT 889 y es de solo lectura, por aquí enviaremos señales eléctricas al ordenador, de este registro solo se utilizan los cinco bits de más peso, que son el bit 7, 6, 5, 4 y 3 teniendo en cuenta que el bit 7 funciona en modo invertido. Puerto de control (Pin 1, 14, 16 y 17): Es el correspondiente al PORT 890, y es de lectura/escritura, es decir, podremos enviar o recibir señales eléctricas, según nuestras necesidades. De los 8 bits de este registro solo se utilizan los cuatro de menor peso o sea el 0, 1, 2 y 3, con un pequeño detalle, los bits 0, 1, y 3 están invertidos. Puerto Paralelo Página 8
  • 9. En esta imagen puedes ver los tres registros, sus bits y los pines asignados a cada uno de ellos. La imagen corresponde a un conector DB-25 (Hembra). Algo más... La tensión de trabajo del puerto es de 5 voltios, por lo que necesitamos una fuente estabilizada o regulada de tensión, esto es importante tenerlo en cuenta, ya que estaremos enviando señales al puerto. Por otro lado, si bien puedes utilizar la PC para enviar señales al exterior sin necesitad de una fuente externa, es recomendable utilizarla y así no exiges demasiado al puerto y te evitas problemas. Ahora bien, si activas un bit de salida por el puerto, este permanecerá así hasta que lo cambies, es decir que estarás enviando 5V de forma continua hasta que lo pongas a 0. Pero bueno.. eso es programación, y lo veremos a su debido momento, por lo pronto deberemos armarnos de unos circuitos para verificar el funcionamiento del puerto. Aclarado esto pasemos a su construcción.. Puerto Paralelo Página 9
  • 10. Para no meterte en líos con las sentencias de programación las cuales puedes programarlas tu mismo en Basic, en Pascal, en C, en Delphi y todos los demás lenguajes que quieras, yo hice uno en C y este es el código fuente... /*Programa que envía señales al puerto de datos ingresando un número decimal*/ #include<dos.h> #include<stdio.h> #include<conio.h> int a; /*variable, valor que enviare al puerto*/ void main() { outp(888,0); /*apago todos los LED's*/ clrscr(); /*limpio la pantalla*/ printf("Ingrese el número en decimal para enviar al puerto.n"); printf("El número máximo permitido es 255:n"); scanf("%d",&a); /*tomo el valor y se lo paso a "a"*/ outp(888,a); /*lo envío al puerto de datos*/ printf("tachannnn... Dato enviado...!!!nn"); printf("Se acabó, presione una tecla para salir"); getch(); /*...y hasta luego*/ outp(888,0); /*apago todos los LED's*/ } Puerto Paralelo Página 10
  • 11. Enviando datos por el puerto de control... Este puerto es de lectura-escritura. En este caso lo utilizaremos para enviar señales desde la PC hacia el exterior, y el circuito que se utilizara será similar al empleado en el puerto de datos, de ese modo es posible tener 12 salidas, lo que si se debe tener en cuenta es que el primero el segundo y el cuarto bit de este registro están invertidos, pero esta dificultad es superada con la codificación del programa que controla este puerto Si deseas ver como funcionan las salidas, arma el circuito anterior y ya podrás observar las variaciones en los led's. El programa de prueba lo tienes aquí. /*Programa que envía señales al puerto de control ingresando un número decimal*/ #include<dos.h> #include<stdio.h> #include<conio.h> int a; /*variable, valor que enviare al puerto*/ void main() { a=11; /*11 en binario es 1011 los valores 1 corresponden*/ /*a los pines invertidos*/ outp(890,a); /*apago todos los LED's*/ clrscr(); /*limpio la pantalla*/ printf("Ingrese el número en decimal para enviar al puerto.n"); printf("El número máximo permitido es 15:n"); scanf("%d",&a); /*tomo el valor y se lo paso a "a"*/ outp(890,a); /*lo envío al puerto de estado*/ printf("tachannnn... Dato enviado...!!!nn"); printf("Se acabó, presione una tecla para salir"); getch(); /*...y hasta luego*/ outp(890,11); /*apago todos los LED's*/ } Puerto Paralelo Página 11
  • 12. Pues bien, supongo que sabrás que el ordenador manda los datos en forma de bytes. Un byte son 8 bits y un bit es la mínima cantidad de información que un ordenador puede tratar. Es decir, un bit puede tomar sólo dos valores posibles, que son 0 ó 1. Hablando en lenguaje eléctrico el 0 significa 0 voltios y el uno significa 5 voltios (por aquello de la electrónica digital). Cualquier valor que mandemos al puerto, el ordenador lo transformará en ceros y unos. Esto se conoce como sistema binario de numeración. Como tenemos datos de 8 bits (1 byte), aplicando algo de las matemáticas que aprendimos en EGB, vemos que con sólo 2 dígitos (el cero y el uno) podremos representar 28 valores. haciendo números tendremos 256 valores, que se corresponden a la siguiente tabla: Puerto Paralelo Página 12