Está en la página 1de 33

Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

SERVICIO DE PROMOCION PROFESIONAL


PARAGUAYO - JAPONES

CO-08-06

APLICACIONES

DE CONTROL

CON EL PIC

SAN LORENZO PARAGUAY


2006

0
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

UNIDAD I
CONCEPTOS BSICOS DE CONTROL CON MICROCONTROLADORES

1.1 Control con Microcontroladores

Qu es un microcontrolador?

Es un circuito integrado programable que contiene todos los componentes de un computador. 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 un computador dedicado. En su memoria solo reside un programa


destinado a gobernar una aplicacin determinada; sus lneas de entrada y salida soportan el
conexionado de los 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.

Un microcontrolador es un computador completo, aunque de limitadas prestaciones, diseado con


todas las partes incorporadas en un solo circuito integrado y se destina a gobernar la tarea
programada.

Fig. 1. Diagrama General de un Sistema Basado en un Microcontrolador

Se pueden citar los productos que funcionan en base a uno o varios microcontroladores, entre ellos
estn la industria Informtica, en el cual, casi todos los perifricos del computador son regulados
por el programa de un microcontrolador; Ejemplo: el ratn, el teclado, la impresora, entre otros.
Los electrodomsticos coma las lavadoras, hornos, lavavajillas y los aparatos de recreacin como
los televisores, videos, aparatos musicales, incorporan numerosos microcontroladores. Igualmente,
los sistemas de supervisin, vigilancia y alarmas incorporan estos chips para optimizar el
rendimiento de sus instalaciones.

Podramos citar algunos microcontroladores de diferentes fabricantes que pueden ser los de Intel
por ejemplo, los 8051, 8052, 8031, 8751 que fueron los primeros; seguimos con Motorola que se
derivaron del 6800 y han sido optimizados para aplicaciones especiales, los cuales tienen por
ejemplo la nomenclatura MC68HC908JK1, formando parte de aparatos de produccin masivas

1
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
como juguetes, equipos de video, impresoras, electrodomsticos, entre otros. Seguimos con la
serie de Microchip que lo veremos ms adelante y los de ATMEL cuya arquitectura se baso en el
8051 de INTEL y tiene su nomenclatura AT91XXX, por ejemplo el AT91M40400.

1.2 Diferencia entre Microprocesador y Microcontrolador

El microprocesador es un circuito integrado que contiene la Unidad Central de proceso (CPU),


tambin llamada procesador, de un computador. La CPU esta 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 los buses de direcciones, de
datos y de control, para permitir conectarse con la Memoria y los Mdulos de entrada/salida y
configurar un computador implementado por varios circuitos integrados.

Figura 2 Estructura de un sistema abierto basado en un microprocesador

Un microcontrolador sin embargo contiene un computador completo, es de prestaciones limitadas


que no se pueden modificar y slo salen al exterior las lneas que gobiernan los perifricos.

Se encuentran diferentes modelos de microcontroladores que los fabricantes ofertan, desde los
modelos ms sencillos hasta los ms poderosos. Es posible seleccionar la capacidad de las
memorias, el nmero de lneas de entrada/salida (E/S), la cantidad y potencia de los elementos
auxiliares, la velocidad de funcionamiento, etc.

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.

1.3 Estructura interna del microcontrolador

Fig. 3. Estructura de un microcontrolador

2
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

UNIDAD II
MICROCONTROLADOR PIC

Caractersticas Generales

El PIC es la denominacin que tienen los microcontroladores de la marca Microchip. Estos se


caracterizan por:

Sencillez de manejo.
Buena informacin.
Precio.
Buen promedio de parmetros: velocidad, consumo, tamao, alimentacin, cdigo compacto,
ect.
Herramientas de desarrollo fciles y baratas.
Diseo rpido.
Disponibilidad inmediata.
Compatibilidad del software en todos los modelos de la misma gama.

Adems se destacan porque:


Su coste es comparativamente inferior al de los competidores.
Poseen una elevada velocidad de funcionamiento.
Tienen un juego reducido de instrucciones: 35 en la gama media.
Los programas son compactos.
Bajo consumo unido a un amplio rango de voltajes de alimentacin.
Muchas herramientas de software se pueden utilizar libremente en Internet.
Existe una gran variedad de herramientas de hardware que permiten grabar, depurar, borrar y
comprobar el comportamiento de los PIC.
La gran variedad de modelos de los PIC permite elegir el que mejor responde a los
requerimientos de aplicacin.

2.1 Arquitectura Interna del Microcontrolador

Un microcontrolador posee todos los componentes de un computador, pero con unas


caractersticas fijas que no pueden alterarse.

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
d) Conversores AD y DA
e) Comparadores Analgicos
f) Proteccin ante fallos de la alimentacin
g) Estado de reposo o de bajo consumo

3
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
2.1.1 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
CPU se conectaba con una memoria nica, donde coexistan datos e instrucciones, a travs de un
sistema de buses.

Bus comn de
direcciones MEMORIA

Instrucciones
UCP 8 +
Datos

Bus de datos e
instrucciones

Bus de direccin Bus de direccin


MEMORIA de instrucciones de datos MEMORIA
DE DE DATOS
INSTRUCCIONES

10 UCP 9
1 K x 14 512 x 8

14 8
Bus de Bus de
instrucciones datos

Fig.4 Arriba la arquitectura Von Neumman. Abajo la arquitectura Harvard en la cual la


memoria de instrucciones y la de datos son independientes

En la arquitectuela 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
propiciar el paralelismo, permite la adecuacin del tamao de las palabras y los buses a los
requerimientos especficos de las instrucciones y de los datos.

El procesador de los modernos microcontroladores responde a la arquitectura RISC que significa


computadores de juego de instrucciones reducido. Otra aportacin es la segmentacin del
procesador, que descompone la instruccin en etapas para poder procesar una instruccin
diferente en cada una de ellas y trabajar con varias a la vez.

2.1.2 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
aplicacin.
Los cinco tipos de memorias en las cuales debe estar el programa de forma permanente son:
ROM con mscara
EPROM
OTP( programable una vez)
EEPROM
FLASH

4
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
2.1.3 Memoria de Datos

Los datos que contienen los programas varan continuamente, y esto exige que la memoria que les
contiene deba ser de lectura y de escritura, por lo que la memoria RAM esttica es la ms
adecuada, aunque sea voltil.

2.1.4 Lneas de E/S para los Controladores de Perifricos

A excepcin de dos patitas para la alimentacin, dos para el cristal de cuarzo y una para provocar
el Reset las restantes patitas sirven para soportar su comunicacin con los perifricos externos que
controla.

Las lneas de E/S que se adaptan con los perifricos manejan informacin en paralelo y se agrupan
en conjuntos de ocho, que reciben el nombre de Puertas.

