Microcontroladores El Teclado matricial M.C. M.C. Carlos E. Canto Quintal El PPI 8255 Microprocesadores Conexión de Interruptores como Entradas digitales +5v 10K I~ =0 V=5 V=5 Cuando a una entrada TTL está está en ALTO prá prácticamente no fluye corriente en el circuito y cuando la entrada está está en BAJO hay una corriente directa de1.6 mA que puede fluir de la terminal. Cuando el interruptor está está abierto, no fluye corriente por la resistencia y por lo tanto el voltaje en la terminal de entrada es 5 V. Carlos E. Canto Q. El PPI 8255 Microprocesadores Conexión de Interruptores como Entradas digitales +5v 10K I=1.6 mA V=0 V=0 Cuando se cierra el interruptor la terminal es conectada directamente a tierra. Carlos E. Canto Q. El PPI 8255 Microprocesadores Rebote mec ánico de un Interruptor mecánico • La apertura de un interruptor es limpia y sin rebote, sin embargo cuando se cierra los contactos oscilan entre cerrado y abierto rápidamente por aproximadamente de 20 a 30 ms. • Para el humano es un tiempo muy corto pero para el microcontrolador es un tiempo muy largo. Si no se elimina el rebote el microcontrolador “piensa” que ell interruptor fue cerrado y abierto muchas veces. Carlos E. Canto Q. El PPI 8255 Microprocesadores Ejemplo de un problema que resultar ía sino eliminamos el resultaría rebote de una tecla Imaginémonos que se está usando un push-buttom para incrementar la salida de una fuente de poder de un microcontrolador si se conecta el interruptor sin eliminar el rebote al microcontrolador, cuando se oprima el interruptor resultará que el voltaje de salida se va incrementar muchas veces porque el microcontrolador responderá como si el interruptor hubiera sido oprimido muchas veces Carlos E. Canto Q. El PPI 8255 Microprocesadores Eliminaci ón del rebote por Hardware Eliminación • • • Como se puede apreciar de la forma de onda, cuando el switch está cerrado el voltaje del capacitor cae a 0V.Cuando el switch rebota a abierto el condensador comienza a cargarse hasta 5V, pero debido a la constante RC,no puede cargarse hasta el voltaje de referencia ALTO del Schmitt trigger antes que el switch rebote a cerrado de nuevo. Una vez que el switch es cerrado, el capacitor de nuevo cae a 0V. Ya que el voltaje del capacitor nunca llega al voltaje alto de referncia del Schmitt trigger durante el rebote del switch, la salida se mantiene en bajo y el rebote del switch no se vee en la terminal de del puerto. Cuando el switch es físicamente abierto, el capacitor tiene suficiente tiempo para cargars al voltaje de referencia ALTO del Schmitt trigger, punto en el que la salida del trigger se pone en ALTO y esto es lo que ve la terminal del puerto. Carlos E. Canto Q. El PPI 8255 Microprocesadores Teclado matricial Los teclados matriciales son ensamblados en forma de matriz , como se ilustar en la figura. figura. 0 1 2 3 4 5 6 7 8 9 A B C D E F Renglón 0 Renglón 1 Renglón 2 Renglón 3 Columna 3 Columna 2 Columna 1 El diagrama muestra un teclado como una matriz de 4X4 - 16 teclas configuradas en 4 columnas y 4 renglones. renglones. Cuando no se ha oprimido ninguna tecla, tecla, (todos (todos las teclas abiertas) ) no hay conexió abiertas conexión entre renglones y columnas . Cuando se oprime una tecla se hace una conexió conexión entre la columna y el rengló renglón de la tecla. tecla. Columna 0 Carlos E. Canto Q. El PPI 8255 Microprocesadores Decodificador de teclado Muchos teclados comerciales ya traen incluido su decodificador, decodificador, que escanena el teclado y si, si, una tecla es presionada, presionada, regresa un número que identifica la tecla. tecla. Otra alternativa es adquirir por separado un chip decodificador y conectarlo al teclado. teclado. El decodificador mostrado tiene 8 entradas; entradas; las 4 entradas “X” son conectadas a las 4 columnas del teclado y las 4 entradas “Y “son conectadas al los 4 renglones. renglones. No se muestran los capacitores que gobiernan la rapidez a la que se escanea el teclado. teclado. Cuando se oprime una tecla el código de 4 bits de la tecla ( con 16 teclas, teclas, los códigos está están entre 0000 y1111 en binario) binario) aparecerá aparecerá en las 4 líneas de salida y la línea de dato disponible (DA) se pone en BAJO. Si se conecta a una línea de interrupció interrupción el microporcesador será será interrumpido cuando se oprima alguna tecla. tecla. La Rutina de Servicio de la Interrupció Interrupción, entonces lee los 4 bits y procesa el dato . El chip del decodificador se encarga de eliminar el rebote de las teclas, teclas, lo que libera al programador de esta responsabilidad, responsabilidad, esto es una ventaja al usar un chip decodificador. decodificador. Carlos E. Canto Q. El PPI 8255 Microprocesadores DECODIFICADOR DE TECLADO MATRICIAL HEXADECIMAL X4 X3 X2 X1 FF E E D D C C Y4 B B A A 99 88 Y3 77 66 55 44 Y2 33 22 11 00 Y1 Q1 Q2 Q3 Q4 DA INT Decodificador de teclado de 4X4 Carlos E. Canto Q. El PPI 8255 Microprocesadores MM74C922 • MM74C923 16-Key Encoder • 20-Key Encoder Carlos E. Canto Q. El PPI 8255 Microprocesadores TECLADO MATRICIAL HEXADECIMAL 0 3 2 1 4 5 6 7 8 9 A B C D E F 8255 Renglón 0 Renglón 1 Renglón 2 Renglón 3 Columna 3 Columna 2 Columna 1 Columna 0 Z80 Bus BusdedeDatos Datos PC0 PC1 PC2 PC3 Puerto C PC4 PC7 PC6PC5 PC5PC4 PC4 PC3 PC3PC2 PC2PC1 PC1PC0 PC0 PC7PC6 PC5 PC6 Columnas (entradas) PC7 Renglones (salidas) Carlos E. Canto Q. El PPI 8255 Microprocesadores TECLADO MATRICIAL HEXADECIMAL Y DISPLAY LCD ss BUS BUSDE DEDATOS DATOS 00 44 88 11 55 99 22 66 A A 33 77 B B PC0 Renglón 1 Renglón 2 Renglón 3 C C D D E E 8255 Renglón 0 FF PC1 PC2 D0-D7 PC3 PC4 PB.0 Columna 2 PC5 PB.1 Columna 1 PC6 Columna 3 Módulo LCD de 2X16 PTO. A RS E R/ W Columna 0 PC7 Carlos E. Canto Q. El PPI 8255 Microprocesadores Tareas básicas a realizar para un teclado matricial Se Secargan cargan ceros cerosaa todos los renglones todos los renglonesen en elel Puerto PuertoCC, ,se seleen leen las lascolumnas columnasyyse se pregunta preguntasisison sonpuros puros unos unos Checar Checarsisise se se seoprimió oprimió alguna algunatecla tecla No Se Seoprimió oprimióalguna alguna Tecla Tecla?? regresar Se Secarga carga cero ceroaa los los renglones uno renglones unoaauno uno hasta hastaque quese seencuentre encuentre lalacolumna donde columna dondeestá estálala tecla oprimida tecla oprimida Si Rastrear Rastrearrenglones renglones Para Paraencontrar encontrarlalacolumna columna de delalatecla teclaoprimida oprimida Una Unavez vezidentificada identificadalala columna y conociendo columna y conociendoelel renglón renglónse seaplica aplicaelel algoritmo para algoritmo paraobtener obtenerelel binario binariode delalatecla tecla oprimida oprimida Descifrar Descifraroodecodificar decodificar que quetecla teclase seoprimió oprimió Carlos E. Canto Q. El PPI 8255 Microprocesadores Diagrama de flujo del programa del teclado matricial rastreo rastreodederenglón renglóni i PtoCÅScan PtoCÅScan Inicio Inicio ret SI mandar mandarceros ceros aalos losrenglones renglones leer leerlas lascolumnas columnas leer leerlas lascolumnas columnas columnas columnas enen1’s? 1’s? columnas columnas enen1’s? 1’s? columna columna0=0 0=0?? NO contador contadordederenglón renglónaa00 RiÅ0 RiÅ0 NO SI SI RiRiÅ ÅRi+1 Ri+1 colÅ colÅ00 Desplaza DesplazaScan Scan AAlalaizquierda izquierda TeclaÅ4*Ri TeclaÅ4*Ri+col +col SI Ri=4? Ri=4? ret NO columna columna1=0 1=0?? Inicializar Inicializarrastreo rastreo dederenglones renglones ScanÅ11111110 ScanÅ11111110 NO columna columna2=0 2=0?? SI SI ColÅ ColÅ11 colÅ colÅ22 NO NO columna columna3=0 3=0?? SI ColÅ ColÅ33 Carlos E. Canto Q.