INSTITUTO POLITÉCNICO NACIONAL
Centro de Estudios Científicos y Tecnológicos 18 “Zacatecas”
Microelectrónica Programable.
Práctica 10. Lectura de un teclado matricial.
Objetivo: el alumno aprenderá la conexión y la lectura de un teclado matricial e
interpretara los datos leídos por medio de un microcontrolador.
Materiales:
4 resistencias de 1 KΩ y 8 de 330 Ω.
1 teclado matricial.
1 multímetro.
8 diodos led de cualquier color.
Protoboard.
Fuente de voltaje.
MPLAB.
PIC Simulator.
Proteus.
INSTRUCCIONES:
1. Con un multímetro identifica cada fila y columna del teclado matricial, ajusta
para que puedas medir continuidad.
2. Debes de oprimir cada botón del teclado y verificar que terminal corresponde
a cada fila y a cada columna.
3. Dibuja un diagrama donde se explique la conexión a cada fila y columna.
4. Elabora un programa para leer el teclado matricial por medio del puerto B y
cada vez que se lea una tecla, se despliegue un valor en el puerto C. Auxíliate
de las siguientes recomendaciones.
5. Para poder dar lectura a los teclados matriciales se atienden los siguientes
pasos:
a. Esperar la liberación del teclado (debido al pulsado de la tecla anterior a
la actual).
b. Detectar que hay una nueva tecla pulsada.
c. Si se detecta que se ha pulsado una tecla, se debe esperar un tiempo
prudencial para que termine el rebote. Una espera de 20 ms suele ser
suficiente.
d. Se explora la matriz del teclado para determinar cual es la tecla que ha
sido pulsada. En este paso se genera el código de exploración que
identifica la tecla pulsada, que contiene básicamente los números de la
fila y la columna que ocupa la tecla en la matriz. La exploración del
teclado se puede hacer mediante dos métodos diferentes:
i. Por exploración secuencial de las filas. En este método se envía
un ‘0’ hacia la primera fila y se leen todas las columnas. Si la
lectura no contiene ningún ‘0’ (todas las columnas están en ‘1’),
la tecla pulsada no está en esa fila. Entonces se envía el ‘0’ a la
siguiente fila y se leen todas las columnas. Se repite el proceso
en las siguientes filas hasta encontrar algún ‘0’ en la lectura de
las columnas. Se conoces entonces en qué fila y columna está la
tecla pulsada y con esto se puede conformar un código de
exploración para la tecla.
ii. Por exploración simultánea de filas y columnas. En este método
se envía un ‘0’ a todas las filas simultáneamente y se leen todas
las columnas, con lo que se detecta en qué columna está la tecla
pulsada. A continuación se invierte el proceso: se envía
simultáneamente un ‘0’ a todas las columnas y se leen todas las
filas, detectándose así la fila en que está la tecla pulsada.
Conociendo en qué fila y columna está la tecla pulsada, se puede
conformar un código de exploración para la tecla.
Para el programa auxíliate del siguiente diagrama:
R1
1k
BAT1 U1
5V
1 15
RE3/MCLR/VPP RC0/T1OSO/T1CKI
16
C1 RC1/T1OSI/CCP2
2 17
RA0/AN0/ULPWU/C12IN0- RC2/P1A/CCP1
3 18
RA1/AN1/C12IN1- RC3/SCK/SCL
4 23
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA
22pF 5 24
RA3/AN3/VREF+/C1IN+ RC5/SDO
X1 6
RA4/T0CKI/C1OUT RC6/TX/CK
25
CRYSTAL 7 26
C2 RA5/AN4/SS/C2OUT RC7/RX/DT
14
RA6/OSC2/CLKOUT
13 19
RA7/OSC1/CLKIN RD0
RD1
20 R6 R7 R8 R9 R10 R11 R12 R13
22pF 33 21 330 330 330 330 330 330 330 330
RB0/AN12/INT RD2
34 22
RB1/AN10/C12IN3- RD3
35 27
RB2/AN8 RD4
R2 36 28
RB3/AN9/PGM/C12IN2- RD5/P1B
37 29
RB4/AN11 RD6/P1C
38 30
1k RB5/AN13/T1G RD7/P1D
R3 39
RB6/ICSPCLK
D1 D2 D3 D4 D5 D6 D7 D8
40 8 LED-BLUE LED-BLUE LED-BLUE LED-BLUE LED-BLUE LED-BLUE LED-BLUE LED-BLUE
RB7/ICSPDAT RE0/AN5
9
1k RE1/AN6
R4 10
RE2/AN7
1k PIC16F887
R5
1k
A 7 8 9
B 4 5 6
C 1 2 3
ON
D
C 0 = +
1
R14
560
R15
560
R16
560
R17
560
6. ¿Cómo cambiaría la lectura de un teclado matricial si tuviera más o menos
columnas?
7. ¿Qué ventajas se tiene cuando se utiliza un teclado matricial?
2
8. Anota sus observaciones y tus conclusiones.
9. En el reporte anexa el código realizado.