Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CO-08-06
APLICACIONES
DE CONTROL
CON EL PIC
0
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
UNIDAD I
CONCEPTOS BSICOS DE CONTROL CON MICROCONTROLADORES
Qu es 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.
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.
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.
2
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
UNIDAD II
MICROCONTROLADOR PIC
Caractersticas Generales
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.
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
Bus comn de
direcciones MEMORIA
Instrucciones
UCP 8 +
Datos
Bus de datos e
instrucciones
10 UCP 9
1 K x 14 512 x 8
14 8
Bus de Bus de
instrucciones datos
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.
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.
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.
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.
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
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.
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
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.
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.
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.
8
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
3.2 Arquitectura interna.
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).
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
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)
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
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.
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.
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.
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.
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.
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.
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.
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.
14
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
Registro de Estado
Z: Sealizador de cero
1 = El resultado de una operacin es cero
0 = El resultado de una operacin es distinto de cero
15
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
Registro OPTION
16
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
Registro INTCON
17
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
Registro EECON1
18
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
UNIDAD IV
PROGRAMACIN DEL PIC.
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.
19
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
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
SWAPF f,d Intercambia los nibbles de f destino 00 1110 dfff ffff 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
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:
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.
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.
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:
; 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
;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
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
;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
24
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
UNIDAD V
GRABACIN DEL 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.
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.
El programa que recomendamos para este programador es el IC-Prog dado que rene varias
caractersticas ms que interesantes:
Permite ver el ASM del programa que se est por cargar en el PIC (lo obtiene desde el
HEX)
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.
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
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
28
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
29
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
30
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
31
Aplicaciones de Control con Microcontroladores rea de Automatizacin y Control Industrial
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