	<sect1 id="KEYPAD4x4flex" xreflabel="Keypad4x4flex">
		<title>KEYPAD 4x4 FLEX</title>
		<para> 
		Cuando se desee conectar un keypad de 4x4 con cualquier PIN,
		s&oacute;lo se tiene que agregar la siguiente biblioteca.
		</para>
		<screen>
	#define ROW0	PIN_C0
	#define ROW1	PIN_C1
	#define ROW2	PIN_C2
	#define ROW3	PIN_C3
	#define COL0	PIN_C4
	#define COL1	PIN_C5
	#define COL2	PIN_C6
	#define COL3	PIN_C7

	#include  &lt;keypad4x4flex.h> 
		</screen>
			
		<sect2 id="PinesKeypad4x4Flex" xreflabel="PinesKeypad4x4Flex">
		<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 informaci&oacute;n
			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="kbdgetflex" 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="kbdgetcharflex" xreflabel="kbd_getchar_flex">
			<title>kbd_getchar</title>
			<screen>char kbd_getchar(void)</screen>
			<para> 
				Esta funcion es similar a <xref linkend="kbdgetflex"> 
				pero bloqueante tambien devuelve una variable de tipo char
				con el valor de la tecla pulsada
			</para>
		</sect2>	

		<sect2 id="ejemplokeypad4x4flex" xreflabel="Ejemplo KeyPad4x4 Flex">
		<title>Ejemplo de KeyPad4x4 Flex</title>
		<para>
		para compilar necesitas los siguientes comandos
		</para>
		<para>
		<screen>
Ejemplo de compilacion : ./compila.sh ej_keypad4x4flex 16f877a
		</screen>
		</para>
		<para>
		ej_pinio.c
		</para>
		<screen>
#include &lt;pic/p16f877a.h>

#define FOSC_HZ 20000000

#define ROW0  PIN_B0
#define ROW1  PIN_B1
#define ROW2  PIN_B2
#define ROW3  PIN_B3
#define COL0  PIN_B4
#define COL1  PIN_B5
#define COL2  PIN_B6
#define COL3  PIN_B7

#include &lt;uart.h>
#include &lt;keypad4x4flex.h>
#include &lt;delayms.h>

int main (void)
{
	char tmp;
	char INTRO[]="PRESIONA 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>
