Objetivos
Programas residentes
Programación
de puertos de E/S
Control de puertos
definidos en el PC (ratón, impresora, RTC, etc)
Control de periféricos
hardware externos al PC
Funcionamiento
A partir del código desarrollado para la práctica 1 se pide desarrollar un software en ensamblador que permita la captura de datos a través del puerto paralelo del PC y lo presente en pantalla de igual forma que en la práctica anterior.
Para ello el alumno deberá modificar la rutina de atención a la interrupción 61h, cuyo uso se describió en la práctica anterior, de forma que dicha rutina capture el dato nuevo del puerto paralelo, siempre que esté disponible, en lugar de "inventárselo". El resto del código desarrollado quedará prácticamente inalterado.
Descripción del circuito externo para la captura de datos.
El esquema eléctrico del conversor analógico-digital propuesto,
que el alumno debe montar, se muestra a continuación.
![]() |
|
Dicho circuito se alimenta a 5v (se puede utilizar una pila de "petaca"
aunque entrega 4,5v) y convierte señales analógicas en un
rango entre 0 y 5v. Como conversor AD se utiliza el circuito integrado
ADC0804 de National Semiconductor. (Datasheet
del ADC0804 en formato pdf). La señal analógica a convertir
proviene del potenciómetro (resistencia variable) R2, variando este
se modifica la señal entre 0 y 5 voltios. Dicha señal se
introduce en el conversor ADC0804. Una vez convertida, el valor digital
es presentado en las líneas D0 a D7 y deberá ser leído
a través del puerto paralelo según el protocolo explicado
a continuación.
Se recomienda que el circuito sea montado soldándolo en una
placa de pruebas, utilizar un zócalo para el conversor. El conector
DB25 se unirá al circuito a través de un cable de 13 hilos,
al menos.
Lista de componentes:
R1: resistencia de 10K 1/4 WPara el correcto funcionamiento de la conversión se debe respetar un protocolo entre el PC y el conversor, explicado en detalle en las hojas de datos del conversor. Básicamente es el siguiente:
R2: potenciometro de 10K, ajuste vertical
R3 a R5: resistencias de 4.7 K 1/4 W
C1: condensador de 150 pF
U1: conversor AD modelo ADC0804
Zócalo para el integrado anterior
Conector DB25 macho
Carcasa para el conector DB25 (opcional)
Cable de 13 hilos, mínimo, 1 metro
El PC envía una petición de comienzo de conversión al ADC (figura 2). Para ello activar la señal #CS (poner a nivel bajo) y dentro del periodo de activación activar la señal #WR durante un mínimo de 100 ns. El conversor activará la línea #INTR (el símbolo # indica que la señal es activa a nivel bajo) para indicar que ha terminado la conversión (figura 2). A partir de ese momento el PC puede leer el dato (figura 3).
![]() |
|
![]() |
|
El proceso de lectura está representado en la figura 3. Se selecciona el conversor a través de la línea #CS y se envía un pulso negativo por la línea #RD, tras unos 200 ns (tACC: tiempo de acceso) el dato ya se puede leer y se desactiva la señal de lectura.
Estos ciclos se repetirán tantas veces como datos se quieran leer.
Para el desarrollo de esta práctica es necesario conocer el funcionamiento y manejo del puerto paralelo, por lo que se incluyen unas notas con una breve descripción: notas del puerto paralelo.
NOTA IMPORTANTE: Para el correcto funcionamiento de la práctica el puerto de datos del puerto paralelo deberá estar configurado en modo bidireccional, es decir, en el set-up del PC configurar el puerto en modo PS/2 (los otros modos posibles son SPP o AT, EPP y ECP). Para controlar la dirección que llevan los datos se utiliza el bit de peso 5 (el 6º bit empezando por el menos significativo) del puerto de control. Si este bit está a cero el puerto de datos es de salida y si está a uno el puerto de datos será de entrada. En el caso de esta práctica, este bit se puede poner a uno inicialmente. Hay que tener cierta precaución, pues la escritura en el puerto de datos modifica este bit a cero.
La nueva rutina de atención a la interrupción 61H deberá hacer lo siguiente:
Cada pareja deberá realizar una de las opciones que se citan a continuación para superar esta práctica:
PRÁCTICA ESPECIAL: Decodificador de señales de radio de radiomandos.
Los radiomandos para la apertura de garajes o activación remota de algún dispositivo transmiten una secuencia de datos codificados, generalmente en función de unos interruptores internos. Esta transmisión se hace en la banda de los 433 MHz y con una potencia baja.
Mediante el uso de unos pequeños módulos de radio, completamente ajustados y operativos, se propone la realización de una práctica especial que consiste en la lectura del codigo emitido por el radiomando y su posterior decodificación, para lo que se utilizará un receptor de radio conectado al puerto paralelo. No es imprescindible tener conocimientos de electrónica ni de radio.
En el laboratorio también se dispone de emisores de radio, para una posible ampliación de la práctica. Se admiten sugerencias de desarrollo (comunicación entre periféricos vía radio, activación de cargas lejanas, etc).
Los alumnos interesados en esta práctica deberán ponerse
en contacto lo más pronto posible con el profesor de prácticas
Guillermo Glez. de Rivera, despacho B-432.