Está en la página 1de 20

Ing.

Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.
Que es un microcontrolador?
Es un circuito integrado programable que contiene todos los componentes de una computadora.
Se emplea para controlar el funcionamiento de una tarea determinada y, debido a su reducido
tamao, suele ir incorporado en el propio dispositivo al que gobierna. El microcontrolador es una
computadora dedicada. En su memoria slo reside un programa destinado a gobernar una
aplicacin determinada; sus lneas de entrada/salida soportan la conexin de sensores y
actuadores del dispositivo a controlar, y todos los recursos complementarios disponibles tienen
como nica finalidad atender sus requerimientos. Una vez programado y configurado el
microcontrolador solamente sirve para gobernar la tarea asignada.
El microcontrolador es un computador completo, aunque de limitadas prestaciones, que esta
contenido en el chip de un circuito integrado y se destina a gobernar una sola tarea.
Diferencia entre microprocesador y microcontrolador
El microprocesador es un circuito integrado que contiene la Unidad Central de Procesos (UCP),
tambin llamada procesador de una computadora. La UCP (o CPU) est formada por la Unidad
de Control, que interpreta las instrucciones, y el Camino de Datos, que las ejecuta.
Las patitas de un microprocesador sacan al exterior las lneas de sus buses de direcciones,
datos y control, para permitirle conectar con la Memoria y los Mdulos de E/S y configurar una
computadora implementada por varios circuitos integrados. Se dice que un microprocesador es
un sistema abierto porque su configuracin es variable de acuerdo con la aplicacin a la que se
destine.
Un microprocesador es un sistema abierto con el que puede construirse un computador con las
caractersticas que se desee, acoplndole los mdulos necesarios.
Un microcontrolador es un sistema cerrado que contiene un computador completo y de
prestaciones limitadas que no se pueden modificar.

Figura 1. Estructura de un sistema abierto


basado en un microprocesador. La
disponibilidad de los buses en el exterior
permite que se configure a la medida de la
aplicacin

Figura 2. El microcontrolador es un
sistema cerrado. Todas las partes del
computador estn contenidas en su
interior y solo salen al exterior las lneas
que gobiernan los perifricos

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.
Arquitectura interna
Las partes principales de un microcontrolador son:
1. Procesador.
2. Memoria no voltil para contener el programa
3. Memoria de lectura y escritura para guardar los datos
4. Lneas de E/S para los controladores de perifricos:
a) Comunicacin paralelo
b) Comunicacin serie
c) Diversas puertas de comunicacin (bus I2C, USB, etc.)
5. Recursos auxiliares:
a) Circuito de reloj
b) Temporizadores
c) Perro Guardin ( watchdog)
d) Conversores AD y DA
e) Comparadores analgicos
f) Proteccin ante fallos de alimentacin
g) Estado de reposo o de bajo consumo
El procesador
La necesidad de conseguir elevados rendimientos en el procesamiento de las instrucciones ha
desembocado en el empleo generalizado de procesadores de arquitectura Harvard frente a los
tradicionales que seguan la arquitectura de Von Neumann. Esta ltima se caracterizaba porque
la UCP (Unidad Central de Proceso) se conectaba con una memoria nica, donde coexistan
datos e instrucciones, a travs de un sistema de buses (vea figura 3).

Figura 3. En la arquitectura de << von Neumann>> la UCP se comunicaba a travs de un sistema de buses con la
memoria, donde se guardaban las instrucciones y los datos.

En la arquitectura Harvard, son independientes la memoria de instrucciones y la memoria de


datos y cada uno dispone de su propio sistema de buses para el acceso. Esta dualidad adems
de proporcionar el paralelismo, permite la adecuacin del tamao de las palabras y los buses a
los requerimientos especficos de las instrucciones y de los datos. Tambin la capacidad de cada
memoria es diferente (figura 4)

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

Figura 4. En la arquitectura Harvard la memoria de instrucciones y la de datos son independientes, lo que permite
optimizar sus caractersticas y propiciar el paralelismo. En la figura, la memoria de instrucciones tiene 1k posiciones
de 14 bits cada una, mientras que la de datos solo dispone de 512 posiciones de un byte

El procesador de los modernos microcontroladores responde a la arquitectura RISC


