Tabla de contenido
馃敹 Introducci贸n
Los lenguajes de programaci贸n para microcontroladores son un conjunto de herramientas de programaci贸n dise帽adas espec铆ficamente para programar microcontroladores, que son peque帽os microprocesadores utilizados en sistemas embebidos y dispositivos electr贸nicos.
Estos lenguajes son similares a otros lenguajes de programaci贸n, pero tienen caracter铆sticas especializadas que los hacen adecuados para programar microcontroladores con limitaciones en t茅rminos de memoria y recursos de hardware.
馃摌 Fundamento Te贸rico
Los microcontroladores pueden ser programados con una amplia gama de lenguajes de programaci贸n, incluyendo tanto lenguajes de bajo nivel como lenguajes de alto nivel. Los lenguajes de bajo nivel est谩n m谩s cerca del lenguaje de m谩quina y se escriben en c贸digo binario (0 y 1), mientras que los lenguajes de alto nivel permiten una representaci贸n gr谩fica del programa, como un diagrama de flujo, sin la necesidad de escribir l铆neas de c贸digo.
- C
- Assembly
- MicroPython
- BASIC
- C++
- Arduino
馃帤锔廚ivel de los lenguajes de programaci贸n

馃摉 Caracter铆sticas de Lenguaje C vs ASM vs Arduino
El lenguaje C, C++y el ensamblador (ASM) son dos lenguajes diferentes utilizados para programar microcontroladores. Algunas de las caracter铆sticas que los diferencian son las siguientes:
馃搫 Lenguaje Arduino (basado en C/C++):
- Arduino ofrece un IDE f谩cil de usar que facilita la programaci贸n, compilaci贸n y carga de c贸digo en la tarjeta de desarrollo.
- La plataforma Arduino proporciona bibliotecas y funciones que facilitan el acceso y control de los perif茅ricos del microcontrolador, lo que simplifica la programaci贸n para iniciantes.
- Arduino cuenta con una gran comunidad de usuarios y desarrolladores, lo que se traduce en una amplia variedad de ejemplos, bibliotecas y recursos disponibles.
- La plataforma Arduino permite la f谩cil integraci贸n de m贸dulos y shields para expandir las capacidades de la tarjeta de desarrollo, lo que permite desarrollar proyectos de diversa complejidad.
- No permite una buena compresi贸n del hardware del microcontrolador al no internarse a un nivel registro
- La velocidad de ejecuci贸n es mas lenta que con otros lenguajes

馃搫 Lenguaje C:
- Es un lenguaje de alto nivel que permite escribir c贸digo de forma m谩s clara y concisa.
- Ofrece una gran cantidad de bibliotecas y herramientas que facilitan el desarrollo de software.
- Es m谩s portable y se puede ejecutar en diferentes plataformas sin necesidad de modificaciones significativas.
- El lenguaje C es un est谩ndar para todos los microcontroladores.
- Requiere m谩s tiempo y recursos para su compilaci贸n y ejecuci贸n en comparaci贸n con el ASM.
馃搫 Lenguaje ensamblador (ASM):
- Es un lenguaje de bajo nivel que permite un control m谩s fino de la CPU y de los perif茅ricos del microcontrolador.
- Ofrece una mayor eficiencia en t茅rminos de tiempo de ejecuci贸n y uso de recursos.
- Es m谩s dif铆cil de leer y escribir debido a su naturaleza m谩s t茅cnica y detallada.
- Es menos portable y requiere un conocimiento detallado de la arquitectura del microcontrolador y sus perif茅ricos para depurarlo.


<aside>
馃挕 La m谩s gran diferencia es que en ensamblador cuenta con un diferente set de instrucciones para cada microcontrolador mientras que el C se puede utilizar el mismo c贸digo para diferentes microcontroladores solo cambiando algunos par谩metros (portabilidad).
</aside>
<aside>
馃挕 El lenguaje C acepta instrucciones de ensamblador para hacer tareas que son dif铆ciles de realizar o acceder donde los tiempos de ejecuci贸n son cr铆ticos.
</aside>
馃摉 Lenguajes de descripci贸n de hardware (HDL)
Los lenguajes de descripci贸n de hardware (HDL, por sus siglas en ingl茅s) son lenguajes de programaci贸n especializados utilizados para describir y modelar circuitos digitales y sistemas electr贸nicos a nivel de hardware. A diferencia de los lenguajes de programaci贸n convencionales, que se centran en la programaci贸n de software, los HDL permiten a los ingenieros describir el comportamiento y la estructura de circuitos electr贸nicos de una manera que se asemeja m谩s a c贸mo operan en el mundo f铆sico.
馃搫 Aplicaciones
- Dise帽o de Circuitos Personalizados
- Modelado del Comportamiento
- Verificaci贸n y Simulaci贸n
- S铆ntesis L贸gica
- Descripci贸n de PLD, FPGA y ASIC
- Dise帽o en Paralelo
馃搫 Ejemplos de lenguajes HDL
- VHDL (VHSIC Hardware Description Language) (1983)
- ABEL - HDL (Advanced Boolean Expression Language) (1983)
- Verilog (1984)
- CHDL (C Hardware Description Language) (1992)
- JHDL (Java Hardware Description Language) (1996)
- AHDL (Altera Hardware Description Language) (1997)
- SpecC (1999)
- Handel-C (2001)
- SystemVerilog (2002)
- Bluespec SystemVerilog (2003)
- MyHDL (2004)
馃摉 Lenguajes de programaci贸n vs HDL
| --- | --- | --- |
馃摀Actividades
馃 Ejercicios
鉂揚reguntas
鉂梀茅ase tambi茅n
鉁旓笍 Referencias
Hello FPGA. (2023). Retrieved February 6, 2023, from Microchip Technology website: https://mu.microchip.com/hello-fpga
3. Lenguajes de programaci贸n m谩s utilizados para el desarrollo de sistemas embebidos