SlideShare ist ein Scribd-Unternehmen logo
1 von 5
Downloaden Sie, um offline zu lesen
[ESCRIBA EL NOMBRE DE LA COMPAÑÍA]
Practica 7
El puerto paralelo de una computadora.
Parte 1
Laboratorio de Dispositivos de almacenamiento y E/S
Profesor: Pedro Damián González Osorio
Equipo 12
Isabel
Fecha de entrega:
02/04/2015
OBJETIVO
Aprender la configuración del conector de salida del puerto paralelo (DB-25 S).
Conocer y emplear el puerto paralelo de la computadora, como medio sencillo y a la vez
poderoso, para el diseño de interfaces y el control de dispositivos externos
INTRODUCCIÓN.
El puerto paralelo estándar (SPP)
El puerto paralelo de una típica PC utiliza un conector hembra de tipo D de 25 patitas (DB-25 S),
éste es el caso más común, sin embargo es conveniente mencionar los tres tipos de conectores
definidos por el estándar IEEE 1284, el primero, llamado 1284 tipo A es un conector hembra de 25
patitas de tipo D. El segundo conector se llama 1284 tipo B que es un conector de 36 patitas
de tipo centronics y lo encontramos en la mayoría de las impresoras; El tercero se denomina 1284
tipo C, se trata de un conector similar al 1284 tipo B pero más peque ño, además se dice que
tiene mejores propiedades eléctricas y mecánicas, este conector es el recomendado para nuevos
diseños.
La siguiente tabla e imagen describen la función de cada patita del conector 1284 tipo A:
Observe que el puerto paralelo tiene 12 líneas de salida (8 líneas de datos, strobe, autofeed,
init, y select input) y 5 de entrada (acknowledge, busy, falta de papel, select y error). El
estándar IEEE 1284 define cinco modos de operación:
1. Modo compatible
2. Modo nibble
3. Modo byte
4. Modo EPP, puerto paralelo ampliado
5. Modo ECP, puerto de capacidad extendida
El objetivo del estándar es diseñar nuevos dispositivos que sean totalmente compatibles con
el puerto paralelo estándar (SPP) definido originalmente por la IBM, solamente el modo
compatible se estudiará en el curso.
Hay tres direcciones de E/S asociadas con un puerto paralelo de la PC, éstas direcciones
pertenecen al registro de datos, el registro de estado y el registro de control. El registro de datos
es un puerto de lectura-escritura de ocho bits. Leer el registro de datos (en la modalidad
unidireccional) retorna el último valor escrito en el registro de datos. Los registros de control y
estado proveen la interfase a las otras líneas de E/S.
Una PC soporta hasta tres puertos paralelo separados, por tanto puede haber hasta tres juegos
de registros en un sistema en un momento dado. Existen tres direcciones base para el puerto
paralelo asociadas con tres posibles puertos paralelo: 0x3BCh, 0x378h y 0x278h, nos referimos a
éstas como las direcciones base para el puerto LPT1, LPT2 y LPT3, respectivamente. El registro
de datos se localiza siempre en la dirección base de un puerto paralelo, el registro de estado
aparece en la dirección base + 1, y el registro de control aparece en la dirección base + 2. Por
ejemplo, para un puerto LPT2 localizado en 0x378h, ésta es la dirección del registro de datos, al
registro de estado le corresponde la dirección 0x379h y su respectivo registro de control está en
la dirección 0x37Ah. Cuando la PC se enciende el BIOS ejecuta una rutina para determinar el
número de puertos presentes en el sistema asignando la etiqueta LPT1 al primer puerto
localizado, si existen más puertos entonces se asignarán consecutivamente las etiquetas LPT2 y
LPT3 de acuerdo a la siguiente tabla:
Dirección inicial Función
0000:0408 Dirección base para LPT1
0000:040A Dirección base para LPT2
0000:040C Dirección base para LPT3
0000:040E Dirección base para LPT4
Direcciones base en el BIOS
Para trabajar con el puerto paralelo necesitamos en primer lugar conocer la dirección base
asignada por el BIOS (estamos hablando de una PC compatible con IBM), podemos utilizar un
programa llamado Debug.exe que nos indique la(s) dirección(es) asignada(s), el programa
responde colocando un signo de menos - en donde tecleamos sin dejar espacios en blanco
d040:08L8 y presionamos la tecla entrar, entonces el programa debug.exe nos indica en una serie
de números la(s) dirección(es) para el (los) puerto(s) paralelo(s) disponibles en nuestro sistema,
el siguiente código muestra el resultado obtenido en una máquina “X”:
C:>debug
–d040:08L8
0040:0000 78 03 00 00 00 00 0C 02 x.....................
–q
C:>
Se puede observar una serie de números de dos dígitos (ocho en total), se trata del volcado de
memoria que empieza en la dirección 40:0008h. Los primeros seis pares de números representan
las direcciones base para los puertos paralelo instalados, en la imagen de arriba se aprecia que el
único puerto paralelo de la máquina está en la dirección 0x378h (78 03). Los números están
invertidos porque Intel almacena tal información en un formato de "byte de bajo orden - byte de
alto orden". Una vez que obtenemos la información deseada cerramos el programa Debug.exe
simplemente tecleando la letra q y presionando la tecla entrar.
MATERIAL.
1 Cable conector DB-25 (macho, protoboard), el arreglo de memoria 4k x 8.
DESARROLLO.
i) Utilizando los programas diseñados en el previo de esta práctica, grabar en el segundo arreglo
de memoria de la practica 6, el apellido de ambos integrantes del equipo separados por guion.
Para grabar el arreglo deberá hacer llegar los datos al display 7segmentos mediante el programa
que envía los códigos de las letras del abecedario al puerto paralelo, por su parte el
direccionamiento lo puede hacer manualmente.
Para leer la información, deberá utilizar el programa que envía números en forma binaria al
puerto paralelo y conectarlo en las líneas de direccionamiento del arreglo de memoria.
Numeros.c
#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 numero entre 0 y
255. Para salir ingrese 256n");
scanf("%d", &val);
outportb(port,val); //Valor del puerto
delay(1000);
printf("n");
}while(val!=256);
return 0;
}
Letras.c
#include<stdio.h>
#include<stdlib.h>
#include<dos.h>
int main(void){
char letra;
unsigned int valor1;
int puerto=0x378;
while(1){
printf("Letra: ");
scanf("%c",&letra);
fflush(stdin);
printf("%cn",letra);
switch(letra){
case 'a': valor1=0x77;break;
case 'b': valor1=0x7C;break;
case 'c': valor1=0x39;break;
case 'd': valor1=0x5E;break;
case 'e': valor1=0x79;break;
case 'f': valor1=0x71;break;
case 'g': valor1=0x6F;break;
case 'h': valor1=0x76;break;
case 'i': valor1=0x06;break;
case 'j': valor1=0x0E;break;
case 'k': valor1=0x70;break;
case 'l': valor1=0x30;break;
case 'm': valor1=0x4F;break;
case 'n': valor1=0x54;break;
case 'o': valor1=0x3F;break;
case 'p': valor1=0x73;break;
case 'q': valor1=0x67;break;
case 'r': valor1=0x50;break;
case 's': valor1=0x6D;break;
case 't': valor1=0x78;break;
case 'u': valor1=0x3E;break;
case 'v': valor1=0x3E;break;
case 'w': valor1=0x4F;break;
case 'x': valor1=0x76;break;
case 'y': valor1=0x6E;break;
case 'z': valor1=0x5B;break;
default: valor1=0x00;
}
outportb(puerto,valor1);
printf("%cn",valor1);
delay(500);
if(valor1=='0') break;
printf("n");
}
return 0;
}

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
GENERACION DE CODIGO INTERMEDIO
GENERACION DE CODIGO INTERMEDIOGENERACION DE CODIGO INTERMEDIO
GENERACION DE CODIGO INTERMEDIO
 
