Admon

Solo disponible en BuenasTareas
  • Páginas : 5 (1036 palabras )
  • Descarga(s) : 0
  • Publicado : 1 de noviembre de 2011
Leer documento completo
Vista previa del texto
Teclado Matricial 4x4 |
| |
TEORIA | Descripción: Dispositivo de entrada de datos que consta de 16 teclas o pulsadores, dispuestos e interconectados en filas y columnas. Dispone de un conector SIL (Single In Line) macho de 8 pines que se corresponden con las 4 filas y las cuatro columnas de las que dispone. | |
| Funcionamiento: En la siguiente figura vemos el esquema de conexionadointerno del teclado matricial y sus correspondientes pines de salida numerados de izquierda a derecha mirando el teclado tal y como se ve en la foto anterior. Cuando se presiona un pulsador se conecta una fila con una columna, teniendo en cuenta este hecho es muy fácil averiguar que tecla fue pulsada. También podemos ver el conexionado típico con el puerto B del µC PIC.  |
Las resistencias de 2k2son necesarias para poder compartir el puerto del pic independientemente del teclado y por ejemplo poder conectar un LCD o una barra de leds al mismo tiempo. Durante la fase de lectura del teclado la mitad de la puerta B es configurada como entrada y la otra mitad como lectura y durante la escritura en el lcd o otro sistema, la puerta B es configurada como salidas. Entonces se podríancortocircuitar accidentalmente las salidas de los puertos provocando su destrucción, si pulsásemos alguna tecla es ese momento con lo que al poner estas resistencias evitamos este hecho y así si se produjera el cortocircuito tan solo circularía una pequeña corriente y el puerto del µC no correría ningún riesgo. |
|
  | |
RUTINA | La siguiente librería configura las salidas y entradas para usar elteclado escanea las teclas y si es pulsada alguna retorna el valor de tecla en modo hexadecimal para ser mostrado directamente en un display LCD. Las variables y subrutinas utilizadas son: KB_Port | Configura los puertos B del PIC para ser usados con el teclado. |
KB_Scan | Escanea todas las teclas y devuelve la tecla pulsada en formato Hexadecimal. |
Tecla | Variable en donde se devuelve la teclapulsada |
Descripción: Para controlar el teclado, los puertos del µC conectados a las filas se programan como salidas y los conectados a las columnas del teclado se programan como entradas, también se activan las resistencias de polarización internas en los puertos de salida. Esto se hace mediante la llamada a la etiqueta "KB_Port" que inicializa los puertos para ser usados con el tecladomatricial.KB_Port                                                 ;Inicializa la puerta B para las entradas del
                                                              ;teclado. Programa RB0-3 como salidas y RB4-7
                                                              ;entradas con las resistencias de polarización
                                                             ;habilitadas------------------------------------------- 
                 BSF          STATUS,RP0       ;Selecciona Pagina 1 (Banco)
                 MOVLW   0F0h                     ;PB4-7 como entradas 
                 MOVWF   TRISB                   ;y PB0-3 como salidas
                 BSF          OPCION,RBPU     ;Habilita R de polarización en entradas
                 BCF          STATUS,RP0      ;Vuelve a la pagina 0 (Banco)
                 RETURN                               ;Retorna.Ahora para saber que tecla esta siendo pulsada necesitamos escanear el teclado, y esto se consigue mediante la siguiente rutina que consiste en ir poniendo una a una las líneas RB0 a RB3 (conectadas a las filas del teclado) a nivel bajo ya que estas salidas tienen conectada la resistencia de polarizacióna Vcc y por lo tanto están siempre a nivel lógico alto. Cada vez que una fila se pone a nivel bajo se hacen 4 comprobaciones para ver si una de las cuatro columnas se a puesto a nivel bajo y así saber la tecla pulsada.KB_Scan                                               ;Escanea el teclado
                 CLRF         Tecla                   ;Borra Tecla y
                 INCF         ...
tracking img