El documento describe dos programas para usar el puerto paralelo de una computadora. El primer programa recibe un número del 0 al 255 desde el teclado, lo convierte a binario y lo muestra en pantalla y LEDs. El segundo programa recibe letras del abecedario, las codifica para mostrar en un display de 7 segmentos conectado al puerto paralelo. Ambos programas usan funciones como scanf, outportb y delay.
1. Universidad Nacional Autónoma de México
Facultad de Ingeniería
LABORATORIO DE DISPOSITIVOS DE ALMACENAMIENTO y E/S
Isabel Fecha: 26/ Marzo / 2015
Semestre: 2015-2
PREVIO #7
EL PUERTO PARALELO DE UNA COMPUTADORA -1ra. PARTE-
1. Dibujar la tabla de pines, del conector tipo DB25-S
2. Armar o conseguir un cable para conectar el conector DB25-S del puerto paralelo a la
protoboard.
3. Diseñar con ayuda de algún lenguaje de programación de bajo o alto nivel, un programa
que reciba un dato entre 0 y 255 desde el teclado y lo convierta en su respectivo equivalente
binario presentándolo en pantalla, a la vez que lo despliegue en leds por los 8 pines de datos
del puerto paralelo. (trabajo en equipo)
#include<stdio.h>
#include<stdlib.h>
#include<dos.h>
int main(void){
unsigned int val=0x00;
unsigned int input;
int port=0x378; //Direccion del puerto
paralelo
system("cls");
do{
printf("Ingresa un número entre 0 y
255. Para salir ingrese 256n");
scanf("%d", &val);
outportb(port,val); //Valor del puerto
delay(1000);
printf("n");
system("PAUSE");
}while(val<256);
2. Universidad Nacional Autónoma de México
Facultad de Ingeniería
LABORATORIO DE DISPOSITIVOS DE ALMACENAMIENTO y E/S
Isabel Fecha: 26/ Marzo / 2015
Semestre: 2015-2
return 0;
}
4. Diseñar con ayuda de algún lenguaje de programación de bajo o alto nivel, un programa
que reciba una a una las letras del abecedario desde el teclado y las convierta en el
respectivo código que las despliegue en un display de 7 segmentos conectado a los 8 pines
de datos del puerto paralelo. Para codificar puede hacer las letras minúsculas o mayúsculas.
(trabajo en equipo)
#include<stdio.h>
#include<stdlib.h>
#include<dos.h>
outportb(port,val); //Valor del puerto
delay(1000);
int a1=11101111b;
int b1=00111111b;
int c1=11100100b;
int d1=01111011b;
int e1=10011111b;
int f1=10001111b;
int g1=11101111b;
int h1=01101111b;
int i1=01100000b;
int j1=01110000b;
int k1=00001110b;
int l1=00001100b;
int m1=11110011b;
int n1=00101010b;
int o1=11111100b;
int p1=11001111b;
int q1=11100111b;
int r1=00001010b;
int s1=10110111b;
int t1=00011111b;
int u1=01111101b;
int v1=01111101b;
int w1=11110011b;
int x1=01101111b;
int y1=01110111b;
int z1=11011011b;
int guion=000000010b;
int main(void){
unsigned char val=0x00;
unsigned int input;
int port=0x378; //Direccion del puerto
paralelo
system("cls");
do{
printf("Ingresa una letra:n");
delay(500);
scanf("%d", &val);
switch(val){
case 'a':
outportb(port,a1); //Valor del
puerto
break;
case 'b':
outportb(port,b1); //Valor del
puerto
break;
case 'c':
outportb(port,c1); //Valor del
puerto
break;
case 'd':
outportb(port,d1); //Valor del
puerto
break;
case 'e':
outportb(port,e1); //Valor del
puerto
break;
case 'f':
outportb(port,f1); //Valor del
puerto
break;
case 'g':
outportb(port,g1); //Valor del
puerto
break;
case 'h':
outportb(port,h1); //Valor del
puerto
break;
3. Universidad Nacional Autónoma de México
Facultad de Ingeniería
LABORATORIO DE DISPOSITIVOS DE ALMACENAMIENTO y E/S
Isabel Fecha: 26/ Marzo / 2015
Semestre: 2015-2
case 'i':
outportb(port,i1); //Valor del
puerto
break;
case 'j':
outportb(port,j1); //Valor del
puerto
break;
case 'k':
outportb(port,k1); //Valor del
puerto
break;
case 'l':
outportb(port,l1); //Valor del
puerto
break;
case 'm':
outportb(port,m1); //Valor del
puerto
break;
case 'n':
outportb(port,n1); //Valor del
puerto
break;
case 'o':
outportb(port,o1); //Valor del
puerto
break;
case 'p':
outportb(port,p1); //Valor del
puerto
break;
case 'q':
outportb(port,q1); //Valor del
puerto
break;
case 'r':
outportb(port,r1); //Valor del
puerto
break;
case 's':
outportb(port,s1); //Valor del
puerto
break;
case 't':
outportb(port,t1); //Valor del
puerto
break;
case 'u':
outportb(port,u1); //Valor del
puerto
break;
case 'v':
outportb(port,v1); //Valor del
puerto
break;
case 'w':
outportb(port,w1); //Valor del
puerto
break;
case 'x':
outportb(port,x1); //Valor del
puerto
break;
case 'y':
outportb(port,y1); //Valor del
puerto
break;
case 'z':
outportb(port,z1); //Valor del
puerto
break;
case '-':
outportb(port,guion);
default:
break;
}
printf("n");
system("PAUSE");
}while(1);
return 0;
}