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.

  1. C
  2. Assembly
  3. MicroPython
  4. BASIC
  5. C++
  6. Arduino

🎚️Nivel de los lenguajes de programación

Untitled

📖 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++):

Untitled

📄 Lenguaje C:

📄 Lenguaje ensamblador (ASM):

Untitled

Untitled

<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


  1. Diseño de Circuitos Personalizados
  2. Modelado del Comportamiento
  3. Verificación y Simulación
  4. Síntesis Lógica
  5. Descripción de PLD, FPGA y ASIC
  6. Diseño en Paralelo

📄 Ejemplos de lenguajes HDL


  1. VHDL (VHSIC Hardware Description Language) (1983)
  2. ABEL - HDL (Advanced Boolean Expression Language) (1983)
  3. Verilog (1984)
  4. CHDL (C Hardware Description Language) (1992)
  5. JHDL (Java Hardware Description Language) (1996)
  6. AHDL (Altera Hardware Description Language) (1997)
  7. SpecC (1999)
  8. Handel-C (2001)
  9. SystemVerilog (2002)
  10. Bluespec SystemVerilog (2003)
  11. MyHDL (2004)

📖 Lenguajes de programación vs HDL

Aspecto Lenguajes de Programación Lenguajes de Descripción de Hardware (HDL)
Propósito Utilizados para crear aplicaciones y algoritmos que se ejecutan en los microcontroladores o procesadores. Utilizados para describir la estructura y comportamiento del hardware digital.
Nivel de Abstracción Alto nivel, enfocado en instrucciones, funciones y algoritmos que implementan lógica o tareas específicas. Bajo nivel, describiendo componentes electrónicos a nivel de puertas lógicas y conexiones.
Utilización Control de sistemas, procesamiento de señales, interacción con periféricos, cálculos matemáticos, etc. Diseño de circuitos digitales, lógica combinacional, circuitos secuenciales, componentes personalizados, etc.
Ejemplos de Lenguajes C, C++, Python, Rust, Ada, entre otros. VHDL, Verilog, ABEL, AHDL, XHDL
Sintaxis Se enfoca en la secuencia de instrucciones y operaciones. Se enfoca en la conexión de componentes y la lógica del circuito.
Diseño de Hardware No está destinado al diseño de circuitos, sino a la programación de comportamientos y algoritmos. Permite diseñar y simular circuitos digitales antes de su implementación física.
Compilación/Síntesis Se compilan en instrucciones de máquina o bytecode ejecutable. Se compilan/sintetizan en circuitos electrónicos reales.
Paralelismo Puede aprovechar paralelismo mediante hilos o procesos concurrentes, pero es más limitado que el hardware. Puede describir componentes y operaciones en paralelo, reflejando la arquitectura del hardware.

🔸 Resumen


Para esta clase, emplearemos el lenguaje de programación Arduino. Este lenguaje es ampliamente preferido en la programación de dispositivos electrónicos debido a su popularidad y simpleza. Ofrece una sintaxis clara y cuenta con una amplia gama de herramientas de desarrollo disponibles. La comunidad de Arduino es extensa y colaborativa, lo que facilita el aprendizaje y la resolución de problemas gracias al intercambio de conocimientos entre sus usuarios.

📓Actividad


🧠 Ejercicios


❓Preguntas


  1. ¿Cuáles son las características específicas de los lenguajes de programación para microcontroladores?
  2. ¿Cuál es la diferencia entre un lenguaje de bajo nivel y un lenguaje de alto nivel en el contexto de los microcontroladores?
  3. ¿Por qué es el lenguaje C una opción popular para la programación de microcontroladores?
  4. ¿Cuáles son algunos de los lenguajes de programación más populares para microcontroladores y en qué se diferencian entre sí?
  5. ¿Cómo afecta la elección del lenguaje de programación a la eficiencia y la memoria de los microcontroladores?

❗Véase también


✔️ Referencias


👁️‍🗨️ Otros temas