Presentacion1 lenguaje de-programacion_c
Presentacion1 lenguaje de-programacion_cPresentacion1 lenguaje de-programacion_c
Presentacion1 lenguaje de-programacion_c
 
Comandos importantes en c++
Comandos importantes en c++Comandos importantes en c++
Comandos importantes en c++
 
Tutorial ensamblador
Tutorial ensambladorTutorial ensamblador
Tutorial ensamblador
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Introduccion del Lenguaje C
Introduccion del Lenguaje CIntroduccion del Lenguaje C
Introduccion del Lenguaje C
 
Dev-C++
Dev-C++ Dev-C++
Dev-C++
 
Debug PaulinaChacon
Debug PaulinaChaconDebug PaulinaChacon
Debug PaulinaChacon
 
Curso básico de ensamblador
Curso básico de ensambladorCurso básico de ensamblador
Curso básico de ensamblador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Funciones de entrada y salida
Funciones de entrada y salidaFunciones de entrada y salida
Funciones de entrada y salida
 
Estructura de Lenguaje C++
Estructura de Lenguaje C++Estructura de Lenguaje C++
Estructura de Lenguaje C++
 
ENSAMBLADOR PIC 8086
ENSAMBLADOR PIC  8086ENSAMBLADOR PIC  8086
ENSAMBLADOR PIC 8086
 
