Programación de microcontroladores paso a paso - Carlos Ruiz Zamarreño - E-Book

Programación de microcontroladores paso a paso E-Book

Carlos Ruiz Zamarreño

0,0

Beschreibung

Los sistemas digitales y, en particular, los microcontroladores están sustituyendo día a día la mayor parte de las funciones reservadas tradicionalmente a la electrónica analógica. Por ello, el conocimiento de su funcionamiento resulta una parte esencial en la formación de cualquier persona interesada en la electrónica o en la ingeniería. Este libro le proporciona todo lo necesario para aprender a programar microcontroladores paso a paso y dominar las utilidades de estos semiconductores. oPresentación de las herramientas de programación de microcontroladores oLista con varias de las tarjetas empleadas en el desarrollo con microcontroladores oUtilización de un entorno de programación sencillo y en la nube oEmpleo de ejemplos guiados con diferentes niveles de complejidad oPropuesta de modificaciones para profundizar en el conocimiento del sistema Asimismo, en la parte inferior de la primera página del libro encontrará el código que le permitirá acceder de forma gratuita al código de los programas. Aprender a programar microcontroladores de forma autónoma y segura es ya una realidad. No pierda la oportunidad de conseguir este libro y comenzar una aventura en la que conocerá todas las posibilidades que ofrece este tipo de sistemas y muchas de las maneras en las que puede ser utilizado. Seguro que no se arrepentirá.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 101

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Programación de microcontroladores paso a paso

Ejemplos prácticos desarrollados en la nube

Primera edición, 2021

© 2021 Carlos Ruiz Zamarreño

© 2021 MARCOMBO, S. L.

     www.marcombo.com

Diseño de la cubierta: ENEDENÚ DISEÑO GRÁFICO Maquetación: D. Márquez

Correctora: Anna Alberola y Beatriz García

Directora de producción: M.ª Rosa CastilloProducció del ebook: booqlab

«Cualquier forma de reproducción, distribución, comunicación publica o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra».

ISBN: 978-84-267-3238-5

ÍNDICE

PRÓLOGO

1 INTRODUCCIÓN

2 ENTORNO DE PROGRAMACIÓN MPLAB® XPRESS IDE

3 MPLAB® CODE CONFIGURATOR (MCC)

4 HARDWARE COMPATIBLE

5 EXPLORANDO LAS POSIBILIDADES DEL PIC16F18855

6 DESCUBRIENDO EL FUNCIONAMIENTO CON EJEMPLOS

6.1 Hola mundo (i/o ports)

I/O - puertos de entrada/salida

Implementación del ejemplo

Comentarios sobre el programa

Propuesta de modificaciones

6.2 Hola mundo mejorado (Temporizador y CLC)

TMR8 - temporizador de 8 bits

CLC - configurable logic cell

Implementación del ejemplo

Comentarios sobre el programa

Propuesta de modificaciones

6.3 Luminosidad de led (PWM + ADC)

ISR - interrupciones

ADC - conversor analógico digital

PWM - módulo generador de pulsos variables

Implementación del ejemplo

Comentarios sobre el programa

Propuesta de modificaciones

6.4 Comunicación serie (EUSART)

EUSART - módulo de comunicaciones serie

Implementación del ejemplo

Comentarios sobre el programa

Propuesta de modificaciones

6.5 Sensores de temperatura interno y externo (I2C)

ITI - módulo indicador de temperatura interno

MSSP - módulo de comunicaciones serie síncronas (SPI/I2C)

EMC1001 - módulo sensor de temperatura digital

Implementación del ejemplo

Comentarios sobre el programa

Propuesta de modificaciones

6.6 Comparación de nivel de señal analógica (DAC y comparador)

DAC - módulo conversor digital analógico

Módulo comparador analógico

Implementación del ejemplo

Comentarios sobre el programa

Propuesta de modificaciones

6.7 Comparación de nivel de señal analógica (ADCC en modo Average)

Módulo ADC en modo computacional

Implementación del ejemplo

Comentarios sobre el programa

Propuesta de modificaciones

6.8 Sensor capacitivo (ADCC en modo Burst Average, CVD)

CVD - divisor de tensión capacitivo

Implementación del ejemplo

Comentarios sobre el programa

Propuesta de modificaciones

6.9 Canción de despedida (NCO y TMR0)

NCO - oscilador controlado numéricamente

TMR0 - temporizador 0

Implementación del ejemplo

Comentarios sobre el programa

Propuesta de modificaciones

7 BIBLIOGRAFÍA

ANEXOS

Tabla de códigos ascii

Puertas lógicas

notes.h

ÍNDICE DE FIGURAS

PRÓLOGO