(Computadores de Juego de Instrucciones Reducido), que se identifica por poseer un repertorio
de instrucciones mquina pequeo y simple, de forma que la mayor parte de las instrucciones se
ejecuta en un ciclo de instruccin. Otra aportacin frecuente que aumenta el rendimiento del
computador es el fenmeno del paralelismo implcito, que consiste en la segmentacin del
procesador (pipe-line), descomponindolo en etapas para poder procesar una instruccin
diferente en cada una de ellas y trabajar con varias a la vez.
El alto rendimiento y elevada velocidad que alcanzan los modernos procesadores, como el que
poseen los microcontroladores PIC, se debe a la conjuncin de tres tcnicas:
Arquitectura Harvard
Computador tipo RISC
Segmentacin
Memoria de Programa
El microcontrolador esta diseado para que en su memoria de programa se almacenen todas las
instrucciones del programa de control. No hay posibilidad de utilizar memorias externas de
ampliacin.
Como el programa al ejecutarse siempre es el mismo, debe estar grabado de forma permanente.
Los tipos de memoria adecuados para soportar esta funcin admiten cinco versiones diferentes:
1. ROM con mascara:
Se graba en el chip desde su fabricacin.
Altos costos
Recomendado slo para produccin en serie

2. EPROM:
Se escribe mediante un grabador conectado a la computadora
En la superficie tiene una ventana de cristal por la que se borra el controlador
exponindolo a rayos UV
3. OTP (programable una vez)
Slo se puede grabar una vez
Bajo precio y sencillez de grabacin

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

4. EEPROM: (1, 000,000 de ciclos de escritura/borrado)


Borrado elctrico mucho ms fcil
En el mismo zcalo puede ser grabado y borrado tantas veces como se quiera
Tiene problemas para alcanzar capacidades importantes.
Tiempo de escritura relativamente grande
Elevado consumo de energa.
5. FLASH: (1,000 ciclos de escritura/borrado)
Memoria no voltil, de bajo consumo de energa que se puede borrar y escribir
elctricamente
Dispone de mayor capacidad de almacenamiento
Recomendable en aplicaciones donde se necesita modificar el programa a lo largo del
desarrollo
Memoria de Programa

Figura 5.

PIC16F876x

PIC16F873x

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

