100% encontró este documento útil (1 voto)
37 vistas24 páginas

M1 - Control Logico y Microcontroladores

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
37 vistas24 páginas

M1 - Control Logico y Microcontroladores

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 24

MÓDULO N° 1: Microcontroladores

INFORMACIÓN ESPECÍFICA DEL MÓDULO

Programa Técnica profesional en Operación de Equipos


Industriales y Actividades Mineras.

Módulo 1. Control Lógico y Microcontroladores


Número y nombre
del módulo
Duración del módulo Dos (3) semanas

Autor del diseño Andrés Rodríguez

Fecha de Semestre I - 2019


actualización
TABLA DE CONTENIDO

MÓDULO N° 1: MICROCONTROLADORES ............................................1


INTRODUCCIÓN AL MÓDULO N°1.........................................................3
CONTENIDO DEL MÓDULO N°1.............................................................4
1. UNIDAD TEMÁTICA 1. MICROCONTROLADORES
4
1.1. INTRODUCCIÓN...........................................................................4
1.2. Controlador, Microprocesador y Microcontrolador......................5
2. UNIDAD TEMÁTICA 2. ARQUITECTURA DE MICROCONTROLADORES6
2.1. INTRODUCCIÓN.........................................................................6
2.1.1. Arquitectura Von Neumann...................................................6
2.1.2. Arquitectura Hardvard..........................................................7
2.1.3. Procesador de tipo CISC (Complex Instruction Set Computer)..7
2.1.4. Procesador de tipo RISC (Reduced Instruction Set Computer)..7
3. UNIDAD TEMÁTICA 3. TIPOS DE MICROCONTROLADORES

3.1 Atmel…………………………………………………………………………………8

3.2 Intel…………………………………………………………………………………9

3.3 Microchip…………………………………………………………………………10

3.4 Freescale…………………………………………………………………………..11

3.5 Texas Instruments………………………………………………………………12

4. UNIDAD TEMÁTICA 4. LENGUAJES DE PROGRAMACIÓN

4.1 Ensamblador…..…………………………………………………………………13

4.2 C ...……………….…………………………………………………………………14

5. UNIDAD TEMÁTICA 5. HERRAMIENTAS DE DESARROLLO

5.1 Herramientas de Software Requeridas …………………………………15


5.2 Instalación de librerías Arduino en Proteus……………………………..15

5.3 Compilado de Programa………………………..……………………………..18

5.3.1 Ejemplo Led ON – OFF……………………….……………………………..18

5.4 Simulación de Código en Proteus…………………………………………..20

6. BIBLIOGRAFÍA
INTRODUCCIÓN AL MÓDULO N°1

Luego de la invención del transistor hace mas de 70 la tecnología


electrónica evoluciono de formas inimaginables, dando se paso a todos los
ámbitos de la interacción humana, desde procesos tan sencillos como la
preparación del desayuno en la mañana hasta la gestión de comunicaciones
ópticas entre continentes.

Los seres humanos de esta nueva era, no conciben ninguna actividad diaria
sin la mediación de la tecnología.

La inversión de sistemas programables (chips embebidos) capases de ser


adaptados a tareas sencillas o complejas, solo limitadas a la creatividad y
destreza del diseñador, facilito el poder incorporar sistemas electrónicos de
control, en artefactos sencillos como juguetes o mas sofisticados como
vehículos.

Ademas la aparición de herramientas digitales libres para el diseño y la


fabricación han convertido a sus usuarios en fabricantes a pequeña escala,
totalmente independientes de las grandes y costosas cadenas de
fabricación. Es muy fácil y asequible para cualquier persona tener acceso a
un ordenador, una tablet, o incluso un móvil en el que pueda realizar
diseños digitales. (Muriel & Del Valle, 2018)
CONTENIDO DEL MÓDULO N°1

1. UNIDAD TEMÁTICA 1. MICROCONTROLADORES

1.1. INTRODUCCIÓN

Haciendo uso de la electrónica digital (compuerta logicas y flip – flops)


para solucionar aplicaciones determinadas, el diseñador se ve obligado
a realizar circuitos combinacionales y secuenciales, dando lugar a
circuitos complejos que utilizan muchos componentes y que, una vez,
montados solo sirven para una aplicación concreta.
Este tipo de diseño se conoce como lógica cableada y da lugar a
dispositivos costosos y con muchos ajustes y fallos.

Por lo que toman relevancia los dispositivos programables donde un


