Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
UTN-FRH Dto. de Ingeniería Electrónica Informática I Preparado por Federico Alejandro Vazquez Saraullo Año 2018_Versión 1 Ejercicio de aplicación de los puertos La familia de circuitos integrados ADC 080X es un conjunto de “conversores analógico- digitales” (o “Analogto Digital Converters” en inglés). Estos chips de 20 pines permiten transformar una señal eléctrica analógica, como la proveniente de un sensor de presión o de luz, en una señal eléctrica digital de 8 bits, la cual está compuesta por unos (1) y ceros (0). Tomemos por ejemplo la siguiente situación: se dispone de una placa de circuitos que sirve para medir la temperatura ambiente de una habitación y que está conectada a la computadora por medio de los puertos (o “registros”) del puerto paralelo. Estos tienen las direcciones: 0x3BC, 0x3BD y 0x3BE. Esta placa posee, entre otras cosas, un sensor de temperatura y un ADC 0804. El primero permite sensar la temperatura y le envía una señal eléctrica analógica al ADC, el cual la transforma en una señal eléctrica digital de 8 bits que aparece en 8 de sus pines. Esta señal digital es finalmente enviada al puerto 0x3BC para su procesamiento.La placa está configurada para que el 0000 0000 se corresponda con 10 °C y por cada incremento de 0,25 °C se suma un 1 a la salida digital. Por ejemplo: 0000 0000 10°C 0000 0001 10,25 °C 0000 0010 10,50 °C Es importante destacar que el ADC tiene otros 3 pines para controlar la conversión que este realice, los cuales están conectados losregistros 0x3BD y 0x3BE. Estos pines se llaman: • RD (“Read” o “leer” en español). • WR (“Write” o “escribir” en español). Corresponde a UTN-FRH Dto. de Ingeniería Electrónica Informática I Preparado por Federico Alejandro Vazquez Saraullo Año 2018_Versión 1 • INTR (“Interruptrequest” o “pedido de interrupción” en español). Los primeros dos son pines de escritura (a donde se envían datos desde la computadora) y el segundo es de lectura (desde la computadora se analiza su valor). Entonces, para poder recibir un dato digital en el puerto 0x3BC se deben seguir los siguientes pasos: 1. Se pone en 0 al pin WR y en 1 al pin RD. El pin INTR está en 1 2. Se espera 1µS. 3. Se pone en 1 al pin WR (esto da comienzo a la conversión). 4. Se espera a que el pin INTR pase de 1 a 0. Cuando esté en 0 significa que ya se hizo la conversión. 5. Se pone en 0 al pin RD. Esto permite que el dato de 8 bits se pueda leer. 6. Se espera 1µS. Durante esto, el pin INTR pasa de 0 a 1. 7. Aparece el dato de 8 bits en el puerto 0x3BC. 8. Para poder recibir otro dato se repiten los pasos del 1 al 7. La placa está conectada al puerto paralelo de la siguiente forma: INTR 0x3BD 0x3BC 0x3BE D7 D6 D5 D4 D3 D2 D1 D0 RD WR Bits de salida para escritura (WR) y lectura (RD) Dato digital de temperatura Bit de entrada (INTR) UTN-FRH Dto. de Ingeniería Electrónica Informática I Preparado por Federico Alejandro Vazquez Saraullo Año 2018_Versión 1 Tener en cuenta las siguientes cosas: • Los puertos 0X3BC y 0x3BD se usan solamente para lectura, por lo que utilizarlos en la función “outb()” no tendrá efecto alguno. El puerto 0x3BE es de salida pero se puede utilizar la función “inb()” para conocer la salida actual del mismo. • Para poder leer el bit “INTR” se debe leer el puerto 0x3BD y aplicar el filtro o máscara correspondiente. • Para poder escribir correctamente los bits “WR” y “RD” es importante que solo se modifiquen estos bits del puerto 0x3BE. Para hacer esto: o Primero se debe leer el puerto 0x3BE, obteniendo así un dato de 8 bits. o Luego, a ese dato se le deben aplicar las máscaras correspondientes para poner en 1 y/o en 0 (según corresponda) los bits “WR” y “RD”. o Finalmente, se debe enviar el dato “transformado” por mediod el puerto 0x3BE. Se pide entonces: desarrollar un programa que haga 10 mediciones de temperatura por medio de la placa y los puertos antes mencionados e informe el promedio de temperatura y los valores máximo y mínimo registrados.
Compartir