2.1.5 Recursos Auxiliares

Circuito de reloj: encargado de generar los impulsos que sincronizan el funcionamiento de todo el
sistema.
Temporizadores: orientados a controlar tiempos
Perro guardin: destinados a provocar una reiniciacin cuando el programa queda bloqueado.
Conversores A/D y D/A: para poder recibir y enviar seales analgicas.
Comparadores analgicos: para comparar el valor de una seal analgica
Sistema de proteccin ante fallos en la alimentacin
Estado de reposo: en el que el sistema queda congelado y el consumo de energa se reduce al
minino.

2.1.6 Opciones del Oscilador

El oscilador de RC (resistencia condensador) proporciona una solucin econmica y puede


usarse hasta 4 MHz.
El oscilador de LP (cristal para baja frecuencia y bajo consumo de potencia) minimiza el consumo
de poder, se usa con cristal de baja frecuencia (200 kHz)
El XT (cristal) se selecciona para un cristal normal (de 100 kHz a 4 MHz)
El HS (cristal de alta velocidad) es para los cristales de alta velocidad (4 MHz a 20 MHz)

2.2 Tipos y Familias

Entre casi un centenar de fabricantes de microcontroladores que existen es muy difcil seleccionar
el mejor, ya que en realidad no existe, porque en cada aplicacin son sus caractersticas
especficas las que determinan el ms conveniente.

Una de las labores mas importantes del diseo es la eleccin del modelo de microcontrolador que
mejor satisfaga las necesidades del proyecto con el mnimo presupuesto.

2.2.1. Gama baja o bsica: PIC16C5X con instrucciones de 12 bits

Se trata de una serie de PIC de recursos limitados, pero con una de las mejores relaciones
coste/prestaciones. Sus versiones estn encapsuladas con 18 y 28 patitas y pueden alimentarse a
partir de una tensin de 2,5 V, lo que les hace ideales en las aplicaciones que funcionan con pilas.

Tienen un repertorio de 33 instrucciones cuyo formato consta de 12 bits. No admiten ningn tipo de
interrupcin y la pila solo dispone de dos niveles.

5
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

Fig. 5 Diagrama de Conexionado de los PIC de gama baja

2.2.2 Gama media: PIC16CXXX con instrucciones de 14 bits

Es la gama mas variada y completa de los PIC. Abarca modelos con encapsulado desde 18 patitas
hasta 68, cubriendo varias opciones que integran abundantes perifricos. Dentro de esta gama se
halla el fabuloso PIC 16F84 y sus variantes. (PIC16C55x, 16C62X/64x/66x, 14000)

El repertorio de instrucciones es de 35 a 14 bits cada una y compatible con el de la gama baja. Sus
distintos modelos contienen todos los recursos que se precisan en las aplicaciones de los
microcontroladores de 8 bits. Tambin dispone de interrupciones y una pila de 8 niveles que
permite el anidamiento de subrutinas.

Fig 6. PIC de gama media

2.2.3 Gama alta: PlC 17CXXX con instrucciones de 16 bits

Se alcanzan las 58 instrucciones de 16 bits en el repertorio y sus modelos disponen de un sistema


de gestin de interrupciones vectorizadas muy potente. Tambin incluyen variados controladores
de perifricos, puertas de comunicacin serie y paralelo con elementos externos y un multiplicador
hardware de gran velocidad.

Quizs la caracterstica ms destacable de los componentes de esta gama es su arquitectura


abierta, que consiste en la posibilidad de ampliacin del microcontrolador con elementos externos.

Para este fin, las patitas sacan al exterior las lneas de los buses de datos, direcciones y control, a
las que se conectan memorias o controladores de perifricos. Esta filosofa de construccin del
sistema es la que se empleaba en los microprocesadores y no suele ser una prctica habitual
cuando se emplean microcontroladores.

6
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
2.2.4 Gama mejorada: PIC18C(F)XXX con instrucciones de 16 bits

Su finalidad es soportar las aplicaciones avanzadas en las reas de automocin, comunicaciones,


ofimtica y control industrial. Sus modelos se destacaron por su alta velocidad (40 MHz) y su gran
rendimiento (10 MIPS a 10 MHz).

Entre las aportaciones ms representativas de esta serie de modelos que crece cada ao,
destacan.

a) Un espacio de direccionamiento para la memoria de programa que permite alcanzar los 2 MB,
y 4KB para la memoria de datos.
b) Inclusin de la tecnologa FLASH para La memoria de cdigo.
c) Potente juego de 77 instrucciones de 16 bits cada una. Permiten realizar una multiplicacin 8
x 8 en un ciclo de instruccin, mover informacin entre las memorias y modificar el valor de un
bit en un registro o en una lnea de E/S.
d) Orientacin a la programacin en lenguaje C con la incorporacin de compiladores muy
eficientes para este lenguaje.
e) Nuevas herramientas para la emulacin.

2.2.5 Los enanos de 8 patitas

Se trata de un grupo de PIC (PIC 12C(F)XXX) que ha acaparado la atencin del mercado. Su
principal caracterstica es su reducido tamao, al disponer un encapsulado de 8 patitas. Se
alimentan con un voltaje de corriente continua comprendido entre 2,5 V y 5,5 V, y consumen menos
de 2 mA cuando trabajan a 5 V y 4 MHz. El formato de sus instrucciones puede ser de 12 o 14 bit y
su repertorio es de 33 o 35 instrucciones segn pertenezcan a la gama baja o media,
respectivamente.

Fig. 7 Conexionado de los PIC12Cxxx de la serie enana

7
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
UNIDAD III
EL PIC 16X84

En la implementacin de microcontroladores para los proyectos usaremos los P1C16X84, bien sea
la versin EEPROM con el PIC 16C84, o la versin FLASH con el PIC16F84.

La razn de esta eleccin es que sobre su memoria de instrucciones se pueden grabar y borrar los
programas. Ambos modelos de microcontroladores son idnticos, excepto en los siguientes
detalles:

1. La memoria de instrucciones del PIC 16C84 es de tipo EEPROM, mientras que las del
PIC16F84 es de tipo Flash.
2. La memoria de datos RAM del PIC16C84 tiene 36 bytes y la del PIC16F84 tiene 68 bytes
3. El nivel activo del bit PWRTE esta invertido en ambos modelos. Este bit permite o prohbe
el funcionamiento de un temporizador (POWER-UP) que acta retrazando el
funcionamiento del PIC al producirse un Reset por conexin de la alimentacin para
garantizar su estabilidad.
4. En el PIC16F84 se han mejorado algunas caractersticas elctricas.

Presentamos las caractersticas ms usadas en la programacin y manejo de estos modelos en las


aplicaciones, para que al trabajar con ellos se localicen rpidamente los datos precisos. Sabiendo
manejar el PIC16F84 es muy fcil pasar a usar los potentes PIC16F87X