chip puede ser usado en múltiples aplicaciones, solo con hacer usos de
instrucciones que se ejecutan de forma secuencial y a precios muy
asequibles como por ejemplo el Microcontrolador.

1.2. Controlador, Microprocesador y Microcontrolador

Un controlador es un dispositivo que sirve para la automatización de


uno o varios procesos. Así. por ejemplo, el controlador que regula el
funcionamiento de una alarma dispone de varios sensores que controlan
diferentes puntos de intrusión, cuando se activa alguno de estos puntos,
el controlador genera las señales adecuadas para activar las alarmas y
enviar una alerta al responsable de seguridad.
Hasta los años setenta los controladores se realizaban únicamente con
lógica cableada, después se utilizaron los microprocesadores en
combinación con circuitos integrados de memoria y de unidades de
entrada/salida montados sobre un circuito impreso. El microprocesador
dio lugar al gran invento del siglo xx, el ordenador personal.
El gran avance de las nuevas tecnologías de integración ha conseguido
que todos los circuitos que necesita un controlador programable se
puedan incluir en un solo chip, dando lugar al nacimiento del
microcontrolador.
Hoy en día los microcontroladores se utilizan para casi todo. Además
de las aplicaciones típicas dentro de la automatización industrial y la
robótica, se encuentran en cualquier dispositivo electrónico de
consumo, como puede ser el teléfono móvil, la cámara de fotos, el ratón
del ordenador, el teclado, la impresora, el escáner, el MP3, el DVD, el
televisor, el receptor de TDT, la lavadora, el microondas, etc.(San
Miguel, 2016)

Figura 1. Microcontrolador Freescale, fuente: www.nxp.com

Como se observa en la figura 1 los microcontroladores son chips de muy


alta integración, dado que posee protocolos de comunicación serial, SPI,
I2C, entradas y salidas digitales, entradas analógicas, conversor
analógico digital, salidas PWM etc.

Figura 2. Estructura interna Microcontrolador, fuente: elaboración del autor.

Los microprocesadores modernos poseen una capacidad de


procesamiento de datos increíble y resultan muy útiles para la
construcción de potentes computadoras. Sin embargo, existen multitud de
aplicaciones de control en las que no es necesaria tanta velocidad de
proceso ni tanta memoria, como por ejemplo, para controlar un
electrodoméstico, el ratón o el teclado de un ordenador personal, el
teléfono móvil. una alarma, una puerta de garaje, un ascensor, el mando a
distancia del televisor, etc.
De aquí nace la idea del microcontrolador. que es un dispositivo mucho
más económico que un microprocesador, y en un solo chip integra la CPU.
la memoria ROM. la RAM. y una interfaz de entrada/salida. Es como un
pequeño ordenador metido en un chip como se observa en la figura 2.
2. UNIDAD TEMÁTICA 2. ARQUITECTURA DE
MICROCONTROLADORES

2.1. INTRODUCCIÓN

La arquitectura de un microcontrolador permite definir la estructura de su


funcionamiento, las dos arquitecturas principales usadas en la fabricación de
microcontroladores son: arquitectura de Von Neumann y arquitectura Harvard.
Además, estas arquitecturas pueden tener procesadores de tipo CISC o de tipo
RISC.

2.1.1. Arquitectura de Von Neumann

Figura 3. Arquitectura Von Neumann, fuente: http://rcmcomputointegrado.blogspot.com/2012/04/arquitectura-


von-neumann.html

En esta arquitectura, los datos y las instrucciones circulan por el mismo


bus ya que estos son guardados en la misma memoria, su principal
ventaja es el ahorro de líneas de entrada-salida pero esto supone una
disminución en la velocidad con la que se realizan los procesos.
Este tipo de arquitectura es hoy en día muy común en los computadores
personales, y fue muy común en la construcción de microcontroladores
hasta que se descubrieron las grandes ventajas de la arquitectura
Harvard.
2.1.2. Arquitectura de Hardvard

Figura 4. Arquitectura Harvard, fuente: http://rcmcomputointegrado.blogspot.com/2012/04/arquitectura-von-


neumann.html

A diferencia de la anterior, en la arquitectura Harvard existe una


memoria específica para datos y una memoria específica para las
instrucciones, de esta forma se usan dos buses bien diferenciados. Con
esto se logra trabajar con las dos memorias simultáneamente y en
consecuencia se obtiene mucha más velocidad en la ejecución de los
programas. Actualmente, la tendencia de los microcontroladores es usar
este tipo de arquitectura.(Hernández, 2014)