Programa c++
Programa c++Programa c++
Programa c++
 
Ikgi
IkgiIkgi
Ikgi
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Lenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y ComponentesLenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y Componentes
 

Andere mochten auch

Andere mochten auch (20)

Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
AR
ARAR
AR
 
Control velocidad
Control velocidadControl velocidad
Control velocidad
 
Practica 1 SC
Practica 1 SCPractica 1 SC
Practica 1 SC
 
Practica3 - Control
Practica3 - ControlPractica3 - Control
Practica3 - Control
 
Factorización de polinomios
Factorización de polinomiosFactorización de polinomios
Factorización de polinomios
 
Strauss 150: new perspectives
Strauss 150: new perspectivesStrauss 150: new perspectives
Strauss 150: new perspectives
 
Excursión cra 2013
Excursión cra 2013Excursión cra 2013
Excursión cra 2013
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
23 de Abril Día Internacional del Libro.
23 de Abril Día Internacional del Libro. 23 de Abril Día Internacional del Libro.
23 de Abril Día Internacional del Libro.
 
Librito promociones
Librito promocionesLibrito promociones
Librito promociones
 
Bachillerato No Escolarizado SIGLOXXI
Bachillerato No Escolarizado SIGLOXXIBachillerato No Escolarizado SIGLOXXI
Bachillerato No Escolarizado SIGLOXXI
 
Ost 1 11423 74
Ost 1 11423 74Ost 1 11423 74
Ost 1 11423 74
 
Uni 2.0 | VT Wikis
Uni 2.0 | VT WikisUni 2.0 | VT Wikis
Uni 2.0 | VT Wikis
 
2008-11-25 Open Access @ CMG-AE
2008-11-25 Open Access @ CMG-AE2008-11-25 Open Access @ CMG-AE
2008-11-25 Open Access @ CMG-AE
 
LV8_PKM mit PLEs
LV8_PKM mit PLEsLV8_PKM mit PLEs
LV8_PKM mit PLEs
 
LUIS GAMON
LUIS GAMONLUIS GAMON
LUIS GAMON
 
Semiconductores by Mauricio
Semiconductores by MauricioSemiconductores by Mauricio
Semiconductores by Mauricio
 
Ten Frames
Ten FramesTen Frames
Ten Frames
 
Resultate Frauen
Resultate FrauenResultate Frauen
Resultate Frauen
 

Ähnlich wie Puerto Paralelo

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
 
Puerto paralelo en c
Puerto paralelo en cPuerto paralelo en c
Puerto paralelo en cmorriz1
 