3.1 Caractersticas Generales

Memoria de programa de 1k x 14.


el PIC 16C84 de tipo EEPROM, y
el PIC16F84 de tipo Flash.
Memoria de datos EEPROM de 64 bytes
Memoria RAM de propsito general:
de 36 bytes en el PIC16C84, y
de 68 bytes en el PIC16F84.
Trece lneas de E/S con control individual de direccin.
Frecuencia mxima de funcionamiento de 10MHz.
Cuatro fuentes de interrupcin:
a) Activacin de la patita RB0/INT.
b) Desbordamiento del TMR0.
c) Cambio de estado en alguna patita de RB7-RB4.
d) Fin de la escritura de la EEPROM de datos
Temporizador/contador TMR0 programable de 8 bits
Perro guardin.
Encapsulado de 18 patitas.

8
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
3.2 Arquitectura interna.

Fig. 8. Arquitectura Interna del Microcontrolador

3.3 Funcin de las patitas.

La distribucin y denominacin de las patitas del PIC 16X84 se presenta a continuacin:

Fig.9 Distribucin y denominacin de las patitas del PIC16X84

VDD: Tensin positiva de alimentacin


VSS: Tierra o negativo de alimentacin
OSCI/CLKIN: Entrada externa de los impulsos de reloj o conexin con el cristal de cuarzo
OSC2/CLKOUT: Salida de Fosc/4 en modo oscilador R-C o conexin con el cristal de cuarzo.
VPP/MCLR#: En modo grabacin por esta patita se introduce la tensin VPP (12 - 14 V DC). En
funcionamiento normal esta patita soporta la peticin de Reset (Master Clear Reset).
RA0 - RA3: Lneas de E/S de la Puerta A.
RA4/TOCKI: Lnea de E/S de la Puerta A o entrada de impulsos de reloj para TMR0.
RB0/INT: Lnea de E/S de la Puerta B o peticin de interrupcin.
RB1 - RB7: Lnea de E/S de la puerta B.

9
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
3.4 Memoria de Programa

Tiene implementadas 1 K palabras de 14 bits cada una, ocupando las direcciones comprendidas
entre 0x0000 y 0x03FF. Los modelos de la gama media alcanzan 8 K de capacidad mxima).

Fig.10 Organizacin de la memoria de instrucciones del PIC16F84

Las posiciones ID de Identificacin sirven para que el usuario grabe en sus cuatro bits de menos
peso los cdigos que desee. Este valor puede ser un nmero de serie, cdigos de identificacin,
numeraciones secuenciales o aleatorias, etc. Estas posiciones no son accesibles en el
funcionamiento normal del PIC y slo pueden ser ledas y escritas durante el proceso de grabacin.

La Palabra de Configuracin solo tiene 5 bits validos y sus smbolos y misiones se muestran a
continuacin.

13 4 3 2 1 0

NO DEFINIDOS CP PWRTE WDTE FOSC1 FOSC0

CP: proteccin de cdigo (CP =0 protegido: el programa no se puede leer, evitando copias,
tampoco se puede sobrescribir. Adems evita que pueda ser accedida la EEPROM de datos y si se
modifica el bit CP de 0 a 1, se borra completamente la EEPROM)
PWRTE: Control del temporizador (POWER-UP) (PWRTE=0 activado: este temporizador retraza 72
ms la puesta en marcha o Reset que se produce al conectar la alimentacin al PIC para garantizar
la estabilidad de la tensin aplicada)
WDTE: Control del perro guardin (WDTE = 1 activado)
Fosc1- Fosc0: Seleccin del oscilador (00:LP, 01:XT, 10:HS, 11:RC)

3.5 Memoria de Datos RAM

Consta de dos bancos de 128 bytes cada uno. En el P1C16C84 solo estn implementadas las 48
primeras direcciones de cada banco. En las 12 primeras se ubican los registros de propsito
especfico (SFR) y en las 36 siguientes los registros de propsito general (GPR). Sin embargo, los
36 registros de propsito general del Banco 1 se mapean sobre el Banco 0, dejando reducidos a 36

10
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
los registros operativos de este tipo. En el PIC16F84 la organizacin de la RAM es similar, pero los
registros de propsito general son 68 en cada banco, siendo efectivos solo 68, puesto que los del
Banco 1 se mapean sobre el Banco 0

Fig.11 Organizacin de la memoria de Datos RAM

3.6 Memoria de Datos EEPROM

Los datos guardados en esta memoria no se pierden al quitar la alimentacin. Consta de 64 bytes
que ocupan direcciones comprendidas entre 0x00 y 0x3F.
Para acceder a esta memoria en lectura o escritura hay que utilizar los registros de control.

EEDATA, EEADR. EECONI y EECON2.

El proceso de escritura de una posicin de esta memoria es lento y dura unos 10 ms. Cuando
finaliza se activa un sealizador y se puede provocar una interrupcin.

3.7 Puertas de E/S

Hay dos puertas de E/S: Puerta A y Puerta B. Cada lnea de E/S puede configurarse
independientemente como entrada o salida, segn se ponga a 1 o a 0, respectivamente, el bit
asociado del registro de configuracin de cada puerta (TRISA y TRISB). Se llaman PUERTAA y
PUERTAB los registros que guardan la informacin que entra o sale por la puerta y ocupan las
direcciones 5 y 6 del banco 0 de la memoria de datos. Los registros de configuracin TRISA y
TRISB ocupan las misma direcciones, pero en el banco 1.

Los bits del registro TRISA y TRISB, se deben configurar al principio y la lnea funcionar como
entrada si el bit de TRISX est en 1 y como salida si est en 0. Cuando se lee, por ejemplo, una

11
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
lnea de la puerta A (instruccin movf puertaa), se recoge el nivel lgico que se tiene en ese
momento, en el registro PUERTAA.

3.7.1 Puerta A
Consta de 5 lneas denominadas RA0 - RA4.
RA3 RA0 actan como lneas de E/S digitales configurables de forma independiente.
RA4/TOCKI, adems de linea de E/S, puede funcionar como entrada de los impulsos de reloj
para el TMR0.
Si a un bit de TRISA se pone 1, la lnea de E/S correspondiente de la Puerta A acta como
entrada y si se le pone a 0, funciona como salida.
Al leer una entrada se lee el estado actual de la patita.
Las lneas de salida estn lacheadas y en ellas se mantiene el ltimo valor que han sacado.
Tras un Reset todos los bits de TRISA se ponen a 1 y los lneas de la Puerta A quedan
configuradas como entradas.
Cada lnea de salida de la Puerta A suministra una corriente mxima de 20 mA y si es entrada
puede absorber hasta 25 mA. La corriente mxima total que puede absorber la Puerta A es de 80
mA y la que puede suministrar es de 50 mA.

