ENVIÓ Y LECTURA DE DATOS DEL PUERTO
Envío de datos al puerto.El puerto paralelo puede ser usado como una comunicación directa con el PC, de este modo es posible desarrollar aplicaciones en tiempo-real que necesiten un rápido tiempo de respuesta.
El acceso se realiza escribiendo un byte (8 bits) en registro determinado. Este byte debe referirse a cada uno de los bits del registro. Esto significa que se debe definir el byte a escribir en sistema binario.
Por ejemplo si queremos escribir en el registro de datos el bit D0 y el bit D2 entonces el byte es:
0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | = 5 En decimal |
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | Registro de datos |
Luego, se debe escribir 5 en el registro de datos (dirección base):
En C la sentencia utilizada es:
Outport(dir_base, 5);
Lectura de datos del puerto
La lectura de datos se realiza accesando un byte del registro determinado. Al hacer la lectura se debe convertir el byte a binario para determinar él o los bits que interesen. Note que sólo se debe leer el registro de estado, o sea, la dirección base+1.
En C la sentencia utilizada es:
unsigned int dato;
dato=inport(dir_estado);
Por ejemplo, si el dato leído es igual a 96, significa que los bits S5 y S6 están activos (tienen un nivel alto, un 1).
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | = 96 En decimal |
S7 | S6 | S5 | S4 | S3 | S2 | S1 | S0 | Registro de estado |
La sintaxis de las instrucciones para la escritura en el puerto en los diversos lenguajes es similar aunque, obviamente, existen ciertas diferencias. Veamos cómo se procede en el lenguaje “C”.
En "C" se utiliza la instrucción outport, o bien outportb, ambas incluidas en la cabecera "dos.h". Un ejemplo muy simple de cómo escribir un 0xFF en el puerto es el siguiente:
#include <dos.h>
void main(void)
{
outport(0x378,0xFF);
}
En este ejemplo simplemente colocamos las salidas D0 a D7 en uno.
Esto lo podemos comprobar si medimos dichas salidas con un multímetro, observando que el valor de tensión respecto de masa es de 5V aproximadamente.
Haz clic aquí para ver el tema completo