👥 Autores
⚡ Jesús D. Garza Camarena
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
🎚️Nivel 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
| --- | --- | --- |
❗Véase también
C In an Embedded Environment - Developer Help
✔️ Referencias
👁️🗨️ Otros temas
Lenguajes de programación para microcontroladores