Memoria de datos
Los datos que manejan los programas varan continuamente, y esto exige que la memoria que
les contiene deba ser de lectura y escritura, por lo que la memoria RAM esttica (SRAM) es la
ms adecuada, aunque sea voltil.
Hay controladores que tambin disponen como memoria de datos una de lectura y escritura no
voltil. Del tipo EEPROM. De esta forma, un corte en el suministro de la alimentacin no
ocasiona la perdida de la informacin, que esta disponible al reiniciar el programa, el PIC 16f87x
dispone de 256x8 bytes de memoria EEPROM para contener datos.
La memoria tipo EEPROM y la tipo Flash puedes escribirse y borrarse elctricamente. Sin
necesidad de sacar el circuito integrado del zcalo del grabador pueden ser escritas y borradas
numerosas veces.
Microcontroladores PIC16C87XA / F87XA de Microchip
Me referir a estos porque sern los que utilizaremos a partir de aqu, (al menos por ahora). Estos micros
pertenecen a la gama media y disponen de un set de 35 instrucciones, por eso lo llaman de tipo RISC
(Reduced Instruction Set Computer) en espaol sera "Computadora con Set de Instrucciones Reducido"
pocas instrucciones pero muy poderosas, otras son de tipo CISC (Complex Instruction Set Computer Computador con Set de Instrucciones Complejo), demasiadas instrucciones, y lo peor, difciles de
recordar.
Esta familia de microcontroladores se divide en tres rangos segn la capacidad de los
microcontroladores. El ms bajo lo compone la familia 16C5X. El rango medio lo componen las familias
16F6X/ 7X/ 8X, algunos con conversores A/D, comparadores, interrupciones, etc. La familia de rango
superior lo componen los 17CXX.
Estas son las funciones especiales de las cuales disponen algunos micros...
Conversores anlogo a digital (A/D) en caso de que se requiera medir seales analgicas, por
ejemplo temperatura, voltaje, luminosidad, etc.
Temporizadores programables (Timer's) Si se requiere medir perodos de tiempo entre
eventos, generar temporizaciones o salidas con frecuencia especfica, etc.
Interfaz serial RS-232. Cuando se necesita establecer comunicacin con otro microcontrolador
o con un computador.
Memoria EEPROM Para desarrollar una aplicacin donde los datos no se alteren a pesar de
quitar la alimentacin, sin necesidad de circuitos especiales.
salidas PWM (modulacin por ancho de pulso) Para quienes requieren el control de motores
DC o cargas resistivas, existen microcontroladores que pueden ofrecer varias de ellas.
Tcnica llamada de "Interrupciones". Cuando una seal externa activa una lnea de
interrupcin, el microcontrolador deja de lado la tarea que est ejecutando, atiende dicha
interrupcin, y luego contina con lo que estaba haciendo.
El oscilador externo
Es un circuito externo que le indica al micro la velocidad a la que debe trabajar. Este circuito, que se
conoce como oscilador o reloj, es muy simple pero de vital importancia para el buen funcionamiento del
sistema. El PIC16C87XA / F87XA puede utilizar cuatro tipos de reloj diferentes. Estos tipos son:

RC. Oscilador con resistencia y condensador.


XT. Cristal para frecuencias estndar (entre 100KHz y 20MHz).
HS. Cristal de alta velocidad (entre 1 MHz y 10MHz).
LP. Cristal para baja frecuencia y bajo consumo de potencia (entre 35 y 200KHz)

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

En el momento de programar o "quemar" el microcontrolador se debe especificar que tipo de oscilador se


usa. Esto se hace a travs de unos fusibles llamados "fusibles de configuracin".
Aqu utilizaremos el cristal de 4 MHz, porque garantiza mayor precisin y un buen arranque del
microcontrolador. Internamente esta frecuencia es dividida por cuatro, lo que hace que la frecuencia
efectiva de trabajo sea de 1 MHz, por lo que cada instruccin se ejecuta en
un microsegundo. El
cristal debe ir acompaado de dos condensadores y el modo de conexin se muestra en la figura 6.

PIC16F876X
Figura 6.- Diagrama de conexin del oscilador cristal, en el microcontrolador.

Si no requieres mucha precisin en el oscilador, puedes utilizar una resistencia y un condensador, como
se muestra en la figura 7. Donde OSC2 queda libre entregando una seal cuya frecuencia es la del
OSC/4.

PIC16F876X
Figura 7.- Diagrama de conexin del oscilador RC , en el microcontrolador. Segn las recomendaciones
de Microchip R puede tomar valores entre 5k y 100k, y C superior a 20pf.

Reset
El PIC 16C876X / F876X posee internamente un circuito temporizador conectado al pin de reset que
funciona cuando se da alimentacin al micro, se puede entonces conectar el pin de MCLR a la fuente de
alimentacin (Figura 8). Esto hace que al encender el sistema el microcontrolador quede en estado de
reset por un tiempo mientras se estabilizan todas las seales del circuito (lo cual es bastante bueno, por
eso siempre la usaremos...).

PIC16F876X

Figura 8.- Circuito de reset. Este ltimo circuito, es por si deseas tener control sobre el reset del
sistema, slo le conectas un botn y listo...

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

Configuracin de los puertos del PIC


Ahora vamos a ver como configurar los puertos del PIC. Para poder hacerlo es necesario conocer los
siguientes registros que son importantes en la configuracin de los puertos.
PORTA
PORTB
PORTC
TRISA
TRISB
TRISC

direccin 0x05
direccin 0x06
direccin 0x07
direccin 0x05
direccin 0x06
direccin 0x07.

Por defecto el PIC tendr todos los I/O port's (es decir los puertos RA, RB Y RC), colocados como
entrada de datos, y si queremos cambiarlos habr que configurarlos.
Al configurar los puertos debers tener en cuenta que:
Si asignas un CERO (0) a un pin, ste quedar como salida y...
Si le asignas un UNO (1), quedar como entrada.
Esta asignacin se hace en:
TRISA para los pines del PUERTO A (6 bits)
TRISB para los pines del PUERTO B (8 bits)
TRISC para los pines del PUERTO C (8 bits)
Por Ejemplo: trisa=%00111100
Si TRISA es igual a XX111100 todos sus pines sern entradas salvo RA0 y RA1 que estn como salida.
Si TRISB es igual a 00000001 todos sus pines sern salidas salvo RB0 que esta como entrada.
En el siguiente diagrama podemos ver el circuito de conexin para un pic16f84, Bsicamente se necesita
un resistor en la lnea /MCLR, un cristal de 4 Mhz con 2 capacitores y una fuente de 5 volt

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

Distribucin de pines en los modelos de microcontrolador PIC16f873, PIC16f876, PIC16f874 y


PIC16f877.

Vss = tierra
VDD = 5 volts
Cristal = 4Mhz

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

Practica 1

Armar el circuito de la figura 9, el cual nos servir para realizar varias de las prximas prcticas.
(Toma en cuenta que el puerto A solo tiene 6 pines disponibles).

Figura 9.- Circuito electrnico para el PIC16f876 / 3 / 2 / 1.


A.-) El LED deber estar encendido, durante 1 segundo y apagado durante 0.5 segundos.

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.
B.-) Se har lo mismo que en el inciso anterior, pero condicionado, a que exista una entrada, por alguno
de los puertos disponibles (por ejemplo RA0).

