La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Teclado y Display Ing. Marcelo Trujillo Profesor Asociado

Presentaciones similares


Presentación del tema: "Teclado y Display Ing. Marcelo Trujillo Profesor Asociado"— Transcripción de la presentación:

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


Descargar ppt "Teclado y Display Ing. Marcelo Trujillo Profesor Asociado"

Presentaciones similares


Anuncios Google