Está en la página 1de 69

Introducción a la Electrónica

MICROCONTROLADORES
Y
LENGUAJES DE
PROGRAMACIÓN

Percy Cari
1
Sesión Anterior :
 Robótica.  razos robóticos.
Video: Brazo robótico cortando metal.

Fuente: https://www.facebook.com/183035781835456/videos/697178727087823/ 2
OBJETIVOS DE LA SESIÓN

 Conocer el funcionamiento y estructura de los


microcontroladores.
 Conocer los pasos para implementar una aplicación con
microcontroladores.
 Realizar una aplicación con microcontroladores básica
en lenguaje C.
Contenido de la sesión:

 Microcontroladores: descripción, familias,


funcionamiento, fabricantes.
 Estructura de los microcontroladores.
 Programación de microcontroladores.
 Implementación de una aplicaciones de
microcontroladores PIC.
APORTA A:

El estudiante reconoce los campos de


acción de los microcontroladores y sus
aplicaciones.

5
Introducción a la Electrónica

MICROCONTROLADORES

Percy Cari
6
Microprocesadores de INTEL

 4004 de 5 bits en 1971, realizaba 6000 operaciones por segundo.


 8008 de 8 bits en 1972, realizaba 300000 operaciones por
segundo, 16 kb de memoria y set de 45 instrucciones.
 El 8008 es el predecesor de todos los microprocesadores de hoy.
Microcontroladores PIC de
MICROCHIP
Microcontroladores de ATMEL
Microcontroladores de ATMEL
Microcontroladores de MOTOROLA
Introducción.
¿Qué es un microcontrolador?
Es un computador completo,
aunque de limitadas prestaciones,
que está contenido en el chip de un
circuito integrado y se destina a
gobernar una sola tarea, que
puede ser de gran complejidad.

Estas tareas son programadas en


algún tipo de lenguaje de máquina
por el usuario.
Introducción.
Aplicación de un microcontrolador.

Fotografía de la tarjeta
electrónica usada para el
control del teclado y mouse
de un computador.

El único circuito integrado es


un microcontrolador que
está encargado de detectar
la tecla pulsada y transferir
su código ASCII.
Introducción.
Distribución en la producción
mundial.

Uso de microcontroladores por sectores

27% 18%
VEHICULAR
10% INDUSTRIA
COMPUTADORES
15% COMUNICACIÓN
30% HOGAR
Introducción.
¿Cuál es la diferencia entre
microprocesador y microcontrolador ?

El microprocesador, dependiendo del


circuito, requiere de circuitos integrados
adicionales (RAM para almacenar los
datos temporales; ROM para almacenar el
programa; puertos de entrada-salida,
etc.).

Un microcontrolador es un solo
circuito integrado que contiene
todos los elementos electrónicos.
Introducción.
Ventajas de un microcontrolador
frente a un microprocesador.
Por ejemplo: Una configuración básica de un
microprocesador de 40 pines, estaba constituida por:
- RAM de 28 pines
- ROM de 28 pines
- Decodificador de direcciones
18 pines.

Sin embargo, un microcontrolador


tiene implícito todos estos
componentes, por tanto, las
ventajas son:
- Tamaño.
- Circuitería externa.
- Tiempo de ensamblaje.
- Tiempo de ejecución electrónica.
ESTRUCTURA DE LOS
MICROCONTROLADORES
Las partes principales son:
1. Procesador.
2. Memoria no volátil para contener el programa.
3. Memoria de lectura y escritura para guardar los datos.
4. Líneas de E/S para los controladores de periféricos:
a) Comunicación paralelo.
b) Comunicación serie.
c) Diversas puertas de comunicación (bus PC, USB, etc.)
5. Recursos Auxiliares.
a) Circuito de reloj.
b) Temporizadores.
c) Perro guardián (watchdog).
d) Conversores AD y DA
e) Comparadores analógicos
f) Protección ante fallos de alimentación.
g) Estado de reposo o de bajo consumo.
ESTRUCTURA
i) El procesador.

Es el elemento más
importante del
microcontrolador y
determina sus principales
características, tanto a nivel
hardware como software.

El procesador debe tener


comunicación con las
memorias internas del
microcontrolador.
ESTRUCTURA
Arquitectura Harvard de los procesadores
La Unidad Central de Procesos
(CPU), está conectada a dos MEMORIA
memorias (una para las PROGRAMA
instrucciones del programa y otra CPU
con los datos). Ambos buses son
MEMORIA
totalmente independientes y
DATOS
pueden ser de distinto ancho.

En la arquitectura «Harvard» la memoria de instrucciones y la memoria de datos


son independientes, lo que permite optimizar sus características y propiciar el
paralelismo.
ESTRUCTURA
i) El procesador.
(Rendimiento)
El alto rendimiento y la elevada velocidad
que alcanzan los modernos procesadores,
como el que poseen los microcontroladores
PIC, se debe a la conjunción de tres técnicas:

- Arquitectura Harvard.
- Juego de instrucción tipo RISC
(Computadores de instrucciones
reducido).
- Segmentación. (trabajar con varias
instrucciones a la vez)
ESTRUCTURA
ii) Memoria de programa.
El microcontrolador está diseñado para
que en su memoria de programa se
almacenen todas las instrucciones del
programa de control. Los tipos de memoria
adecuados para soportar esta función
admiten cinco versiones diferentes.

a) ROM con máscara.


b) EPROM.
c) OTP (Programable una vez).
d) EEPROM.
e) FLASH.
ESTRUCTURA
iii) Memoria de datos.
Los datos que manejan los programas varían
continuamente (memorias volátiles), y esto exige que
la memoria que les contiene debe ser de lectura y
escritura, por lo que la memoria RAM estática (SRAM)
es la mas adecuada.

Sin embargo existen microcontroladores que poseen


memorias no volátiles, del tipo EEPROM. De esta
forma, un corte en el suministro de
alimentación no ocasiona la
pérdida de información.
ESTRUCTURA
iv) Líneas de E/S.
A excepción de dos patitas destinadas a
recibir la alimentación, otras dos para el
cristal de cuarzo, que regula la frecuencia
de trabajo, y una más para provocar
Reset, las restantes patitas sirven para
soportar su comunicación con los
periféricos externos.
ESTRUCTURA
iv) Recursos auxiliares.
Según las aplicaciones, cada
microcontrolador incorpora una diversidad
de complementos. Los más comunes son:

- Circuito de reloj, genera los impulsos


que sincronizan todo el sistema.
- Temporizadores, orientados a controlar
tiempos.
- Perro guardián, destinado a provocar
un reset cuando el sistema queda
bloqueado.
- Conversores AD y DA, para poder
recibir y enviar señales analógicas.
- Comparadores analógicos, para
verificar el valor de una señal
analógica.
- Sistema de protección ante fallos de Ejm: PIC18F4550
alimentación, etc.
Introducción a la Electrónica

PROGRAMACIÓN
DE
MICROCONTROLADORES

Profesor: Percy Cari


25
PROGRAMACIÓN DE
MICROCONTROLADORES

El lenguaje que utilizan los


profesionales para la programación de
los microcontroladores es el
ENSAMBLADOR (de bajo nivel), que es
el más cercano a la máquina.

También son frecuentes los programas


en lenguaje C y en BASIC (lenguajes de
alto nivel).
PROGRAMACIÓN
Lenguaje Máquina
11111000111010101010101110001010101010101010101
11110000101000010001100001010101010101010111101

El único lenguaje que entienden los microcontroladores es el


formado por los ceros y unos del sistema binario. Cualquier
instrucción que deba ser ejecutada por el microcontrolador debe
estar expresada en binario. A este lenguaje se le denomina lenguaje
máquina, por ser el que comprende el microcontrolador.

Así por ejemplo:


Cuando el microcontrolador PIC16F84 lee el código máquina
“11111000111010”
Está recibiendo la instrucción “suma 50 al registro W y guarda el
resultado en el mismo registro W”.
PROGRAMACIÓN
Lenguaje Máquina
Cualquier otro lenguaje que se utilice debe ser traducido a unos y
ceros para que el microcontrolador pueda procesarlo. Dicha
codificación binaria es incómoda para trabajar, por lo que muchas
veces se utiliza la codificación hexadecimal para facilitar la
interpretación de los códigos máquina y no saturar las pantallas de
unos y ceros.

Así por ejemplo existen programas como el lC-Prog que trabaja


en lenguaje máquina pero utilizando la codificación hexadecimal.
PROGRAMACIÓN
Lenguaje ensamblador.
El lenguaje máquina es difícil de utilizar por el hombre. El
lenguaje ensamblador, es la forma de expresar las instrucciones
de una forma más natural para el hombre.

El lenguaje ensamblador utiliza nemónicos que son grupos


de caracteres alfanuméricos que simbolizan las órdenes o tareas a
realizar con cada instrucción. Estas instrucciones tienen su
correspondencia con instrucciones en código máquina que el
microcontrolador es capaz de interpretar.

Los nemónicos se corresponden con las iniciales del


nombre de la instrucción en inglés lo que facilita su memorización.
PROGRAMACIÓN
Lenguaje ensamblador.
Así, por ejemplo: para ordenar al microcontrolador: "suma 58 al
registro de trabajo W y guarda el resultado en el mismo registro
W‘en lenguaje ensamblador sería:
addlw d,58
que es mucho más intelegible que el "11111000111010” del
lenguaje máquina.
PROGRAMACIÓN
Lenguaje ensamblador.
Entonces el lenguaje ensamblador es un lenguaje de programación de bajo
nivel. Un programa utilitario llamado ensamblador es usado para traducir
sentencias de lenguaje ensamblador al código de máquina del computador. El
lenguaje ensamblador es propio de cada arquitectura del microcontrolador.

Direcciones
Código de Sentencias en
en memoria
máquina en lenguaje
donde se
hexadecimal ensamblador.
encuentra el
código.
PROGRAMACIÓN
Archivos resultantes luego del “ensamblado”
Tras el ensamblado del archivo fuente *.asm se
producen varios archivos, los más importantes
son:
PROGRAMACIÓN

Archivos resultantes luego del “ensamblado”


PROGRAMACIÓN
Lenguajes de alto nivel.
BASIC o C, son códigos simbólicos de instrucciones todo-propósito
para principiantes. Es una familia de lenguajes de programación de
alto nivel. Fue diseñado como un medio para facilitar programar
computadores a estudiantes.

Captura de
sentencias en el
lenguaje de
programación
BASIC.
PROGRAMACIÓN
Comparación.
Alto Nivel Bajo Nivel

Los lenguajes más empleados son el C Representan un considerable ahorro


y el BASIC. Esta forma de programar de código en la confección de los
ocupa más espacio en la memoria de programas.
programa.
PROGRAMACIÓN
Comparación.
Programa escrito en C y su compilado en código ensamblador
Programación del microcontrolador - Resumen
En resumen, el proceso de creación del programa incluye
lo mostrado en la figura:

http://learn.mikroe.com/ebooks/microcontroladorespicc/chapter/lenguajes-de-programacion/
INSTRUMENTAL DE TRABAJO
Herramientas para la puesta a punto del
hardware y del software.

Software:
- Compiladores (intérprete del lenguaje
de máquina).
- Simuladores.

Hardware:
- Grabador.
- Emulador en circuito.
- Sistemas de desarrollo.
INSTRUMENTAL
Grabador de microcontroladores.
El grabador es indispensable, es el
encargado de escribir el programa en la
memoria del microcontrolador.
INSTRUMENTAL
Emulador en circuito.
El emulador consiste en un complejo
dispositivo físico que, controlado por un
programa desde un computador
personal, dispone de una “cabeza” con
las mismas patitas que el
microcontrolador que se trata de
emular.

Los resultados que así se obtienen son


idénticos a los del producto final, puesto
que la ejecución se realiza en tiempo
real, a diferencia de los simuladores
software.
INSTRUMENTAL
Sistema de desarrollo.
Son equipos que mediante una combinación de hardware
y software consiguen realizar la mayoría de las fases que
exige un diseño basado en microcontrolador.

Una vez grabado el microcontrolador sus patitas quedan


conectadas a través de jumpers.

Este tipo de sistema incluye básicamente:

- Grabador de PIC.
- Hardware y software de adaptación.
- Programa de comunicaciones.
- Tarjeta que incluye: interruptores,
leds, displays de siete segmentos,
potenciómetros, pantalla LCD, etc.
Microcontrolador PIC 16F84

Puertos del 16F84


Cada pin se debe configurar
como entrada o como salida
programando determinado
registro.
En ese registro, un “0”
configura el pin como salida;
y un “1”, como entrada.
Microcontrolador PIC 16F84
Microcontrolador PIC 16F84
Microcontrolador PIC 16F84
Microcontrolador PIC 16F84 - Aplicación
Cuatro interruptores (dipswitch) como entradas y cuatro LEDs como salidas del
microcontrolador. Cada uno de los interruptores al cerrarse, se encenderá su
respectivo LED.

Cuando se presione el
interruptor, la entrada
recibirá nivel lógico “0”.

El ULN2803 es un integrado que


invertirá el pulso que recibe y
además amplifica la corriente
Microcontrolador
PIC 16F84 -
Aplicación

Programa en
lenguaje
ensamblador de la
conexión de
interuptores y LEDs
MPLAB® X IDE de Microchip
MPLAB® X IDE is a software que corre en computadoras (Windows®, Mac OS®,
Linux®) para desarrollar aplicaciones para microcontroladores Microchip y
controladores de señal digital.

Programa
escrito en
lenguaje C
MPLAB® X IDE de Microchip
Para descargar el programa, que es libre, ir a:
http://www.microchip.com/mplab/mplab-x-ide
MPLAB® X IDE de Microchip
Micrcohip también ofrece en su sitio de internet, todo tipo de soporte. En la
figura se muestra, por ejemplo, parte de la documentación disponible:
MikroC PRO
Existen muchos programas de otras empresas que sirven para escribir
programas en diferentes lenguajes, y luego, compilarlos para que puedan ser
grabados finalmente a un microcontrolador.
MikroC PRO es un programa para la compilación avanzado en lenguaje C para
microcontroladores PIC.
MikroC PRO - Instalación
MikroC PRO
Es un compilador avanzado en lenguaje C para microcontroladores PIC.
Creación de aplicación con microntrolador PIC
En el software Isis-Proteus, creamos el siguiente circuito esquemático:
Creación de aplicación con microntrolador PIC
En MikroC creamos un nuevo proyecto:
Creación de aplicación con microntrolador PIC

Device: PIC16F84A; Device Clock: 8MHz .


Creación de aplicación con microntrolador PIC

Device: PIC16F84A; Device Clock: 8MHz .


Creación de aplicación con microntrolador PIC
Project File Name: C:\prog_c\prog01
Nota: En caso de no existir la carpeta indicada proceda a crearla.
Creación de aplicación con microntrolador PIC
En la ventana de edición agregue las siguientes instrucciones:
Creación de aplicación con microntrolador PIC
Programa en C y circuito electrónico:
TRISA=255 (en binario 11111111) configura
todos los pines del puerto A como entradas
Creación de aplicación con microntrolador PIC
.
Compile el proyecto para generar el archivo hexadecimal requerido para grabar en el
microcontrolador empleando la opción:
Creación de aplicación con microntrolador PIC
.

Verifique que el comando anterior se complete satisfactoriamente:

Se debe haber creado un archivo con extensión “hex”.

Para nuestro ejemplo sería: prog01.hex


Creación de aplicación con microntrolador PIC
.

Regrese al programa Proteus. Asociaremos el microcontrolador del


circuito con el archivo hexadecimal del programa creado. Doble clic
sobre el microcontrolador. Luego escoger Edit Component
Creación de aplicación con microntrolador PIC
.

En esta ventana se muestran las características del microcontrolador. Cargaremos


en el micro, el archivo .hex creado en MikroC, haciendo clic según lo mostrado:
Creación de aplicación con microntrolador PIC
.

Finalmente, haremos correr el circuito en Proteus,


en el botón Play:

Resultado:
El LED se apaga cuando se
presiona el pulsador
INSTRUMENTAL
Grabado del programa en el
microcontrolador
Luego de realizado todos los pasos
anteriores se procede a escribir el
programa en la memoria del
microcontrolador.
Enlace recomendado
Guía de referencia rápida a MikroC
http://download.mikroe.com/documents/compilers/mikroc/language-reference/mikroc-
language-reference-guide-spa-v102.pdf

67
Fuentes consultadas:

Curso Avanzado de Microcontroladores PIC - CEKIT

Lenguajes de programación:
http://learn.mikroe.com/ebooks/microcontroladorespicc/chapter/lenguajes-
de-programacion/

68
GRACIAS

También podría gustarte