Académique Documents
Professionnel Documents
Culture Documents
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.
main( ) {
Cabe mencionar que no se pretende ensear el lenguaje en variables locales
esta unidad, solo describe de manera muy general las sentencias y bloque
palabras que se requieren en la programacin del puerto, si se Todo programa en C/C++ consta de una o ms funciones, una
requiere conocer mas sobre el lenguaje se recomiendan varios cursos de las cuales se llama main. El programa comienza en la funcin
para conocer este lenguaje tan poderoso.
funcion1( ) {
variables locales
bloque
}
Los comentarios
A la hora de programar es conveniente aadir comentarios
(cuantos ms mejor) para poder saber que funcin tiene cada parte
del cdigo, en caso de que no lo utilicemos durante algn tiempo.
Adems facilitaremos el trabajo a otros programadores que puedan
utilizar nuestro archivo fuente.
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:
Observe que no se indica el punto y coma de final de
Variable sentencia ni tampoco el tipo de dato.
Una variable es un tipo de dato, referenciado mediante un
identificador (que es el nombre de la variable). Su contenido podr
ser modificado a lo largo del programa.
[calificador]<nombre1>,<nombre2>=<valor>,<nombre3>=<valor>
Constantes
Al contrario que las variables las constantes mantienen su
valor a lo largo de todo el programa.
\n salto de lnea
\b retroceso
\t tabulacin horizontal
\v tabulacin vertical
\\ contrabarra
\f salto de pgina
\' apstrofe
\" comillas dobles
\0 fin de una cadena de caracteres
Inclusin de librerias
En la programacin en C es posible utilizar funciones que
no esten includas en el propio programa. Para ello utilizamos la
directiva #include, que nos permite aadir libreras o funciones que
se encuentran en otros archivos a nuestro programa indicando que
se encuentran en el directorio por defecto del compilador.
#include <misfunc.h>
Operadores
A continuacin se explican los tipos de operadores
(aritmticos y de asignacin) que permiten realizar operaciones
matemticas en lenguaje C.
Existen dos tipos de operadores aritmticos:
Los binarios:
75 86
Operadores relacionales
+ Suma Los operadores relacionales se utilizan para comparar el
- Resta contenido de dos variables. En C existen seis operadores relacionales
* Multiplicacin
/ Divisin bsicos:
% Mdulo (resto)
> Mayor que
y los unarios: < Menor que
>= Mayor o igual que
++ Incremento (suma 1) <= Menor o igual que
-- Decremento (resta 1) == Igual que
- Cambio de signo
!= Distinto que
Su sintaxis es:
El resultado que devuelven estos operadores es 1 para
binarios: Verdadero y 0 para Falso.
<variable1><operador><variable2>
Funcion de salida de datos en pantalla.
unarios: La rutina printf permite la aparicin de valores numricos,
<variable><operador> caracteres y cadenas de texto por pantalla. El prototipo de la
<operador><variable>. sentencia printf es el siguiente:
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...);
11
9 10
12
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 que
if (condicin) sentencia1; seran requeridos en su momento.
else sentencia2;
Sentencia FOR
Su sintaxis es:
11
9 10
12
Bit 0 Strobe
Tabla 1: Registro de datos
Si se trata de un compilador C/C++ 4.0 o superior de Se puede apreciar que los datos D0 a D2 no tienen un pin
Borland o Microsoft: especifico de trabajo, por lo que asumen un valor binario de 1.
Vemos tambien que el D7 contiene antecedido una diagonal
Librera requerida: conio.h indicando que es un valor negado, es decir que si la entrada es 1 el
Linea a utilizar: outp(dir_puerto, valor); puerto lo lee como 0 y viceversa.
scanf(%i, &x);
y=pow(2,x); Tabla 2.- Entrada en el pin 15
outportb(0x378,y); Pin 11 10 12 13 15 NA NA NA
} Dato /D7 D6 D5 D4 D3 D2 D1 D0
Valor 0 0 0 0 1 1 1 1
La interfaz electronica para comprobar los programas de los
ejemplos anteriores es la siguiente: Como se aprecia en las tablas tenemos los valores siguentes:
Para el pin 10: el valor es 71.
Para el pin 15: el valor es 15.
#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
outportb(0x378, x);
del pin 10, y deseamos que dicho pin haga que se genere un rotabit
delay(1000);
del pin 2 al 9 o llega un dato al pin 15 que genera un rotabit del pin
}
9 al 2.
}
}
Tabla 1.- Entrada en el pin 10
Pin 11 10 12 13 15 NA NA NA
21
23 22
Dato /D7 D6 D5 D4 D3 D2 D1 D0
Valor 0 1 0 0 0 1 1 1
21
23 22
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