2.1.3 Procesador de tipo CISC (Complex Instruction Set


Computer)

Un procesador que permita manejar un amplio juego de instrucciones


es llamada de tipo CISC que en español significa «Ordenador con Juego
de Instrucciones Complejo», programar en este tipo de arquitectura
requiere en algunos casos del dominio de hasta centenares de
instrucciones.

2.1.4 Procesador de tipo RISC (Reduced Instruction Set


Computer)

Cuando un procesador está diseñado para manejar pocas instrucciones


pero sin afectar las prestaciones del ordenador es llamada de tipo RISC
que en español significa «Ordenador con Juego de Instrucciones
Reducido», esto permite programar con mucha más facilidad y, por si
fuera poco, los circuitos de tipo RISC disponen de una estructura que
busca como mínimo la instrucción próxima a ejecutar mientras realiza la
instrucción actual. Esta estructura permite lograr no solo mayor
velocidad de proceso sino también procesar cada instrucción con la
misma velocidad.(Hernández, 2014)
3. UNIDAD TEMÁTICA 3. TIPOS DE

MICROCONTROLADORES
A principios de la década de 1970, una empresa japonesa le encargó a
una joven compañía norteamericana, que desarrollara un conjunto de
circuitos para producir una calculadora de bajo costo. Intel se dedicó de
lleno a la tarea y entre los circuitos encargados desarrolló uno muy
especial, algo no creado hasta la fecha: el primer microprocesador
integrado.
Actualmente en el mercado existe una gran cantidad de fabricantes y de
modelos diferentes de microcontroladores. Aún se pueden encontrar
modelos muy sencillos y antiguos de 8 bits, empleados en pequeñas
aplicaciones, frente a los más complejos de 64 bits, incluidos en los
últimos modelos de PC.
Todos presenta funciones como:
• Unidad de memoria.
• Registro de funciones especiales.
• Puertos binarios.
• Convertidores A/D, D/A y PWM.
• Puertos Serie (RS323, USB, SPI, I2C, BlueThoot, WiFi, Ethernet,
etc.)
• Interrupciones (Cambios de flanco, Temporizador, etc.)
• Reinicio Automático (Watch Dog)

A continuación se dará una breve relación de los micros y fabricantes más


populares entre el consumidor.(Novo, 2007)

3.1 ATMEL AVR

Atmel es un líder mundial en el diseño y la fabricación de


microcontroladores de lógica avanzada, de media señal, de memoria
permanente y de componentes de radiofrecuencia (RF). Los
microcontroladores de Atmel están enfocados al consumidor, a la
industria, la seguridad, las comunicaciones, el cálculo y la automoción.
Los AVR son una familia de microcontroladores RISC de Atmel. El AVR es
una CPU de arquitectura Harvard. Tiene 32 registros de 8 bits. Los
registros de entrada/salida y la memoria de datos forman un espacio de
direcciones unificado, al cual se accede a través de operaciones de carga/
almacenamiento. La pila o stack se ubica en este espacio de memoria
conjunto y no está limitado a un tamaño fijo. El AVR fue diseñado desde
un comienzo para su programación en código C. El paquete de
instrucciones AVR está disponible en el mercado en diferentes
dispositivos, que comparten el mismo núcleo AVR pero tienen distintos
periféricos y cantidades de RAM y ROM: desde el microcontrolador
ATtiny11 con 1KB de memoria flash y sin RAM (sólo los 32 registros), y 8
pines, hasta el microcontrolador ATmega2560 con 256KB de memoria
flash, 8KB de memoria RAM, 4KB de memoria EEPROM, convertidor
analógico digital de 10 bits y 16 canales, temporizadores, comparador
analógico, etc. La compatibilidad entre los distintos modelos es aceptable.
Los microcontroladores AVR utilizan el sistema pipeline con dos etapas
(cargar y ejecutar), que les permite ejecutar la mayoría en un ciclo de
reloj, lo que los hace relativamente rápidos entre los microcontroladores
de 8-bit. Dispone de herramientas de desarrollo gratuitas o de bajo coste.
Estos microcontroladores están soportados por tarjetas de desarrollo
económicas, capaces de descargar el código al microcontrolador, y por
una versión de las herramientas GNU de LINUX.

Este tipo de dispositivo se encuentra en las tarjetas de desarrollo


Arduino, con la cual se realiza el ejemplo en la unidad 5.

3.2 INTEL

El más popular de los microcontroladores de Intel y que realmente marcó


