Cuando necesitamos que en nuestro proyecto tenga una interfaz para que el usuario ingrese valores e interactué, el teclado es una interesante opción. Tenemos cuatro ejercicios básicos compilados en
PIC-C CCS y simulado en
ISIS Proteus, para conocer lo elemental para poder implementarlo.
 |
Figura-01. |
En PIC-C cuenta con el Driver “
kbd.c” (
Generic keypad) que es un teclado matricial
3X4 que en
ISIS PROTEUS esta disponible como
KeyPad-Phone.
 |
Figura-02 |
Driver kbd.c
Para usar el Driver hay que declarar la directiva
#INCLUDE y agregar después de la función main() el comando kbd_init(), este Driver es también muy usado como base para otros teclados matriciales, adaptando su código.
Ejercicio N°1
El Driver esta configurado para trabajar con en el puerto D usando resistencias PULL-UP como se muestra el diagrama de conexión de la figura-03.
 |
Figura-03 |
Con el comando kbd_getc() obtenemos el valor del teclado; cuando no se esta presionando ninguna tecla retorna el carácter ´\0´ (nulo), así que hay que invocar este comando reiteradas veces cuando se necesita obtener, una pulsación del teclado.
 |
Figura-04 |
Para el ejercicio en PIC-C tenemos un PIC18F452 a 4 Mhz y obtenemos, por la Terminal virtual el valor del teclado.
Ejercicio N°2
El Driver al des-comentar la línea figura-05.
#define use_portb_kbd TRUE
 |
Figura-05 |
Podemos usar el teclado por el Puerto B, con la ventaja que podemos usar las resistencias internas PULL-UP del puerto B, como se muestra en el diagrama de conexión de la figura-06.
 |
Figura-06 |
Cuando cargamos la librería con INCLUDE y las < > usamos el Driver desde la librería del compilador y no es recomendable modificar este archivo, así que copiamos el Driver kbd.c en la carpeta donde compilamos el código y usamos las comillas y así cargara nuestro Driver modificado.
#DEFINE “kbd.c”
 |
Figura-07 |
El ejercicio es idéntico al anterior, solo que hay que habilitar las resistencias del puerto B con el comando:
port_b_pullups( true )
Ejercicio N°3
Usamos la misma configuración del ejercicio número 2, agregaremos LEDS (Figura-08) y con el teclado controlaremos el estado usando la función CASE.
 |
Figura-08 |
Ejercicio N°4
El comando kbd_getc() retorna un carácter y podemos usar un vector para guardar los valores y usando la librería stdlib.h podemos convertir este vector de caracteres en una cifra numérica, usando los comando atoi, atol, atof y atoe.
Para el ejercicio usamos la misma configuración del ejercicio número 2.
Para finalizar
Son ejemplos para aprender los conceptos básicos y en la simulación se obvian algunas conexiones que un ejercicio real se debe tomar en cuenta, así que agrego los datasheet y los ejercicios.
- PIC18F452 y LCD ATM1602B [MEGA].
- Ejercicios [MEGA]
Como también no se toca la configuración de los importante FUSES, para esos los invito a revisar el archivo main.h y cualquier corrección o duda usar los comentarios o los enlaces de contacto del blog.
También te puede interesar:
Comentarios
Publicar un comentario
🤔 con que esto tenemos...