Escolar Documentos
Profissional Documentos
Cultura Documentos
2015-1
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
Semestre 2015.1
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
Semestre 2015.1
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
Semestre 2015.1
Memoria de
Instrucciones
Bus de direcciones
(para instrucciones)
Bus de direcciones
CPU
Bus de instrucciones
(para datos)
Memoria
de datos
Bus de datos
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.
Semestre 2015.1
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
Semestre 2015.1
2.2
Semestre 2015.1
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
Semestre 2015.1
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.
Semestre 2015.1
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
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.
Semestre 2015.1
10
Tiempo en alta
Tiempo en alta + Tiempo en baja
Semestre 2015.1
11
Semestre 2015.1
12
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
Semestre 2015.1
13
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
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
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
Semestre 2015.1
15