una época es el Intel 8051, un microcontrolador (μC) desarrollado en
1980. Los núcleos del 8051 se usan en más de 100 microcontroladores de
más de 20 fabricantes independientes como Atmel, Siemens, Dallas
Semiconductor, Philips, Winbon, etc. La denominación oficial de Intel
para la familia de μCs 8051 es MCS 51 . El microcontrolador está basado
en una arquitectura Von Neumann (único bus de direcciones y datos) y
utiliza un conjunto de instrucciones CISC. Aunque originariamente fue
diseñado para aplicaciones simples, se permite direccionar 64 KB de ROM
externa y 64 KB de RAM por medio de líneas separadas chip select para
programa y datos. Una característica particular del 8051 es la inclusión
de una unidad de proceso booleano que permite que operaciones de nivel
de bit de lógica booleana se ejecuten directa y eficientemente en registros
internos. Esto ha hecho que el 8051 sea muy popular en aplicaciones de
control industrial. Otra característica muy valorada es que tiene cuatro
conjuntos separados de registros. A menudo se usa esta característica
para reducir la latencia de interrupción. (La rutina que maneja la
interrupción declara usar otro conjunto de registros, evitándose de esta
manera tener que salvar en la pila los registros originales). La mayoría de
los 8051 incluyen una o dos UART’s, dos o tres temporizadores, 128 o 256
bytes de RAM interna (de ellos 16 bytes son direccionables a nivel de bit),
cuatro o cinco registros de entrada/salida y entre 0k-54K de memoria
interna de programa. El núcleo 8051 original ejecuta un ciclo máquina
cada 12 ciclos de reloj, requiriendo la mayoría de instrucciones uno o dos
ciclos máquina. Pero actualmente la mayoría de fabricantes ofrecen
versiones mejoradas que sólo requieren de 2 a 4 ciclos de reloj por cada
instrucción máquina. Los microcontroladores 8051 modernos ofrecen
muchas mejoras sobre el original. Mejoras que incluyen watchdog timers
(circuitos de vigilancia), osciladores internos, memoria de programa Flash
interna, código de inicialización en ROM, almacenamiento en EEPROM
interna, I²2C, USB, generadores PWM (modulador de anchura de pulso),
convertidores A/D y D/A, relojes de tiempo real RTCs, temporizadores y
contadores extra, facilidades de depuración internas, más fuentes de
interrupción, modos de bajo consumo, interfaz CAN (el bus de control
CAN, es el que se emplea en la comunicación de sistemas electrónicos del
automóvil), etc. Existen varios compiladores de lenguaje C disponibles
para el 8051. La mayoría añaden extensiones al lenguaje que permiten al
programador especificar, por ejemplo, el tipo de memoria donde se
ubicará la variable, especificar manejadores de interrupción, especificar
el banco de registros, acceder a instrucciones especiales de manipulación
de bits.
• El 8052 es una versión mejorada del Intel 8051 original con:
• 256 bytes de RAM interna, en vez de 128 bytes.
• 8 KB of ROM, en vez de 4 kB.
• Un tercer temporizador de 16-bit.
• Un segundo puerto serie.

3.3 MICROCHIP

Microchip Technology Inc., principal suministrador de microcontroladores


y semiconductores analógicos, anuncia un nuevo microcontrolador PIC
con conectividad Full_Speed USB 2.0 y 48 MHz de frecuencia de trabajo.

Los nuevos microcontroladores PIC USB destacan por tener 16 KB de


