2016/05/05

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.

Descarga [MG][MF].




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 )


Descarga [MG] [MF].




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.


Descarga [MG][MF].

 

 

 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.


Descarga [MG][MF].





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.
  • PIC18F452 [MF] [MG].
  • LCD ATM1602B [MF] [MG].

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:


5 22XD: 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 interesant...
< >