22.07.2014 Views

to get the file - OCW UPM

to get the file - OCW UPM

to get the file - OCW UPM

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

EJERCICIO 5)<br />

El diagrama de bloques de la figura muestra un teclado hexadecimal que se ha<br />

conectado al puer<strong>to</strong> 1 de un sistema basado en el microcontrolador 80c552 funcionando<br />

a una frecuencia de 12 Mhz. El teclado está dispues<strong>to</strong> en forma de matriz de modo que<br />

con 2N líneas digitales pueden leerse N 2 teclas, siendo N el tamaño del lado de la matriz<br />

(N=4 en este caso). El funcionamien<strong>to</strong> de dicho teclado es el siguiente:<br />

- Las columnas de la matriz del teclado están conectadas a las líneas P1[0..3] del<br />

puer<strong>to</strong> 1 configuradas como salidas.<br />

- Las filas de la matriz del teclado están conectadas a las líneas P1[4..7] del<br />

mismo puer<strong>to</strong> configuradas como entradas. Por estas líneas se lee el teclado.<br />

Si no hay ninguna tecla pulsada, se leerá un nivel al<strong>to</strong> en las cuatro debido a<br />

las resistencias de pull-up.<br />

P1_0<br />

Vcc<br />

P1_1<br />

Vcc<br />

P1_2<br />

R<br />

Vcc<br />

P1_3<br />

0 1 2 3<br />

R<br />

Vcc<br />

P1_4<br />

P1_5<br />

P1_6<br />

P1_7<br />

4 5 6 7<br />

8 9 A B<br />

C D E F<br />

R<br />

R<br />

- Cuando no hay ninguna tecla pulsada, las filas, P1[4..7], no están unidas a las<br />

columnas, P1[0..3].<br />

- El funcionamien<strong>to</strong> de este teclado se basa en que al pulsar una tecla se<br />

establece la conexión entre la fila y la columna correspondientes. Por ejemplo,<br />

mientras se mantenga pulsada la tecla 5, la línea P1_2 y la P1_5 permanecen<br />

cor<strong>to</strong>circuitadas.<br />

- Si se escribe un cero en una columna y se ha pulsado una tecla de esa columna,<br />

dicho cero se leerá por alguna de las filas. Conociendo en qué columna se<br />

escribió el cero y por qué fila se ha leído, se puede identificar la tecla pulsada.<br />

- Por tan<strong>to</strong>, para detectar si se ha pulsado alguna tecla y cuál de ellas, el<br />

algoritmo necesario es el siguiente: escribir un cero en una de las columnas y<br />

leer las filas; si ninguna es cero, no hay tecla pulsada o no pertenece a esa<br />

columna; en<strong>to</strong>nces, se escribe el cero en la siguiente columna, volviendo a leer<br />

las filas y así sucesivamente hasta haber escri<strong>to</strong> el cero en <strong>to</strong>das las columnas.<br />

Se pretende diseñar el sistema para que se comporte del siguiente modo:<br />

4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!