memoria Flash auto-programable mejorada. La tecnología PMOS de
Microchip permite 100.000 ciclos de borrado/escritura y la retención de
datos más de 40 años. Además, la interfaz Full-Speed USB 2.0 incluye un
transreceptor onboard para transferencias de datos directas a periférico
externos. Otras características importantes incluyen:
• 16 KB de memoria Flash auto-programable.
• 768B de RAM, de los cuales 256 bytes pueden ser un buffer para el
puerto USB.
• USART (Universal Synchronous/Asynchronous Receiver/Transmitter
(transmisor/receptor síncrono/asíncrono universal) para interfaces
serie RS232 y RS485.
• Convertidor analógico digital de 10 bit con alta precisión (+/-1 LSB)
y hasta 13 canales de entrada.
• Capture/Compare/PWM módulo con captura y resolución de 16 bits.
Tres Temporizadores (2 x 16 bits, 1 x 8 bit).

3.4 FREESCALE

Freescale Semiconductor, Inc. es un líder mundial en el diseño y la


fabricación de semiconductores embebidos para la automoción, el
consumo, la industria, conexiones a redes y productos inalámbricos.
Freescale se convirtió en empresa independiente en julio de 2004 después
de más de 50 años como parte de Motorola, Inc. La empresa está situada
en Austin, Texas, y se dedica al diseño, la investigación y desarrollo,
dispone de fábricas y departamentos de ventas en más de 30 países.
Freescale, es una de las empresas de semiconductores más grandes del
mundo por sus ventas.

Partiendo de microcontroladores de 8 bits hasta robustas maquinas de 16


y 32 bits como el Microcontrolador Freescale S12XE de 16 bits dispone
de 1MByte de memoria Flash y multitud de periféricos. Freescale
Semiconductor amplía su familia de microcontroladores de 16 bits S12X
de alto rendimiento (MCU) a la línea de productos S12XE. El primer
dispositivo en esta nueva familia de productos, es el S12XEP100, que
tiene 1MByte de memoria Flash. Basado en la línea de productos de 16
bits HCS12 de Freescale (antes conocido como el 68HC12 de Motorola).
La familia S12XE incluye una unidad de protección de memoria (MPU),
que permite a las áreas de memoria ser protegidas en la superposición de
rutinas de programas no autorizadas. Esto no sólo ayuda a reducir al
mínimo los fallos en sistemas de automoción, sino que también ayuda a
prevenir el software no autorizado en programas fijos. La familia S12XE
destaca el módulo de temporizador del coprocesador XGATE, que es
usado para descargar al procesador principal del manejo de funciones
como el complejo PWM, el control de pantallas LCD y el manejo
interrupciones.
Características del Freescale MC9S12XE:
• 50MHz CPU S12X mejorada
• 1MB de memoria Flash con código de corrección de error (CEE)
• 64 KB de RAM
• 4 KB DE EEPROM (capaz de 1 millón de ciclos)
• XGATE módulo temporizador
• 5x CAN
• Vectores de interrupción
• 32 canales de 12 bit
• PWM de 8 canales A/D
• Temporizador de 8 canales con preescaler
• 4 contadores internos de 16 bits
• Opción de bus externo (no-multiplexado)
• Encapsulado de 208 pines MAP BGA
• Versiones de 208, 144, 112 y de 80 pines de -40 a +125 º C

3.5 TEXAS INSTRUMENT

Texas Instruments lanza al mercado una extensión de la familia de


microcontroladores MSP430 de bajo consumo con más de 50 dispositivos
nuevos El nuevo MSP430F20XX MCU introduce la serie que oferta un
dispositivo diminuto de 14 pines, 4x4mm de huella y 16 millones de
instrucciones por segundo (MIPS) El dispositivo de 14 pines combinado
con un consumo de corriente por debajo de 1μA en standby hace que se
utilice en aplicaciones como detectores de movimiento, medidores de
glucosa, dispositivos médicos portátiles, y medidores de agua. La
dirección de memoria para los nuevos dispositivos se amplia de 16 a 20
bits. La dirección de memoria suplementaria se maneja usando 4 bits no
utilizados en la memoria de los anteriores dispositivos y, por tanto,
direccionable en los nuevos dispositivos, no hay ningún cambio de código
y ningún aumento de tamaño de código manteniendo, por tanto, la
compatibilidad binaria.(Novo, 2007)
4. UNIDAD TEMÁTICA 4. LENGUAJES DE

PROGRAMACIÓN
Cualquier microcontrolador ejecuta las instrucciones programas en su
lenguaje de máquina. El lenguaje o código de máquina es el constituido
por los códigos binarios de las instrucciones que puede ejecutar el
microcontrolador; es, por tanto, un lenguaje binario, de "unos" y "ceros".
En el lenguaje de máquina, cada instrucción de un programa está
formada por un grupo de dígitos binarios. Por ejemplo, todas las
instrucciones del lenguaje de máquina de los microcontroladores de gama
media tienen 14 bits de longitud. Por lo tanto, un programa en lenguaje
de máquina para estos microcontroladores está formado por palabras de
14 bits cada una. Obviamente, elaborar programas directamente en el
lenguaje de máquina es difícil. Para reducir el nivel de dificultad de la
programación a este "bajo nivel", se crearon los lenguajes ensambladores
o C en los cuales las instrucciones que en el lenguaje de máquina se
representan por grupos de bits, son representadas por símbolos
nemotécnicos.

4.1 ENSAMBLADOR

En la década del 80, la aparición de microntroladores demandaba un


lenguaje con el cual se pudieran dar distintas soluciones a diferentes
problemas empleando el mismo integrado.
Por lo cual el lenguaje ensamblador se difundió rápidamente y fue el
lenguaje estándar o con pequeñas modificaciones según el fabricante, que
se uso para programar embebidos.

El lenguaje ensamblador o assembler (en inglés: assembly language y la


abreviación asm) es un lenguaje de programación de bajo nivel. Consiste
en un conjunto de mnemónicos que representan instrucciones básicas
para los computadores, microprocesadores, microcontroladores y otros
circuitos integrados programables. Implementa una representación
simbólica de los códigos de máquina binarios y otras constantes
necesarias para programar una arquitectura de procesador y constituye
la representación más directa del código máquina específico para cada
arquitectura legible por un programador. Cada arquitectura de
procesador tiene su propio lenguaje ensamblador que usualmente es
definida por el fabricante de hardware, y está basada en los mnemónicos
que simbolizan los pasos de procesamiento (las instrucciones), los
registros del procesador, las posiciones de memoria y otras
características del lenguaje. Un lenguaje ensamblador es por lo tanto
específico de cierta arquitectura de computador física (o virtual). Esto
está en contraste con la mayoría de los lenguajes de programación de alto
nivel, que idealmente son portables.

Un programa utilitario llamado ensamblador es usado para traducir


sentencias del lenguaje ensamblador al código de máquina del
computador objetivo. El ensamblador realiza una traducción más o menos
isomorfa (un mapeo de uno a uno) desde las sentencias mnemónicas a las
instrucciones y datos de máquina. Esto está en contraste con los
lenguajes de alto nivel, en los cuales una sola declaración generalmente
da lugar a muchas instrucciones de máquina.

Muchos sofisticados ensambladores ofrecen mecanismos adicionales para


facilitar el desarrollo del programa, controlar el proceso de ensamblaje, y
la ayuda de depuración. Particularmente, la mayoría de los
ensambladores modernos incluyen una facilidad de macro (descrita más
abajo), y se llaman macro ensambladores.

Sin embargo a medida que los programas crecían y se requería el empleo


de mas protocolos, este tipo de estructuras hacia engorroso organizar el
código, aparte que el diseñador en cada momento debía estar al tanto del
usos de los registros, por lo cual se veía la necesidad del uso de lenguajes
de un nivel superior, que facilitaran la tarea y en los cuales el diseñaron
se desentendiera de la ejecuciones como por ejemplo, el movimiento de
un dato que se encuentra en el registro acumulador, que para la época
era el único que se usaba para operaciones aritméticas y lógicas, y todo
su contenido debía ser guardado temporalmente en otras partes de la
memoria. (Tokheim, 2008)

4. 2 C.

C es un lenguaje de programación de propósito general: originalmente


desarrollado por Dennis Ritchie entre 1969 y 1972 en los Laboratorios
Bell, como evolución del anterior lenguaje B, a su vez basado en
BCPL(Basic Combined Programming Language).

Al igual que B, es un lenguaje orientado a la implementación de Sistemas


operativos, concretamente Unix. C es apreciado por la eficiencia del
código que produce y es el lenguaje de programación más popular para
crear software de sistemas, aunque también se utiliza para crear
aplicaciones y en este caso para la programación de embebidos.

Se trata de un lenguaje de tipos de datos estáticos, débilmente tipificado,


de medio nivel, ya que dispone de las estructuras típicas de los lenguajes
de alto nivel pero, a su vez, dispone de construcciones del lenguaje que
permiten un control a muy bajo nivel. Los compiladores suelen ofrecer
extensiones al lenguaje que posibilitan mezclar código en ensamblador
con código C o acceder directamente a memoria o dispositivos
periféricos.

La primera estandarización del lenguaje C fue en ANSI, con el estándar


X3.159-1989. El lenguaje que define este estándar fue conocido como
ANSI C. Posteriormente, en 1990, fue ratificado como estándar ISO
(ISO/IEC 9899:1990). La adopción de este estándar es muy amplia por lo
que, si los programas creados lo siguen, el código es portable entre
plataformas y/o arquitecturas.(Juganaru, 2014)

5. UNIDAD TEMÁTICA 5. HERRAMIENTAS DE

DESARROLLO
Introducción
Las herramientas de simulación, presentan una poderosa ayuda al
momento de interactuar con tecnologías, con las que no se ha trabajado o
son muy costosas y es mejor tener certeza de su operaciones antes de
incurrir en gastos.
En esta unidad se realiza una simulación de la tarjeta de desarrollo
Arduino Nano la cual presenta las siguiente características:

Figura 5.
Pin Out Arduino Nano, fuente: https://pighixxx.tumblr.com/image/42591353009

• Microcontrolador Almet Atmega328P.


• 14 Pines digitales de entrada salida.
• 8 Pines de entrada analógicos (ADC 16 Bits) .
• 5 Pines PWM a 16 bits.
• 1 Puerto serial.
• 1 Puerto SPI.
• 1 Puerto I2C.
• 1 led integrado de pruebas (Pin 13).
• 2 Entradas de interrupciones (cambio de flanco).

Dicha tarjeta sera probada sobre Proteus 8, el cual es una herramienta


para simulación de circuitos discretos o integrados que presenta licencia
libre para estudiantes.

5.1 Herramientas de Software Requeridas:


• Proteus 8, el cual puede descargar de la pagina oficial de
LabCenter: https://www.labcenter.com/downloads/
• IDE Arduino el cual puede descargar de la pagina oficial de
Arduino: https://www.arduino.cc/en/Main/Software
• Librerías de Arduino para Proteus las cuales puede descargar de:
https://www.innovadomotics.com/mn-tuto/mn-mcr/micro-tips/5-
prot-lib-ard.html

El proceso de instalación no se contempla, dada su sencillez sin embargo


la instalación de las librerías de Arduino si se vera en el siguiente
aparatado.

5.2 Instalación de Librerías de Arduino

Luego de instalar Proteus se procede a instalar las librerías de las tarjetas


Arduino:

Figura 6. Instalación de librerías: elaboración del autor.

1. Como se observa en la figura 6 luego de haber extraído los archivos


descargados, debe copiar los .IDX y .LIB (los nombres de los
archivos pueden cambiar dependiendo de la versión de las
librerías).
2. El siguiente paso es ingresar a Proteus y desplegar el pestaña
“Library” e ir a “Library Manager” como se observa en la figura 7:
Figura 7. Proteus 8 pestaña Library: elaboración del autor.

3. En “Library Manager” desplegué la pestaña “Library” y luego


“Create Library” como se observa en la figura 8.

Figura . Proteus 8 “Library Manager”: elaboración del autor.

4. En “Create Library” pulsando con el botón derecho del ratón, elija


pegar como se observa en la figura 9:
Figura 9. Pegado de librerías en “Create Library”: elaboración del autor.

Luego de lo cual solo resta cerrar todas las pestañas y cerrar Proteus.

5.3 Compilado de Programa


Como se especifico en la unidad 4, es necesario escribir las rutinas que
ejecutara el microcontrolador para lo cual se emplea el IDE de Arduino,
en el cual bajo el Lenguaje C y algunas sentencias propias del IDE, se
describen las rutinas que ejecutara.
5.3.1 Ejemplo Led On – Off.
Se requiere una rutina que haga que un led prenda y apague con un
intervalo de 500 mili-segundos.
Para lo cual se emplea la tarjeta descrita en la introducción de la presente
unidad, y es seleccionada en el apartado Herramientas > Placa > Arduino
Nano como se observa en la figura 10:
Figura 10. Selección de tarjeta de desarrollo sobre IDE Arduino: elaboración del autor.

Con la tarjeta adecuada seleccionada se procede a describir la rutinas


para lo cual el IDE Arduino empieza con dos métodos void setup() { } y
void loop () { } como se observa en la figura 11, los cuales básicamente se
usan para configurar las funciones – puertos y generar un bucle infinito
que reproduce las sentencias allí descritas respectivamente.

Figura 11.
Espacio de trabajo IDE Arduino: elaboración del autor.

Se elige el pin 2 como salida y sera donde se conecta el led para que
prenda y apague por lo cual en void setup se escribe:

void setup (){

pinMode(2,OUTPUT); // El método pinMode pone el pin 2 como salida.


// “//” Representa comentarios, lineas que no se ejecutan pero se emplean
// para entender mas fácilmente el código.
// Toda sentencia en C termina con “;”
}

Cabe resaltar que el programa solo ingresa una vez al void setup, después de lo
cual se queda ejecutando infinitamente el void loop, es por tanto que allí se debe
describir la rutina de prender y apagar el led.

void loop(){
digitalWrite(2,HIGH); // Se escribe el puerto de forma digital en alto es decir “1”
// lógico
delay(500); // Se hace una espera de 500 ms, el método delay espera el valor de
// tiempo de espera en ms.

digitalWrite(2,LOW); // Se escribe un 0 logico en el pin 2.

delay(500); // Se detiene el proceso 500ms.


}

Como se observa el la figuras 12 se presiona dicho icono para compilar el


programa, es decir que lo pase a lenguaje de maquina (unos y ceros) y de esa
forma se lo entienda el microcontrolador.

Figura 12. Compilación de código en IDE Arduino: elaboración del autor.


Si no se presenta ningun error aparece Compilado como se observa en la
parte inferior izquierda de la figura XX.

5.4 Simulación de Código en Proteus

Si se realizo el proceso descrito en el apartado 5.2 Proteus ya cuenta con


las librerías de Arduino y no sera ningún problema conectar el circuito
que se describe en la siguiente figura 13 (si tiene dudas de este proceso
remítase a la bibliografía recomendada):

Figura 13. Espacio de trabajo IDE Arduino: elaboración del autor.

Al compilar en el IDE de Arduino se genera un archivo .HEX el cual es el


código de maquina propiamente dicho, sin embargo el IDE de Arduino no
lo guarda en la carpeta del proyecto, por lo cual debe ser buscado en los
archivos temporales del sistema: En buscar del sistema operativo, escriba
%TEMP% como se observa en la siguiente figura 14:
Figura 14. Búsqueda de archivo .hex: elaboración del autor.

Luego de ejecutar el comando el sistema operativo presenta el contenido de la


carpeta temporal donde debe buscar la carpeta de la construcciones de Arduino
como se observa en la siguiente figura 15:

Figura 15. Contenido carpeta TEMP: elaboración del autor.

Al desplegar la carpeta de construcciones de Arduino, debe buscar el


archivo .hex que tiene el mismos nombre del archivo que creo en el IDE de
Arduino, como se observa en la siguiente figura 16:

Figura 16. Archivo .hex: elaboración del autor.

Dicho archivo debe ser copiado y pegado en una ubicación conocida, cabe
destacar que cada vez que vuelva a compilar en el IDE de Arduino dicho archivo
se reemplaza y debe volver a buscarlo.
Con el archivo .hex ubicado, vuelva a Proteus y presione el botón izquierdo del
ratón sobre la tarjeta de Arduino que ha insertado en el esquemático, lo cual
desplegara el menú para cargar el archivo .hex como se observa en la figura 17,
ubíquelo y presione OK:

Figura 17. Cargue de archivo .hex en Proteus: elaboración del autor.

Luego de lo cual ya puede correr la simulación (icono parate inferior


izquierda) y el microcontrolador ejecutara las rutinas descritas, como se observa
en las siguiente figura 18:

Figura 18. Simulación Arduino NANO en Proteus: elaboración del autor.


6. BIBLIOGRAFÍA

Hernández, S. (2014). Sherlin.Xbot.es. Retrieved from Arquitectura de


microcontroladores website:
http://sherlin.xbot.es/microcontroladores/introduccion-a-los-
microcontroladores/arquitectura-de-microcontroladores
Juganaru, M. (2014). Introducción a la programación (1a ed.; G. E. Patria,
Ed.). Retrieved from https://ebookcentral-proquest-
com.proxy.umb.edu.co/lib/biblioumbsp/detail.action?docID=3227908
Muriel, D., & Del Valle, S. (2018). Tecnología digital y nuevas formas de
ocio ( ublicaciones de la U. de Deusto, Ed.). Retrieved from
http://ebookcentral.proquest.com/lib/biblioumbsp/detail.action?
docID=5513546.
Novo, P. (2007). Lógica digital y microprogramable (Created fr;
Marcombo, Ed.).
http://ebookcentral.proquest.com/lib/biblioumbsp/detail.action?
docID=3175457.
San Miguel, P. (2016). Electrónica aplicada Instalaciones de
telecomunicaciones (S. . Ediciones Paraninfo, Ed.). Retrieved from
https://books.google.com.co/books?
id=PxOkCwAAQBAJ&dq=microcontroladores&hl=es&source=gbs_na
vlinks_s
Tokheim, R. L. (2008). Electrónica digital: principios y aplicaciones (7a
ed.; McGraw-Hill, Ed.). Retrieved from https://ebookcentral-proquest-
com.proxy.umb.edu.co/lib/biblioumbsp/detail.action?docID=3195989

También podría gustarte