3.7.2 Puerta B
Cuando las lneas de la Puerta B se configuran como entradas es posible acoplarlas una
resistencia pull-up al positivo, poniendo a cero el bit 7 (RBPU) del registro OPTION.
La Puerta B puede absorber una corriente mxima de 150 mA y suministrar un total de 100 mA.
RB0/INT tambin pude actuar como lnea de peticin de interrupcin.
RB7 - RB4 pueden programarse para soportar una misin especial cuando estn configurados
como entradas. Si cambia el estado lgico de una de ellas se provoca una interrupcin.

3.8 Temporizador/ Contador TMR0


Los PIC16X8X poseen un temporizador/contador de 8 bits, llamado TMR0, que acta de dos
maneras diferentes:
1) Como contador de sucesos, que actan representados por los impulsos que se aplican
a la patita RA4/TOCKI. Al llegar al valor FF H se desborda el contador y, con el siguiente impulso,
pasa a 00 H, advirtiendo esta circunstancia activando un sealizador y/o provocando una
interrupcin.
2) Como temporizador, cuando se carga en el registro que implementa al recurso un valor
inicial se incrementa con cada ciclo de instruccin (Fosc/4) hasta que se desborda, o sea, pasa
de FF H y avisa poniendo a 1 un bit sealizador y/o provocando una interrupcin.

Para que el TMR0 funcione como contador de impulsos aplicados a la patita TOCKI hay que poner
a 1 el bit TOCS, que es el que ocupa la posicin 5 del registro OPTION. El tipo de flanco activo se
elige programando el bit TOSE, que es el que ocupa la posicin 4 del registro OPTION. Si se desea
que TMR0 funcione como temporizador el bit TOCS = 0 se pone a cero. Se puede usar un divisor
de frecuencias para aumentar el tiempo de espera. El TMR0 puede ser leido o escrito en cualquier
momento.

Para calcular los tiempos a controlar se usan las siguientes formulas:

Temporizacin = 4. Tosc. (256 (Valor cargado en TMR0)). (Rango del divisor)

Valor a cargar en TMR0 = Temporizacin /(4.Tosc. Rango del divisor)

3.9 El perro guardin.

Es un contador interno de 8 bits que origina un reset cuando se desborda. Su control de tiempos es
independiente del TMR0 y est basado en una simple red R-C. Su actuacin es opcional y puede
bloquearse para que no funcione programando el bit WDTE de la palabra de configuracin.

La temporizacin nominal con la que se halla programado el Perro Guardin es de 18 ms, pero
utilizando el Divisor de Frecuencia puede aumentarse hasta alcanzar los 2,3 segundos.

12
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
3.10 Interrupciones

Las llamadas a subrutinas mediante la instruccin CALL son desviaciones del flujo de control del
programa originadas por instrucciones, por lo que se consideran sincronas. Se produce cada vez
que se ejecuta dicha instruccin.

Las interrupciones son desviaciones del flujo de control del programa originadas asncronamente
por diversos sucesos que no se hallan bajo la supervisin de las instrucciones. Dichos sucesos
pueden ser externos al sistema, como la generacin de un flanco o nivel activo en una patita del
microcontrolador, o bien internos, como el desbordamiento de un contador.

Cuando sucede la interrupcin se detiene la ejecucin del programa en curso, se guarda la


direccin del PC en la pila y se carga al PC con una direccin, que es reservada, de la memoria de
cdigo, llamada vector de interrupcin, que es la direccin 0004H.

Los PIC 16X8X pueden ser interrumpidos por 4 causas diferentes, pero todas ellas desvan el flujo
de control a la direccin 0004H, por lo que una de las operaciones de la Rutina de Servicio de la
Interrupcin (RSI) es averiguar cual de las posibles causas ha sido la responsable de la
interrupcin en curso. Para ello se exploran los sealizadores de la fuente de interrupcin.

3.10.1 Causas de la Interrupciones


1) Activacin de la patita RB0/INT
2) Desbordamiento del temporizador TMR0
3) Cambio de estado en una de las cuatro patitas del ms peso (RB7:RB4) de la puerta B
4) Finalizacin de la escritura en la EEPROM de datos.

Cada fuente de interrupcin dispone de un sealizador o flag, que es un bit que se pone
automticamente en 1 cuando se produce. Para que ocurra la interrupcin se debe habilitar el bit
GIE de INTCON que es la habilitacin global de las interrupciones, luego los bits de habilitacin de
interrupciones particulares para cada uno deben ser puestos a 1. Mientras ocurre la interrupcin
GIE se pone a 0 para que no haya otra interrupcin en ese transcurso.

Para regresar de la interrupcin se debe poner el flag que caus la interrupcin a 0 por software y
regresar con RETFIE.

3.10.2 Interrupcin Externa INT


Esta fuente de interrupcin es sumamente importante para atender acontecimientos externos en
tiempo real. Cuando ocurre alguno de ellos activa la patita RB0/INT y se hace una peticin de la
interrupcin. Entonces, de forma automtica, el bit INTF = 1 y, si el bit de permiso INTE = 1, se
autoriza el desarrollo de la interrupcin.
Mediante el bit 6, llamado INTDEG, del registro OPTION se puede seleccionar cual ser el flanco
activo en RB0/INT. Si se desea que sea el ascendente se escribe un 1 en dicho bit, y si desea que
sea el descendente se escribe el 0.

3.10.3 Interrupcin por Desbordamiento del TMR0


Cuando TMR0 se desborda y pasa del valor FF H al 00 H, el sealizador TOIF se pone
automticamente a 1. Si, adems, el bit de permiso de la interrupcin del TMR0, TOIE = 1 y el bit
de permiso global de interrupciones GIE = 1, se produce una interrupcin. Si no se carga al TMR0
cuando se desborda, sigue contando desde 00 H hasta FF H.

3.10.4 Interrupcin por Cambio de Estado en las Lneas RB7:RB4 de la Puerta B


Esta interrupcin esta diseada especficamente para detectar la pulsacin de una tecla
correspondiente a un teclado matricial que se explora con cuatro lneas de E/S; se le destinan las
lneas RB7:RB4 de la puerta B, y cada vez que cambia el estado lgico de una de ellas fuerza al
sealizador RBIF a ponerse en 1.

3.10.5 Interrupcin por Finalizacin de la Escritura de la EEPROM de datos

13
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
El tiempo tpico que tarda en desarrollarse una operacin de escritura en la EEPROM de datos de
los PIC16X8X es de 10ms; Una forma de asegurar que se ha completado la escritura y se pueda
continuar con el flujo de control del programa es el de la interrupcin, que se origina al finalizar la
escritura, que pone automticamente el sealizador EEIF = 1.