Proyecto BOTTLER
Proyecto BOTTLERProyecto BOTTLER
Proyecto BOTTLERJomicast
 
Puertos paralelos
Puertos paralelosPuertos paralelos
Puertos paralelosGerman Moya
 
Hacer que su ordinador se convierta en un autómata programable
Hacer que su ordinador se convierta en un autómata programableHacer que su ordinador se convierta en un autómata programable
Hacer que su ordinador se convierta en un autómata programableyamashizoury
 
4ª practica control del puerto de paralelo,activación y desactivación de equipos
4ª practica control del puerto de paralelo,activación y desactivación de equipos4ª practica control del puerto de paralelo,activación y desactivación de equipos
4ª practica control del puerto de paralelo,activación y desactivación de equiposJose Alvino Utp
 
Práctica #3 estructura if (traducción c to asm)
Práctica #3  estructura if (traducción c to asm)Práctica #3  estructura if (traducción c to asm)
Práctica #3 estructura if (traducción c to asm)Anibal Ulibarri
 
Puertos de comunicación
Puertos de comunicaciónPuertos de comunicación
Puertos de comunicaciónPerez Marcos
 
Los puertos de comunicación
Los puertos de comunicaciónLos puertos de comunicación
Los puertos de comunicaciónyessicajulio
 

Ähnlich wie Puerto Paralelo (20)

Lp (puerto paralelo)
Lp (puerto paralelo)Lp (puerto paralelo)
Lp (puerto paralelo)
 
Lp (puerto paralelo)
Lp (puerto paralelo)Lp (puerto paralelo)
Lp (puerto paralelo)
 
Puerto paralelo
Puerto paraleloPuerto paralelo
Puerto paralelo
 
Puerto paralelo en c
Puerto paralelo en cPuerto paralelo en c
Puerto paralelo en c
 
Proyecto BOTTLER
Proyecto BOTTLERProyecto BOTTLER
Proyecto BOTTLER
 
Puerto paralelo
Puerto paraleloPuerto paralelo
Puerto paralelo
 
Puerto paralelo
Puerto paraleloPuerto paralelo
Puerto paralelo
 
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
 
Hacer que su ordinador se convierta en un autómata programable
Hacer que su ordinador se convierta en un autómata programableHacer que su ordinador se convierta en un autómata programable
Hacer que su ordinador se convierta en un autómata programable
 
Puertos y conectores
Puertos y conectoresPuertos y conectores
Puertos y conectores
 
Puertos y conectores del pc
Puertos y conectores del pcPuertos y conectores del pc
Puertos y conectores del pc
 
Emsamblador
EmsambladorEmsamblador
Emsamblador
 
Puertoparalelooooo
PuertoparaleloooooPuertoparalelooooo
Puertoparalelooooo
 
4ª practica control del puerto de paralelo,activación y desactivación de equipos
4ª practica control del puerto de paralelo,activación y desactivación de equipos4ª practica control del puerto de paralelo,activación y desactivación de equipos
4ª practica control del puerto de paralelo,activación y desactivación de equipos
 
Práctica #3 estructura if (traducción c to asm)
Práctica #3  estructura if (traducción c to asm)Práctica #3  estructura if (traducción c to asm)
Práctica #3 estructura if (traducción c to asm)
 
Interfaz puerto paralelo LPT
Interfaz puerto paralelo LPTInterfaz puerto paralelo LPT
Interfaz puerto paralelo LPT
 
Puertos de comunicación
Puertos de comunicaciónPuertos de comunicación
Puertos de comunicación
 
Los puertos de comunicación
Los puertos de comunicaciónLos puertos de comunicación
Los puertos de comunicación
 

Mehr von Bertha Vega

Puertos comunicacion
Puertos comunicacionPuertos comunicacion
Puertos comunicacionBertha Vega
 
Control de velocidad 1
Control de velocidad 1Control de velocidad 1
Control de velocidad 1Bertha Vega
 
