Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porManuel Gustavo Macías Modificado hace 6 años
1
Teclado y Display Ing. Marcelo Trujillo Profesor Asociado
2
Teclado Ing.Marcelo Trujillo
3
Recordamos: Panorama general
Info II-UTN-FRBA @2011-Ing. Mandrut & M. Prieto @2009-Ings. Marcelo Trujillo & Marcelo Giura @2009-Ings. Marcelo Trujillo & Marcelo Giura 3
4
Teclado Vcc Input Hay Tecla Hay Tecla Hay Tecla 1 1 1 1
1 1 Input 1 1 Hay Tecla Hay Tecla Hay Tecla Ing.Marcelo Trujillo
5
Teclado controlado Vcc Input output 1 1 1 1 1 1 1 1 1 1 1
Ing.Marcelo Trujillo
6
Teclado controlado Vcc Input output Hay Tecla Hay Tecla Hay Tecla 1 1
1 1 Input 1 1 Hay Tecla Hay Tecla Hay Tecla output Ing.Marcelo Trujillo
7
Y si tengo un montón de teclas ??????
Teclado controlado Y si tengo un montón de teclas ?????? Cuantos pines uso ?????? Ing.Marcelo Trujillo
8
Barrido Teclado Matricial output Input 1 Y cómo la identifico? 1
Y cómo la identifico? output 1 Input Hay Tecla Ing.Marcelo Trujillo
9
Teclado Matricial 1 output Input Código de tecla Ing.Marcelo Trujillo
10
Teclado Matricial output Input col0 col1 col2 col3 1 2 3 1 fila0 4 5 6
1 2 3 1 fila0 4 5 6 7 fila1 output 8 9 10 11 Código de tecla 12 fila2 12 13 14 15 fila3 1 Input Ing.Marcelo Trujillo
11
Abstracción de software
Teclado Matricial Hardware dependiente Abstracción de software Ing.Marcelo Trujillo
12
Tenemos que independizar uno de otro Para optimizar la portabilidad
Teclado Matricial Tenemos que independizar uno de otro Para qué ? Para optimizar la portabilidad Ing.Marcelo Trujillo
13
Implementación del barrido
Ing.Marcelo Trujillo
14
Defines teclado #define NO_KEY (uint8_t) 0XFF
#define fila0 PORTn,m #define fila1 PORTn,m #define fila2 PORTn,m #define fila3 PORTn,m #define col0 PORTn,m #define col1 PORTn,m #define col2 PORTn,m #define col3 PORTn,m #define fila0_OFF Set_PIN (fila0, OFF) #define fila0_ON Set_PIN (fila0, ON) #define fila1_OFF Set_PIN (fila1, OFF) #define fila1_ON Set_PIN (fila1, ON) #define fila2_OFF Set_PIN (fila2, OFF) #define fila2_ON Set_PIN (fila2, ON) #define fila3_OFF Set_PIN (fila3, OFF) #define fila3_ON Set_PIN (fila3, ON) #define Col0 Get_PIN (col0, ACTIVO_BAJO) #define Col1 Get_PIN (col1, ACTIVO_BAJO #define Col2 Get_PIN (col2, ACTIVO_BAJO #define Col3 Get_PIN (col3, ACTIVO_BAJO #define NO_KEY (uint8_t) 0XFF 14
15
uint8_t TecladoHW(void)
{ fila0_ON; fila1_ON; fila2_OFF; fila3_ON; if ( (Col0) ) return 8 ; if ( (Col1) ) return 9 ; if ( (Col2) ) return 10 ; if ( (Col3) ) return 11; fila2_ON; fila3_OFF; if ( (Col0) ) return 12 ; if ( (Col1) ) return 13 ; if ( (Col2) ) return 14 ; If ( (Col3) ) return 15; fila0_OFF; fila1_ON; fila2_ON; fila3_ON; if ( (Col0) ) return 0 ; if ( (Col1) ) return 1 ; if ( (Col2) ) return 2 ; if ( (Col3) ) return 3 ; fila0_ON; fila1_OFF; if ( (Col0) ) return 4 ; if ( (Col1) ) return 5 ; if ( (Col2) ) return 6 ; if ( (Col3) ) return 7 ; // y si no return NO_KEY; }
16
Teclado Matricial – Tiempo de demora al barrido
1 output t0 t0: tiempo que demora en llegar el cero a puerto de entrada 1 Input Ing.Marcelo Trujillo
17
Teclado Matricial – Tiempo de ejecución del barrido
t1: tiempo que demora en ejecutarse el barrido Ing.Marcelo Trujillo
18
El cero se recibe después de realizar la lectura.
Que pasa si ….. para tener en cuenta … t0 > t1 fila0_OFF; fila1_ON; fila2_ON; fila3_ON; if ( (col0) ) return 1 ; if ( (col1) ) return 2 ; if ( (col2) ) return 3 ; if ( (col3) ) return A ; El cero se recibe después de realizar la lectura. Tenemos entonces un problema de tiempos y habrá que modificar el algoritmo…
19
t0 > t1 Teclado Matricial – Driver de lectura del código
Que pasa si ….. Pierdo tiempo t0 > t1 No vamos a llegar a tiempo para leer el => Problemas Tenemos que perder un poco de tiempo !!!!!! Ing.Marcelo Trujillo
20
Rebote - Bounce contactos Ing.Marcelo Trujillo
21
Ing. Marcelo Ángel Trujillo
Rebote - Bounce Presiono Suelto Lo tenemos que eliminar!! 30/05/2011 Ing. Marcelo Ángel Trujillo
22
Recordando: Debounce en entradas digitales
Ing.Marcelo Trujillo
23
Informática II - UTN-FRBA - Ing. Electrónica
Técnicas Digitales II - R Práctica de Laboratorio 2323 8 de Mayo de 2010 Informática II - UTN-FRBA - Ing. Electrónica Informática II - UTN-FRBA - Ing. Electrónica Ing. Juan Manuel Cruz Diagrama de Estados y Transiciones Teclado codAct == NO_KEY / ___ RESET / codAct == NO_KEY codAct != codAnt / ___ REPOSO codAct != codAnt / codAnt = codAct !cont / buffKey = codAct codAnt = NO_KEY DETECCION codAct != codAnt / codAnt = codAct CHEQUEO codAct == codAnt && cont > 0) / cont-- codAct == codAnt / cont= CANT_REBOTES InfoII-UTN-FRBA Gracias Ing. Juan Cruz Curso R Ing. M. Giura Curso R Ing. M. Giura 23
24
Teclado Matricial Driver de Rebote Ing.Marcelo Trujillo
25
Teclado – parte Firmware
void DriverTeclado(void) { uint8_t codAct ; codAct = TecladoHW( ); TecladoSW( codAct ); //DebounceTeclado(codAct) } buffer void SysTick_Handler (void) { ……………… DriverTeclado(); BarridoDisplay(); ……………….. } tecla ¿Quién lo lee? Hardware 30/05/2011 Ing. Marcelo Ángel Trujillo 25 @2009-Ings. Marcelo Trujillo & Marcelo Giura
26
Teclado – Primitiva de teclado y su uso en el main()
Ing.Marcelo Trujillo
27
Teclado – Resumen Aplicación buffer tecla Primitiva Hardware
Ing.Marcelo Trujillo
28
Teclado – Diagrama de capas
Aplicación Primitiva tecla Buffer Driver Hardware Ing.Marcelo Trujillo
29
Agradecimientos Ing. Gabriel Mandrut Ing. Marcelo Giura
Ing.Marcelo Trujillo
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.