3.11 Reinicializacin o Reset


Existe 5 causas que provocan la reinicializacin del sistema, consistente en cargar al PC con el
valor 000H (vector de reset) y poner el estado de los bits de los registros especficos (SFR) con un
valor conocido.

N Condicin de Reset TO# PD#


1 Conexin de la alimentacin , POR (Power on Reset) 1 1
2 Activacin de la patita MCLR# (Master Clear Reset) en funcionamiento normal. 0 1
3 Activacin de la patita MCLR# en estado de Reposo. 0 0
4 Desbordamiento del Perro Guardin en funcionamiento normal. 1 1
5 Desbordamiento del Perro Guardin en estado de Reposo. 1 0

3.12 El Modo de Reposo o de Bajo Consumo


Se caracteriza por el bajo consumo de energa que requiere y esta muy recomendado en aquellas
aplicaciones en las que hay largos periodos de espera hasta que se produzca algn suceso
asncrono, como un flanco en la patita RB0/INT

El consumo tpico del PIC es de 2 mA, aproximadamente, reduciendo a menos de 10 A en el


modo de reposo, para entrar en este modo hay que ejecutar la instruccin SLEEP, y se produce
una situacin muy especial de funcionamiento que parece como si el sistema se ha congelado.
Para salir del estado de Reposo existen tres alternativas:
1. Activacin externa de MCLR# para provocar un Reset.
2. Desbordamiento del Perro Guardin si qued operativo en el modo de Reposo.
3. Generacin de una interrupcin. En este caso, como TMR0 est parado slo pueden
producirse los otros tres tipos de interrupcin.

3.13 Registros de Control


Seguidamente se expone grficamente la distribucin y la misin de los bits de los registros de
control ms importantes, que son:
a) Registro de Estado
b) Registro OPTION
c) Registro de Direccionamiento Directo e Indirecto
d) Registro de Control de las Interrupciones INTCON
e) Registro de Control EEPROM1 para la EEPROM

14
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
Registro de Estado

C: Sealizador de acarreo en el octavo bit


1 = Acarreo en la suma y no en la resta
0 = No acarreo en la suma y si en la resta

DC: Sealizador de acarreo en el cuarto bit de menos peso


1 = Acarreo en la suma
0 = No acarreo en la suma
En la resta lo contrario

Z: Sealizador de cero
1 = El resultado de una operacin es cero
0 = El resultado de una operacin es distinto de cero

PD#: Power Down


1 = Tras conectar VDD o ejecutar CLRWDT
0 = Al ejecutar la instruccin SLEEP

TO#: Timer Out


1 = Tras conectar VDD o ejecutar CLRWDT o SLEEP
0 = Al rebasar el tiempo del WDT

RP<1:0>: Seleccin de banco para el direccionamiento directo.


11: Banco 3 (180-1FFh)
10: Banco 2 (100-17Fh)
01: Banco 1 (80-FFh)
00: Banco 0 (00-7Fh)
Cada banco es de 128 bytes. El PIC16F84 slo usa el RP0 y RP1 debe mantenerse a 0

IRP: Seleccin de bancos para el direccionamiento indirecto


0 = Banco 0 y 1 (00-FFh)
1 = Banco 2 y 3 (100-1FFh)
El IRP no se usa en el PIC16F84 y debe mantenerse a cero.

Tabla1 Registro de Estado

15
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

Registro OPTION

PS2:PS0: Rango en el que acta el Divisor de Frecuencia

PS2 PS1 PS0 Divisin del TMR0 Divisin del WDT


0 0 0 1:2 1:1
0 0 1 1:4 1:2
0 1 0 1:8 1:4
0 1 1 1:16 1:8
1 0 0 1:32 1:16
1 0 1 1:64 1:32
1 1 0 1:128 1:64
1 1 1 1:256 1:128

PSA: Asignacin del Divisor de Frecuencias


1 = El Divisor de frecuencias se le asigna al WDT
0 = El Divisor de frecuencias se le asigna al TMR0

TOSE: Tipo de flanco en TOCKI


1 = Incremento del TMR0 cada flanco descendente
0 = Incremento del TMR0 cada flanco ascendente

TOCS: Tipo de Reloj para el TMR0


1= Pulsos introducidos a travs de TOCKI (contador)
0 = Pulsos de reloj interno Fosc/4 (temporizador)

INTEDG: Flanco activo interrupcin externa


1 = Flanco ascendente
0 = Flanco descendente

RBPO#: Resistencias Pull-up Puerta B


1 = Desactivadas
0 = Activadas

Tabla2 Registro OPTION

16
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

Registro INTCON

RBIF: Sealizador de estado de la Puerta B


1 = Cuando cambia de estado cualquier lnea de PB (PB<7:4>)
se borra por software
0 = Ninguna entrada de PB ha cambiado

INTF: Sealizador de estado de la interrupcin externa


1 = La entrada de la interrupcin se ha activado
se borra por software
0 = No hay interrupcin externa

TOIF: Sealizador de rebosamiento del TMR0


1 = El TMR0 se ha rebosado. Se borra por software (de FF a 00)
0 = El TMR0 no se ha rebosado

RBIE: Activacin de la interrupcin de la PB


1 = Interrupcin activada
0 = Interrupcin desactivada

INTE: Activacin de la interrupcin Externa


1 = Interrupcin activada
0 = Interrupcin desactivada

TOIE: Activacin de la interrupcin del TMR0


1 = Interrupcin activada
0 = Interrupcin desactivada

EEIE : Activacin de la interrupcin de la memoria EEPROM


1 = Interrupcin activada
0 = Interrupcin desactivada

GIE : Activacin global de interrupciones


1 = Concedido el permiso de Interrupciones
0 = No hay posibilidad de Interrupciones

Tabla3 Registro de Control de Interrupciones INTCON

17
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

Registro EECON1

Bits 7-5: No implementados


EEIFE: Sealizador de Interrupcin de la operacin de escritura
1 = La escritura ha terminado
0 = La escritura no se ha comenzado

WRERR: Sealizador de Error


1 = La escritura ha terminado prematuramente
0 = La escritura se ha completado

WREN: Activacin de Escritura


1 = Permite escribir
0 = Prohbe escribir en la memoria de datos EEPROM

WR: Control de Escritura


1 = Inicia un ciclo
0 = Prohibicin de comienzo de ciclo de escritura en la memoria de la EEPROM

RD: Control de Lectura


1 = Comienzo de lectura
0 = Prohibicin de comienzo de lectura

Tabla 4 Registro de Control EECON1 para la EEPROM de Datos

18
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

UNIDAD IV
PROGRAMACIN DEL PIC.

4.1 Juego de Instrucciones

Nomenclatura y smbolos:

0xhh Es la forma que se usa en el lenguaje MPASM para referenciar los nmeros
hexadecimales de dos dgitos (hh).
f Representa la direccin de la memoria RAM de datos del registro fuente. Tiene un
tamao de 7 bits, con un direccionamiento de 128 posiciones comprendidas entre la
direccin 0x00 y la 0x7f.
d Es un bit que conforma el campo del formato de una instruccin que indica el registro
destino. Si d = 0 es W, y si d = 1 es f.
k Campo que contiene un valor inmediato, que puede ser un operando (8 bits) o una
direccin para el PC (11 bits).

Las instrucciones de los PIC de gama media tienen 14 bits de longitud. Este formato se divide en
diferentes campos de bits, cada uno de los cuales referencia a operandos o elementos que maneja
la instruccin en la operacin que realiza el procesador. Estos campos son:
Campo del cdigo OP.
Campo de los operandos fuente (f) y destino (d).
Campo de operando inmediato o literal (k).
Campo de referencia a un bit (b).
Campo de la direccin de salto.

El repertorio de instrucciones de los PIC16X8X se clasifica en 5 grandes grupos, atendiendo el tipo


de operacin que desarrollan:

1. Instrucciones orientadas a manejar registros de tamao byte.


Responden a la sintaxis mnemnico f,d, siendo f y d los dos operandos fuente y destino que
se hallan implementados por registros de 8 bits de la memoria de datos.
El registro f viene referenciado por la direccin de 7 bits que ocupa, mientras que el destino
slo por uno, que si vale 0 es W y si vale 1 es el fuente.

2. Instrucciones orientadas a manejar bits.


Solo hay dos instrucciones de este tipo. Una de ellas pone a 1 (bsf) cualquier bit de un
registro, mientras que la otra lo pone a 0 (bcf).

3. Instrucciones de salto (skip).


Un salto (skip) consiste en saltar la instruccin siguiente a la condicional.
Dos instrucciones prueban un bit de un registro y segn valga 1 o 0, saltan o no.
Las otras dos instrucciones incrementan o decrementan un registro y la posibilidad de salto
se efecta si con esa operacin el valor del registro ha llegado a 0.
Si la instruccin produce un salto tarda 2 ciclos en ejecutarse, sin no produce el salto, tarda
1 ciclo en ejecutarse.

4. Instrucciones que manejan operandos inmediatos.


Se trata de instrucciones que realizan una operacin con un valor inmediato de 8 bits.
Ver tabla 5

5. Instrucciones de control y especiales


Este grupo incluye las instrucciones que rompen la secuencia normal del programa porque
alteran el contenido del PC y tambin las instrucciones especiales.

19
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

MNEMONICO DESCRIPCION FORMATO FLAGS CICLOS

Instrucciones que manejan Registros

ADDWF f,d (W)+(f) (destino) 000111 dfffffff C, DC, Z 1

ANDWF f,d (W) AND (f) (destino) 00 0101 dfff ffff Z 1

CLRF f 00 (f) 00 0001 1fff ffff Z 1

CLRW 00 (W) 000001 0000 0011 Z 1