Control temperatura
Control temperaturaControl temperatura
Control temperaturaBertha Vega
 
Previo6- Dispos E/S
Previo6- Dispos E/SPrevio6- Dispos E/S
Previo6- Dispos E/SBertha Vega
 
Previo5- Dispos E/S
Previo5- Dispos E/SPrevio5- Dispos E/S
Previo5- Dispos E/SBertha Vega
 
Previo3- Dispos E/S
Previo3- Dispos E/SPrevio3- Dispos E/S
Previo3- Dispos E/SBertha Vega
 
Previo2- Dispos E/S
Previo2- Dispos E/SPrevio2- Dispos E/S
Previo2- Dispos E/SBertha Vega
 
Previo9- Dispos E/S
Previo9- Dispos E/SPrevio9- Dispos E/S
Previo9- Dispos E/SBertha Vega
 
Previo1 - Dispos E/S
Previo1 - Dispos E/SPrevio1 - Dispos E/S
Previo1 - Dispos E/SBertha Vega
 
Control de Presión
Control de PresiónControl de Presión
Control de PresiónBertha Vega
 
Control - Lazo Cerrado
Control - Lazo CerradoControl - Lazo Cerrado
Control - Lazo CerradoBertha Vega
 
Previo3 - Dispositivos de E/S
Previo3 - Dispositivos de E/SPrevio3 - Dispositivos de E/S
Previo3 - Dispositivos de E/SBertha Vega
 
TMN - Redes de datos
TMN - Redes de datosTMN - Redes de datos
TMN - Redes de datosBertha Vega
 
Periodico Biologia
Periodico BiologiaPeriodico Biologia
Periodico BiologiaBertha Vega
 
Perspectiva conica
Perspectiva conicaPerspectiva conica
Perspectiva conicaBertha Vega
 
Sobre eticaprofesionaldiag2
Sobre eticaprofesionaldiag2Sobre eticaprofesionaldiag2
Sobre eticaprofesionaldiag2Bertha Vega
 

Mehr von Bertha Vega (20)

Mpi
Mpi Mpi
Mpi
 
Puertos comunicacion
Puertos comunicacionPuertos comunicacion
Puertos comunicacion
 
Control de velocidad 1
Control de velocidad 1Control de velocidad 1
Control de velocidad 1
 
Control temperatura
Control temperaturaControl temperatura
Control temperatura
 
Previo6- Dispos E/S
Previo6- Dispos E/SPrevio6- Dispos E/S
Previo6- Dispos E/S
 
Previo5- Dispos E/S
Previo5- Dispos E/SPrevio5- Dispos E/S
Previo5- Dispos E/S
 
Previo4
Previo4Previo4
Previo4
 
Previo3- Dispos E/S
Previo3- Dispos E/SPrevio3- Dispos E/S
Previo3- Dispos E/S
 
Previo2- Dispos E/S
Previo2- Dispos E/SPrevio2- Dispos E/S
Previo2- Dispos E/S
 
Previo9- Dispos E/S
Previo9- Dispos E/SPrevio9- Dispos E/S
Previo9- Dispos E/S
 
Previo1 - Dispos E/S
Previo1 - Dispos E/SPrevio1 - Dispos E/S
Previo1 - Dispos E/S
 
DDS
DDSDDS
DDS
 
Control de Presión
Control de PresiónControl de Presión
Control de Presión
 
Control - Lazo Cerrado
Control - Lazo CerradoControl - Lazo Cerrado
Control - Lazo Cerrado
 
Previo3 - Dispositivos de E/S
Previo3 - Dispositivos de E/SPrevio3 - Dispositivos de E/S
Previo3 - Dispositivos de E/S
 
TMN - Redes de datos
TMN - Redes de datosTMN - Redes de datos
TMN - Redes de datos
 
Periodico Biologia
Periodico BiologiaPeriodico Biologia
Periodico Biologia
 
Perspectiva conica
Perspectiva conicaPerspectiva conica
Perspectiva conica
 
