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