..no sabes en que carpeta del KEIL estan las librerias ? no encuentro ni siquiera el archivo LPC214x.h y seguro que si esta porque los programas compilan bien ,,
Cuando creas un nuevo proyecto tenés que indicar con que familia trabajas una vez que haces eso, ya incluís esas librerías.
...tampoco encuentro otras librerias ( si es que tiene) como para manejar teclados, LCD etc ...
Mira, yo en ese sentido trato de evitar esas "funciones" de terceros que manejan un cierto periférico, ya que perdés el control de lo que haces con el uC, salvo que me digas que revisaste el código y entendiste bien que hace la función.
Si bien C está bueno para aislarte un poco del hard (a comparación de assembler), tampoco está bueno abusar y querer tener funciones que configuran un puerto serie, un ADC, etc sin saber que hacen realmente. Creo que lo mejor es meterse con la hoja de datos en mano y ver que registros tenés que manejar para hacer funcionar cierto periférico y de esa forma estar 100% seguro de que tocas y que no en una función y como podrías optimizarlo.
Por darte un ejemplo, en la familia AVR, usando el AVR studio (el keil de los AVR), la función "delay" que tienen esas librerías está pensada de forma tal que pueda distinguir en que configuración se encuentra tu uC (es decir a que clock trabaja) y esto implica un código gigante para todas las posibles configuraciones, lo cual resulta pesado y totalmente inútil si uno sabe en que configuración estás.
Yo que sé, ese tipo de funciones "delay" prefiero hacerlas con un timer o a lo sumo con algún código en cual sepa más o menos cuanto demora (el típico FOR, pero aplicado en assembler).
En otras palabras, si bien en C te alejas un poco del hard haciendo la programación mucho más sencilla, el costo a pagar es no tener todo el control sobre el uC como si lo tendrías en assembler, por eso creo que no está bueno entregar ese control que si podés tener en C usando funciones de terceros sin revisarlas antes.