Termoquimica
TermoquimicaTermoquimica
Termoquimica
 
Sobre eticaprofesionaldiag2
Sobre eticaprofesionaldiag2Sobre eticaprofesionaldiag2
Sobre eticaprofesionaldiag2
 

Puerto Paralelo

  • 1. [ESCRIBA EL NOMBRE DE LA COMPAÑÍA] Practica 7 El puerto paralelo de una computadora. Parte 1 Laboratorio de Dispositivos de almacenamiento y E/S Profesor: Pedro Damián González Osorio Equipo 12 Isabel Fecha de entrega: 02/04/2015
  • 2. OBJETIVO Aprender la configuración del conector de salida del puerto paralelo (DB-25 S). Conocer y emplear el puerto paralelo de la computadora, como medio sencillo y a la vez poderoso, para el diseño de interfaces y el control de dispositivos externos INTRODUCCIÓN. El puerto paralelo estándar (SPP) El puerto paralelo de una típica PC utiliza un conector hembra de tipo D de 25 patitas (DB-25 S), éste es el caso más común, sin embargo es conveniente mencionar los tres tipos de conectores definidos por el estándar IEEE 1284, el primero, llamado 1284 tipo A es un conector hembra de 25 patitas de tipo D. El segundo conector se llama 1284 tipo B que es un conector de 36 patitas de tipo centronics y lo encontramos en la mayoría de las impresoras; El tercero se denomina 1284 tipo C, se trata de un conector similar al 1284 tipo B pero más peque ño, además se dice que tiene mejores propiedades eléctricas y mecánicas, este conector es el recomendado para nuevos diseños. La siguiente tabla e imagen describen la función de cada patita del conector 1284 tipo A:
  • 3. Observe que el puerto paralelo tiene 12 líneas de salida (8 líneas de datos, strobe, autofeed, init, y select input) y 5 de entrada (acknowledge, busy, falta de papel, select y error). El estándar IEEE 1284 define cinco modos de operación: 1. Modo compatible 2. Modo nibble 3. Modo byte 4. Modo EPP, puerto paralelo ampliado 5. Modo ECP, puerto de capacidad extendida El objetivo del estándar es diseñar nuevos dispositivos que sean totalmente compatibles con el puerto paralelo estándar (SPP) definido originalmente por la IBM, solamente el modo compatible se estudiará en el curso. Hay tres direcciones de E/S asociadas con un puerto paralelo de la PC, éstas direcciones pertenecen al registro de datos, el registro de estado y el registro de control. El registro de datos es un puerto de lectura-escritura de ocho bits. Leer el registro de datos (en la modalidad unidireccional) retorna el último valor escrito en el registro de datos. Los registros de control y estado proveen la interfase a las otras líneas de E/S. Una PC soporta hasta tres puertos paralelo separados, por tanto puede haber hasta tres juegos de registros en un sistema en un momento dado. Existen tres direcciones base para el puerto paralelo asociadas con tres posibles puertos paralelo: 0x3BCh, 0x378h y 0x278h, nos referimos a éstas como las direcciones base para el puerto LPT1, LPT2 y LPT3, respectivamente. El registro de datos se localiza siempre en la dirección base de un puerto paralelo, el registro de estado aparece en la dirección base + 1, y el registro de control aparece en la dirección base + 2. Por ejemplo, para un puerto LPT2 localizado en 0x378h, ésta es la dirección del registro de datos, al registro de estado le corresponde la dirección 0x379h y su respectivo registro de control está en la dirección 0x37Ah. Cuando la PC se enciende el BIOS ejecuta una rutina para determinar el número de puertos presentes en el sistema asignando la etiqueta LPT1 al primer puerto localizado, si existen más puertos entonces se asignarán consecutivamente las etiquetas LPT2 y LPT3 de acuerdo a la siguiente tabla: Dirección inicial Función 0000:0408 Dirección base para LPT1 0000:040A Dirección base para LPT2 0000:040C Dirección base para LPT3 0000:040E Dirección base para LPT4 Direcciones base en el BIOS Para trabajar con el puerto paralelo necesitamos en primer lugar conocer la dirección base asignada por el BIOS (estamos hablando de una PC compatible con IBM), podemos utilizar un programa llamado Debug.exe que nos indique la(s) dirección(es) asignada(s), el programa responde colocando un signo de menos - en donde tecleamos sin dejar espacios en blanco d040:08L8 y presionamos la tecla entrar, entonces el programa debug.exe nos indica en una serie de números la(s) dirección(es) para el (los) puerto(s) paralelo(s) disponibles en nuestro sistema, el siguiente código muestra el resultado obtenido en una máquina “X”:
  • 4. C:>debug –d040:08L8 0040:0000 78 03 00 00 00 00 0C 02 x..................... –q C:> Se puede observar una serie de números de dos dígitos (ocho en total), se trata del volcado de memoria que empieza en la dirección 40:0008h. Los primeros seis pares de números representan las direcciones base para los puertos paralelo instalados, en la imagen de arriba se aprecia que el único puerto paralelo de la máquina está en la dirección 0x378h (78 03). Los números están invertidos porque Intel almacena tal información en un formato de "byte de bajo orden - byte de alto orden". Una vez que obtenemos la información deseada cerramos el programa Debug.exe simplemente tecleando la letra q y presionando la tecla entrar. MATERIAL. 1 Cable conector DB-25 (macho, protoboard), el arreglo de memoria 4k x 8. DESARROLLO. i) Utilizando los programas diseñados en el previo de esta práctica, grabar en el segundo arreglo de memoria de la practica 6, el apellido de ambos integrantes del equipo separados por guion. Para grabar el arreglo deberá hacer llegar los datos al display 7segmentos mediante el programa que envía los códigos de las letras del abecedario al puerto paralelo, por su parte el direccionamiento lo puede hacer manualmente. Para leer la información, deberá utilizar el programa que envía números en forma binaria al puerto paralelo y conectarlo en las líneas de direccionamiento del arreglo de memoria. Numeros.c #include<stdio.h> #include<stdlib.h> #include<dos.h> int main(void){ unsigned int val=0x00; unsigned int input;
  • 5. int port=0x378; //Direccion del puerto paralelo system("cls"); do{ printf("Ingresa un numero entre 0 y 255. Para salir ingrese 256n"); scanf("%d", &val); outportb(port,val); //Valor del puerto delay(1000); printf("n"); }while(val!=256); return 0; } Letras.c #include<stdio.h> #include<stdlib.h> #include<dos.h> int main(void){ char letra; unsigned int valor1; int puerto=0x378; while(1){ printf("Letra: "); scanf("%c",&letra); fflush(stdin); printf("%cn",letra); switch(letra){ case 'a': valor1=0x77;break; case 'b': valor1=0x7C;break; case 'c': valor1=0x39;break; case 'd': valor1=0x5E;break; case 'e': valor1=0x79;break; case 'f': valor1=0x71;break; case 'g': valor1=0x6F;break; case 'h': valor1=0x76;break; case 'i': valor1=0x06;break; case 'j': valor1=0x0E;break; case 'k': valor1=0x70;break; case 'l': valor1=0x30;break; case 'm': valor1=0x4F;break; case 'n': valor1=0x54;break; case 'o': valor1=0x3F;break; case 'p': valor1=0x73;break; case 'q': valor1=0x67;break; case 'r': valor1=0x50;break; case 's': valor1=0x6D;break; case 't': valor1=0x78;break; case 'u': valor1=0x3E;break; case 'v': valor1=0x3E;break; case 'w': valor1=0x4F;break; case 'x': valor1=0x76;break; case 'y': valor1=0x6E;break; case 'z': valor1=0x5B;break; default: valor1=0x00; } outportb(puerto,valor1); printf("%cn",valor1); delay(500); if(valor1=='0') break; printf("n"); } return 0; }