El objetivo de este libro es acercar la programación de microcontroladores a todo tipo de personas con conocimientos básicos de electrónica; conseguir que, de una forma sencilla, mediante la utilización de una serie de herramientas que permiten una programación de los microcontroladores de forma simple y transparente, los usuarios menos familiarizados con este tipo de sistemas sean capaces de comprender su funcionamiento y realizar proyectos relativamente complejos.

Para ello, se utilizará como base un microcontrolador PIC® de la gama media mejorada de Microchip integrado en una placa de desarrollo de precio reducido (en torno a 10 €) y compatible a su vez con el sistema de programación en la nube MPLAB® Xpress IDE. La utilización de este sistema de programación ha sido la preferida para el desarrollo de las actividades, ya que libera al usuario de la tarea de contar con un sistema dedicado en el que instalar el entorno de programación. De este modo, podrá utilizar la placa de desarrollo y programar el microcontrolador en prácticamente cualquier ordenador, con el único requisito de tener una conexión a Internet y un puerto USB accesible.

Así, el usuario que se acerca a este libro, equipado con el reducido hardware indicado anteriormente, será capaz de, a través de diferentes ejemplos prácticos, ir avanzando en la programación del microcontrolador e ir adentrándose en los diferentes módulos que integra el dispositivo. Mediante la utilización de las diferentes herramientas que se presentan a lo largo del libro, el usuario aprenderá a configurar los módulos periféricos del microcontrolador a través de unos simples clics. Todo esto se desarrolla gracias a un proceso en el que el lector irá adquiriendo de forma gradual el conocimiento necesario sobre el funcionamiento y la configuración de los diferentes módulos, a la vez que practica con ellos. Además, en este libro se proponen problemas y modificaciones de los ejemplos prácticos que permitirán al usuario profundizar todavía más en el conocimiento de los diferentes módulos y su interrelación con el microcontrolador.

Por último, me gustaría recordar de nuevo al lector que el objetivo de este libro es acercarle a la programación de microcontroladores de forma sencilla y, aunque está pensado como una guía que se va apoyando en conocimientos previos, el lector puede ir consultando de forma independiente cada ejemplo, ya que están autocontenidos.

Así pues, y sin más dilación, le dejo continuar con la primera parte del libro, donde se contextualizará el papel de los dispositivos microcontroladores para pasar seguidamente a presentar las herramientas que se utilizarán y los ejemplos de programación.

1

INTRODUCCIÓN

En la actualidad estamos rodeados de numerosos dispositivos digitales que ejecutan un programa almacenado en su memoria que se encarga de recibir información a través de un número determinado de puertos de entrada, evaluar esta información y enviar una respuesta a través de sus puertos de salida. Entre este tipo de sistemas podemos diferenciar los sistemas basados en microprocesador, que generalmente cuentan con una mayor capacidad de procesado (mayor velocidad, registros, etc.) y dependen de un sistema operativo para gestionar sus periféricos (memoria, puertos de entrada/salida, etc.), y los sistemas basados en microcontrolador, que generalmente cuentan con unas prestaciones más reducidas (menor velocidad, número de registros reducido, tamaño de datos reducido, etc.), a la vez que integran todos sus periféricos en el mismo encapsulado.

Un ejemplo tradicional de sistema microprocesador lo encontramos en los ordenadores de sobremesa o portátiles, donde tenemos los diferentes periféricos (disco duro, RAM, teclado, ratón, etc.) conectados a una placa base en la que se aloja el microprocesador. Ejemplos de sistemas basados en microcontrolador los podemos encontrar en diferentes electrodomésticos que nos rodean, como una cafetera, el microondas o el mando a distancia del televisor. Estos dispositivos, a diferencia de un ordenador (sistema multipropósito), rara vez necesitan ser reprogramados o actualizados a una nueva versión de programa (firmware) y funcionan tal y como salieron de fábrica durante toda su vida útil. De ahí que reciban también el nombre de sistemas embebidos o empotrados, ya que están concebidos para un único propósito y muchas veces ni nos enteramos de que están ahí.

A partir de la diferenciación señalada queda claro que, en general, los sistemas basados en microcontrolador se encargan de realizar tareas relativamente sencillas que conllevan la gestión de un número determinado de entradas/salidas. Así, por ejemplo, en el caso de la cafetera citado anteriormente, el sistema microcontrolador se encargará de gestionar la pulsación de varios botones para el encendido/apagado de la cafetera, la solicitud de café, controlar la presión a la que se produce el café, el molido del grano, el volumen de café servido, la temperatura, el volumen de agua del contenedor, etc. Son elementos sencillos que no necesitan un sistema con gran capacidad de procesamiento.

