No se

Páginas: 7 (1708 palabras) Publicado: 14 de junio de 2010
UNIVERSIDAD DE ALCALÁ LABORATORIO DE INTERFACES Y PERIFÉRICOSPágina 1

DEPARTAMENTO DE AUTOMÁTICA

PRÁCTICA 2: PROGRAMACIÓN DE UN PERIFÉRICO A TRAVÉS DE SUS PUERTOS

En la presente práctica se deberá escribir un programa que genere música por medio del altavoz del PC. Para llevarla a cabo es necesario, por un lado, habilitar y deshabilitar el altavoz con el PPI (Programmable PeripheralInterface), y por otro, programar los registros adecuados del temporizador programable del PC para que el altavoz genere las frecuencias adecuadas.

RELOJ

LATCH

CONTADOR Canal 0

TEMPORIZADOR PROGRAMABLE

LATCH

CONTADOR Canal 1 CONTADOR Canal 2

LATCH

PUERTO B

7 6 5 4 3

2 1 0

PUERTO C

7 6 5 4 3

2 1 0

PPI

UNIVERSIDAD DE ALCALÁ LABORATORIO DE INTERFACES YPERIFÉRICOSPágina 2

DEPARTAMENTO DE AUTOMÁTICA

La figura muestra la relación entre las dos pastillas (PPI, 8255 y temporizador, 8253) y el altavoz. Como se puede observar, el bit 0 del puerto B del PPI controla si la señal de reloj llega al contador del canal 2 del temporizador. Por otro lado, la señal que produce dicho contador del canal 2 llega al bit 5 del puerto C del PPI, y de ahí va alaltavoz. El bit 1 del puerto B controla si ésto último se produce, es decir, si la señal del contador se transmite efectivamente del bit 5 del puerto C al altavoz. Por lo tanto, para generar un sonido, lo primero que hay que hacer es permitir, primero, que la señal del reloj llegue al contador (poniendo a 1 el bit 0 del puerto B del PPI), y segundo, que la señal del contador llegue al altavoz (poniendoa 1 el bit 1 del mismo puerto B del PPI). (OBSERVACIÓN: el resto de bits del puerto B del PPI controlan a su vez otro tipo de dispositivos, por lo que no se deben ver afectados. Únicamente deben ser modificados los bits 0 y 1). El puerto B del PPI se encuentra en la dirección 61H. Una vez hecho esto, el contador del canal 2 del temporizador programable generará una señal, que se propaga a travésdel bit 5 del puerto C del PPI hasta el altavoz, que oscilará según dicha señal. En cuanto al temporizador programable, puede generar muchos tipos de señal: interrupción al final de la cuenta, una onda cuadrada, etc. En esta práctica nos interesa una onda cuadrada, que en el altavoz se traducirá en oscilaciones del cono, generando una vibración acústica de la misma frecuencia que la de la ondacuadrada. Para programar el temporizador el procedimiento es el siguiente: en primer lugar se envía un byte al puerto de control, con el que se le indica desde el puerto que se va a programar hasta el tipo de señal que debe generar. El formato del byte de control es como sigue:

SC1 SC0 RW1 RW0 M2

M1 M0 BCD

SC1 SC0 0 0 1 1 0 1 0 1

Significado Contador 0 Contador 1 Contador 2 Lectura deestado Significado Lectura de OL L/E byte menos significativo L/E byte más significativo L/E byte menos significativo + + L/E byte más significativo

M2 M1 M0 0 0 x x 1 1 0 0 1 1 1 1 0 1 0 1 0 1

Significado Modo 0 Modo 1 Modo 2 Modo 3 Modo 4 Modo 5

RW1 RW0 0 0 1 1 0 1 0 1

UNIVERSIDAD DE ALCALÁ LABORATORIO DE INTERFACES Y PERIFÉRICOSPágina 3

DEPARTAMENTO DE AUTOMÁTICA

BCD: 0 1Cuenta en binario Cuenta en BCD

En la práctica nos limitaremos a programar el contador del canal 2 en modo 3 (onda cuadrada). Para especificar el periodo de la onda, el byte de control debe llevar el campo RW1-RW0 con el valor 1 A continuación del envío del byte de control se enviarán al -1. puerto del contador 2 los dos bytes del periodo, primero el menos significativo y luego el mássignificativo. En caso de que sea necesario leer el estado de un contador, se puede hacer una lectura especificando en el campo SC1 - SC0 una lectura de estado. A continuación se lee el byte de estado directamente del puerto del contador correspondiente. El byte de control para una petición de lectura de estado tiene un formato distinto al normal:

1

1

COUNT STATUS CNT2 CNT1 CNT0

0

COUNT:...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS