Você está na página 1de 15

PONTIFICIA UNIVERSIDAD CATLICA DEL PER

FACULTAD DE CIENCIAS E INGENIERA

LABORATORIO DE INGENIERA ELECTRNICA


LABORATORIO N 4
INTRODUCCION AL MICROCONTROLADOR
GUIA TERICA

2015-1

PONTIFICIA UNIVERSIDAD CATOLICA DEL PERU


FACULTAD DE CIENCIAS E INGENIERIA
SECCION ELECTRICIDAD Y ELECTRONICA

INTRODUCCION AL MICROCONTROLADOR
1.1 Introduccin
El microcontrolador es un circuito integrado de muy alta escala de integracin que contiene las partes
funcionales de un computador:
CPU (Central Processor Unit o Unidad de Procesamiento Central)
Memorias voltiles (RAM), para datos
Memorias no voltiles( ROM, PROM, EPROM) para escribir el programa
Lneas de entrada y salida para comunicarse con el mundo exterior.
Algunos perifricos (comunicacin serial, temporizador, convertidor A/D, etc)
Es decir el microcontrolador es un computador integrado en un solo chip. Integrar todos estos
elementos en un solo circuito integrado a significado desarrollar aplicaciones importantes en la
industria al economizar materiales, tiempo y espacio.

TEMPORI_
ZADOR

ROM

CPU

RAM

SERIAL

A/D

TIMER

PUERTOS
E/S

BUS INTERNO

Fig. 1 Diagrama simplificado de un microocntrolador

Que no hace el microcontrolador?


Las aplicaciones de un microcontrolador son tan inmensas que el lmite es la propia imaginacin del
usuario. Estos microcontroladores estn en el auto, en el televisor, en el telfono, en una impresora, en
un horno de microondas, en un transbordador espacial, en un juguete, etc. Alguna fuentes estiman que
en una casa tpica de E.U se tiene alrededor de 250 microcontroladores.
Los siguientes son algunos campos en los que los microcontroladores tienen gran uso:

En la industria del automvil: Control de motor, alarmas, regulador del servofreno,


dosificador, etc.
En la industria de los electrodomsticos: control de calefacciones, lavadoras, cocinas
elctricas, etc.

IEE316 LABORATORIO DE INGENIERA ELECTRNICA

Semestre 2015.1

PONTIFICIA UNIVERSIDAD CATOLICA DEL PERU


FACULTAD DE CIENCIAS E INGENIERIA
SECCION ELECTRICIDAD Y ELECTRONICA

En informtica: como controlador de perifricos. Por ejemplo para controlar impresoras,


plotters, cmaras, scanners terminales, unidades de disco, teclados, comunicaciones
(modems), etc.
En la industria de imagen y sonido: tratamiento de la imagen y sonido, control de los
motores de arrastre del giradiscos, magnetfono, video, etc.
En automatismo: La enorme cantidad de lneas de entrada y salidas, y su inmunidad al ruido
le hacen muy valioso para el control secuencial de procesos. Por ejemplo control de
mquinas, herramientas, apertura y cierre automtico de puertas segn condiciones, plantas
empaquetadoras, aparatos de maniobra de ascensores, etc.
En robtica: para control de los motores y captura de seales de los diferentes sensores,
fabricacin de controladores robticas para sistemas automticos, etc.
En instrumentos porttiles compactos:
Radio paginador numrico (beeper)
Planmetro electrnico
Nivelmetro digital
Identificador-probador de circuitos integrados
Tacmetro digital
Panel frontal de un osciloscopio
Controlador de display LCD
Analizador de espectros, etc

En dispositivos autnomos:
Fotocopiadoras
Mquinas de escribir
Selector, Codificador decodificador de TV
Localizador de peces
Telfonos de tarjeta, Telfonos celulares
Cerraduras electrnicas, Sistemas de seguridad, etc

Se emplea tambin en medicina, en aplicaciones militares, edificios inteligentes, etc.


1.2

Diferencia entre un sistema con microprocesador y un microcontrolador

Un microprocesador es propiamente la CPU, en cambio un microcontrolador incluye la CPU y


otros perifricos que lo hacen ms funcional. Por ejemplo un microprocesador no puede
comunicarse con un teclado.

Un sistema basado en un microprocesador requiere de memorias para almacenar datos e


instrucciones, y tambin necesita de dispositivos de entrada y salida (E/S) para comunicarse
con el mundo exterior, en cambio un microcontrolador no requiere nada, tiene todo lo anterior
y otros perifricos como el conversor A/D, el USART.

El tiempo de desarrollo de un proyecto electrnico y el costo para un sistema basado en


microcontrolador (sistemas embebidos) es mucho menor.

Los Microprocesadores tradicionales se basan en la arquitectura de Von Newmann, mientras


que los microcontroladores trabajan con arquitectura de Harvard.

IEE316 LABORATORIO DE INGENIERA ELECTRNICA

Semestre 2015.1

PONTIFICIA UNIVERSIDAD CATOLICA DEL PERU


FACULTAD DE CIENCIAS E INGENIERIA
SECCION ELECTRICIDAD Y ELECTRONICA

1.3

Principales fabricantes
Por lo general los fabricantes de microprocesadores lo son de microcontroladores. Los
principales fabricantes de microcontroladores son:
Atmel
Texas Instruments
Motorola
Intel
Zilog
Microchip

1.4

NEC
Hitachi
Mitsibishi
Phlips
Matsushita
Toshiba, etc

Arquitectura de un microcontrolador
Segn la arquitectura interna de la memoria de un microcontrolador se puede clasificar
considerando como el CPU accede a los datos e instrucciones, en 2 tipos:
1.4.1 Arquitectura Von Neumann
Fue desarrollada por Jon Von Neumann, se caracteriza por tener una sola memoria principal
donde se almacenan datos e instrucciones de forma indistinta. La CPU se conecta a travs de
un sistema de buses (direcciones, datos y control). Esta arquitectura es limitada cuando se
demanda rapidez.

Memoria

Bus de direcciones
CPU

Instrucciones
+
Datos

Bus de datos

Fig.1.1 Arquitectura Von Neumann

IEE316 LABORATORIO DE INGENIERA ELECTRNICA

Semestre 2015.1

PONTIFICIA UNIVERSIDAD CATOLICA DEL PERU


FACULTAD DE CIENCIAS E INGENIERIA
SECCION ELECTRICIDAD Y ELECTRONICA

1.4.2 Arquitectura Harvard


Fue desarrollado en Harvard, por Howard Aiken, esta arquitectura se caracteriza por tener 2
memorias independientes una que contiene slo instrucciones y otra, que contiene slo datos.
Ambas, disponen de sus respectivos sistemas de buses para el acceso y es posible realizar
operaciones de acceso simultneamente en ambas memorias.

Memoria de
Instrucciones

Bus de direcciones
(para instrucciones)

Bus de direcciones
CPU

Bus de instrucciones

(para datos)

Memoria
de datos

Bus de datos

Fig. 1.2 Arquitectura Harvard

Se puede observar claramente que las principales ventajas de esta arquitectura son:
a) El tamao de las instrucciones no est relacionado con el de los datos, y por lo tanto puede ser
optimizado para que cualquier instruccin ocupe una sola posicin de memoria de programa,
logrando as mayor velocidad y menor longitud de programa.
b) El tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una
mayor velocidad de operacin.

IEE316 LABORATORIO DE INGENIERA ELECTRNICA

Semestre 2015.1

PONTIFICIA UNIVERSIDAD CATOLICA DEL PERU


FACULTAD DE CIENCIAS E INGENIERIA
SECCION ELECTRICIDAD Y ELECTRONICA

EL MICROCONTROLADOR ATMEL AVR

2.1 Introduccin
ATMEL fabrica los microcontroladores de la familia AVR, esta nueva tecnologa proporciona
grandes ventajas y beneficios al contar con una arquitectura tipo RISC y tener una memoria flash y
eeprom de diferentes capacidades.
El diseo AVR de ATMEL difiere de los dems microcontroladores de 8 bits por tener mayor
cantidad de registros (32) y un conjunto ortogonal de instrucciones. AVR es mucho ms moderna que
su competencia. Por ejemplo, los 8051, 6805 y los PIC, se los arreglan con un nico acumulador, los
658HC11 y 68HC12 tienen simplemente 2. Esto hace que la arquitectura AVR sea ms fcil de
programar a nivel de lenguaje ensamblador y que sea fcil de optimizar con un compilador. El gran
conjunto de registros disminuye la dependencia respecto a la memoria, lo cual mejora la velocidad y
disminuye las necesidades de almacenamiento de datos. Adems casi todas las instrucciones se
ejecutan en 1 2 ciclos de reloj versus 5-10 ciclos de reloj para los chips 8051, 6805, 68HC11 y PIC.
Las familias AVR rpidamente han crecido en el mercado y se dispone de las siguientes
categoras:
TINY AVR: son microcontroladores de propsito general con memoria flash hasta 2
Kbytes y 128 bytes de memorias SRAM y EEPROM.
AVR: Microcontroladores de propsito general con 8 Kbytes de memoria flash y 512
bytes de memoria SRAM y EEPROM.
Mega AVR
Memoria flash hasta 256 Kbytes, 4 Kbytes de memoria EEPROM y SRAM
megaAVR

ATmega 48
ATmega8
ATmega88
ATmega16
ATmega32
ATmega64
ATmega128
ATmega256
LCD AVR
ATmega169
ATmega329

Flash
(KB)

EEPROM
(Bytes)

RAM
(bytes)

I/O

SPI

USART

PWM

ADC
(10 bits)

4
8
8
16
32
64
128
256

256
512
512
512
1K
2K
4K
4K

512
1K
1K
1K
2K
4K
4K
8K

23
23
23
32
32
53
53
53

1
1
1
1
1
1
1
1

1
1
1
1
1
2
2
2

5
3
5
4
4
8
8
16

8
8
8
8
8
8
8
8

16
32

512
1K

1K
2K

53
53

1
1

1
1

4
4

8
8

LCD

S
S

Fig.2.1 Caractersticas del microcontrolador ATmega AVR

IEE316 LABORATORIO DE INGENIERA ELECTRNICA

Semestre 2015.1

PONTIFICIA UNIVERSIDAD CATOLICA DEL PERU


FACULTAD DE CIENCIAS E INGENIERIA
SECCION ELECTRICIDAD Y ELECTRONICA

2.2

Descripcin del ATMEGA88P

El microcontrolador ATMEGA88P es de 8 bits, su procesador presenta caractersticas avanzadas de


tipo RISC, segmentado y es de arquitectura Harvard.

Fig.2.2 Diagrama de Bloques del Atmega88


Las caractersticas principales del microcontrolador (Ver el diagrama de bloques de. la Fig.2.2) son:
Tiene 32 registros de 8 bits de propsito general. Todos estos registros estn conectados a la unidad
aritmtica lgica (ALU) para un rpido acceso, una instruccin es ejecutada con uno solo ciclo de
reloj.
IEE316 LABORATORIO DE INGENIERA ELECTRNICA

Semestre 2015.1

PONTIFICIA UNIVERSIDAD CATOLICA DEL PERU


FACULTAD DE CIENCIAS E INGENIERIA
SECCION ELECTRICIDAD Y ELECTRONICA

Tipos de Memoria:
Memoria flash de 8 Kbytes, EEPROM de 512 bytes y memoria SRAM de 1 Kbytes
Caracterstica de los perifricos internos:
2 temporizador/contador de 8 bits con pre-escalador y comparador
1 ttemporizador/contador de 16 bits con pre-escalador, comparador y capturador
8 canales de entrada para cada convertidor A/D (en TQFP y MLF)
6 canales A/D de 10 bits y 2 canales A/D de 8 bits
1 USART (mdulo programable para comunicacin serial)
1 mdulo SPI, para interface serial (master/slave)
1 perro guardin y un comparador analgico
Puertos programables de entrada/salida
Puerto B, con 8 lneas
Puerto C, con 7 lneas
Puerto D, con 8 lneas
Voltaje de alimentacin:
2.7 a 5.5 voltios (ATMEGA 88P)
Velocidad de operacin:
Atmega88P: 0-4 Mhz @1.8-5.5V, 0-10 Mhz @2.7-5.5V
Atemega88P: 0-10 Mhz @ 2.7-5.5V,0-20 Mhz @4.5-5.5V

2.3

Descripcin de los pines del ATMEGA88P

Fig.2.3 Microcontrolador Atmega88P

VCC y GND. Son los pines de alimentacin (+5 v) y tierra (0 v).


XTAL1 y XTAL2. Conectores del cristal de reloj externo.
RESET. Corresponde a la lnea de reset (entrada).
AVCC. Es el pin para conectar la fuente de alimentacin al convertidor A/D.
AREF.
Para conectar una tensin de referencia para el conversor A/D interno.

IEE316 LABORATORIO DE INGENIERA ELECTRNICA

Semestre 2015.1

PONTIFICIA UNIVERSIDAD CATOLICA DEL PERU


FACULTAD DE CIENCIAS E INGENIERIA
SECCION ELECTRICIDAD Y ELECTRONICA

Se observa que muchos de los pines del circuito integrado tiene pines de propsito general que se
denominan puertos que describiremos a continuaci
2.4 PUERTOS DE ENTRADA/SALIDA
Los puertos son un conjunto de lneas (pines) programables como entrada salida que dispone el
microcontrolador para comunicarse con el mundo exterior.
El microcontrolador Atmega88P, tiene 3 puertos de E/S (Puertos B, C D). Todos los pines de cada
puerto son programables como entrada o salida de datos configurando el registro asociado respectivo
denominado DDR
Se describe a continuacin los puertos disponibles:
Puerto B(PB7 .. PB0). Compuesto de 8 bits, a cada pin le corresponde un bit,
bidireccionales con resistencia interna pull up para cada bit.
El puerto B tiene 3 registros:

son

DDRB: Para configurar los pines como entrada o salida. Si se escribe 1 lgico en
alguna posicin del registro DDRB, el pin asociado a ese bit ser entrada. Si se escribe
un1 lgico el pin asociado ser salida.
.
PORTB: Para escribir un valor en los pines configurados como salida, o para activar o
desactivar las resistencias internas de pull-up en los pines configurados como entradas.
PINB: para leer los valores de los pines, sea que estn configurados como entrada o
salida.

IEE316 LABORATORIO DE INGENIERA ELECTRNICA

Semestre 2015.1

PONTIFICIA UNIVERSIDAD CATOLICA DEL PERU


FACULTAD DE CIENCIAS E INGENIERIA
SECCION ELECTRICIDAD Y ELECTRONICA

Ejemplos:
DDRB= 13(notacin decimal) es lo mismo que DDRB=0x0D (notacin hexadecimal), lo cul se
muestra en la siguiente figura:
DDRB
0 0 0

Cuando se escribe 1s, en el registro DDRB significa que los pines sern de salida, y cuando se
escribe un 0 lgico los pines sern slo de entrada, en este caso los pines PB3 y PB1 se han
configurado como salida y los otros pines como entrada.
Las resistencias PULL UP, caracterstica de los microcontroladores estn asociados a cada pin del
microcontrolador.
Para activar una resistencia pull up, se escribe o en el registro DDRB y se escribe 1 en el registro
PORTB. Por ejemplo:
Para activar la resistencia pull up conectado a los bits PB5, PB4 y PB0, Se hace:

DDRB
0 0

PORTB
0 1 1

Es decir: DDRB= 0x00 y PORTB= 0x31 (notacin hexadecimal)

Puerto C(PC0 .. PC5). Tiene 7 bits, bidireccionales con resistencias internas pull up, para cada
bit. El pin PC6/RESET, puede ser usado como entrada/salida o en caso contrario, PC6 es usado
para la entrada Reset. Un bajo nivel en este pin generar un reset.
Para programar el pin como entrada o como salida se utiliza el registro DDRC, tambin se utiliza
el registro PINC, para lectura de datos y el PORTC para escritura de datos.

Puerto D (PD0..PD7). Son 8 lneas bidireccionales de entrada/salida con resistencias internas pull
up, para cada uno. Los pines del puerto D, tambin tiene otras funciones por ejemplo PD0 y PD1
permiten usar el perifrico de comunicacin serial USART, PD1 permite la transmisin de datos
y PD0, permite la recepcin de datos.
Igualmente como los puertos anteriores, tiene 3 registros: para configurar el pin del puerto D
como entrada o como salida se utiliza el registro DDRD, tambin se utiliza el registro PIND, para
leer datos y el PORTC para escribir datos.

IEE316 LABORATORIO DE INGENIERA ELECTRNICA

Semestre 2015.1

10

PONTIFICIA UNIVERSIDAD CATOLICA DEL PERU


FACULTAD DE CIENCIAS E INGENIERIA
SECCION ELECTRICIDAD Y ELECTRONICA

Fig.2.4 Circuito simplificado interno de un Puerto

3. GENERADOR DE ONDAS PWM (Pulse width modulation)


3.1 Introduccin Terica
La modulacin por ancho de pulso es una tcnica en la que se modifica el ciclo de trabajo (duty
cycle) de una seal peridica.
La seal generada tendr frecuencia fija y tiempos de encendido y apagado variables. En otras
palabras, el perodo de la seal se mantendr constante, pero la cantidad de tiempo que se mantiene en
alto y bajo dentro de un perodo puede variar.
El ciclo de trabajo (duty cycle) de una seal peridica es el ancho relativo de su parte positiva en
relacin al perodo. Matemticamente:
D.C. =

Tiempo en alta
Tiempo en alta + Tiempo en baja

Ejemplos de seal PWM, expresando el ciclo de trabajo (duty cycle) en porcentaje.

IEE316 LABORATORIO DE INGENIERA ELECTRNICA

Semestre 2015.1

11

PONTIFICIA UNIVERSIDAD CATOLICA DEL PERU


FACULTAD DE CIENCIAS E INGENIERIA
SECCION ELECTRICIDAD Y ELECTRONICA

Fig.3.1 Generacin de ondas PWM


Usando el microcontrolador ATmega88P, podemos generar 6 seales PWM, a partir de sus 3
temporizadores 0, 1 y 2, en el pin que corresponde a OC0A(PD6), OC0B(PD5), OC1A(PB1),
OC1B(PB2), OC2A(PB3) Y OC2B(PD3).

Fig.3.2 ATmega88P, genera ondas PWM


Estudiaremos el caso del temporizador 1, para el modo de operacin 14 (Fast PWM).
En este caso el periodo de la onda PWM (TPWM), lo determina el registro ICR1 y el valor del ancho de
pulso en alta (Duty cycle) se hace con el registro OCR1.
f PWM = fCLK/N(1+ ICR1)
N: es el pre escalador
TCLK: Periodo del reloj

IEE316 LABORATORIO DE INGENIERA ELECTRNICA

Semestre 2015.1

12

PONTIFICIA UNIVERSIDAD CATOLICA DEL PERU


FACULTAD DE CIENCIAS E INGENIERIA
SECCION ELECTRICIDAD Y ELECTRONICA

3.2 Aplicacin del microcontrolador


Variacin de velocidad de un motor DC
El motor de corriente continua es una mquina que convierte la energa elctrica en mecnica,
principalmente mediante el movimiento rotativo. Se compone de dos partes el estator y el rotor.

El estator es la parte mecnica del motor donde estn los polos del imn. El rotor es la parte mvil del
motor con devanado y un ncleo, al que llega la corriente a travs de las escobillas.
Cuando la corriente elctrica circula por el devanado del rotor, se crea un campo electromagntico.
Este interacta con el campo magntico del imn del estator. Esto deriva en un rechazo entre los polos
del imn del estator y del rotor creando un par de fuerza donde el rotor gira en un sentido de forma
permanente. Para cambiar el sentido de giro del rotor, se tiene que cambiar el sentido de la corriente
que le proporciona al rotor; basta con invertir la polaridad de la pila o batera.
El motor de corriente continua es una de las ms verstiles en la industria. Su fcil control de
posicin, par y velocidad la han convertido en una de las mejores opciones en aplicaciones de control
y automatizacin de procesos,
Durante el laboratorio, utilizando el microcontrolador, generar una onda PWM, por el pin PB1, para
variar la velocidad de un motor DC. Esto se logra variando el Duty Cicle de la onda. El circuito del
motor tendr un circuito similar a la siguiente figura

Fig.3.3 Circuito de un motor DC, con driver L298

IEE316 LABORATORIO DE INGENIERA ELECTRNICA

Semestre 2015.1

13

PONTIFICIA UNIVERSIDAD CATOLICA DEL PERU


FACULTAD DE CIENCIAS E INGENIERIA
SECCION ELECTRICIDAD Y ELECTRONICA

3.3 Programacin en lenguaje C


Para programar el microcontrolador se utilizar la herramienta de sofware AVRStudio de ATMEL.
(Se explicar los pasos en el Laboratorio). En este entorno se elige el microcontrolador ATmega88P y
se edita el programa en C, luego se compila, para generar el archivo ejecutable. Posteriormente este
archivo, usando un programador se grabar en el microcontrolador, con lo cual el programa se estar
ejecutando .

Fig.3.4 Pantalla inicial de AtmelStudio 6.0

Para editar los programas se emplear el lenguaje C, que tiene la siguiente estructura:

Primero se incluye la librera avr/io.h con la directiva #include. Esta librera define las declaraciones
bsicas para trabajar con el microcontrolador AVR de 8-bits. Luego se declara elv main, en donde se
escribe el cdigo principal del programa. Primero se deben realizar las inicializaciones de los puertos
IEE316 LABORATORIO DE INGENIERA ELECTRNICA

Semestre 2015.1

14

PONTIFICIA UNIVERSIDAD CATOLICA DEL PERU


FACULTAD DE CIENCIAS E INGENIERIA
SECCION ELECTRICIDAD Y ELECTRONICA

y la declaracin de variables, y luego debe colocarse un ciclo infinito para que el procesador siempre
este ejecutando alguna tarea. Si no se coloca este ciclo infinito el procesador se reiniciara
constantemente.
Ejemplo:
Se desea prender 2 diodos conectados al microcontrolador, en los pines PB0 y PB1.
.
ATMEGA88

Se observa en el circuito:

R1=330

PB0

R2=330

PB1

LED 2

LED 1

Los pines PB0 y PB1, deben configurarse


como salida. Esto se logra escribiendo un 1
en el pin asociado del registro DDRB.
los diodos leds, para prenderse necesitan 5
voltios en los pines PB0 y PB1. Esto lo
haremos escribiendo un 1 lgico en los bits
empleados del registro PORTB.

Cdigo:
int main(void)
{
DDRB=0X03; // Configuracin de 2 pines del puerto B como salida
while(1)
{
PORTB = 0X03; // Se asigna "1" lgico a PB0 Y PB1 para prender los diodos leds
}

REFERENCIAS

Libro Manual de Laboratorio de sistemas digitales. PUCP


Guas de laboratorio 4 de Ingeniera electrnica 2014.2. PUCP
www.atmel.com

Material de laboratorio preparado por:


Ing. Zenn Cucho Mendoza
Semestre 2015.1

IEE316 LABORATORIO DE INGENIERA ELECTRNICA

Semestre 2015.1

15

Você também pode gostar