Programando PIC con CCS ejercicio 4 (Teclado) 🤖

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.

KeyPad-Phone
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.

Simulación en Proteus.
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.

Ejercicio N°1 puerto D
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.


Mejor usar el puerto B
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


Modificación para usar el puerto B.
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.

Ejercicio N°2
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”



Ejercicio N°2
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

Entradas más populares de este blog

Super Mario RPG 🎮