Vous êtes sur la page 1sur 5

Practica del Puerto ISA

La computadora tiene diferentes dispositivos para intercomunicarse con el mundo exterior, por lo que esto es un medio muy verstil. El canal de entrada y salida (I/O) soporta: Direcciones hex de 100 a 3FF Direccin de memoriade24 bits Seleccin de acceso a datos Interrupciones Canal de DMA Estructura de bus abierto Actualizacin del sistema de memoria del canal del microprocesador El rango de direcciones hexadecimales, puede contener las siguientes aplicaciones: Rango HEX 200-207h 278-27Fh 2F8-2FFh 300-31Fh 378-37Fh 3F8-3FFh Dispositivo Asociado Interfaz de palanca de juegos Interfaz impresin LPT2 Interfaz serial COM2 Tarjeta prototipo Impresin primaria LPT1 Interfaz serial COM1

Estas son algunas de las aplicaciones mas comunes. Por lo que analizando lo que queramos hacer, nuestro proyecto esta en la direccin 300h y 301h. El para manejar el proyecto en este caso una tarjeta prototipo ISA, la cual necesitamos disear un hardware lo suficientemente confiable para que proteja tanto a nuestro sistema operativo que no se bloquee, como la tarjeta madre y la tarjeta prototipo para que no se dae. Con esto llegamos al diseo que se encuentra en la Figura1, el cuan muestra una interfaz de salida de datos, en el cual se manejo las direcciones y las seales de control para protegerla sistema y que solo en la direccin que programemos, solo en esa se active la salida manejndose la direccin 301h.

Figura 1

Ahora se diseara la tarjeta de entrada de datos que se encuentra en la Figura2, el cual muestra una interfaz de datos, en el cual se manejo las direcciones y las seales de control para que se protegiera mayormente el sistema y que solo en la direccin que programemos, solo en esa se active la entrada en este caso se manejara la direccin 300h.

Figura 2

Esta es solo la primera parte de nuestro diseo porque tambin se necesita un programa que pueda interactuar con la tarjeta. Enseguida muestro el cdigo de los dos programas hechos.

Programa 1

#include <stdio.h> #include <dos.h> #include <conio.h> //este programa lee un dato por el puerto isa void main() { int porta, portb, dato; int a; porta=0x300; portb=0x301; for (;;){ dato=inportb(porta); gotoxy(10,10); printf("el dato leido es: %d ",dato); if (kbhit ()) break; } } Este programa lee un dato introducido por el puerto y mediante esto se puede analizar y tratar este dato.

Programa 2 #include <stdio.h> #include <dos.h> #include <conio.h> //este programa saca un dato por el puerto isa void main() { clrscr(); int portb; int a,i,j; portb=0x300; for(;;) for (a=0;a<255;a++) { outportb(portb,a); } gotoxy(10,10); printf("el dato impreso por el puerto 300 es: %d ",a); delay(300); if (kbhit()) return; } }

Este programa saca un dato por el puerto el cual se puede aplicar de varias maneras, como el cambiar la velocidad de un motor de CC.

Vous aimerez peut-être aussi