Pièce jointe « capitulo2a.sgml »
Téléchargement <sect1 id="KEYPAD4x4" xreflabel="Keypad4x4">
<title>KEYPAD 4x4</title>
<para>
Cuando se desee conectar un keypad de 4x4 con el puerto D o B,
sólo se tiene que agregar la siguiente biblioteca.
</para>
<screen>
//para usar el puerto D
#define PORTD_FOR_KEYPAD4X4
#include <keypad4x4.h>
//para usar el puerto B
#define PORTB_FOR_KEYPAD4X4
#include <keypad4x4.h>
</screen>
<sect2 id="PinesKeypad4x4" xreflabel="PinesKeypad4x4">
<title>Diagrama de Pines</title>
<para>
Los KeyPad son un conjunto de pulsadores dispuestos en
forma de una matriz de 4 filas y 4 columnas, estos
dispositivos son utilizados para introducir informacion
al microcontrolador.
</para>
<para>
<screen>
ROW0 --> PIN_X0
ROW1 --> PIN_X1
ROW2 --> PIN_X2
ROW3 --> PIN_X3
COL0 --> PIN_X4
COL1 --> PIN_X5
COL2 --> PIN_X6
COL3 --> PIN_X7
--R-- ROW0 {'1' ,'2' ,'3' ,'A'}
--R-- ROW1 {'4' ,'5' ,'6' ,'B'}
--R-- ROW2 {'7' ,'8' ,'9' ,'C'}
--R-- ROW3 {'*' ,'0' ,'#' ,'D'}
COL0 COL1 COL2 COL3
| | | |
R R R R
|____|____|____|___+vcc
</screen>
</para>
</sect2>
<sect2 id="kbdget" xreflabel="kbd_get">
<title>kbd_get</title>
<screen>char kbd_get(void)</screen>
<para>
Esta funcion no es bloqueante y devuelve una
variable de tipo char con el valor de la tecla pulsada,
si no encuentra alguna tecla pulsada o si encuentra
mas de una tecla, devuelve 0
</para>
</sect2>
<sect2 id="kbdgetchar" xreflabel="kbd_getchar">
<title>kbd_getchar</title>
<screen>char kbd_getchar(void)</screen>
<para>
Esta funcion es similar a <xref linkend="kbdget">
pero bloqueante tambien devuelve una variable de tipo char
con el valor de la tecla pulsada
</para>
</sect2>
<sect2 id="ejemplokeypad4x4" xreflabel="Ejemplo KeyPad4x4">
<title>Ejemplo de KeyPad4x4</title>
<para>
para compilar necesitas los siguientes comandos
</para>
<para>
<screen>
Ejemplo de compilacion : ./compila.sh ej_keypad4x4 16f877a
</screen>
</para>
<para>
ej_pinio.c
</para>
<screen>
#include <pic/p16f877a.h>
#define FOSC_HZ 20000000
#define PORTB_FOR_KEYPAD4X4
#include <uart.h>
#include <keypad4x4.h>
#include <delayms.h>
int main (void)
{
char tmp;
char INTRO[]="\nPRESIONA UNA TECLA\n";
TRISB=0xFF;
TRISC=0xFF;
delayms(100);
uart_open(SET_9600_8N1);
set_pullup_portb(TRUE);
uart_puts(INTRO);
while(TRUE)
{
delayms(200);
tmp = kbd_getchar();
uart_putc(tmp);
}
return 0;
}
</screen>
</sect2>
</sect1>Fichiers joints
Pour vous référer aux pièces jointes d'une page, utilisez attachment:filename, comme indiqué ci-dessous dans la liste de fichiers. N'utilisez pas l'URL du lien [get], car elle peut changer et donc être facilement cassée.Vous n'êtes pas autorisé à joindre un fichier à cette page.

