Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Las resistencias de 2k2 son 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ían cortocircuitar 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.
La siguiente librería configura las salidas y entradas para usar el teclado 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
RUTINA
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 teclado matricial.
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ón a 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.
antirebotes ;ahora se espera a que la tecla sea soltada para evitar rebotes
;y reactivaciones de tecla
;esta parte puede ser eliminada si para nuestro proyecto no es necesaria
;o es un inconveniente.