C.-) Incluir mas LEDs para RB1, RB2, RB3. De igual forma agregar ms interruptores para RA1, RA2,
RA3, y controlar cada uno de los LEDs con su respectivo interruptor.

10

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

Practica 2

A.-) Leer el puerto A y mostrar la lectura en el puerto B, mediante diodos emisores de luz (LED)

B.-) Escribir un cdigo que realice la suma binaria de dos nmeros. En particular queremos introducir un
numero por el puerto A (entre 0 y 3Fh) y sumarlo con un numero X (el que el alumno desee entre 0 y
C0), y visualizar el resultado en el puerto B mediante LEDs. El cdigo en PicBasic quedara como sigue.

Una vez cargado el programa en el PIC, necesitars ver el programa funcionando, por lo que debers
armar el circuito de la figura 9 (toma en cuenta que el puerto A solo tiene 6 pines disponibles).

11

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

Practica 3

A.-) Realizar el programa para un contador binario que muestre mediante los LEDs la cuenta de
1 a x, donde x es un nmero definido previamente en el cdigo del programa.

B.- Realizar la misma operacin que en el ejercicio anterior, pero condicionando el inicio de la cuenta con
la entrada RA4, si esta activada inicia la cuenta, y no se detiene hasta que se termine la cuenta.
C.- Realizar el programa para las siguientes secuencias:

12

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

Practica 4
El programa realizara el encendido y apagado de un motor de CD. Mediante una botonera.
Condiciones:
1. Si S2= 1 y S3=0 se encender el motor y un LED de color ROJO (pin elegido por el alumno del
puerto correspondiente), LED VERDE apagado.
2. Si S2= 0 y S3=1 se apagara el motor y encender un LED de color VERDE (pin elegido por el
alumno del puerto correspondiente), LED ROJO apagado.
3. Si S2=S3 se apagara el motor y encender un LED de color VERDE (pin elegido por el alumno
del puerto correspondiente), LED ROJO apagado.

Practica 5
El programa realizara el control de la velocidad de un motor de CD, con PWM. Mediante una botonera.
1. Si S2= 1 (S2 ser un pulsador) se incrementa la velocidad del motor y un LED de color ROJO
enciende indicando que se est incrementando la velocidad (pin elegido por el alumno del puerto
correspondiente), LED VERDE apagado.
2. Si S3= 1 (S3 ser un pulsador) disminuye la velocidad del motor y un LED de color VERDE
enciende indicando que est disminuyendo la velocidad (pin elegido por el alumno del puerto
correspondiente), LED ROJO apagado.
3. Una vez que el motor llega a su mxima velocidad encendern ambos LEDs.

13

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

Practica 6
El programa realizara el control de la direccin de giro de un motor de CD. Mediante una botonera.
1. Si S2= 1 y S3=0 el motor gira hacia la derecha y un LED de color ROJO se enciende(pin elegido
por el alumno del puerto correspondiente), LED VERDE apagado.
2. Si S2= 0 y S3=1 el motor gira hacia la izquierda y encender un LED de color VERDE (pin
elegido por el alumno del puerto correspondiente), LED ROJO apagado.
3. Si S2=S3 se apagara el motor y ambos LEDs estarn apagado.

14

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

Practica 7
El programa realizara el control de la velocidad y direccin de un motor paso a paso. Mediante una
botonera.
1. Si S1= 1 y S2=0 el motor gira hacia la derecha y un LED de color ROJO (pin elegido por el
alumno del puerto correspondiente), LED VERDE apagado.
2. Si S1= 0 y S2=1 el motor gira hacia la izquierda y encender un LED de color VERDE (pin
elegido por el alumno del puerto correspondiente), LED ROJO apagado.
3. Si S1=S2 se apagara el motor y ambos LEDs estarn apagado.