COMF f,d Complemento de f [(#f) (destino)] 00 1001 dfff ffff Z 1

DECF f,d (f) -1 destino 00 0011 dfff ffff Z 1

INCF f,d (f)+1 destino 00 1010 dfff ffff Z 1

IORWF f,d (W) OR (f) destino 00 0100 dfff ffff Z 1

MOVF f,d Mueve f destino 00 1000 dfff ffff Z 1

MOVWF f (W) (f) 00 0000 1fff ffff Ninguno 1

NOP No operacin 00 0000 0xx00000 Ninguno 1

RLF f,d Rota f a la izq a travs del cy destino 00 1101 dfff ffff C 1

RRF f,d Rota f a la dcha a travs del cy destino 00 1100 dfff ffff C 1

SUBWF f,d (f)(W) (destino) 00 0010 dfff ffff C,DC,Z 1

SWAPF f,d Intercambia los nibbles de f destino 00 1110 dfff ffff Ninguno 1

XORWF f,d (W) XOR (f) (destino) 00 0110 dfff ffff Z 1

Instrucciones que manejan bits

BCF f,b Pone a 0 el bit b del registro f 0100bb bfffffff Ninguno 1

BSF f,b Pone a 1 el bit b del registro f 01 01bb bfff ffff Ninguno 1

Instrucciones de salto

BTFSC f,b Salta si el bit b del reg. f es 0 01 10bb bfff ffff Ninguno 1 (2)

BTFSS f,b Salta si el bit b del reg. f es 1 01 11bb bfff ffff Ninguno 1 (2)

DECFSZ f,d (f) -1 destino y si resultado es 0 salta 00 1011 dfff ffff Ninguno 1 (2)

INCFSZ f,d (f)+1 destino y si resultado es 0 salta 00 1111 dfff ffff Ninguno 1 (2)

20
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

Instrucciones que manejan operandos inmediatos

ADDLW k (W)+ k (W) 11111xkkkkkkkk C,DC,Z 1

ANDLW k (W) AND k (W) 11 1001 kkkk kkkk Z 1

IORLW k (W) OR k (W) 11 1000 kkkk kkkk Z 1

MOVLW k k (W) 11 00xx kkkk kkkk Ninguno 1

SUBLW k k (W) W 11 110x kkkk kkkk C,DC,Z 1

XORLW k (W) XOR k (W) 11 1010 kkkk kkkk Z 1

Instrucciones de control y especiales

CALL k Llamada a subrutina 10 0kkk kkkk kkkk TO#, PD# 2

CLRWDT Borra o refresca el temporizador del WD 00 0000 0110 0100 Ninguno 2

GOTO k Ir a la direccin 10 1kkk kkkk kkkk Ninguno 2

RETFIE Retorno de una interrupcin 00 0000 0000 1001 Ninguno 2

RETLW k Retorno de subrutina y carga k (W) 11 01xx kkkk kkkk Ninguno 2

RETURN Retorno de una subrutina 00 0000 0000 1000 Ninguno 2

SLEEP Pasa al modo de reposo 00 0000 0110 0011 TOP#, PD# 1

Tabla 5 Repertorio de Instrucciones para el PIC16F84

4.2 Editor, Simulador y Ensamblador MPLAB

En la siguiente Tabla se presentan algunas caractersticas de cada fase de un proyecto y las


herramientas que se utilizan:

Funcin Trabajo a realizar Herramienta necesaria


1 La idea Pensar La cabeza
2 Edicin programa fuente Editar el programa Editor
3 Ensamblar o compilar Traducir el programa en lenguaje fuente a Ensamblador o
cdigo binario ejecutable compilador
4 Simulacin del software Simular comportamiento del programa Simulador software
5 Depuracin Corregir los defectos del programa Todas las anteriores
6 Grabacin del Grabar el programa depurado en la Grabador
microcontrolador memoria de instrucciones del
microcontrolador
7 Simular el HW y SW en Conectar al C grabado los perifricos Sistema de desarrollo
tiempo real fundamentales y analizar su
comportamiento
8 Depuracin Corregir los errores del programa y del HW Las anteriores
9 Montaje a prototipo Construir un prototipo completo con el C Placa de prototipos
grabado y todos sus perifricos
10 Depuracin Corregir errores HW y SW en el prototipo Todas las anteriores
11 Producto final Montaje definitivo El soldador

21
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
El programa que ofrece Microchip para escribir y simular sus microcontroladores es el MPLAB.
Bsicamente es un editor de texto. En l escribimos el programa para guardarlo con la extensin
*.ASM.

Tambin podemos crear libreras, es decir, trozos de cdigo que se reutilizan en muchos programas
y que tendrn una extensin *.INC.

Una vez escrito el cdigo, MPLAB lo compila en un archivo de extensin *.HEX, el cual es utilizado
para programar el microcontrolador con cualquier programa comercial o domstico. Una vez
instalado el MPLAB, nos encontraremos con la siguiente ventana:

Fig. 12 Pantalla del MPLAB

Todo el cdigo y la librera debern estar contenidos en un solo PROYECTO. Este proyecto ser
as como una carpeta que contendr todos los archivos que utiliza un mismo programa. De esta
manera cuando nosotros le pedimos al MPLAB, por ejemplo, simular nuestro programa, este sabr
cuales son los archivos que utiliza nuestro programa.

4.2.1 Creacin de un Nuevo Proyecto

Vamos a la barra de men

Clicamos sobre Project = > New Project (Nos pedir la ubicacin y el nombre del nuevo
proyecto). Le pondremos un nombre como PRIMERO.PJT y lo guardaremos en nuestra carpeta de
trabajo (por ejemplo: C:\PIC\PROYECTOS\)

Todo el proyecto, cdigo fuente y las libreras debern estar en una misma carpeta.

Nos aparecer una ventana de Edicin de Proyecto. Por el momento le daremos Ok sin mirar
mucho, pues nos faltar el archivo de cdigo.

Estamos como al principio. No cambio nada excepto la Barra de Titulo que ahora tiene el nombre
y la ubicacin de nuestro proyecto.

22
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

Ahora debemos crear un archivo que contenga todo el cdigo fuente. Entonces vayamos a la
Barra de Men

FILE => New. Aqu es donde escribimos el cdigo fuente pero primero debemos guardar el archivo.
Para esto en la Barra de Men: =>File => Save as.. y lo guardamos con el nombre
PRIMERO.asm en la misma carpeta del proyecto.

Ahora debemos enlazar el cdigo fuente con el proyecto:

Vamos a la Barra de Men


Project => Edit Project y se abrir una ventana que ya hemos visto antes. Busquemos el botn
Add Node y presionemos sobre l.

Encontramos el archivo PRIMERO.ASM y ponemos ok.

Otra cosa que debemos cambiar es en la opcin Development Mode debemos presionar el botn
Change. All se abrir una ventana en donde tendremos que setear varias cosas, debiendo quedar
como se muestra en la figura:

Fig. 13 Configuracin del Programa

4.3 Ejercicio de programacin.

A continuacin se presentan programas para que apliquemos lo aprendido.

1. Suma de dos posiciones de memoria

; PRIMERO.ASM: Este programa suma el contenido de las posiciones 0x0c y 0x0d de memoria y
;almacena el resultado en la posicin 0e.

LIST p= 16c84 ;Indica el modelo de PIC que se usa. Es una directiva del ensamblador.

; --------------------------------------------------------------------------
;Zona para etiquetas.
OPERANDO1 EQU 0x0c ;Define la posicin del operando1

23
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
OPERANDO2 EQU 0x0d ;Define la posicin del operando2
RESULTADO EQU 0x0e ;Define la posicin del resultado

;---------------------------------------------------------------------------

ORG 0 ;Comando que indica al Ensamblador la direccin de la memoria de


;programa donde situar la siguiente instruccin

;---------------------------------------------------------------------------

movlw 05 ; 5 -> W (Primera instruccin)


movwf OPERANDO1 ; W -> OPERANDO1
movlw 02 ; 2 -> W
movwf OPERANDO2 ; W -> OPERANDO2
movfw OPERANDO1 ; OPERANDO1 -> W
addwf OPERANDO2,0 ; W + OPERANDO2 -> W
movwf RESULTADO ; W -> RESULTADO
END ; Directiva de fin de programa

2. Suma de dos posiciones de memoria optimizada

;PRIMERO2.ASM Optimizacin del programa Primero.asm que calcula la suma de 2 posiciones


de ;memoria y deja el resultado en una tercera. Estas posiciones son 0x0c para operando1, 0x0d
para ;operando2 y 0x0e para el resultado. La optimizacin consiste en ahorrar una instruccin al
;aprovechar el hecho de que la suma es una operacin conmutativa. De esta manera tras cargar en
;W el operando 2 se puede realizar directamente la suma.

LIST p= 16c84 ;Indica el modelo de PIC que se usa es una directiva del ensamblador.

; --------------------------------------------------------------------------
;Zona para etiquetas.
OPERANDO1 EQU 0x0c ;Define la posicin del operando1
OPERANDO2 EQU 0x0d ;Define la posicin del operando2
RESULTADO EQU 0x0e ;Define la posicin del resultado

;---------------------------------------------------------------------------

ORG 0 ;Comando que indica al Ensamblador la direccin de la memoria de


;programa donde situar la siguiente instruccin

;---------------------------------------------------------------------------

movlw 05 ;5 --> W (primera instruccin)


movwf OPERANDO1 ;W --> Operando1
movlw 02 ;2 --> W
movwf OPERANDO2 ;W --> Operando2
addwf OPERANDO1,0 ;W + operando1 --> W
movwf RESULTADO ;W --> resultado

END ;directiva de fin del programa

24
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
UNIDAD V
GRABACIN DEL PIC

5.1 Grabador para PIC

Si bien son muchos los circuitos disponibles en la Web que permiten programar microcontroladores
PIC decidimos tomar lo mejor de cada uno de ellos y elaborar uno propio con las caractersticas
que lo hacen propio para nuestro pas (componentes econmicos y fciles de conseguir, software
fcil de usar y en espaol).

El programador PIC permite leer y grabar PICmicros de 8 y 18 pines as como memorias EEPROM
seriales.

Fig. 14 Diagrama del Grabador

Dispone de un zcalo de 18 pines el cual permite conectar, tal como se ve en la plantilla, tanto
PIC's como memorias EEPROM seriales. Los PIC's de 18 pines se colocan ocupando la totalidad
del zcalo mientras que los PIC's de 8 pines se colocan ocupando la parte superior del zcalo. En
tanto las memorias seriales se colocan una hilera anterior al fin del zcalo (el pin 1 de la memoria
debe coincidir con el 5 del zcalo).

El LED marcado como "Enc." permite observar que el sistema se encuentra alimentado mientras
que el LED marcado como "PIC" se enciende indicando que es seguro insertar o quitar un chip
(PIC o memoria) y se apaga por instantes breves cuando una lectura o programacin de un PIC
est en curso. Mientras este ltimo LED este apagado no se debe quitar o insertar ningn integrado
del zcalo.

El funcionamiento del circuito es muy simple: los pines del puerto paralelo 2, 3, 5 y 10 permiten
interconectar el circuito con la PC. El pin 2 es el encargado de traer los datos (desde la PC hacia el
integrado). El pin 3 es el encargado del envo de los pulsos de reloj (desde la PC hacia el
integrado). En tanto el pin 10 permite a la PC leer los datos desde el programador. El pin 5, por
ltimo, es el encargado de controlar la tensin de programacin (Vpp) necesaria para cuando
queremos leer o escribir en un PIC.

Los microcontroladores PIC se programan utilizando el mismo protocolo que las memorias
EEPROM seriales, por consiguiente el programador sirve tanto para PIC's como para memorias. La
tensin de programacin VPP es necesaria para indicarle al PIC que deseamos leerlo o
programarlo. Si en este pin (que es compartido con la entrada de RESET del micro) ponemos masa
el PIC sufre un reset, si ponemos el pin en alto (5v) el PIC trabaja normalmente mientras que si
ponemos el pin a 12v el PIC se inicializa en modo programacin, quedando dos de los pines de E/S
destinados a datos (SDA) y reloj (SCL).

25
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

El integrado 74LS04 est formado internamente por seis buffers inversores. Estos nos permiten por
un lado obtener niveles TTL a su salida y por el otro no cargar de forma excesiva al puerto. Algunos
programadores, como el NOPPP utilizan diodos y resistencias para conectar el PIC directamente al
puerto paralelo. Esto funciona en muchas computadoras de escritorio con fuentes poderosas pero
en la mayora de las porttiles que no disponen de tanta corriente el funcionamiento es errtico o
directamente no funciona. Gracias a la utilizacin de este buffer podremos utilizar el circuito en
cualquier puerto paralelo ya sea de una computadora de escritorio o en un porttil. Se colocan las
compuertas en serie para obtener a la salida el mismo nivel de entrada, sin invertir. Las resistencias
de 1K dan seguridad al sistema para evitar que circule corriente excesiva.

El control de la tensin de programacin lo efecta el transistor NPN. Estando el pin 5 del puerto
paralelo a masa (en 0) tendremos al transistor abierto por lo que la corriente proveniente de +V
(12v) pasar por el diodo LED el cual no encender y se portar como un diodo comn polarizado
en directa, pasar por la resistencia limitadora de corriente del LED la cual no ofrecer mucha
resistencia y ser inyectada al PIC en su terminal MCLR/VPP. Poniendo en 1 el bit que controla el
pin 5 del puerto paralelo, en cambio, el transistor se cierra y hace circular masa hacia el PIC
haciendo, adems, encender el LED al quedar a masa el otro extremo de la resistencia limitadora
de corriente.

El circuito requiere como nica alimentacin 12V de continua con una corriente de 200mA. Puede
usarse cualquier fuente universal siempre que se respete la polaridad. De tener una fuente de ms
tensin (13.5V como mucho) no hay problema, se la puede utilizar sin inconvenientes. No es
necesario que la fuente sea regulada. Si se tiene una fuente de 12V con ms corriente 1A o incluso
mayor se la puede utilizar tambin sin inconvenientes.

5.2 Programa de Grabacin

El programa que recomendamos para este programador es el IC-Prog dado que rene varias
caractersticas ms que interesantes:

Es muy fcil de usar


Interface con botones de acceso rpido a las principales funciones

Permite ver el ASM del programa que se est por cargar en el PIC (lo obtiene desde el
HEX)

Tiene varios idiomas, entre ellos espaol

Dispone de cinco espacios de memoria (Buffers) para poder tener hasta cinco programas
simultneos.

Dentro de una nica ventana rene memoria de programa, memoria EEPROM y bits de
configuracin.

Hay actualizaciones peridicas con funciones nuevas y problemas resueltos.

Funciona tanto bajo Windows95 como Windows XP as como en versiones intermedias.

Vemos a continuacin una captura de pantalla del programa, haciendo clic sobre ella se lo
puede descargar.

26
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

Fig. 15 Vista del Programador Software

Para configurarlo slo es necesario presionar F3 y especificar el tipo de hardware programador


(seleccionar ProPic 2), indicar el puerto paralelo al cual est conectado y establecer como mtodo
de transferencia de informacin al puerto Direct I/O (en caso de usar Windows 95, 98 o ME) o
Windows API (en caso de usar Windows NT, 2000 o XP). El retardo de I/O establecerlo en 10 que
es un valor que funciona siempre. Se puede ir reduciendo y probando para lograr el menor retardo
posible y as obtener la mayor velocidad de operacin. En tanto se debe indicar como nica lnea
invertida la de MCLR. Las dems lneas son normales.

El programa no requiere instalacin, bastar con descomprimir los nicos dos archivos que lo
conforman (el EXE y el SYS) en cualquier carpeta (nosotros usamos C:\ICPROG). Una vez hecho
esto ejecutar el EXE con doble click y establecer la configuracin (lo pide una nica vez).

Si al momento de terminar la configuracin del programa los dos LED's estn encendidos es seal
de buen funcionamiento. Dentro del men ajustes hay una opcin para probar el funcionamiento
del programador.

27
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

UNIDAD VI:
APLICACIONES DE CONTROL CON PIC

Seguimos programando, usamos los Puertos!

28
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

Nos vamos complicando!

29
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

30
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

Seguimos avanzando, usamos los Temporizadores!

Temporizacin = 4 x 0,25s x 255 x 255 = 65,025 ms

31
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial

Programa con Interrupciones

ALARMA.ASM Un PIC 16F84 controla la alarma de un coche: conectados a RB4 - RB7 hay 4
sensores que controlan cada uno una puerta del coche. Cuando una de las puertas del coche es
abierta, su sensor manda un 1 por su lnea respectiva cambiando esta de estado con lo que se
provoca una interrupcin y comienzan a sonar 2 buzzers conectados a RA0 y RA1. Para detener la
alarma, el usuario debe mandar una seal infrarroja a un sensor, que cuando la detecta activa la
patita RBO con lo que se produce una interrupcin, los buzzers se paran y el programa vuelve a su
comienzo.

32

También podría gustarte