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 馃幃