A pesar de las reducidas prestaciones con las que generalmente cuentan, los sistemas microcontroladores son los semiconductores más vendidos en la actualidad debido a la gran variedad de aplicaciones hacia las que están orientados. Entre ellos, los más ampliamente utilizados son los microcontroladores de 8 bits, es decir, aquellos que trabajan con datos de 8 bits (muy alejados de los 64 bits con los que trabajan en la actualidad los sistemas microprocesadores más avanzados). Destacan como principales fabricantes de microcontroladores las compañías Intel™, Motorola™, Freescale semiconductor™, Zilog™, Mitsubishi Electric™, Texas Instruments™ o Microchip, y es esta última la que ofrece una gran variedad de dispositivos con múltiples configuraciones, herramientas de programación y una amplia comunidad de usuarios.

Los microcontroladores de Microchip reciben el nombre de microcontroladores PIC®, siglas que corresponden a Peripheral Interface Controller, y todo el mundo se refiere a ellos como PIC. Se basan en una arquitectura Harvard que cuenta con memoria de datos y de programa separadas físicamente y con una CPU RISC (Reduced Instruction Set Computer) que contiene un número reducido de instrucciones. Los PIC® se dividen, en función del número de bits de los datos que procesan, en 32 bits, 16 bits y 8 bits. Estos últimos se dividen, a su vez, en diferentes gamas en función de sus capacidades de procesamiento, el tamaño de las memorias o el número de periféricos que integran; así, se puede distinguir entre la gama baja, media, media mejorada y la gama alta.

Es importante destacar, por último —y antes de pasar a describir el entorno en el que vamos a trabajar en este libro—, que este tipo de dispositivos, debido a su simplicidad de programación, a la integración de nuevos y cada vez más complejos periféricos, a su reducido consumo y a su bajo coste, está siendo empleado en aplicaciones cada vez más avanzadas, donde va reemplazando de forma imparable la parte tradicionalmente reservada a la electrónica analógica. Por ello, su conocimiento resulta una parte esencial en la formación de cualquier persona interesada en la electrónica en particular o en la ingeniería en general.

2

ENTORNO DE PROGRAMACIÓN MPLAB® XPRESS IDE

El nuevo entorno de programación MPLAB® Xpress IDE que ofrece Microchip está basado en una programación en la nube en la que, mediante una serie de pasos muy sencillos, podremos realizar un programa, depurarlo y pasarlo al microcontrolador en el que se va a ejecutar. Todo lo que hagamos estará guardado en nuestra cuenta de usuario, la cual Microchip nos ofrece de forma gratuita. Este entorno ofrece al programador acceso a todos sus proyectos independientemente del lugar en el que esté y le permite trabajar en cualquier sitio sin necesitar instalar pesados programas o llevar copias de sus proyectos allá donde vaya. Sin embargo, este punto de vista no es del agrado de algunos programadores, que ven en este tipo de programación una dependencia a una conexión a Internet que, aunque está disponible en cada vez más lugares, no siempre está garantizada en lo referente a calidad y velocidad; también le achacan los problemas asociados a la seguridad en cuanto al acceso a sus proyectos, que podrían verse expuestos debido a vulnerabilidades del sistema. A pesar de todo, y aparte de las disquisiciones anteriores —en las que no vamos a entrar—, que atienden a un punto de vista personal de cada programador, MPLAB® Xpress IDE es una nueva y potente herramienta que aporta mayor flexibilidad a la hora de abordar el desarrollo de proyectos, acelera la labor del programador, acerca el desarrollo de sistemas microcontroladores a un mayor número de usuarios gracias a sus herramientas simplificadas y se complementa muy bien con la nueva filosofía actual de deslocalización del trabajo mediante la utilización de la nube. Además, cuenta con diferentes tarjetas de evaluación y desarrollo que se integran de forma sencilla con este sistema.

Sin entrar en más detalles, vamos a pasar a describir con claridad los primeros pasos que hay que dar para comenzar a utilizar este entorno de programación en nuestro ordenador. En primer lugar, es importante destacar que este entorno de programación, al estar basado en un plugin desarrollado en JAVA™, no se podrá ejecutar desde el navegador Chrome™ (que eliminó su soporte de JAVA™ en septiembre de 2015), por lo que se recomienda utilizar como navegador Explorer™ o Firefox™ (Windows™) o Safari™ (Mac OS X). Asimismo, es recomendable contar con la última versión de Java™ instalada en nuestro sistema para evitar posibles problemas (se puede descargar desde la página www.java.com), aunque esto lo podremos hacer más adelante. Una vez tenido en cuenta lo anterior, introduciremos la siguiente dirección en nuestro navegador:

https://www.microchip.com/mplab/mplab-xpress