Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pparalelo PDF
Pparalelo PDF
PRESENTACION
El presente documento es una breve recopilacin de datos
referentes a como se programa el puerto paralelo para su
utilizacin en automatismos, circuitos electronicos controlados por
computadora y en demostraciones didacticas de cmo un sistema
operativo, como lo es Windows, controla el puerto para la muestra
de datos.
A continuacin vemos algunas de estas palabras clave: El valor de una constante no puede ser modificado de
ninguna manera.
char int float
double if Secuencias de escape
else do while for switch Ciertos caracteres no representados grficamente se pueden
short long extern
static default representar mediante lo que se conoce como secuencia de escape.
continue break register
sizeof typedef A continuacin vemos una tabla de las ms significativas:
\n salto de lnea
Variable \b retroceso
Una variable es un tipo de dato, referenciado mediante un \t tabulacin horizontal
identificador (que es el nombre de la variable). Su contenido podr \v tabulacin vertical
ser modificado a lo largo del programa. \\ contrabarra
\f salto de pgina
Una variable slo puede pertenecer a un tipo de dato. Para \' apstrofe
poder utilizar una variable, primero tiene que ser declarada: \" comillas dobles
\0 fin de una cadena de caracteres
[calificador] <tipo> <nombre>
printf(control,arg1,arg2...);
Operadores de asignacion
La mayora de los operadores aritmticos binarios explicados En la cadena de control indicamos la forma en que se
anteriormente tienen su correspondiente operador de asignacin: mostrarn los argumentos posteriores. Tambin podemos introducir
una cadena de texto ( sin necesidad de argumentos ), o combinar
= Asignacin simple ambas posibilidades, as como secuencias de escape.
+= Suma
-= Resta En el caso de que utilicemos argumentos deberemos
*= Multiplicacin indicar en la cadena de control tantos modificadores como
/= Divisin argumentos vayamos a presentar.
%= Mdulo (resto)
Funcion de entrada de datos desde teclado
Con estos operadores se pueden escribir, de forma ms breve, La rutina scanf permite entrar datos en la memoria del
expresiones del tipo: ordenador a travs del teclado. El prototipo de la sentencia scanf es
el siguiente:
n=n+3 se puede escribir n+=3
k=k*(x-2) lo podemos sustituir por k*=x-2 scanf(control,arg1,arg2...);
9 10
En la cadena de control indicaremos, por regla general, for (inicializacin;condicin;incremento){
los modificadores que harn referencia al tipo de dato de los sentencia1;
argumentos. Al igual que en la sentencia printf los modificadores sentencia2;
estarn formados por el caracter % seguido de un caracter de }
conversin. Los argumentos indicados sern, nuevamente, las
variables. La inicializacin indica una variable (variable de control)
que condiciona la repeticin del bucle. Si hay ms, van separadas
La principal caracterstica de la sentencia scanf es que por comas:
necesita saber la posicin de la memoria del ordenador en que se
encuentra la variable para poder almacenar la informacin for (a=1,b=100;a!=b;a++,b- -){
obtenida. Para indicarle esta posicin utilizaremos el smbolo
ampersand ( & ), que colocaremos delante del nombre de cada
variable. ( Esto no ser necesario en los arrays ). Sentencia DO...WHILE
Su sintaxis es:
La sentencia solo se ejecuta si se cumple la condicin. En caso Pues bien, una vez vistos estos aspectos (recordando que
contrario el programa sigue su curso sin ejecutar la sentencia. esta unidad no pretendia ensear a programar en C, si no solo
conocer los aspectos basicos del mismo para la programacin del
Otro formato: puerto) corresponde ahora solo practicarlos realizando programas
de control hacia el puerto, relacionandolos con los datos necesarios
if (condicin) sentencia1; que seran requeridos en su momento.
else sentencia2;
Sentencia FOR
Su sintaxis es:
11 12
las lneas de datos e informa a la parte receptora que la
UNIDAD 2 informacin (los datos) estn disponibles; entonces la parte
receptora lee la informacin en las lneas de datos e informa a la
ESTRUCTURA DEL parte transmisora que ha tomado la informacin (los datos).
PUERTO PARALELO
Observe que mbas partes sincronizan su respectivo acceso a
las lneas de datos, la parte receptora no leer las lneas de datos
Una vez vistos los aspectos basicos de la programacin en C, hasta que la parte transmisora se lo indique en tanto que la parte
que sera requerida para controlar dispositivos con el puerto de la transmisora no colocar nueva informacin en las lneas de datos
PC, ahora toca ver los aspectos relacionados al hardware, la hasta que la parte receptora remueva la informacin y le indique a
estructura del puerto, como funciona este. la parte transmisora que ya ha tomado los datos, a sta
coordinacin de operaciones se le llama acuerdo entendimiento el
Los puertos de comunicacin de la PC son de particular cual es llamado handshaking.
inters para el estudioso de la electrnica ya que le permiten utilizar
una computadora personal para controlar todo tipo circuitos Para implementar el handshaking se requieren dos lneas
electrnicos utilizados, principalmente, en actividades de adicionales. La lnea de strobe es la que utiliza la parte transmisora
automatizacin de procesos, adquicisin de datos, tareas repetitivas para indicarle a la parte receptora la disponibilidad de informacin.
y otras actividades que demandan precisin. La lnea de admisin (acknowledge) es la que utiliza la parte
receptora para indicarle a la parte transmisora que ha tomado la
Existen dos mtodos bsicos para transmisin de datos en las informacin (los datos) y que est lista para recibir ms datos.
computadoras modernas. En un formato de transmisin de datos en
serie un dispositivo enva datos a otro a razn de un bit a la vez a El puerto paralelo provee de una tercera lnea de
travs de un medio. Por otro lado, en un formato de transmisin de handshaking llamada en ingls busy (ocupado), sta la puede
datos en paralelo un dispositivo enva datos a otro a una tasa de n utilizar la parte receptora para indicarle a la parte transmisora que
nmero de bits a travs de n nmero de medios a un tiempo. Sera est ocupada y por lo tanto la parte transmisora no debe intentar
fcil pensar que un sistema en paralelo es n veces ms rpido que colocar nueva informacin en las lneas de datos. Una tpica sesin
un sistema en serie, sin embargo sto no se cumple, bsicamente el de transmisin de datos se parece a lo siguiente:
impedimiento principal es el tipo de cable que se utiliza para
interconectar los equipos. 1. La parte transmisora checa la lnea busy para ver si la parte
receptora est ocupada. Si la lnea busy est activa, la parte
Si bin un sistema de comunicacin en paralelo puede transmisora espera en un bucle hasta que la lnea busy est
utilizar cualquier nmero de cables para transmitir datos, la inactiva.
mayora de los sistemas paralelos utilizan ocho lneas de datos para 2. La parte transmisora coloca la informacin en las lneas de
transmitir un byte a la vez. datos.
3. La parte transmisora activa la lnea de strobe.
Un tpico sistema de comunicacin en paralelo puede ser de 4. La parte transmisora espera en un bucle hasta que la lnea
una direccin (unidireccional) o de dos direcciones (bidireccional). acknowledge est activa.
Donde tambien distinguimos dos elementos: la parte transmisora y 5. La parte transmisora inactiva la lnea de strobe.
la parte receptora. La parte transmisora coloca la informacin en 6. La parte transmisora espera en un bucle hasta que la lnea
acknowledge est inactiva.
13 14
7. La parte transmisora repite los pasos anteriores por cada Pin E/S Polaridad Descripcin
byte a ser transmitido.
8. La parte receptora inactiva la lnea busy (asumiendo que 1 Salida 0 Strobe
est lista para recibir informacin). Lneas de datos
9. La parte receptora espera en un bucle hasta que la lnea 2 ~ 9 Salida -
(bit 0/patita 2, bit 7/patita 9)
strobe est activa. Lnea acknowledge
10. La parte receptora lee la informacin de las lneas de datos 10 Entrada 0 (activa cuando el sistema remoto toma
(y si es necesario, procesa los datos). datos)
11. La parte receptora activa la lnea acknowledge.
12. La parte receptora espera en un bucle hasta que est Lnea busy
inactiva la lnea de strobe. 11 Entrada 0 (si est activa, el sistema remoto no
13. La parte receptora inactiva la lnea acknowledge. acepta datos)
14. La parte receptora repite los pasos anteriores por cada byte Lnea Falta de papel
que debe recibir. 12 Entrada 1 (si est activa, falta papel en la
impresora)
Se debe ser muy cuidadoso, tanto la parte transmisora como la Lnea Select
receptora coordinan sus acciones de tal manera que la parte 13 Entrada 1 (si est activa, la impresora se ha
transmisora no intentar colocar varios bytes en las lneas de datos, seleccionado)
en tanto que la parte receptora no debe leer ms datos que los que
le enve la parte transmisora, un byte a la vez. Lnea Autofeed
(si est activa, la impresora inserta una
14 Salida 0
Estructura del puerto paralelo nueva
lnea por cada retorno de carro)
El puerto paralelo de una tpica PC utiliza un conector hembra Lnea Error
de tipo D de 25 pines (DB-25). El orden de los pines del conector es 15 Entrada 0 (si est activa, hay un error en la
ste: impresora)
Lnea Init
(Si se mantiene activa por al menos 50
16 Salida 0
micro-segundos, sta seal
autoinicializa la impresora)
Lnea Select input
17 Salida 0 (Cuando est inactiva, obliga a la
impresora a salir de lnea)
18 ~
La siguiente tabla describe la funcin de cada patita del - - Tierra elctrica
25
conector 1284 tipo A:
Observe que el puerto paralelo tiene 12 lneas de salida (8 lneas
de datos, strobe, autofeed, init, y select input) y 5 de entrada
(acknowledge, busy, falta de papel, select y error).
15 16
Hay tres direcciones de E/S asociadas con un puerto paralelo Bit 2 IRQ (Not)
de la PC, stas direcciones pertenecen al registro de datos, el registro
de estado y el registro de control. Bit 1 Reservado
Bit 0 Reservado
El registro de datos es un puerto de lectura-escritura de ocho
bits. Leer el registro de datos (en la modalidad unidireccional) Tabla 2: Registro de estado
retorna el ltimo valor escrito en el registro de datos.
Bit
Los registros de control y estado proveen la interface a las otras Direccin Nombre Lectura/Escritura Propiedades
lneas de E/S. La distribucin de las diferentes seales para cada uno #
de los tres registros de un puerto paralelo esta dada en las siguientes Base + 2 Puerto de Lectura/Escritura Bit 7 No usado
tablas: control Bit 6 No usado
Permite
Bit Bit 5 puerto
Direccin Nombre Lectura/Escritura Propiedades
# bidireccional
Base + 0 Puerto de Escritura Bit 7 Dato 7 Permite IRQ a
datos Bit 6 Dato 6 travs de la
Bit 4
lnea
Bit 5 Dato 5
acknowledge
Bit 4 Dato 4
Selecciona
Bit 3 Dato 3 Bit 3
impresora
Bit 2 Dato 2 Inicializa
Bit 2
Bit 1 Dato 1 impresora
Bit 0 Dato 0 Nueva lnea
Bit 1
automtica
Tabla 1: Registro de datos Bit 0 Strobe
#include<dos.h>
void main()
{
int x, in;
in=inportb(0x378+1);
if (in==71)
{
for(x=1; x<=128; x=x*2)
{
outportb(0x378, x);
delay(1000);
}
}
if (in==15)
{
for(x=128; x>=1; x=x/2)
Ejemplo 3: Se recibe un dato en el registro de estado a traves {
del pin 10, y deseamos que dicho pin haga que se genere un rotabit outportb(0x378, x);
del pin 2 al 9 o llega un dato al pin 15 que genera un rotabit del pin delay(1000);
}
9 al 2.
}
}
Tabla 1.- Entrada en el pin 10
Pin 11 10 12 13 15 NA NA NA
Dato /D7 D6 D5 D4 D3 D2 D1 D0
Valor 0 1 0 0 0 1 1 1
23
A MANERA DE CONCLUSION
Como se puede apreciar la programacion es bastante
sencilla, pero requiere de tener conocimientos en programacin en
lenguaje C/C++ y algunos aspectos basicos de electronica para
comprender sobre todo el circuito aqu expuesto, el resto dependera
del interesado, pues como bien se sabe para programar solo bastan
tres requisitos, conocer la estructura de un lenguaje de
programacin, ser buen investigador y tener imaginacin para la
solucion de problemas.
http://www.modelo.edu.mx/univ/virtech/circuito/paralelo.htm