15

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

Practica 8
El programa realizara el control de posicin de un servomotor, mediante una botonera (Pulsadores).
1.
2.
3.
4.

Si S2= 1 se enciende el LED y el servomotor gira a 0.


Si S3= 1 se enciende el LED y el servomotor gira a 90
Si S4= 1 se enciende el LED y el servomotor gira a 180
Si S5= 1 se enciende el LED y el servomotor realiza un secuencia de giro de 0 a 180 y de
regreso.

16

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

Practica 9
El programa realizara una comunicacin entre el PIC va puerto serial, con un programa que correr
sobre una PC (En VISUAL BASIC por ejemplo), el PIC esperara a recibir un carcter, con lo cual se
realizaran las siguientes operaciones.
1. Si el carcter recibido es una letra d el motor gira hacia la derecha y un LED de color ROJO (pin
elegido por el alumno del puerto correspondiente), LED VERDE apagado.
2. Si el carcter recibido es una letra i el motor gira hacia la izquierda y encender un LED de color
VERDE (pin elegido por el alumno del puerto correspondiente), LED ROJO apagado.
3. Si se recibe cualquier otro carcter se encendern ambos LEDs a manera de indicar un error en
las opciones.

17

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

Practica 10.
Utilizacin de un LCD, para desplegar datos.

Practica 11.
El programa realizara la lectura de una seal analgica, mediante los puertos de entrada configurables
como entradas analgicas (Puerto A), utilizando un sensor de temperatura LM35, y se desplegara el
valor ledo mediante un medio visual (Display de 8 segmentos, LCD, utilera para leer puerto serial de
PICBASIC).
Circuito propuesto.

18

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.

Practica 12.
Implementacin de un teclado matricial, hexadecimal para introducir datos al Microcontrolador.

19

Ing. Jos Santiago Martnez Soto


Manual de prcticas de microcontroladores.
PROYECTOS PROPUESTOS:
Proyecto 1
Alarma de un coche que active un zumbador o un indicador, cuando se haya activado uno de los
sensores de cada puerta, tambin activar una seal de advertencia (sonido por un pequeo lapso de
tiempo) cuando se detecte la presencia de alguna persona, este programa se realizara por medio de
interrupciones. La alarma solo podr ser desactivada por medio de una clave o una seal de tipo
infrarrojo.
Proyecto 2
Control de acceso a un recinto por medio de una clave introducida mediante un teclado matricial, y
desplegado en un LCD. Activando un indicador (verde) en caso de acertar la clave y otro indicador (rojo)
en caso de error.
Proyecto 3
Control de la puerta de un garaje. Se desea controlar automticamente la secuencia de apertura para la
entrada y salida de vehculos en un garaje, que tiene las siguientes caractersticas:
1. En reposo, un indicador rojo esta encendido.
2. Al entrar un vehculo se acciona la llave y se activa un rel, que pone en marcha el motor de
apertura de la puerta. Cuando se abre totalmente la puerta y se activa un sensor de fin de
carrera, se desactiva el rel, se ilumina el indicador verde y se apaga el rojo.
3. La situacin anterior se mantiene durante 5 segundos.
4. Tras ese tiempo, se apaga el indicador verde y se enciende el rojo, al mismo tiempo que se
activa un segundo rel, que pone en marcha el motor de cierre de la puerta, hasta retornar a la
situacin de reposo.
5. Si en la fase de cierre hay algn vehculo en la entrada, mediante un sensor que detecta esta
situacin, se inicia una nueva secuencia de apertura.
Proyecto 4.
Robot mvil de combate (SUMO BOT). Con las siguientes caractersticas generales, si es elegido es
necesario consultar con el profesor las especificaciones particulares.
Proyecto 5.
Robot mvil seguidor de lnea, si es elegido es necesario consultar con el profesor las especificaciones
particulares.
Bibliografa.
Hoja de datos PIC16F87xx de microchip.
Manual PICBASIC PRO.
Manual del curso Microcontroladores.
Microcontroladores PIC Diseo practico y aplicaciones, primera parte, Jos Ma. Angulo Usategui
e Ignacio Angulo Martnez, Ed. Mc GrawHill.
Microcontroladores PIC Diseo practico y aplicaciones, Segunda parte, Jos Ma. Angulo
Usategui e Ignacio Angulo Martnez. Ed. Mc GrawHill.

20

También podría gustarte